Version 3.3.5
Released: December 13, 2019
Changes
Checkouts
The ID and URL of the checkout model was added the serializer. This adds these two fields to the entries of the checkout list API view. This change makes it easy to determine which checkout resource to delete to check in a document.
Database
The size of several fields was increased. These were: role label field size from 64 to 128 characters, smart link label size from 96 to 128 characters, and the source label field size from 64 to 128 characters.
Migrations were added to all changes and these will me applied automatically during upgrade.
Dependencies
Versions of django-timezone-field and kombu were pinned to specific version known to work correctly. This avoids two installations of Mayan EDMS to end up with different versions of these two libraries.
Downloads
The library Django DownloadView was removed. The code to support all downloads (document, version, keys, signatures) was been implement natively using a modified port of Django 2.2 FileResponse.
Settings
All initial setting migrations have been updated to accept manually migrated settings too.
Templating
The web link template field and the smart links fields were updated to use the new TemplateField form field. This is the same field used in the templating sandbox.
Testing
The process of creating the temporary config file used in setting tests has been unified. All setting tests create the test config file in a predictable way now.
User interface
Some remaining instances of the word “weblink” were renamed to “web link”.
It was a Mayan EDMS anti-pattern to have the resolved web links and smart links show their template edit and delete buttons. This has been rectified in this version.
Missing link icons were added for several apps. Likewise some missing field help texts were also added.
Other
The TemplateField field now shows the available variable in the help text automatically. There is no need to modify the help text anymore.
The method to add the BaseTransformationTypemetaclass metaclass to the BaseTransformation class, has been updated again to make it compatible with Python 2 and Python 3.
Removals
Django download views library.
Upgrading process
Stop supervisord:
sudo systemctl stop supervisor
Upgrading from Mayan EDMS 3.2.x
Install the Python 3 development OS package:
sudo apt-get install python3-dev
Update the virtualenv to use Python 3:
sudo -u mayan virtualenv --clear /opt/mayan-edms -p /usr/bin/python3
Create a home directory for the Mayan EDMS system user:
mkdir /home/mayan
Grant ownership to the Mayan EDMS system user:
chown mayan:mayan /home/mayan
Reinstall the Python client for PostgreSQL and Redis:
sudo -u mayan /opt/mayan-edms/bin/pip install --no-use-pep517 psycopg2==3.2.3 redis==5.2.0
Note
Platforms with the ARM CPU might also need additional requirements:
sudo -u mayan /opt/mayan-edms/bin/pip install --no-use-pep517 psutil==5.8.0
Reinstall the Python client for RabbitMQ if you are using RabbitMQ as a broker:
sudo -u mayan /opt/mayan-edms/bin/pip install --no-use-pep517 amqp==5.3.1
Upgrade steps from any previous version of Mayan EDMS
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
Update the Mayan EDMS Python package:
sudo -u mayan /opt/mayan-edms/bin/pip install mayan-edms==3.3.5
the requirements will also be updated automatically.
Make a backup of your supervisord file:
sudo cp /etc/supervisor/conf.d/mayan-edms.conf /etc/supervisor/conf.d/mayan-edms.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 -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 platformtemplate supervisord | sudo sh -c "cat > /etc/supervisor/conf.d/mayan-edms.conf"
or:
sudo -u mayan MAYAN_DATABASES=\"{'default':{'ENGINE':'django.db.backends.postgresql','NAME':'mayan','PASSWORD':'mayanuserpass','USER':'mayan','HOST':'127.0.0.1'}}\" \ MAYAN_MEDIA_ROOT=/opt/mayan-edms/media/ \ /opt/mayan-edms/bin/mayan-edms.py platformtemplate supervisord | sudo sh -c "cat > /etc/supervisor/conf.d/mayan-edms.conf"
Edit the supervisord configuration file and update any setting specific to your installation:
sudo vi /etc/supervisor/conf.d/mayan-edms.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
or:
sudo -u mayan MAYAN_DATABASES="{'default':{'ENGINE':'django.db.backends.postgresql','NAME':'mayan','PASSWORD':'mayanuserpass','USER':'mayan','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
Start supervisord:
sudo systemctl start supervisor
The upgrade procedure is now complete.
Backward incompatible changes
None
Bugs fixed or issues closed
GitLab issue #698 3.3.3 install - ERROR: django-timezone-field 4.0 has requirement django>=2.2, but you’ll have django 1.11.26 which is incompatible.
GitLab issue #699 3.3.3 - TypeError: can’t pickle memoryview objects