Files
2019-12-18 22:51:28 -04:00

272 lines
7.1 KiB
Plaintext

Version 3.3.6
=============
Released: December XX, 2019
Changes
-------
Compressed files
^^^^^^^^^^^^^^^^
Zip files only support UTF-8 and CP437 encoding for filenames. This is not
strongly enforce and some software creates zip files with other text
encoding. The ZipArchive class was updated to work with badly encoded
filenames instead of raising an error.
Converter
^^^^^^^^^
The page count code was updated to work with more versions of PDF files.
A Python 3 incompatibility was also fixed.
Documents
^^^^^^^^^
The PDF orientation detection was fixed and updated to work with the new
converter layer system.
Redis
^^^^^
The Redis lock backend initialization was updated to allow it to also work
with Redis versions older than 5.0.
Security
^^^^^^^^
A fix for a cross site scripting issues was removed by accident during a
version merge at some unknown time. The fix was reapplied and more robust
tests using Selenium added to avoid further regressions.
Settings
^^^^^^^^
FreeBSD is now also detected and the paths of binaries adjusted for easier
installation.
Sources
^^^^^^^
A issue that left behind periodic task entries for watch folders after
deleting a document type associated with them was fixed.
Transaction handling was added to the interval sources base class delete
and save methods. This increases protection against data loss on database
failure.
User interface
^^^^^^^^^^^^^^
The last update for the user interface planned for series 3.3 is included.
This update makes the list toolbar "stick" to the top of the view when
scrolling. This is the new toolbar that encloses the multi-item action menu
and the pagination controls.
The usage of the incorrect word "overrided" was updated to "overridden".
The address used to check for new versions was updated to the new
Python Package Index address. This avoids SSL certificate errors when the old
certificate is reused.
Removals
--------
- None
Upgrading process
-----------------
#. Stop supervisord::
sudo systemctl stop supervisor
Upgrading from Mayan EDMS 3.2.x
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
#. Update the Redis configuration:
Configure Redis to discard data when it runs out of memory, not save its
database, and only keep 2 database:
.. code-block:: bash
sudo echo "maxmemory-policy allkeys-lru" >> /etc/redis/redis.conf
sudo echo "save \"\"" >> /etc/redis/redis.conf
sudo echo "databases 2" >> /etc/redis/redis.conf
sudo systemctl restart redis
#. Install the Python 3 development OS package:
.. code-block:: bash
sudo apt-get install python3-dev
#. Update the virtualenv to use Python 3:
.. code-block:: bash
sudo -u mayan virtualenv --clear /opt/mayan-edms -p /usr/bin/python3
#. Create a home directory for the Mayan EDMS system user:
.. code-block:: bash
mkdir /home/mayan
#. Grant ownership to the Mayan EDMS system user:
.. code-block:: bash
chown mayan:mayan /home/mayan
#. Reinstall the Python client for PostgreSQL and Redis:
.. code-block:: bash
sudo -u mayan |MAYAN_PIP_BIN| install --no-use-pep517 psycopg2==|PYTHON_PSYCOPG2_VERSION| redis==|PYTHON_REDIS_VERSION|
.. note::
Platforms with the ARM CPU might also need additional requirements:
.. code-block:: bash
sudo -u mayan |MAYAN_PIP_BIN| install --no-use-pep517 psutil==|PYTHON_PSUTIL_VERSION|
#. Reinstall the Python client for RabbitMQ if you are using RabbitMQ as a broker:
.. code-block:: bash
sudo -u mayan |MAYAN_PIP_BIN| install --no-use-pep517 amqp==|PYTHON_AMQP_VERSION|
Upgrade steps from any previous version of Mayan EDMS
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
#. Remove deprecated requirements:
.. code-block:: bash
sudo -u mayan curl |SOURCE_CODE_REPOSITORY|raw/master/removals.txt -o /tmp/removals.txt \
&& sudo -u mayan |MAYAN_PIP_BIN| uninstall -y -r /tmp/removals.txt
#. Update the Mayan EDMS Python package:
.. code-block:: bash
sudo -u mayan |MAYAN_PIP_BIN| install mayan-edms==3.3.6
the requirements will also be updated automatically.
#. Make a backup of your supervisord file:
.. code-block:: bash
sudo cp |MAYAN_SUPERVISOR_CONF| |MAYAN_SUPERVISOR_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:
.. code-block:: bash
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=|MAYAN_MEDIA_ROOT| \
|MAYAN_BIN| platformtemplate supervisord | sudo sh -c "cat > |MAYAN_SUPERVISOR_CONF|"
or:
.. code-block:: bash
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=|MAYAN_MEDIA_ROOT| \
|MAYAN_BIN| platformtemplate supervisord | sudo sh -c "cat > |MAYAN_SUPERVISOR_CONF|"
#. Edit the supervisord configuration file and update any setting specific to your installation:
.. code-block:: bash
sudo vi |MAYAN_SUPERVISOR_CONF|
#. Migrate existing database schema with:
.. code-block:: bash
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=|MAYAN_MEDIA_ROOT| \
|MAYAN_BIN| performupgrade
or:
.. code-block:: bash
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=|MAYAN_MEDIA_ROOT| \
|MAYAN_BIN| performupgrade
#. Add new static media:
.. code-block:: bash
sudo -u mayan MAYAN_MEDIA_ROOT=|MAYAN_MEDIA_ROOT| \
|MAYAN_BIN| preparestatic --noinput
#. Start supervisord:
.. code-block:: bash
sudo systemctl start supervisor
The upgrade procedure is now complete.
Backward incompatible changes
-----------------------------
- None
Bugs fixed or issues closed
---------------------------
- :gitlab-issue:`494` DOM based Cross Site Scripting
- :gitlab-issue:`651` Uploading compressed documents fail when compressed file contains special character
- :gitlab-issue:`709` Redis lock manager backend - exception on connect
- :gitlab-issue:`713` Unexpected exception while trying to create version for new document - 'Layer' object has no attribute 'add_to_object'
- :gitlab-issue:`715` Deleting a document type removes a watch folder associated with it without removing the check interval
- :gitlab-issue:`717` Check For Updates Failure
- :gitlab-merge:`63` Improve the executables paths on FreeBSD/OpenBSD.
- :gitlab-merge:`64` Fix page count on some PDF files, and fix a Python 3 incompatibility.
- :gitlab-merge:`65` Settings: Display overridden instead of overrided
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/