August 26, 2014
After a year of low activity the focus of this release was to get the code updated to work with the most recent version of Django and the most recent version of the dependencies Mayan EDMS uses. The goal was to have a strong and stable 1.0 release so reduction, trimming, warning reductions and bug fixes were the primary focus of this cycle. Because of this not much emphasis was placed on adding new features, or at least new features that could have the potential to break things.
The growth and reach of the project has necessitaded for a while the move of the project to its own organization in Github. This move has finally been done, the new URL of the project is: https://github.com/mayan-edms/mayan-edms
This release updates the required version of Django to 1.6, bringing with it not only new features, but also a lot of security updates, a new project directory structure and new deployment methods.
The translation for all languages were synchronized to the latest transifex project sources. Translation completion as reported by Transifex:
English - 100%
Spanish - 100%
Arabic - 96%
Bosnian - 96%
French - 96%
German - 96%
Romanian - 96%
Russian - 96%
Italian - 77%
Portuguese - 76%
Dutch - 68%
Portugese (Brazil) - 67%
Bulgarian - 62%
Danish - 42%
Vietnamese - 40%
Polish - 39%
Hungarian - 27%
Indonesian - 18%
Slovenian - 17%
Persian - 6%
Croatian - 3%
Turkish - 3%
There were some convenience properties created to allow quick access to a document’s version and pages. These custom properties were removed and an official method to access these properties as provided by Django is now used.
Source code improvements¶
A circular import of metadata and document_index apps code from the documents app
was removed. Document index updates are now handled via signals, not called
directly as before. Hundreds of PEP8 style fixes, unused import removals,
unused variables removals and removal of remarked or unused code. Removal of the
DEVELOPMENT flag (was used to trigger static media serving during development),
this is now handled by the
DEBUG flag. The
DEBUG flag is now set to
default as per Django 1.6 defaults. Removed usage of Django’s JSON libraries
using Python’s JSON library instead. Update of time and date use to use Django’s
new timezone aware data and time handling. Removal of custom code in favor of using
modules provided by Django or by existing 3rd party libraries. Unification of code
used for equal or similar purpose in various modules.
Removal of included 3rd party modules¶
One last 3rd party module was included with the source code of Mayan EDMS. This module is now available on PyPI and fetched during the installation instead of being included.
Automatic testing and code coverage check¶
Some initial tests were added, which will help with the detection of regressions or bugs when adding new features. More tests are needed, but the initial work has being started.
Update of required modules and libraries versions¶
Many of the required modules and libraries have been updated to a more recent version if not to their most recent released version.
Database connection leaks¶
Stale database connection being left open by scheduler tasks are now explictly closed. This avoids consumption of the pool of database connections, increases stability and reduces memory usage.
Deletion of detached signatures¶
Detached signatures can now be deleted, if accidentally added to the wrong document.
Removal of fabric based installations¶
These files are now part of their own project and located at https://github.com/mayan-edms/mayan-fabric
Pluggable OCR backends¶
A commonly requested feature, it is now possible to write backends drivers to do document OCR using software or services other than Tesseract.
OCR queue state is now reset when reloading Mayan EMDS, avoiding the OCR queue
to remain locked. unpaper binary is now an optional pre OCR requirement, the OCR
queue will now continue working is
unpaper is not installed. Addition of post
OCR processing support for French and German.
Mayan EDMS is now licensed under the Apache 2.0 license. This means many things but the main change is that inclusion of Mayan EDMS into commercial products is now explicitly allowed.
Mayan EDMS has been packaged and submitted to the PyPI Python Package Index making it even easier to install and use.
New REST API¶
This release feature a completely new REST API and automatic API documentation. This new API is also used internally by Mayan EDMS itself.
More office document types are now recognized and supported. More file types are now supported as text files and properly previewed and parsed. Removal of the legacy runserver.sh and runserver_plus.sh scripts. New document preview generation and display pipeline, faster, simpler. Inclusion of a proof of concept compressed storage backend.
Upgrading from a previous version¶
If you installed Mayan EDMS by cloning the Git repository issue the commands:
$ git reset --hard HEAD $ git pull
otherwise download the compressed archived and uncompress it overriding the existing installation.
Next upgrade/add the new requirements:
$ pip install --upgrade -r requirements.txt
Migrate existing database schema with:
$ mayan-edms.py migrate acls 0001 --fake $ mayan-edms.py migrate taggit 0001 --fake $ mayan-edms.py migrate ocr 0001 --fake $ mayan-edms.py migrate
Add new static media:
$ mayan-edms.py collectstatic --noinput
The upgrade procedure is now complete.
Backward incompatible changes¶
If using the SQLite3 database option, rename the file named mayan.sqlite file to db.sqlite3 and move it to the new media provided folder.
Also move to the media folder any gpg_home, document_storage and image_cache folders from your previous installation.
Bugs fixed or issues closed¶