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
GitLab issue #659 GitLab config: ‘.gitlab-ci.yml’ does not specify the exact version of all dependencies
GitLab issue #676 Access fuse mounted index via samba
GitLab issue #671 [Docker] MAYAN_GUNICORN_TIMEOUT timeout not passed to worker
GitLab issue #677 Django start before PostgreSQL is up.
Forum topic #1347 Workflow state action: perform a POST request