diff --git a/HISTORY.rst b/HISTORY.rst index 7b494a2aa9..f6595eb4b2 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -105,7 +105,7 @@ least one workflow. - Add ACL support to smart links. -3.2.9 (2019-XX-XX) +3.2.9 (2019-11-03) ================== - Move IMAPMockServer to its own module. - Display feedback message when testing a mailing profile. @@ -135,17 +135,17 @@ - Fix MAYAN_GUNICORN_TIMEOUT Docker image setting. GitLab issue #671. Thanks to Lennart Sauerbeck (@lennart_s) for the report. - Add makefile target to launch a production staging Docker image. -- Improve duplicated document list view logic to not show +- Improve duplicated document list view logic to not show documents with trashed duplicates. - Backport Docker composer makefile targets. - Add PermissionTestCaseMixin and SmartSettingTestCaseMixin to better organize cache invalidation of both apps for tests. -- Add a version attribute to setting namespace. These are dumped +- Add a version attribute to setting namespace. These are dumped as SMART_SETTINGS_NAMESPACES. - Add savesettings command. - Add extra logging to the IMAP email source. GitLab issue #682. Thanks to Patrick Hütter (@PatrickHuetter) for the report. -- Rename all instances of the IMAP server from mailbox to +- Rename all instances of the IMAP server from mailbox to server for clarity. - Add book link in the about menu. - Add unknown exception handling when checking for the latest diff --git a/docs/chapters/development.rst b/docs/chapters/development.rst index ddca8b1b10..7ef7b76583 100644 --- a/docs/chapters/development.rst +++ b/docs/chapters/development.rst @@ -502,6 +502,7 @@ Release checklist make generate-setup +#. Commit as version bump. #. Build source package and test: :: @@ -529,18 +530,18 @@ Release checklist Release using GitLab CI ----------------------- -#. Switch to the ``releases/all`` branch and merge the latest changes: +#. Delete the corresponding ``releases/`` branch: :: - git checkout releases/all - git merge + git push origin :releases/ -#. Push code to trigger builds: +#. Push the current branch to the corresponding origin ``releases/`` branch: :: - git push + git push origin releases/ -#. Push tag upstream: + +#. Push the new tags: :: git push --tags diff --git a/docs/releases/3.2.9.rst b/docs/releases/3.2.9.rst index 1fc92c6e77..343ea7d804 100644 --- a/docs/releases/3.2.9.rst +++ b/docs/releases/3.2.9.rst @@ -1,25 +1,30 @@ Version 3.2.9 ============= -Released: October XX, 2019 +Released: November 3, 2019 Changes ------- -- Move IMAPMockServer to its own module. -- Display feedback message when testing a mailing profile. -- Add tests to the platform app. -- Fix platformtemplate command --context option help message. -- Language translations update. -- Add target to run all translations targets. -- Backport color log formatter from branch version/next. -- Don't raise error checking AnonymousUser for permissions. - Instead return always False. -- Enable the main menu workflow runtime link when the workflow view - permission is granted to at least one workflow. -- Make Postgres container wait delay configurable. GitLab issue #677. - Thanks to Antenore Gatta (@antenore) for the report. + +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". + + - Update Django to version 1.11.25. - Update PyYAML to version 5.1.2. - Update celery to version 3.1.26.post2. @@ -29,12 +34,93 @@ Changes - Update Pillow to version 6.2.1. - Move Celery and Django Celery dependencies to the task manager app. -- Improve dependecies app tests. -- Return st_nlink of 1 files in mirrored indexes. GitLab issue #676. - Thanks to Ezio Vernacotola (@eziove) for the report and solution. -- Fix MAYAN_GUNICORN_TIMEOUT Docker image setting. GitLab issue #671. - Thanks to Lennart Sauerbeck (@lennart_s) for the report. + + +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 diff --git a/mayan/apps/django_gpg/tests/literals.py b/mayan/apps/django_gpg/tests/literals.py index 3bcbe01ab3..c7dca32a6a 100644 --- a/mayan/apps/django_gpg/tests/literals.py +++ b/mayan/apps/django_gpg/tests/literals.py @@ -4,6 +4,18 @@ import os from django.conf import settings +MOCK_SEARCH_KEYS_RESPONSE = [ + { + 'algo': u'1', + 'date': u'1311475606', + 'expires': u'1643601600', + 'keyid': u'607138F1AECC5A5CA31CB7715F3F7F75D210724D', + 'length': u'2048', + 'type': u'pub', + 'uids': [u'Roberto Rosario '] + } +] + TEST_DETACHED_SIGNATURE = os.path.join( settings.BASE_DIR, 'apps', 'django_gpg', 'tests', 'contrib', 'test_files', 'test_file.txt.asc' diff --git a/mayan/apps/django_gpg/tests/mocks.py b/mayan/apps/django_gpg/tests/mocks.py new file mode 100644 index 0000000000..66c3ba5ac6 --- /dev/null +++ b/mayan/apps/django_gpg/tests/mocks.py @@ -0,0 +1,25 @@ +from __future__ import unicode_literals + +from .literals import TEST_RECEIVE_KEY, TEST_SEARCH_FINGERPRINT + +MOCK_SEARCH_KEYS_RESPONSE = [ + { + 'algo': u'1', + 'date': u'1311475606', + 'expires': u'1643601600', + 'keyid': u'607138F1AECC5A5CA31CB7715F3F7F75D210724D', + 'length': u'2048', + 'type': u'pub', + 'uids': [u'Roberto Rosario '] + } +] + + +def mock_recv_keys(self, keyserver, *keyids): + class ImportResult(object): + count = 1 + fingerprints = [TEST_SEARCH_FINGERPRINT] + + self.import_keys(TEST_RECEIVE_KEY) + + return ImportResult() diff --git a/mayan/apps/django_gpg/tests/test_models.py b/mayan/apps/django_gpg/tests/test_models.py index 3e03ab8ee8..b854e8a00f 100644 --- a/mayan/apps/django_gpg/tests/test_models.py +++ b/mayan/apps/django_gpg/tests/test_models.py @@ -17,32 +17,12 @@ from ..exceptions import ( from ..models import Key from .literals import ( - TEST_DETACHED_SIGNATURE, TEST_FILE, TEST_KEY_DATA, TEST_KEY_FINGERPRINT, - TEST_KEY_PASSPHRASE, TEST_RECEIVE_KEY, TEST_SEARCH_FINGERPRINT, - TEST_SEARCH_UID, TEST_SIGNED_FILE, TEST_SIGNED_FILE_CONTENT + MOCK_SEARCH_KEYS_RESPONSE, TEST_DETACHED_SIGNATURE, TEST_FILE, + TEST_KEY_DATA, TEST_KEY_FINGERPRINT, TEST_KEY_PASSPHRASE, + TEST_SEARCH_FINGERPRINT, TEST_SEARCH_UID, TEST_SIGNED_FILE, + TEST_SIGNED_FILE_CONTENT ) - -MOCK_SEARCH_KEYS_RESPONSE = [ - { - 'algo': u'1', - 'date': u'1311475606', - 'expires': u'1643601600', - 'keyid': u'607138F1AECC5A5CA31CB7715F3F7F75D210724D', - 'length': u'2048', - 'type': u'pub', - 'uids': [u'Roberto Rosario '] - } -] - - -def mock_recv_keys(self, keyserver, *keyids): - class ImportResult(object): - count = 1 - fingerprints = [TEST_SEARCH_FINGERPRINT] - - self.import_keys(TEST_RECEIVE_KEY) - - return ImportResult() +from .mocks import mock_recv_keys class KeyTestCase(BaseTestCase):