Title: Snuffleupagus 0.4.0 - Oliphant Chuckerbutty
Date: 2018-09-01 01:00

[![snuffleupagus logo]({static}/images/sp.png)](https://snuffleupagus.readthedocs.org)

We just did a new release of [Snuffleupagus](https://github.com/nbs-system/snuffleupagus/releases/tag/v0.4.0),
the `0.4.0`, named **Oliphant Chuckerbutty
**, after Soorjo Alexander William Langobard Oliphant Chuckerbutty (1884–1960),
who was an English composer and an organist. You can listen at some of his
compositions on [youtube](https://www.youtube.com/results?search_query=Oliphant+Chuckerbutty).

It's likely the latest release that I'll do myself; now that other people know
the drill. This new version brings some invasive changes: new hardening features, a new
logging system, several important refactorings, … and although we did our very best
to find and fix every single bugs, odds are that we didn't catch them all.
Should you find any, please do open an issue on
[our bugtracker](https://github.com/nbs-system/snuffleupagus/issues).

It's fun to note that the project gained something like 50 [stars](
https://github.com/nbs-system/snuffleupagus/stargazers ) on Github in less than
2 days, because [we implemented]( https://twitter.com/sp_php/status/1035106422541955072 )
a [feature]( https://github.com/nbs-system/snuffleupagus/issues/47 )
asked by [Scott](https://github.com/paragonie-scott) almost one year ago, and
apparently, he and some of his twitter followers are kind of famous in PHP's
little world. Maybe we'll soon see a sudden rise in the number of our users.

While this release has been mainly done by [caillou](https://github.com/xXx-caillou-xXx)
and me (mostly *caillou* to be honest), we had several external contributors,
who opened issue, are trying to Snuffleupagus on significant scales, submitted
patches, tested it on various platforms and configurations, questioned our
assumptions, … it's nice to see that people aren't just users, but are eager
to help the project move forward. Hurray for Free software!

# Changelog

## New features

- While it's [not possible to do it](https://bugs.php.net/bug.php?id=50715) in PHP7+ vanilla,
  it's now possible to whitelist [stream wrappers](https://secure.php.net/manual/en/intro.stream.php)
	in Snuffleupagus!
- Turning off certificate verification is a common development practise,
  and forgetting to turn it back on is equally common. This is why
	we added a couple of lines to our
	[default configuration]( https://github.com/nbs-system/snuffleupagus/blob/master/config/default.rules)
	to prevent PHP code from ever turning verification off.
- Snuffleupagus is now using php's internal logging functions (instead of
	outputing everything directly into the syslog), allowing administrators to
	tune precisely how many verbosity they want, and where should the logs go.

## Improvements

- It's now possible to completely forbid
  [type-juggling]( https://php.net/manual/en/language.types.type-juggling.php ),
	even in functions like [`in_array`](https://secure.php.net/manual/en/function.in-array.php),
	[`array_search`](https://secure.php.net/manual/en/function.array-search.php) or
	[`array_keys`](https://secure.php.net/manual/en/function.array-keys.php).
- More and more people are using Snuffleupagus, so we added some new entries
  to our [propaganda page](https://snuffleupagus.readthedocs.io/papers.html).
- It's now possible to patch user-defined functions on their return value.
- Snuffleupagus won't start with an invalid config anymore,
  except if the `sp.allow_broken_configuration` parameter is set.
- Significant code simplification for cookies handling thanks
  to [Remi Collet](http://famillecollet.com )

## Bug fixes

- Missing documentation has been added, especially regarding *new* features
- The `make install` has been fixed.
- Almost all the compilation warnings have been fixed.
- Various typos in comments and in the documentation have been corrected
- Snuffleupags is now working on systems without [glibc](https://www.gnu.org/software/libc/),
  like [Alpine Linux](https://www.alpinelinux.org/) with [musl](https://www.musl-libc.org/),
	thanks to [Antoine Tenart](https://ack.tf).

As usual, if you want to help, we have some [low hanging fruits](
https://github.com/nbs-system/snuffleupagus/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22
) ♥

See you in your PHP stack!
