Version 3.2.9

Released: November 3, 2019

Changes

Debugging

The colored log formatter was ported from the versions/next branch. The color of the log output will be determined by the log level.

Extra logging was added to the IMAP source to help with import issues. This relates to GitLab issue #682.

Dependencies

The help message of the --context option of the platformtemplate command was fixed to say “YAML” instead of “JSON”.

The Celery and Django Celery dependencies were moved to the task manager app.

Some dependencies were updated to a new version:

  • Update Django to version 1.11.25.
  • Update PyYAML to version 5.1.2.
  • Update celery to version 3.1.26.post2.
  • Update django-celery to version 3.2.2.
  • Update pathlib2 to version 2.3.5.
  • Update whitenoise to version 4.1.4.
  • Update Pillow to version 6.2.1.

Docker

The Mayan EDMS launcher script at get.mayan-edms.com was updated to allow configuring the wait delay after the PostgreSQL container is launched. The environment variable for this is called DOCKER_POSTGRES_DELAY and defaults to 10 seconds to preserve the existing behavior. This closes GitLab issue #677.

A formatting error was fixed enabling again the use of the MAYAN_GUNICORN_TIMEOUT Docker image setting. Closes GitLab issue #671.

Duplicates

The duplicated document list view logic was improved and will not show documents with trashed duplicates.

Mirroring

Mirrored document entries will now return 1 on their st_nlink attribute, fixing access errors in some operating systems. Fixes GitLab issue #676.

Permissions

Instead of adding check to every API endpoint for authentication, the permission was updated to return False to any permission check for anonymous users. This change centralizes this check in a single place and lowers the probability of error on non authenticated API access.

Settings

To reduce config file incompatibilities between versions, the setting namespaces will now include a version attribute. This attribute is saved along with all the other settings when the config.yml is saved. This version attribute will allow apps to read entries in older formats instead of raising an error.

A new management command was added, this is the savesettings command. This command does the same things as saving a setting from the user interface, it will update the config.yml file or create it, if it doesn’t exists.

Testing

Several improvements to the test system were ported from unreleased branches. All the mocked object were moved to their own module called mocks.py for each respective app.

Test were added to the platform app and improved for the dependencies app.

The mixins PermissionTestCaseMixin and SmartSettingTestCaseMixin were added to better organize cache invalidation of both apps for tests.

User interface

A message is now displayed when testing a mailing profile.

Granting the workflow view permission to at least on workflow will now enable the workflow main menu workflow link.

Other changes

  • Language translations update.
  • Add makefile target to run all translations targets.
  • Add makefile target to launch a production staging Docker image.
  • Backport Docker composer makefile targets.
  • Rename all instances of the IMAP server variable from mailbox to server for clarity.
  • Add book link in the about menu.
  • Add unknown exception handling when checking for the latest version.

Removals

  • None

Upgrading from a previous version

If installed via Python’s PIP

Remove deprecated requirements:

sudo -u mayan curl https://gitlab.com/mayan-edms/mayan-edms/raw/master/removals.txt -o /tmp/removals.txt && sudo -u mayan /opt/mayan-edms/bin/pip uninstall -y -r /tmp/removals.txt

Type in the console:

sudo -u mayan /opt/mayan-edms/bin/pip install mayan-edms==3.2.9

the requirements will also be updated automatically.

Using Git

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.

Remove deprecated requirements:

$ pip uninstall -y -r removals.txt

Next upgrade/add the new requirements:

$ pip install --upgrade -r requirements.txt

Common steps

Perform these steps after updating the code from either step above.

Make a backup of your supervisord file:

sudo cp /etc/supervisor/conf.d/mayan.conf /etc/supervisor/conf.d/mayan.conf.bck

Update the supervisord configuration file. Replace the environment variables values show here with your respective settings. This step will refresh the supervisord configuration file with the new queues and the latest recommended layout:

sudo sh -c "MAYAN_DATABASE_ENGINE=django.db.backends.postgresql MAYAN_DATABASE_NAME=mayan \
MAYAN_DATABASE_PASSWORD=mayanuserpass MAYAN_DATABASE_USER=mayan \
MAYAN_DATABASE_HOST=127.0.0.1 MAYAN_MEDIA_ROOT=/opt/mayan-edms/media \
/opt/mayan-edms/bin/mayan-edms.py platformtemplate supervisord > /etc/supervisor/conf.d/mayan.conf"

Edit the supervisord configuration file and update any setting the template generator missed:

sudo vi /etc/supervisor/conf.d/mayan.conf

Migrate existing database schema with:

sudo -u mayan MAYAN_DATABASE_ENGINE=django.db.backends.postgresql MAYAN_DATABASE_NAME=mayan \
MAYAN_DATABASE_PASSWORD=mayanuserpass MAYAN_DATABASE_USER=mayan \
MAYAN_DATABASE_HOST=127.0.0.1 MAYAN_MEDIA_ROOT=/opt/mayan-edms/media \
/opt/mayan-edms/bin/mayan-edms.py performupgrade

Add new static media:

sudo -u mayan MAYAN_MEDIA_ROOT=/opt/mayan-edms/media \
/opt/mayan-edms/bin/mayan-edms.py preparestatic --noinput

The upgrade procedure is now complete.

Backward incompatible changes

  • None

Bugs fixed or issues closed