Releases: the-paperless-project/paperless
2.7.0
- @syntonym submitted a pull request to catch IMAP connection errors #475.
- @sbrunner added
psycopg2
to the Pipfile #489. He also fixed a syntax error indocker-compose.yml.example
#488 and added DjangoQL, which allows a litany of handy search functionality #492. - @CkuT and @MasterofJOKers hacked out a simple, but super-helpful optimisation to how the thumbnails are served up, improving performance considerably #481.
- @tsia added a few fields to the tags REST API. #483.
- @cribbstechnologies improved the documentation to help people using Paperless over NFS #484.
- @bmsleight updated the documentation to include a note for setting the
DEBUG
value. Thepaperless.conf.example
file was also updated to mirror the project defaults.
2.6.0
- Allow an infinite number of logs to be deleted. Thanks to @Ulli2k for noting the problem in #433.
- Fixed the
RecentCorrespondentsFilter
correspondents filter that was added in 2.4 to play nice with the defaults. Thanks to @tsia and @Sblop who pointed this out. #423. - Updated dependencies to include (among other things) a security patch to requests.
- Fix text in sample data for tests so that the language guesser stops thinking that everything is in Catalan because we had Lorem ipsum in there.
- Tweaked the gunicorn sample command to use filesystem paths instead of Python paths. #441
- Added pretty colour boxes next to the hex values in the Tags section, thanks to a pull request from @jat255 #442.
- Added a
.editorconfig
file to better specify coding style. - @jat255 also added some logic to tie Paperless' date guessing logic into how it parses file names on import. #440
2.5.0
- New dependency: Paperless now optimises thumbnail generation with optipng, so you'll need to install that somewhere in your PATH or declare its location in
PAPERLESS_OPTIPNG_BINARY
. The Docker image has already been updated on the Docker Hub, so you just need to pull the latest one from there if you're a Docker user. - "Login free" instances of Paperless were breaking whenever you tried to edit objects in the admin: adding/deleting tags or correspondents, or even fixing spelling. This was due to the "user hack" we were applying to sessions that weren't using a login, as that hack user didn't have a valid id. The fix was to attribute the first user id in the system to this hack user. #394
- A problem in how we handle slug values on Tags and Correspondents required a few changes to how we handle this field #393:
- Slugs are no longer editable. They're derived from the name of the tag or correspondent at save time, so if you wanna change the slug, you have to change the name, and even then you're restricted to the rules of the
slugify()
function. The slug value is still visible in the admin though. - I've added a migration to go over all existing tags & correspondents and rewrite the
.slug
values to ones conforming to theslugify()
rules. - The consumption process now uses the same rules as
.save()
in determining a slug and using that to check for an existing tag/correspondent.
- Slugs are no longer editable. They're derived from the name of the tag or correspondent at save time, so if you wanna change the slug, you have to change the name, and even then you're restricted to the rules of the
- An annoying bug in the date capture code was causing some bogus dates to be attached to documents, which in turn busted the UI. Thanks to @pengc99 for reporting this. #414
- A bug in the Dockerfile meant that Tesseract language files weren't being installed correctly. @euri10 was quick to provide a fix: #406, #413.
- Document consumption is now wrapped in a transaction as per an old ticket #262.
- The
get_date()
functionality of the parsers has been consolidated onto theDocumentParser
class since much of that code was redundant anyway.
2.4.0
- A new set of actions are now available thanks to @jonaswinkler's very first pull request! You can now do nifty things like tag documents in bulk, or set correspondents in bulk. #405
- The import/export system is now a little smarter. By default, documents are tagged as
unencrypted
, since exports are by their nature unencrypted. It's now in the import step that we decide the storage type. This allows you to export from an encrypted system and import into an unencrypted one, or vice-versa. - The migration history has been slightly modified to accommodate PostgreSQL users. Additionally, you can now tell paperless to use PostgreSQL simply by declaring
PAPERLESS_DBUSER
in your environment. This will attempt to connect to your Postgres database without a password unless you also setPAPERLESS_DBPASS
. - A bug was found in the REST API filter system that was the result of an update of django-filter some time ago. This has now been patched in #412. Thanks to @thepill for spotting it!
2.3.0
- Support for consuming plain text & markdown documents was added by @jat255! This was a long-requested feature, and it's addition is likely to be greatly appreciated by the community: #395. Thanks also to @ddddavidmartin for his assistance on the issue.
- @dubit0 found & fixed a bug that prevented management commands from running before we had an operational database: #396.
@jat255 added a simple update to the thumbnail generation process to improve performance: #399. - As his last bit of effort on this release, @jat255 also added some code to allow you to view the documents inline rather than download them as an attachment. #400
- Finally, @ahyear found a slip in the Docker documentation and patched it. #401.
2.2.1
2.2.0
- Thanks to @dadosch, @wmader, and @brookst, this is the first version of Paperless that supports Django 2.0! As a result of their hard work, you can now also run Paperless on Python 3.7 as well: #386 & #390.
- @sbrunner added a few lines of code that made tagging interface a lot easier on those of us with lots of different tags: #391.
- @kiliankoe noticed a bug in how we capture & automatically create tags, so that's fixed now too: #384.
2.1.0
-
@elohmeier added three simple features that make Paperless a lot more user (and developer) friendly:
-
You now also have the ability to customise the interface to your heart's content by creating a file called
overrides.css
and/oroverrides.js
in the root of your media directory. Thanks to @SummittDweller for this idea: #371.
2.0.0
This is a big release as we’ve changed a core-functionality of Paperless: we no longer encrypt files with GPG by default.
The reasons for this are many, but it boils down to that the encryption wasn’t really all that useful, as files on-disk were still accessible so long as you had the key, and the key was most typically stored in the config file. In other words, your files are only as safe as the paperless
user is. In addition to that, the contents of the documents were never encrypted, so important numbers etc. were always accessible simply by querying the database. Still, it was better than nothing, but the consensus from users appears to be that it was more an annoyance than anything else, so this feature is now turned off unless you explicitly set a passphrase in your config file.
Migrating from 1.x
Encryption isn’t gone, it’s just off for new users. So long as you have PAPERLESS_PASSPHRASE
set in your config or your environment, Paperless should continue to operate as it always has. If however, you want to drop encryption too, you only need to do two things:
- Run
./manage.py migrate && ./manage.py change_storage_type gpg unencrypted
. This will go through your entire database and Decrypt All The Things. - Remove
PAPERLESS_PASSPHRASE
from yourpaperless.conf
file, or simply stop declaring it in your environment.
Special thanks to @erikarvstedt, @matthewmoto, and @mcronce who did the bulk of the work on this big change.
1.3.0
- You can now run Paperless without a login, though you'll still have to create at least one user. This is thanks to a pull-request from @matthewmoto: #295. Note that logins are still required by default, and that you need to disable them by setting
PAPERLESS_DISABLE_LOGIN="true"
in your environment or in/etc/paperless.conf
. - Fix for #303 where sketchily-formatted documents could cause the consumer to break and insert half-records into the database breaking all sorts of things. We now capture the return codes of both
convert
andunpaper
and fail-out nicely. - Fix for additional date types thanks to input from @isaacsando and code from @BastianPoe (#301).
- Fix for running migrations in the Docker container (#299). Thanks to @TeraHz for the fix (#300) and to @pitkley for the review.
- Fix for Docker cases where the issuing user is not UID 1000. This was a collaborative fix between @ChromoX and @pitkley in #311 and #312 to fix #306.
- Patch the historical migrations to support MySQL's um, interesting way of handing indexes (#308). Thanks to @skuzzle for reporting the problem and helping me find where to fix it.