Kiwi TCMS 8.7

improvements, API changes, bug fixes, translation updates

Posted by Kiwi TCMS Team on Wed 16 September 2020 under releases

We're happy to announce Kiwi TCMS version 8.7!

IMPORTANT: this is a medium sized release which includes improvements, API changes, bug fixes, translation updates and new tests. It is the fifth release to include contributions via our open source bounty program. You can explore everything at!

Supported upgrade paths:

5.3   (or older) -> 5.3.1
5.3.1 (or newer) -> 6.0.1
6.0.1            -> 6.1
6.1              -> 6.1.1
6.1.1            -> 6.2 (or newer)

Docker images:

kiwitcms/kiwi       latest  1f2461b1facd    643 MB
kiwitcms/kiwi       6.2     7870085ad415    957 MB
kiwitcms/kiwi       6.1.1   49fa42ddfe4d    955 MB
kiwitcms/kiwi       6.1     b559123d25b0    970 MB
kiwitcms/kiwi       6.0.1   87b24d94197d    970 MB
kiwitcms/kiwi       5.3.1   a420465852be    976 MB

Changes since Kiwi TCMS 8.6


  • Update Django from 3.0.9 to 3.1.1

  • Update django-attachments from 1.6 to 1.8

  • Update django-extensions from 3.0.5 to 3.0.8

  • Update psycopg2 from 2.8.5 to 2.8.6

  • Update pygments from 2.6.1 to 2.7.0

  • Update python-gitlab from 2.4.0 to 2.5.0

  • Make it possible to use reCAPTCHA during registration. If you want to enable this then add the following to your settings:

    if 'captcha' not in INSTALLED_APPS:
        RECAPTCHA_PUBLIC_KEY = '......'
        RECAPTCHA_PRIVATE_KEY = '.....'
        RECAPTCHA_USE_SSL = True

    For more info see

  • Replace GlobalLoginRequiredMiddleware with tcms.kiwi_auth.backends.AnonymousViewBackend for anonymous read-only functionality. See section Anonymous read-only access in the documentation

  • Replace the ... in navigation bar with a 3 cogs icon to make the object-level menu more visible


  • Remove setting PUBLIC_VIEWS


  • Remove TestCase.get_components() in favor of Component.filter()
  • Bug.details() method will now return {} instead of failing if it can't find an issue tracker from an URL

Bug fixes

  • Remove documentation references to non-existing environment
  • Don't fail internal calls if Kiwi TCMS bug tracker can't find a bug

Refactoring & testing

  • Add tests for tcms.core.templatetags. Closes Issue #1602 (Mariyan Garvanski)
  • Add tests for tcms.bugs.views.Edit. Closes Issue #1599 (Mfon Eti-mfon)
  • Add tests for tcms.bugs.views.AddComment. Closes Issue #1600 (Mfon Eti-mfon)
  • Make paths used in migrations & settings platform aware in order to enable development mode on Windows (Mfon Eti-mfon)
  • Add new linter checker to check for use of db_column argument in model field definition. Closes Issue #736 (Bryan Mutai)
  • Add tests for Bug.details API method
  • Replace deprecated ifequal/ifnotequal template tags
  • Adjust migrations_order for Django 3.1 compatibility
  • Add npm audit check in CI
  • Resolve several pylint issues

Kiwi TCMS Enterprise v8.7-mt

  • Based on Kiwi TCMS v8.7
  • Overrides for setting PUBLIC_VIEWS have been removed
  • Update django-ses from 1.0.2 to 1.0.3
  • Update kiwitcms-github-app from 1.1 to 1.2
  • Update kiwitcms-tenants from 1.2.1 to 1.3.1

For more info see

How to upgrade

Backup first! If you are using Kiwi TCMS as a Docker container then:

cd path/containing/docker-compose/
docker-compose down
docker-compose pull
docker-compose up -d
docker exec -it kiwi_web /Kiwi/ migrate

Refer to our documentation for more details!

Happy testing!