This file lists major, incompatible or otherwise important changes, you should look at it after every update.

NEXT

3.5.0 2020-10-07
 - API 2.2.0: Add `minimum-id-length` post parameter to
   `file/create_multipaste` and `file/upload` endpoints

3.4.5 2020-06-12
 - Fix image orientation/rotation when viewing images with the
   colorbox/lightbox in Firefox 76/Chromium 83.

3.4.4 2020-04-19
 - Log PublicApiException to error log
 - Reclassify various user input/insufficient permission exceptions

3.4.3 2019-12-07
 - PHP 7.4 compatibility fixes

3.4.2 2019-12-06
 - PHP 7.4 compatibility fixes

3.4.1 2019-09-27
 - Update CodeIgniter to 3.1.11,
   https://codeigniter.com/userguide3/changelog.html#version-3-1-11
 - Remove (broken) thumbnails for PDF files from upload_history_thumbnails page
 - Update composer files

3.4.0 2019-05-21
 - Allow data: URLs in Content-Security-Policy header for images and fonts

3.3.2 2019-05-15
 - Fix compatability with Pygments 2.4.0

3.3.1 2019-01-28
 - Fix CSRF issue breaking multipaste creation page
 - Update codeigniter to 3.1.10
 - Remove imagemagick PDF thumbnail support due to Arch Linux disabling it in
   imagemagick due to repeated security concerns.

3.3.0 2018-09-19
 - LDAP: Allow optional binding/authentication
 - LDAP: Allow optional filtering of allowed users
 - Various Dockerfile fixes to make it work again
 - Document finfo dependency

3.2.0 2018-07-04
 - Add `php index.php user delete_user` command for admin user deletion
 - Document add_user admin command
 - Update codeigniter to 3.1.9
 - Document mbstring dependency

3.1.1 2018-06-01
 - Fix call to undefined method clean_multipaste_tarballs in cronjob

3.1.0 2018-06-01
 - Update asciinema player to support new cast format
 - Allow users to delete invitation keys
 - Add support to remove database entries without files to `php index.php file clean_stale_files`

3.0.3 2018-03-23
 - Update codeiginiter to 3.1.8

3.0.2 2018-02-06
 - Ensure newly uploaded files do not exist before adding them to the DB
 - Update file modification time instead of overwriting it with it's own data
   when a file is uploaded multiple times
 - Minor changes:
   + Support values that are not multiples of one day for upload_max_age
   + Add config settings for testsuite to example configs
   + Include most php extension dependencies in composer.json
   + Use dedicated, temporary upload directory for testsuite

3.0.1 2017-12-02
 - Document different database settings for postgres in example config

3.0.0 2017-12-02

 - This version ensures PHP 7.2 support by updating the underlying framework

 - INCOMPATIBLE: You need to perform the following actions for this update:
   - Changes in application/config/database.php
     + Change "$active_record = TRUE" to "$query_builder = TRUE"
     + Change the pconnect setting to FALSE
	 + Change the stricton setting to TRUE
	 + If you use mysql: (NOT for postgres installations)
		 MYSQL Change the char_set setting to "utf8mb4"
		 MYSQL Change the dbcollat setting to "utf8mb4_bin"
   - Changes in application/config/config-local.php
	 + Set base_url to your domain and, if used, installation directory.
	 Example: $config['base_url'] = "https://paste.xinu.at/"

2.1.3 2017-07-04
 - API 2.1.1: Fix incorrect types of empty objects returned by file/history and file/delete

2.1.2 2017-06-17
 - Fix broken lineendings when rendering ascii colors

2.1.1 2017-05-22
 - Bugfixes

2.1.0 2017-05-14
 - Autoformat single-line JSON file when rendering
 - Improved error checking

2.0.0 2017-03-03
 - INCOMPATIBLE: Remove API v1 support
 - INCOMPATIBLE: Remove plain text API
 - Misc bug fixes and code improvements

1.1.1 2016-11-05
 - Fix bug in install-git-hooks.sh

1.1.0 2016-11-05
 - Add support for creating multipastes via the web interface
 - Misc bug fixes

1.0.0 2016-09-19
 - Code refactoring and various small bugfixes

2016-08-23 DEPRECATION: The old plain text API used by fb-client <2.0 is now
           deprecated. A warning will be shown for every file uploaded via
           the old API.
2016-08-23 IMPORTANT: Fix an issue with git hooks not working when the installation is
           moved. install-git-hooks.sh now creates relative symlinks. If you have moved
           your installation and `git pull` does not display the content of the NEWS file,
           you have to run `scripts/install-git-hooks.sh` manually once. Working
           installations are upgraded automatically.
2016-08-23 NEW DEPENDENCY: composer. Currently only used for the test suite, but it will
           likely be used more widely in the future.
2016-08-23 Allow users to delete their own account via a link on the profile page.
2016-08-23 Add code coverage output to test suite and lots of new tests.

2016-07-21 Add asciinema support for files called *.asciinema.json

2016-07-13 Fix incorrect content in clipboard when copying paste content from
           the HTML render with firefox
2016-07-13 Add asciinema support for files called asciinema.json

2016-07-10 API: Fix error when trying to use v2.1 saying that that version is
           not supported even though it is
2016-07-10 Add docker-compose file to easily spin up a demo instance
2016-07-10 Update to current Bootstrap CSS framework version

2016-06-16 Automatically update submodules in post-merge hook

2016-06-16 Replace qrencode and markdown with PHP libraries (managed via git submodules)
2016-06-16 Include all documentation from the wiki in ./doc

2016-06-05 PHP COMPATIBILITY NOTE: This software now requires PHP >= 5.5
2016-06-05 Switch to PHP's password_hash function. Allow changing password
           hashing settings (see config.php)
2016-05-05 Add Dockerfile

2015-10-06 Postgres support has been updated and everything should work now.
2015-10-06 API 2.1: Add thumbnail link to file/history

2015-09-18 API v2.0: Add and remove some information in from file/history
           API v1 is hereby deprecated and will be removed in a future update
2015-09-18 API v1.4: Add more information to file/get_config
2015-09-18 Add robots.txt to './public_html'. It got lost during the move to the subdir.

2015-07-18 Public files moved to public_html. Old setups will continue to work
           though it is encouraged to change the document root of the web server
           to ./public_html.
2015-07-18 Users can now change their account's email address if the `db` user
           backend is used.

2015-05-21 Restructure file storage to prevent issues with different
           files that have the same md5 hash. This also needs a new munin
           plugin if used which can be found in ./extras/munin/.
2015-05-21 Testsuite now supports running in parallel to normal operation
           although doing that is not suggested on production systems.
           This requires changes to ./application/config/database.php, look
           at the example file if you use the testsuite. Also note that the
           arguments accepted by ./run-tests.sh are now passed to prove and
           testing against a local web server is no longer supported.

2015-05-05 JS code has been refactored a lot and can now also be minified
2015-05-05 IMPORTANT:
           Run `./scripts/install-git-hooks.sh` to set up automatic
           updates after merges (git pull). Currently the hook updates the
           database and minified js file if necessary.
           Also run `./git-hooks/post-merge` manually once for the initial update.

           Future updates will rely on you having done this and may not work
           correctly if the hook is not executed.

           The hook will also output change to this NEWS file for convenience.

2015-04-09 Improve performance by caching more.  If you have not yet set
           cache_backend in config-local.php now is the time.  Look in
           config.php for details.
2015-04-09 Get supported mimetypes from pygments itself

2015-03-25 API v1.2: add user/delete_apikey endpoint
2015-03-08 API v1.1: return full URL in api/file/create_multipaste
2015-03-08 Rework file/cron and mfile->valid_id
           This pulls in mockery for testing, make sure you clone submodules.
2015-03-02 Add imagemagick support (needs convert executable in PATH)
2015-03-02 Clarify comment for upload_max_age (you should set this to 0 if you
           want to keep files forever and you should run the cronjob!)
2015-02-14 JSON API + rather extensive refactoring
2014-11-02 Multipastes can now be downloaded as tarballs. The tarballs are
           cached and you have to run `php index.php file cron` to clean them up. Calling
           it more often than once a day is recommended (the example changed to every ten
           minutes). Also note that the default maximum tarball size is rather low (50MiB),
           you might want to increase it. Also make sure the phar.so extension is loaded..
2014-10-29 The sender for emails now has to be configured (config key is "email_from")
2014-10-19 Postgresl support
2014-09-20 All PHP errors are now converted to exceptions and execution
           terminates if they are not caught. This also works properly
           with display_errors Off/stderr.
2014-08-29 Multipaste support
2014-08-29 Database migrations are no longer done automatically. You now have to run
           `php index.php tools update_database`
2013-09-25 New download driver allowing to switch between php echoing chunks
           (old behaviour and default) and X-Sendfile (635b0717931df907ee8015a42ad0ed1fcdf967c4)
2013-09-25 Switch to bootstrap 3 (9538bea0908c8a3758b41967d977455af731c344)
2013-08-15 Use CI's caching class. The default disables caching, adjust the config (cache_backend) if you want it back.
2013-08-14 Use python-ansi2html instead of HTML::FromANSI