Version 4.0.22

Released: April 22, 2022

Status: End of life

Changes

This release consists mostly of fixes and minor improvements backported from version 4.1, 4.2, and 4.3dev.

Appearance

The markup of the confirmation form was cleanup removing redundant close button and sorting the element attributes.

A redundant modal close button was also removed.

Dependencies

Django was updated from version 2.2.24 to 2.2.28.

Docker

A restart policy was added to the Traefik container definition.

Guidance comments were added to the Docker Compose file service ports regarding Traefik usage.

Documents

Removed a duplicated Document.get_label method.

Fixed an incorrect document file signature serializer label.

Document indexing

Avoid displaying API URL links to indexing instance and template parents that are also root nodes as these are not accessible.

Document signatures

The signed document file is now used when the file download is requested and when calculating the signed document file checksum.

The signature view permission label was updated from “View details of document signature” to “View document signatures”.

The text “signed” is now appended to the label of a signed document file instead of using the temporary filename used during signing.

File caching

Removed repeated partition file close call methods.

Messaging

Unread message count badge now filter the number of messages by read permission.

Metadata

Updated document metadata model field label from “Metadata type value” to “Metadata value”.

Improved metadata validation error message and added more verbosity.

Settings

When failing to access the configuration file, the path is printed for additional debug help.

Workflows

Exposed the workflow template auto_launch field via the REST API.

Other

  • Remove usage of flat values list in document checkout manager.

  • Remove usage of flat values_list queryset in metadata managers module.

  • Ensure the object copy permission is required for the object copy link.

  • Fix search proxies method decorator.

  • Reorganize converter office MIME type list.

Removals

  • None

Upgrade process

Upgrading from Mayan EDMS 3.5.x

Direct deployment

  1. Stop supervisord:

    sudo systemctl stop supervisor
    
  2. Make a backup of your supervisord file:

    sudo cp /etc/supervisor/conf.d/mayan-edms.conf /etc/supervisor/conf.d/mayan-edms.conf.bck
    
  3. Make a backup of your database:

    Use the respective backup command for the database:

  4. Upgrade to the latest pip version:

    sudo --user=mayan /opt/mayan-edms/bin/pip install --upgrade pip
    
  5. Remove deprecated requirements:

    sudo --user=mayan curl https://gitlab.com/mayan-edms/mayan-edms/raw/master/removals.txt --output /tmp/removals.txt \
    && sudo --user=mayan /opt/mayan-edms/bin/pip uninstall --requirement /tmp/removals.txt --yes
    
  6. Update the Mayan EDMS Python package:

    sudo --user=mayan /opt/mayan-edms/bin/pip install mayan-edms==4.2.5
    

    the requirements will also be updated automatically.

  7. Update the Redis configuration to serve at least 3 databases:

    Replace:

    databases ...
    

    with:

    databases 3
    
  8. Restart Redis for the changes to take effect:

    sudo systemctl restart redis
    
  9. Edit the config file at /opt/mayan-edms/media/config.yml:

    Replace:

    LOCK_MANAGER_BACKEND: ...
    LOCK_MANAGER_BACKEND_ARGUMENTS: ...
    

    with:

    LOCK_MANAGER_BACKEND: mayan.apps.lock_manager.backends.redis_lock.RedisLock
    LOCK_MANAGER_BACKEND_ARGUMENTS: {'redis_url':'redis://:mayanredispassword@<IP address of Redis server>:6379/2'}
    
  10. Update the supervisord configuration file. Replace the environment variables values shown here with your respective settings. This step will refresh the supervisord configuration file with the new queues and the latest recommended layout:

    sudo --user=mayan 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"
    
  11. Edit the supervisord configuration file and update any setting specific to your installation:

    sudo vi /etc/supervisor/conf.d/mayan-edms.conf
    
  12. Migrate existing database schema and static media files with:

    sudo --user=mayan MAYAN_MEDIA_ROOT=/opt/mayan-edms/media/ \
    /opt/mayan-edms/bin/mayan-edms.py performupgrade
    
  13. Start supervisord:

    sudo systemctl start supervisor
    
  14. Clear the browser cache to avoid loading old web assets.

The upgrade procedure is now complete.

Docker Compose

Check the Docker upgrading chapter for the complete upgrade process.

Troubleshooting

If you observe the errors:

  • mayan.apps.file_caching.models.CachePartitionFile.DoesNotExist: CachePartitionFile matching query does not exist.

or:

  • FileNotFoundError: [Errno 2] No such file or directory: '/var/lib/mayan/document_file_storage/...

follow the solution outlined in the troubleshooting section: After upgrade to version 4.0

Backward incompatible changes

  • None

Issues closed

  • None