[Mayan EDMS: 2491] Version 3.0 release candidate 1 available

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

[Mayan EDMS: 2491] Version 3.0 release candidate 1 available

Version 3.0 rc1 is now available for download from the main repository at GitLab https://gitlab.com/mayan-edms/mayan-edms and as a Docker image from the GitLab Docker registry using:

    docker pull registry.gitlab.com/mayan-edms/mayan-edms:versions-next
    docker run --name mayan-30rc1 -p 8000:8000 registry.gitlab.com/mayan-edms/mayan-edms:versions-next

This will launch a Mayan version 3.0rc1 container on port 8000 using SQLite for testing.

The summary of changes is as follows:

The error logger class was changed to RotatingFileHandle to avoid an indefinitely growing log file. If the log file reaches 1MB, it is archived and a new empty log file is started. The last 3 archived copies as kept.

The built in error logger now default to being disabled by default. On platforms like Docker it add little value as this platform provides its own logging capabilities. This built-on error logger is useful for users wanting to debug issues on installation based on platforms other than Docker.

In the past, Mayan performed an automatic embedded signature verification check during the perform upgrade command. On installations using slow storage devices or services (example: S3 object storage) this would cause the performupgrade command to take a long time. The Docker image stores the last known state and is able to perform an initial setup when first started and an upgrade on subsequent restarts. On existing installations doing a restart, this would cause the image to take a long time starting and would give the appearance of being frozen when in fact it is doing a GPG embedded signature check on all the documents files. Since there is already an embedded signature check via the "Tools" menu this removal is of little consequence. The embedded signature check found in the "Tools" menu runs as a background task and doesn't interrupt usage of the system like the performupgrade command does.

The DOCUMENTS_LANGUAGE_CHOICES settings option has been replaced with the DOCUMENTS_LANGUAGE_CODES settings option. The difference is that the DOCUMENTS_LANGUAGE_CHOICES setting would require the languge code and the languge name to be enterred. Example:

    DOCUMENTS_LANGUAGE_CHOICES = (('eng', 'English'), ('spa', 'Spanish'))

With the DOCUMENTS_LANGUAGE_CODES setting, only the languges' ISO639-3 codes are necessary. Example:

    DOCUMENTS_LANGUAGE_CODES = ('eng', spa')

The default list of languages has been reduced from 7800 to the top 100 spoken
  languages and related (https://en.wikipedia.org/wiki/List_of_languages_by_number_of_native_speakers)
This doesn't mean that Mayan will not work with the languages removed from the default list. It just means that the list shown the document language will now display a default like of about 100 instead of the total 7800 languages, slowing down considerably the autocomplete combobox. Any combination of default languages can be added using the DOCUMENTS_LANGUAGE_CODES settings option of the MAYAN_DOCUMENTS_LANGUAGE_CODES environment variable.

All the installation artifacts, meaning all user data are now kept separate from the installed code. For continuity with Django's vocabulary it is called the media folder. The media folder's location can be specified with the MEDIA_ROOT settings option or the MAYAN_MEDIA_ROOT environment variable. This allows users to specify any location in the file system tree as their media folder. By default the media folder will be located  one level below the Mayan main installation folder.

The user settings files will now also reside in the media folder under the mayan_settings sub folder. This allows users to have more than one settings file (previously only local.py was available for customization). To tell Mayan which settings option to import use the DJANGO_SETTINGS_MODULE environment variable or the --settings option. If Mayan was install from the Python package or the MAYAN_SETTINGS_MODULE environment variable if Mayan was install using the Docker image.


    # Settings file create in /opt/mayan-edms/media/mayan_settings/amazon_s3.py
    export DJANGO_SETTINGS_MODULE=mayan_settings/amazon_s3.py
    mayan-edms.py performupgrade

As before any user settings file must import from mayan.settings.production in their first line. Example:

    from mayan.settings.production import *

The continuous integration pipeline has been improved. Now after every Git push the entire test suit is execute against the source code using an SQLite, MySQL 8.0.3 and Postgres 9.5 database backends. If these are successful a Docker image is built from the pushed source code and an additional run of the test suit is perform on a temporary deployment of the Docker image using SQLite. The test suit is composed of 793 tests. Since the test suite is execute 4 times that means that a total of 3,172 tests are executed every time a Git push is performed.

For every positive outcome there is always a downside. The one downside of this is that it now a CI pipeline takes 60 minutes on average to complete. This consumes the monthly CI quota much faster. The current tier provides 2,000 minutes of CI which divided by 60 minutes per pipeline gives a total 33.3 pipelines per month. As the projects picks up speed again after the slow down following hurricane Maria, if more than 33 Git pushes and builds are performed per month, the development process will be modified to restrict push actions. This could cause code changes to be lost and will increase merge conflicts between code for members of the core team and general submissions. In that case, the test suite will be refactored to lower the runtime. This is will be done mocking services without affecting the code coverage. Mocking the OCR and improving the document version tests could save between 10 to 15 minutes per run increasing the total builds to about 40 to 44 per month.

The documentation was reorganized and an entry for each topic is now provided in the sidebar for faster access. The documentation of the Docker image has been added as a chapter of the main documentation.

The advanced deployment instructions where updated and recommend the usage of the /opt/mayan-edms folder as the main installation point instead of /usr/share/mayan-edms 

The MERC draft proposing a method to handle javascript libraries in Mayan has been accepted and assigned the designation MERC-0003. The current list MERCs is now:

0001 Document the MERC process itself
0002 Test writing
0003 Using Javascript libraries

If no major issues are found with this version in a few days a final version 3.0 release will be made. 

Thank you all for helping test this new major version.


You received this message because you are subscribed to the Google Groups "Mayan EDMS" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.