PyPi: Kiwitcms

CVE-2021-45452

Transitive

Safety vulnerability ID: 48453

This vulnerability was reviewed by experts

The information on this page was manually curated by our Cybersecurity Intelligence Team.

Created at Jan 05, 2022 Updated at Nov 29, 2024
Scan your Python projects for vulnerabilities →

Advisory

Kiwitcms 11.1 updates its dependency 'Django' to v4.0.2 to include security fixes.

Affected package

kiwitcms

Latest version: 12.4

Test Case Management System

Affected versions

Fixed versions

Vulnerability changelog

Improvements
~~~~~~~~~~~~

- Update bleach from 4.1.0 to 5.0.0
- Update django-tree-queries from 0.7.0 to 0.9.0
- Update jira from 3.1.1 to 3.2.0
- Update pygments from 2.11.2 to 2.12.0
- Update python-gitlab from 3.2.0 to 3.3.0
- Update tzdata from 2021.5 to 2022.1
- Update node_modules/marked from 4.0.12 to 4.0.14
- Update node_modules/prismjs from 1.27.0 to 1.28.0
- Allow overriding of Azure Boards API version. Closes
`Issue 2717 <https://github.com/kiwitcms/Kiwi/issues/2717>`_
- If ``tenant_groups`` is enabled then ``refresh_permissions`` command will
update default tenant groups too
- Document tenant-group permissions


Settings
~~~~~~~~

- New setting ``AZURE_BOARDS_API_VERSION``, defaults to 6.0. Can be overriden
directly in settings or via environment variable with the same name


Bug fixes
~~~~~~~~~

- Patch for repositories under GitLab subgroups. Fixes
`Issue 2643 <https://github.com/kiwitcms/Kiwi/issues/2643>`_ (cmeissl)
- Don't crash if a comment user has been removed. Fixes
`KIWI-TCMS-HZ <https://sentry.io/organizations/kiwitcms/issues/3086416250/>`_


Refactoring
~~~~~~~~~~~

- Split Users & Groups menu items under ADMIN entry in navigation
- [pre-commit.ci] updates
- pylint adjustments


Translations
~~~~~~~~~~~~

- Updated `Chinese Simplified translation <https://crowdin.com/project/kiwitcms/zh-CN#>`_



Kiwi TCMS 11.2 (09 Mar 2022)
----------------------------

.. important::

This is a small release which contains several improvements, new API methods,
internal refactoring and new translations!


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)

After upgrade don't forget to::

./manage.py upgrade


Improvements
~~~~~~~~~~~~

- Update django from 4.0.2 to 4.0.3
- Update django-grappelli from 3.0.2 to 3.0.3
- Update django-simple-captcha from 0.5.14 to 0.5.17
- Update python-bugzilla from 3.1.0 to 3.2.0
- Update python-gitlab from 3.1.1 to 3.2.0
- Update node_modules/prismjs from 1.26.0 to 1.27.0
- Add new command to perform a collection of post-upgrade tasks.
Kiwi TCMS admins are advised to replace
``manage.py migrate`` with ``manage.py upgrade`` (Ivajlo Karabojkov)


API
~~~

- New API method ``Category.create()``. Fixes
`Issue 2705 <https://github.com/kiwitcms/Kiwi/issues/2705>`_ (Erik Heeren)
- New API method ``Classification.create()``. Fixes
`Issue 2705 <https://github.com/kiwitcms/Kiwi/issues/2705>`_ (Erik Heeren)


Refactoring and testing
~~~~~~~~~~~~~~~~~~~~~~~

- Add docker build & push automation
- Fix Bandit exclusion rule
- Test and build on aarch64
- Apply auto fixes fro pre-commit.ci
- Apply auto fixes from Deepsource
- Update versions of several GitHub Actions
- Use the appropriate path to package.json for Dependabot
- Remove old Telemetry link in menu to avoid confusion


Translations
~~~~~~~~~~~~

- Updated `Bulgarian translation <https://crowdin.com/project/kiwitcms/bg#>`_
- Updated `Japanese translation <https://crowdin.com/project/kiwitcms/ja#>`_
- Updated `Chinese Traditional translation <https://crowdin.com/project/kiwitcms/zh-TW#>`_
- Updated `Slovenian translation <https://crowdin.com/project/kiwitcms/sl#>`_
- Updated `Spanish translation <https://crowdin.com/project/kiwitcms/es-ES#>`_



Kiwi TCMS 11.1 (02 Feb 2022)
----------------------------

.. important::

This is a small release which contains security related updates, several improvements,
bug fixes and new translations!

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)

After upgrade don't forget to::

./manage.py migrate
./manage.py refresh_permissions


Security
~~~~~~~~

- Update Django from 3.2.10 to 4.0.2 to fix several fulnerabilities:
CVE-2022-22818, CVE-2022-23833, CVE-2021-45115, CVE-2021-45116,
CVE-2021-45452. Of those we believe that only
*CVE-2022-23833: Denial-of-service possibility in file uploads* may directly
impact Kiwi TCMS


Improvements
~~~~~~~~~~~~

- Update django-contrib-comments from 2.1.0 to 2.2.0
- Update django-uuslug from 1.2.0 to 2.0.0
- Update python-gitlab from 3.1.0 to 3.1.1
- Update node_modules/marked from 4.0.10 to 4.0.12


Database
~~~~~~~~

- New migration for django-simple-captcha


Settings
~~~~~~~~

- ``RECAPTCHA_PUBLIC_KEY``, ``RECAPTCHA_PRIVATE_KEY`` and ``RECAPTCHA_USE_SSL``
are no longer in use
- New setting ``USE_CAPTCHA``, defaults to True
- The string "captcha" is added to ``INSTALLED_APPS``


Bug fixes
~~~~~~~~~

- Fix inappropriate RPC calls causing Version and Build dropdown widgets to
display no values. Fixes
`Issue 2704 <https://github.com/kiwitcms/Kiwi/issues/2704>`_


Refactoring and testing
~~~~~~~~~~~~~~~~~~~~~~~

- Add ``tzdata`` to requirements
- Replace django-recaptcha with django-simple-captcha
- Adjust /init-db view to reliably detect when applying database migrations
is complete and not exit prematurely


Translations
~~~~~~~~~~~~

- Updated `Slovenian translation <https://crowdin.com/project/kiwitcms/sl#>`_



Kiwi TCMS 11.0 (24 Jan 2022)
----------------------------

.. important::

This is a new major release which contains security related updates, several improvements,
API changes, bug fixes and new translations!

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)

After upgrade don't forget to::

./manage.py migrate
./manage.py refresh_permissions


Improvements
~~~~~~~~~~~~

- Update Django to 3.2.11
- Update django-colorfield from 0.4.5 to 0.6.3
- Update django-grappelli from 2.15.3 to 3.0.2
- Update psycopg2 from 2.9.2 to 2.9.3
- Update pygments from 2.10.0 to 2.11.2
- Update python-gitlab from 2.10.1 to 3.1.0
- Update node_modules/prismjs from 1.25.0 to 1.26.0
- Update node_modules/marked from 2.1.3 to 4.0.10
- Admin panel now allows to view, add, edit and delete Environment records
- Allow selection of environment when creating new TestRun and display the chosen
values inside the TestRun page. Closes
`Issue 1344 <https://github.com/kiwitcms/Kiwi/issues/1344>`_
- Creating a TestRun will now generate test execution matrix based on the available
environment and test case properties. Closes
`Issue 1843 <https://github.com/kiwitcms/Kiwi/issues/1843>`_
- When generating a test execution matrix the supported algorithms are
"full" and "pairwise". Closes
`Issue 1931 <https://github.com/kiwitcms/Kiwi/issues/1931>`_

- Feature is enabled for test runs which contain test cases. This
feature is not shown when creating an empty test run
- This feature isn't supported when subsequently adding new test cases
to test run
- Record a random hex number under ``/Kiwi/uploads/installation-id``


Database
~~~~~~~~

- New model ``testrun.Environment``
- New model ``testrun.EnvironmentProperty``
- New model ``testrun.Property``


Settings
~~~~~~~~

- Update the value of ``MODERNRPC_METHODS_MODULES`` setting to include
modules with the new API methods


API
~~~

- Method ``TestRun.add_case`` will now return a list.

.. warning::

This breaks API compatibility with older versions and will break
all plugins which rely on this method. Use plugins v11 or greater!
- Method ``TestRun.add_case`` return value will now include a field named
``properties``
- New methods ``Environment.properties``, ``Environment.add_property`` and
``Environment.remove_property``
- New method ``TestRun.properties``


Bug fixes
~~~~~~~~~

- Send e-mail notification when adding comments to bugs. Fixes
`Issue 2232 <https://github.com/kiwitcms/Kiwi/issues/2232>`_ (cmbahadir)
- Disable the "+" button when there is no related element selected. Fixes
`Issue 2561 <https://github.com/kiwitcms/Kiwi/issues/2561>`_ (cmbahadir)
- When cloning test plans keep the existing test case sort order inside
the resulting test plan. Fixes
`Issue 2218 <https://github.com/kiwitcms/Kiwi/issues/2218>`_ (Nicolas Gelot)
- Configure en_US.UTF-8 locale inside container. Allows upload of files with
unicode names. Fixes
`Issue 2600 <https://github.com/kiwitcms/Kiwi/issues/2600>`_


Refactoring and testing
~~~~~~~~~~~~~~~~~~~~~~~

- Refresh logo design
- Pylint fixes
- Pin setuptools b/c of problem with django-extensions
- Remove redundant test scenario
- Shell script refactoring


Translations
~~~~~~~~~~~~

- Updated `Chinese Simplified translation <https://crowdin.com/project/kiwitcms/zh-CN#>`_
- Updated `Chinese Traditional translation <https://crowdin.com/project/kiwitcms/zh-TW#>`_
- Updated `French translation <https://crowdin.com/project/kiwitcms/fr#>`_
- Updated `Hebrew translation <https://crowdin.com/project/kiwitcms/he#>`_
- Updated `Slovenian translation <https://crowdin.com/project/kiwitcms/sl#>`_



Kiwi TCMS 10.5 (25 Nov 2021)
----------------------------

.. important::

This is a medium sized release which contains various improvements and new features,
database changes, new settings and API methods, bug-fixes, internal refactoring and
updated translations.

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)

After upgrade don't forget to::

./manage.py migrate
./manage.py refresh_permissions


Improvements
~~~~~~~~~~~~

- Update django from 3.2.7 to 3.2.9
- Update django-colorfield from 0.4.3 to 0.4.5
- Update django-extensions from 3.1.3 to 3.1.5
- Update django-grappelli from 2.15.1 to 2.15.3
- Update django-tree-queries from 0.6.0 to 0.7.0
- Update jira from 3.0.1 to 3.1.1
- Update markdown from 3.3.4 to 3.3.6
- Update mysqlclient from 2.0.3 to 2.1.0
- Update psycopg2 from 2.9.1 to 2.9.2
- Display a warning if connection doesn't use HTTPS (Ivajlo Karabojkov)
- Account registration page can be turned on/off via settings. Fixes
`Issue 2500 <https://github.com/kiwitcms/Kiwi/issues/2500>`_
- TestCase Search page can now filter by TestPlan. Fixes
`Issue 2283 <https://github.com/kiwitcms/Kiwi/issues/2283>`_
- Allow template selection when creating new test case. Fixes
`Issue 957 <https://github.com/kiwitcms/Kiwi/issues/957>`_
- TestCase page now allows specification of properties, e.g. mobile devices
on which the test should be executed. This feature serves as a building
block for
`Issue 1843 <https://github.com/kiwitcms/Kiwi/issues/1843>`_,
`Issue 1931 <https://github.com/kiwitcms/Kiwi/issues/1931>`_ and
`Issue 1344 <https://github.com/kiwitcms/Kiwi/issues/1344>`_ but isn't active anywhere else inside
Kiwi TCMS at the moment
- TestExecution properties will be displayed inside TestRun page if they
have been specified
- Rearrange help-text in admin page for better visibility
- Switch to official Postgres image from Docker Hub
- Switch to official MariaDB image from Docker Hub

.. warning::

For Postgres data dir changed from ``/var/lib/pgsql/data`` to ``/var/lib/postgres/data``.
Environment variables inside docker-compose file changed as well,
see ``docker-compose.postgres``.

For MariaDB data dir changed from ``/var/lib/mysql/data`` to ``/var/lib/mysql``.
``MYSQL_CHARSET`` & ``MYSQL_COLLATION`` environment variables are no longer
recognized. Instead they are present as command line options passed to the container,
see ``docker-compose.yml``. Previous workaround for these variables was also removed.

If you want to migrate from the previous ``centos/mariadb-103-centos7`` or
``centos/postgresql-12-centos7`` containers to ``mariadb:latest`` and ``postgres:latest``
make sure to update your container control files!


Settings
~~~~~~~~

- New setting ``REGISTRATION_ENABLED``, default ``True``, Can be controlled via
environment variable ``KIWI_REGISTRATION_ENABLED``. When set to ``False``
will disable account registration page


Database
~~~~~~~~

- New model ``testcases.Property``
- New model ``testcases.Template``
- New model ``testruns.TestExecutionProperty``
- Remove ``unique_together`` constraint for ``testruns.TestExecution`` model.
This makes it possible to add multiple executions for the same test case in
the same test run

.. warning::

These newly added models create additional permission labels with names
*testcases | template | Can .... template*,
*testcases | property | Can .... property*,
*testruns | test execution property | Can .... test execution property*

Execute ``manage.py refresh_permissions`` and/or assign them manually to
users and groups if they should be able to interact with the new objects!


API
~~~

- Method ``TestCase.filter()`` now returns additional fields
``setup_duration``, ``testing_duration``, ``expected_duration`` - all
serialized in seconds. Refs
`Issue 1923 <https://github.com/kiwitcms/Kiwi/issues/1923>`_ (Mfon Eti-mfon)
- Method ``User.filter()`` will no longer return fields
``groups``, ``user_permissions``, ``date_joined`` and ``last_login``
- New method ``TestExecution.properties()``
- New method ``TestCase.properties()``
- New method ``TestCase.add_property()``
- New method ``TestCase.remove_property()``


Bug fixes
~~~~~~~~~

- Unify tab size & tab indentation b/w Python & SimpleMDE. Fixes
`Issue 1802 <https://github.com/kiwitcms/Kiwi/issues/1802>`_
- Use ``sane_list extension`` for rendering consecutive lists in markdown. Closes
`Issue 2511 <https://github.com/kiwitcms/Kiwi/issues/2511>`_

.. warning::
The visual markdown editor explicitly didn't follow markdown syntax rules
by allowing indentation with 2 spaces and treating tabs as 2 spaces as well.
See "Indentation/Tab Length" at https://python-markdown.github.io/#differences

The backend markdown rendering engine explicitly followed an undefined behavior
which happens to be different from what the visual markdown editor does.
See "Consecutive Lists" at https://python-markdown.github.io/#differences

The previous 2 changes make sure the visual editor and backend rendering engine
follow the same rules. This may result is "broken" display of existing text which
doesn't follow the markdown syntax rules. If you spot such text just edit to make
it render the way you wish.

- Fix broken URL and minor updates to documentation
- Update GitLab tracker integration documentation to avoid confusion. Closes
`Issue 2559 <https://github.com/kiwitcms/Kiwi/issues/2559>`_
- Limit tag input length to 255 characters. Closes
`Issue 2176 <https://github.com/kiwitcms/Kiwi/issues/2176>`_
- Make error notifications in Admin to display with red color
- Select only visible rows for bulk-update in TestRun page. Fixes
`Issue 2222 <https://github.com/kiwitcms/Kiwi/issues/2222>`_
- Remove ``Cache-Control`` header from httpd. Closes
`Issue 443 <https://github.com/kiwitcms/Kiwi/issues/443>`_


Refactoring and testing
~~~~~~~~~~~~~~~~~~~~~~~

- Add permissions test for add-hyperlink-bulk menu. Closes
`Issue 716 <https://github.com/kiwitcms/Kiwi/issues/716>`_
- Add explicit tests for issue tracker integration with GitLab.com
- Tests teardown - remove comments & close issues on GitLab.com
- Add missing ``rlPhaseEnd`` for docker tests
- Multiple pylint and eslint fixes


Translations
~~~~~~~~~~~~

- Updated `French translation <https://crowdin.com/project/kiwitcms/fr#>`_
- Updated `Hungarian translation <https://crowdin.com/project/kiwitcms/hu#>`_
- Updated `Slovenian translation <https://crowdin.com/project/kiwitcms/sl#>`_



Kiwi TCMS 10.4 (04 Oct 2021)
----------------------------

.. important::

This is a small release which includes several improvements, bug fixes,
internal refactoring and updated translations.


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)

After upgrade don't forget to::

./manage.py migrate


Security
~~~~~~~~

- Update prismjs from 1.24.1 to 1.25.0. Includes patches against a
Regular Expression Denial of Service vulnerability.
See https://snyk.io/vuln/SNYK-JS-PRISMJS-1585202


Improvements
~~~~~~~~~~~~

- Update bleach from 4.0.0 to 4.1.0
- Update django from 3.2.6 to 3.2.7
- Update django-colorfield from 0.4.2 to 0.4.3
- Update pygithub from 1.54.1 to 1.55
- Update pygments from 2.9.0 to 2.10.0
- Update python-gitlab from 2.10.0 to 2.10.1
- Allow filtering by TestRun ID in Test Case Search page
- Update test execution prefix in list of executions on TestRun page.
Now includes both TE and TC numbers before the summary link
- Allow search by translated names on Test Run page
- Redirect "ADMIN -> Users and groups" menu item according to tenancy
- Allow creation of new test run from selected test cases inside existing test
run. For example only select cases which are currently failing and re-test
against a different build!
- The ``initial_setup`` command will create a schema called "empty" when executed
inside a multi-tenant setup. Refs
`Issue 127 <https://github.com/kiwitcms/tenants/issues/127>`_


Settings
~~~~~~~~

- Update values for ``MODERNRPC_HANDLERS`` setting
- Rename ``SafeJSONRPCHandler`` to ``KiwiTCMSJsonRpcHandler``
- New RPC handler class ``KiwiTCMSXmlRpcHandler``

.. warning::

If you had manipulated the value of MODERNRPC_HANDLERS make sure that
you update to the new class names!


Database
~~~~~~~~

- New migrations for altered meta options


API
~~~

- ``TestCase.create`` method accepts ``setup_duration`` and ``testing_duration`` fields.
Refs `Issue 1923 <https://github.com/kiwitcms/Kiwi/issues/1923>`_ (Mfon Eti-mfon)
- ``TestCase.update`` method acepts ``setup_duration`` and ``testing_duration`` fields.
Refs `Issue 1923 <https://github.com/kiwitcms/Kiwi/issues/1923>`_ (Mfon Eti-mfon)
- New method ``Testing.individual_test_case_health``
- Timedelta values are serialized to float, representing seconds


Bug fixes
~~~~~~~~~

- Fix wrong URL parameter passed to test cases clone page
- Show translated execution statuses for TestRun page. Closes
`Issue 1966 <https://github.com/kiwitcms/Kiwi/issues/1966>`_
- Properly initialize Product value on TestRun Edit page. Closes
`Issue 2514 <https://github.com/kiwitcms/Kiwi/issues/2514>`_
- Clone duration fields when cloning a test case


Refactoring and testing
~~~~~~~~~~~~~~~~~~~~~~~


- New automated test scenario for ``kiwi_auth.admin`` (Mariyan Garvanski)
- Unify similar strings to reduce transaltions burden
- Inside buildroot ``PyNaCl`` needs ``make`` in order to build a wheel package
- Adjust values for parametrized test to match existing scenarios
- Fix code smells from newer pylint
- eslint fixes for the JavaScript files


Translations
~~~~~~~~~~~~


- Updated `Chinese Simplified translation <https://crowdin.com/project/kiwitcms/zh-CN#>`_
- Updated `German translation <https://crowdin.com/project/kiwitcms/de#>`_
- Updated `Italian translation <https://crowdin.com/project/kiwitcms/it#>`_
- Updated `Portuguese, Brazilian translation <https://crowdin.com/project/kiwitcms/pt-BR#>`_
- Updated `Russian translation <https://crowdin.com/project/kiwitcms/ru#>`_



Kiwi TCMS 10.3 (11 Aug 2021)
----------------------------

.. important::

This is a small release which includes several improvements, bug fixes,
internal refactoring and updated translations.

It is the twelveth release to include contributions via our
`open source bounty program`_!


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)

After upgrade don't forget to::

./manage.py migrate


Improvements
~~~~~~~~~~~~

- Update bleach from 3.3.0 to 4.0.0
- Update django from 3.2.5 to 3.2.6
- Update django-colorfield from 0.4.1 to 0.4.2
- Update django-tree-queries from 0.5.2 to 0.6.0
- Update python-bugzilla from 3.0.2 to 3.1.0
- Update python-gitlab from 2.9.0 to 2.10.0
- Update node_modules/html5sortable from 0.13.2 to 0.13.3
- Docker image is now based on Red Hat's Universal Base Image instead of
CentOS 8. See https://www.redhat.com/en/blog/introducing-red-hat-universal-base-image and
https://catalog.redhat.com/software/containers/ubi8/ubi-minimal/5c359a62bed8bd75a2c3fba8.

.. important::

The ``mysql`` and ``psql`` binaries in the container image are not available anymore!
Backup and restore instructions have been updated accordingly, see
https://kiwitcms.org/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/.

- Use ``initial_setup`` command to create public tenant in case we're running a multi-tenant
instance. References
`Enterprise 88 <https://github.com/kiwitcms/enterprise/issues/88>`_ (Ivajlo Karabojkov)
- Document that for Jira integration we use API tokens


Bug fixes
~~~~~~~~~

- Fix a bug where drop-down selectors for test plans would not show any values when
product is changed. Fixes
`Issue 2467 <https://github.com/kiwitcms/Kiwi/issues/2467>`_


Refactoring and testing
~~~~~~~~~~~~~~~~~~~~~~~

- Add tests for missing coverage in ``kiwi_auth.admin``. References
`Issue 1607 <https://github.com/kiwitcms/Kiwi/issues/1607>`_
(Mariyan Garvanski)
- Fix some eslint issues and formatting in ``testcases/js/get.js``
- Use shorter URL when cloning test cases from TP page. References
`Issue 1054 <https://github.com/kiwitcms/Kiwi/issues/1054>`_
- Limit URI size to 10KiB. This alone should allow for more than 1000 PKs
specified for cloning. In addition Django itself limits the maximum number of
GET/POST fields to 1000 via the ``DATA_UPLOAD_MAX_NUMBER_FIELDS`` setting,
see https://docs.djangoproject.com/en/3.2/ref/settings/#data-upload-max-number-fields.
Closes
`Issue 1054 <https://github.com/kiwitcms/Kiwi/issues/1054>`_


Translations
~~~~~~~~~~~~

- Updated `Chinese Simplified translation <https://crowdin.com/project/kiwitcms/zh-CN#>`_
- Updated `German translation <https://crowdin.com/project/kiwitcms/de#>`_
- Updated `Hungarian translation <https://crowdin.com/project/kiwitcms/hu#>`_
- Updated `Portuguese, Brazilian translation <https://crowdin.com/project/kiwitcms/pt-BR#>`_
- Updated `Slovenian translation <https://crowdin.com/project/kiwitcms/sl#>`_



Kiwi TCMS 10.2 (11 Jul 2021)
----------------------------

.. important::

This is a small release including upgrades to 3rd party libraries
(including security related updates), several improvements and bug fixes.

It is the eleventh release to include contributions via our
`open source bounty program`_!


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)

After upgrade don't forget to::

./manage.py migrate


Improvements & security updates
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

- Update django from 3.2.3 to 3.2.5
- Update django-guardian from 2.3.0 to 2.4.0
- Update django-tree-queries from 0.5.1 to 0.5.2
- Update psycopg2 from 2.8.6 to 2.9.1
- Update python-gitlab from 2.7.1 to 2.9.0
- Update node_modules/marked from 2.0.3 to 2.1.3
- Update node_modules/html5sortable from 0.11.1 to 0.13.2
- Update node_modules/prismjs from 1.23.0 to 1.24.1
- Multiple select for filters on Telemetry pages. Fixes
`Issue 1940 <https://github.com/kiwitcms/Kiwi/issues/1940>`_
(Shantanu Verma + Alex Todorov)
- Allow editting TestCase ``setup_duration`` & ``testing_duration`` fields.
References
`Issue 1923 <https://github.com/kiwitcms/Kiwi/issues/1923>`_ (APiligrim + Alex Todorov)
- Move several checks to Dashboard page instead of performing them on
every request (Ivajlo Karabojkov)
- Fix grammatical error in documentation (Kushal Beniwal)
- Add health check for Issue Tracker configuration. Fixes
`Issue 97 <https://github.com/kiwitcms/Kiwi/issues/97>`_
- Document API URL field for Jira integration. Closes
`Issue 2443 <https://github.com/kiwitcms/Kiwi/issues/2443>`_


Settings
~~~~~~~~

- ``tcms.core.middleware.CheckSettingsMiddleware`` has been removed
- ``tcms.core.middleware.CheckUnappliedMigrationsMiddleware`` has been removed


API
~~~

- Method ``Version.filter()`` now returns new field called ``product__name``
- Method ``Build.filter()`` now returns new field called ``version__value``
- Methods ``Build.filter()``, ``Version.filter()`` and ``TestPlan.filter()``
will now order their results by ``product``/``version`` and then ``id``.
- Method ``Telemetry.breakdown()`` now returns only distinct results


Bug fixes
~~~~~~~~~

- Make error messages in admin forms more legible. Fixes
`Issue 2404 <https://github.com/kiwitcms/Kiwi/issues/2404>`_
- Large images will now fit into the available space on the screen,
e.g. inside test case description cards. Fixes
`Issue 2220 <https://github.com/kiwitcms/Kiwi/issues/2220>`_


Refactoring and testing
~~~~~~~~~~~~~~~~~~~~~~~

- Add automated tests for missing coverage in ``kiwi_auth.admin`` References
`Issue 1607 <https://github.com/kiwitcms/Kiwi/issues/1607>`_ (Mariyan Garvanski)
- Apply eslint fixes (sonyagennova + Alex Todorov)
- Refactor ``TestExecution.add_link`` method to use ModelForm and extend tests. Closes
`Issue 1327 <https://github.com/kiwitcms/Kiwi/issues/1327>`_ (Rosen Sasov + Alex Todorov)
- Use context manager when opening files to make pylint happier
- Simplify 2 UI buttons on TestRun page
- Enable ``doc8`` for README and CHANGELOG and fix formatting errors


Translations
~~~~~~~~~~~~

- Updated `Czech translation <https://crowdin.com/project/kiwitcms/cs#>`_
- Updated `French translation <https://crowdin.com/project/kiwitcms/fr#>`_
- Updated `German translation <https://crowdin.com/project/kiwitcms/de#>`_
- Updated `Hungarian translation <https://crowdin.com/project/kiwitcms/hu#>`_
- Updated `Japanese translation <https://crowdin.com/project/kiwitcms/ja#>`_
- Updated `Polish translation <https://crowdin.com/project/kiwitcms/pl#>`_
- Updated `Russian translation <https://crowdin.com/project/kiwitcms/ru#>`_
- Updated `Slovenian translation <https://crowdin.com/project/kiwitcms/sl#>`_



Kiwi TCMS 10.1 (18 May 2021)
----------------------------

.. important::

This release includes many improvements & security updates, database changes,
new and updated API methods, bug fixes, translation updates, new tests and
internal refactoring.

It is the tenth release to include contributions via our
`open source bounty program`_ and collaboration with Major League Hacking!

This is the second release after Kiwi TCMS reached 400K pulls
on Docker Hub!


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)

After upgrade don't forget to::

./manage.py migrate


Improvements & security updates
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

- Upgrade from Python 3.6 to Python 3.8 inside the container
- Upgrade Django from 3.1.7 to 3.2.3
- Upgrade django-attachments from 1.8 to 1.9.1
- Upgrade django-contrib-comments from 2.0.0 to 2.1.0
- Upgrade django-extensions from 3.1.1 to 3.1.3
- Upgrade django-grappelli from 2.14.3 to 2.15.1
- Upgrade django-simple-history from 2.12.0 to 3.0.0
- Upgrade django-tree-queries from 0.4.3 to 0.5.1
- Upgrade jira from 2.0.0 to 3.0.1
- Upgrade pygments from 2.8.0 to 2.9.0
- Upgrade python-gitlab from 2.6.0 to 2.7.1
- Upgrade node_modules/html5sortable from 0.10.0 to 0.11.1
- Upgrade node_modules/marked from 2.0.1 to 2.0.3
- Timestamp fields added to all TestRun pages. Closes
`Issue 1928 <https://github.com/kiwitcms/Kiwi/issues/1928>`_ (Andreea Moraru)
- Don't set ``TestRun.start_date`` automatically. Fixes
`Issue 2323 <https://github.com/kiwitcms/Kiwi/issues/2323>`_ (Andreea Moraru)
- Web based database initialization for new installations. Closes
`Issue 1698 <https://github.com/kiwitcms/Kiwi/issues/1698>`_ (Ivajlo Karabojkov)
- Automatically active the first registered user via web UI
- Rearrange layout of before and after fields on search pages
- Allow TestRun creation from navigation menu. Fixes
`Issue 2281 <https://github.com/kiwitcms/Kiwi/issues/2281>`_
- Document hardware specs & performance baseline results. Refs
`Issue 721 <https://github.com/kiwitcms/Kiwi/issues/721>`_
- Document performance for ``TestCase.filter``/``TestRun.filter`` methods.
Closes
`Issue 1173 <https://github.com/kiwitcms/Kiwi/issues/1173>`_
- Update documentation around ``docker-compose.yml`` and the extra script files
that it needs
- Document some useful management commands
- Clarify ``set_domain`` command. Closes
`Issue 2375 <https://github.com/kiwitcms/Kiwi/issues/2375>`_


Settings
~~~~~~~~

- Change ``TEMP_DIR`` to ``/var/tmp`` which affects the location in which
intermadiate files coming from migrations are saved. If ``/var/tmp`` doesn't
exist the fallback is ``/tmp`` which on modern Linux distributions is
ephemeral
- Add ``DEFAULT_AUTO_FIELD`` to hard-code expected behavior and prevent
unwanted changes introduced by future versions of Django


Database
~~~~~~~~

- Add new fields to ``TestCase`` - ``setup_duration``, ``testing_duration`` and
a calculatable ``expected_duration`` attribute (Angelina)
- Remove unused ``TestRun.product_version`` field


API
~~~

- Method ``TestRun.filter()`` return value changes field names:

- ``product_version`` -> ``plan__product_version``
- ``product_version__value`` -> ``plan__product_version__value``

.. warning::

You will need to adjust your API scripts if using these fields!

- Method ``Component.filter()`` will return only distinct results
- New method ``KiwiTCMS.version()``


Bug fixes
~~~~~~~~~

- Remove links and icons from TestRun print styling. Fixes
`Issue 2263 <https://github.com/kiwitcms/Kiwi/issues/2263>`_ and
`Issue 2264 <https://github.com/kiwitcms/Kiwi/issues/2264>`_ (Gagan Deep)
- Emails notifications are now sent into server language. Fixes
`Issue 1589 <https://github.com/kiwitcms/Kiwi/issues/1589>`_ (Kapil Bansal)
- Fix compatibility bug for "advanced search & add" popup windows and latest Chrome
browsers. Fixes `Issue 2100 <https://github.com/kiwitcms/Kiwi/issues/2100>`_
- Redirect TestPlan Admin "Add" to the correct URL
- Fix wrong TestExecution field names in queryset & HTML template. Refs
`Issue 1924 <https://github.com/kiwitcms/Kiwi/issues/1924>`_
- Add default display for ``None`` fields in Test Case page


Refactoring & testing
~~~~~~~~~~~~~~~~~~~~~

- Add test automation for ``TestExecution.actual_duration``. Refs
`Issue 1924 <https://github.com/kiwitcms/Kiwi/issues/1924>`_ (APiligrim)
- Add test automation for ``TestCase.expected_duration``. Refs
`Issue 1923 <https://github.com/kiwitcms/Kiwi/issues/1923>`_ (APiligrim)
- Add test automation for ``ReadOnlyHistoryAdmin``. Fixes
`Issue 1604 <https://github.com/kiwitcms/Kiwi/issues/1604>`_ (Kapil Bansal)
- Add ``similar-string`` checker to ``kiwi_lint``. Fixes
`Issue 1126 <https://github.com/kiwitcms/Kiwi/issues/1126>`_ (17sushmita)
- Resolve or silence the remaining outstanding pylint issues. Closes
`Issue 171 <https://github.com/kiwitcms/Kiwi/issues/171>`_
- Update isort from 5.7.0 to 5.8.0
- Convert forms to ``ModelForm``
- Remove unused method parameters
- Remove unused ``string_to_list()``. Closes
`Issue 340 <https://github.com/kiwitcms/Kiwi/issues/340>`_
- Simplify method used for progressbar in dashboard which also
reduces the total number of SQL queries
- Use existing functions, remove duplication
- Remove unnecessary calls & definition of ``loadInitialTestPlans()`` in
Telemetry pages


Translations
~~~~~~~~~~~~

- Updated `Chinese Simplified translation <https://crowdin.com/project/kiwitcms/zh-CN#>`_
- Updated `French translation <https://crowdin.com/project/kiwitcms/fr#>`_
- Updated `Hungarian translation <https://crowdin.com/project/kiwitcms/hu#>`_
- Updated `Italian translation <https://crowdin.com/project/kiwitcms/it#>`_
- Updated `Japanese translation <https://crowdin.com/project/kiwitcms/ja#>`_
- Updated `Polish translation <https://crowdin.com/project/kiwitcms/pl#>`_
- Updated `Portuguese, Brazilian translation <https://crowdin.com/project/kiwitcms/pt-BR#>`_
- Updated `Romanian translation <https://crowdin.com/project/kiwitcms/ro#>`_
- Updated `Slovenian translation <https://crowdin.com/project/kiwitcms/sl#>`_
- Updated `Spanish translation <https://crowdin.com/project/kiwitcms/es-ES#>`_



Kiwi TCMS 10.0 (02 March 2021)
------------------------------

.. important::

This is a major release which includes backwards incompatible API changes,
new database fields, improvements, bug fixes, translation updates,
new tests and internal refactoring.
It is the ninth release to include contributions via our
`open source bounty program`_.

This is the first release after Kiwi TCMS reached 400K pulls
on Docker Hub!


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)

After upgrade don't forget to::

./manage.py migrate


Security
~~~~~~~~

- Update node_modules/marked from 1.2.7 to 2.0.1. Also fixes
`SNYK-JS-MARKED-1070800 <https://snyk.io/vuln/SNYK-JS-MARKED-1070800>`_
- Update django from 3.1.5 to 3.1.7 for CVE-2021-3281 and CVE-2021-23336


Improvements
~~~~~~~~~~~~

- Update bleach from 3.2.1 to 3.3.0
- Update django-colorfield from 0.3.2 to 0.4.1
- Update django-extensions from 3.1.0 to 3.1.1
- Update markdown from 3.3.3 to 3.3.4
- Update pygments from 2.7.4 to 2.8.0
- Update python-gitlab from 2.5.0 to 2.6.0
- Change ON/OFF button messages (Krum Petkov)
- Automatically set test run to finished/not-finished depending on
the state of all executions. Closes
`Issue 441 <https://github.com/kiwitcms/Kiwi/issues/441>`_
- Allow assigning users from group admin page. Fixes
`Issue 1844 <https://github.com/kiwitcms/Kiwi/issues/1844>`_
- Improve documentation around setting up devel environment


Database
~~~~~~~~

- Add ``TestRun.planned_start`` and ``TestRun.planned_stop`` fields. Refs
`Issue 1928 <https://github.com/kiwitcms/Kiwi/issues/1928>`_ (Andreea Moraru)
- Add ``TestExecution.start_date`` field. Refs
`Issue 1924 <https://github.com/kiwitcms/Kiwi/issues/1924>`_ (Anastasiya Uraleva)
- Rename field ``TestExecution.close_date`` to ``TestExecution.stop_date``
(Anastasiya Uraleva)


API
~~~

.. warning::

This release changes how Kiwi TCMS serializes API results and thus
introduces multiple backwards incompatible changes.

.. important::

All ``.filter()`` methods now return distinct records!

- New method ``PlanType.create()``
- Method ``TestCase.add_component()`` now returns a serialized ``Component``
instead of a serialized ``TestCase``. Refs
`Issue 2145 <https://github.com/kiwitcms/Kiwi/issues/2145>`_
- Methods ``Product.filter()``, ``Product.create()`` and ``Product.update()``:

- change input parameter ``classification_id`` to ``classification`` -
type int
- change result field ``classification_id`` to ``classification`` - type int
- Method ``Category.filter()`` changes result field
``product_id`` to ``product`` - type int
- Methods ``Component.filter()``, ``Component.create()`` and
``Component.update()``:

- change input parameter ``product_id`` to ``product`` - type int
- change input parameter ``initial_owner_id`` to ``initial_owner`` - type int
- change input parameter ``initial_qa_contact_id`` to
``initial_qa_contact`` - type int
- change result field ``product_id`` to ``product`` - type int
- change result field ``initial_owner_id`` to ``initial_owner`` - type int
- change result field ``initial_qa_contact_id`` to ``initial_qa_contact`` -
type int
- adds result field ``cases`` - type int - a TestCase ID if this component is
attached to a test case
- Methods ``Version.filter()`` and ``Version.create()``:

- change input parameter ``product_id`` to ``product`` - type int
- change result field ``product_id`` to ``product`` - type int
- Method ``Tag.filter()`` now returns additional fields:
``bugs``, ``case``, ``plan`` and ``run`` which causes existing queries to
return similar records attached to different parent objects. Consumers of
these results should be updated
- Methods ``TestPlan.filter()``, ``TestPlan.create()`` and
``TestPlan.update()``:

- change input parameter ``author_id`` to ``author`` - type int
- change input parameter ``parent_id`` to ``parent`` - type int
- change input parameter ``product_id`` to ``product`` - type int
- change input parameter ``product_version_id`` to ``product_version`` -
type int
- change input parameter ``type_id`` to ``type`` - type int
- change result field ``author_id`` to ``author`` - type int
- change result field ``parent_id`` to ``parent`` - type int
- change result field ``product_id`` to ``product`` - type int
- change result field ``product_version_id`` to ``product_version`` -
type int
- change result field ``type_id`` to ``type`` - type int
- remove result fields ``cases``, ``tag``, ``default_product_version``
- Method ``TestPlan.filter()``
adds result fields ``product_version__value``, ``product__name``,
``author__username`` and ``type__name``
- Methods ``TestRun.filter()``, ``TestRun.create()`` and ``TestRun.update()``:

- change result field ``build_id`` to ``build`` - type int
- change result field ``default_tester_id`` to ``default_tester`` - type int
- change result field ``manager_id`` to ``manager`` - type int
- change result field ``plan_id`` to ``plan`` - type int
- change result field ``product_version_id`` to ``product_version`` -
type int
- remove result fields ``cc``, ``tag``
- Method ``TestRun.filter()`` adds result fields ``product_version__value``,
``plan__product``, ``plan__name``, ``build__name``, ``manager__username`` and
``default_tester__username``
- Methods ``TestExecution.filter()`` and ``TestExecution.update()``:

- change input parameter ``assigee_id`` to ``assignee`` - type int
- change input parameter ``build_id`` to ``build`` - type int
- change input parameter ``case_id`` to ``case`` - type int
- change input parameter ``run_id`` to ``run`` - type int
- change input parameter ``status_id`` to ``status`` - type int
- change input parameter ``tested_by_id`` to ``tested_by`` - type int
- change result field ``assigee_id`` to ``assignee`` - type int
- change result field ``build_id`` to ``build`` - type int
- change result field ``case_id`` to ``case`` - type int
- change result field ``run_id`` to ``run`` - type int
- change result field ``status_id`` to ``status`` - type int
- change result field ``tested_by_id`` to ``tested_by`` - type int
- Method ``TestExecution.filter()`` adds result fields ``assignee__username``,
``tested_by__username``, ``case__summary``, ``build__name`` and
``status__name``
- Method ``TestExecution.get_links()`` change result field
``execution_id`` to ``execution`` - type int
- Method ``TestRun.add_case()`` changes result field names similarly to
``TestExecution.filter()`` method
- Methods ``TestCase.filter()``, ``TestCase.create()`` and
``TestCase.update()``:

- change input parameter ``author_id`` to ``author`` - type int
- change input parameter ``case_status_id`` to ``case_status`` - type int
- change input parameter ``category_id`` to ``category`` - type int
- change input parameter ``default_tester_id`` to ``default_tester`` -
type int
- change input parameter ``priority_id`` to ``priority`` - type int
- change input parameter ``reviewer_id`` to ``reviewer`` - type int
- change result field ``author_id`` to ``author`` - type int
- change result field ``case_status_id`` to ``case_status`` - type int
- change result field ``category_id`` to ``category`` - type int
- change result field ``default_tester_id`` to ``default_tester`` - type int
- change result field ``priority_id`` to ``priority`` - type int
- change result field ``reviewer_id`` to ``reviewer`` - type int
- remove result fields ``component``, ``plan``, ``tag``
- Method ``TestCase.filter()`` adds result fields ``case_status__name``,
``category__name``, ``priority__value``, ``author__username``,
``default_tester__username`` and ``reviewer__username``
- Methods ``TestRun.get_cases()`` and ``TestPlan.add_case()`` change
result field names similarly to ``TestCase.filter()`` method


Bug fixes
~~~~~~~~~

- Fix removing a component from a test case immediately after it has been added. Fixes
`Issue 2145 <https://github.com/kiwitcms/Kiwi/issues/2145>`_ (Gagan Deep)
- Fix broken object navigation in navbar. Fixes
`Issue 991 <https://github.com/kiwitcms/Kiwi/issues/991>`_
- Refactor search pages rendering to speed it up. Closes
`Issue 1014 <https://github.com/kiwitcms/Kiwi/issues/1014>`_


Refactoring & testing
~~~~~~~~~~~~~~~~~~~~~

- Update tests for ``TestRun.create()`` API method. Refs
`Issue 1928 <https://github.com/kiwitcms/Kiwi/issues/1928>`_ (Andreea Moraru)
- Add automation tests. Closes
`Issue 1618 <https://github.com/kiwitcms/Kiwi/issues/1618>`_ (Mariyan Garvanski)
- Add additional automation tests for ``tcms.management.admin``. Closes
`Issue 1610 <https://github.com/kiwitcms/Kiwi/issues/1610>`_ (Gagan Deep)
- Add additional automation tests for ``tcms.testcases.views.EditTestCaseView``. Closes
`Issue 1615 <https://github.com/kiwitcms/Kiwi/issues/1615>`_ (Gagan Deep)
- Add additional automation tests for ``tcms.kiwi_auth.forms``. Closes
`Issue 1609 <https://github.com/kiwitcms/Kiwi/issues/1609>`_ (Kapil Bansal)
- Change location of included HTML templates (Alexander Tsvetanov, Krum Petkov)
- Erase unused view & templates (Alexander Tsvetanov)
- Enable eslint. Closes
`Issue 1281 <https://github.com/kiwitcms/Kiwi/issues/1281>`_
- Change how beakerlib test framework is installed to avoid problems
during integration tests
- Better inspection of beakerlib test results to avoid false positive results


Translations
~~~~~~~~~~~~

- Updated `Bulgarian translation <https://crowdin.com/project/kiwitcms/bg#>`_
- Updated `German translation <https://crowdin.com/project/kiwitcms/de#>`_
- Updated `Hungarian translation <https://crowdin.com/project/kiwitcms/hu#>`_
- Updated `Polish translation <https://crowdin.com/project/kiwitcms/pl#>`_



Kiwi TCMS 9.0.1 (14 Jan 2021)
-----------------------------

Bug fixes
~~~~~~~~~

- Update name of query parameter. Fixes
`Issue 2196 <https://github.com/kiwitcms/Kiwi/issues/2196>`_


Kiwi TCMS 9.0 (12 Jan 2021)
---------------------------

.. important::

This is a major release which includes backwards incompatible
database and API changes, improvements, bug fixes, translation updates,
new tests and internal refactoring.
It is the eight release to include contributions via our
`open source bounty program`_.

This is the third release after `Kiwi TCMS reached 200K pulls
<https://kiwitcms.org/blog/kiwi-tcms-team/2020/10/26/kiwi-tcms-celebrates-200k-downloads/>`_
on Docker Hub!


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)

After upgrade don't forget to::

./manage.py migrate


Improvements
~~~~~~~~~~~~

- Update django from 3.1.4 to 3.1.5
- Update django-contrib-comments from 1.9.2 to 2.0.0
- Update pygithub from 1.53 to 1.54.1
- Update pygments from 2.7.3 to 2.7.4
- Update mysqlclient from 2.0.1 to 2.0.3
- Update node_modules/prismjs from 1.22.0 to 1.23.0
- Update node_modules/marked from 1.2.5 to 1.2.7
- Implement 'Select all' for TestCase Search page. Resolves
`Issue 2103 <https://github.com/kiwitcms/Kiwi/issues/2103>`_ (Bryan Mutai)
- Change ON/OFF button messages for several buttons (Krum Petkov)
- Remove ``delete_selected`` action from admin pages
- Show active test runs in TestPlan page
- Hide irrelevant Version & Build selectors for Testing breakdown telemetry
- Allow ``running`` to be passed as URL query param to TestRun Search page


Settings
~~~~~~~~

- Remove unused ``kiwi.rpc`` log handler from ``LOGGING`` setting


Database
~~~~~~~~

.. warning::

Contains backwards incompatible changes.

- Replace ``Build.product`` with ``Build.version``. Closes
`Issue 246 <https://github.com/kiwitcms/Kiwi/issues/246>`_. Build objects
are now associated with Version objects, not with Product objects!

.. warning::

After migration existing builds will point to the "unspecified" version!
If you want your telemetry to be accurate you will have to update these
objects manually and point them to the appropriate version value!

- Rename related_name for TestExecution model: ``case_run`` -> ``executions``
- Rename related_name for TestCase model: ``case`` -> ``cases``


API
~~~

.. warning::

Contains backwards incompatible changes.

- Methods ``Build.filter``, ``Build.create`` and ``Build.update`` replace the
``product`` field with a ``version`` field


Bug fixes
~~~~~~~~~

- Display raw Markdown text before rendering to fix a bug where anymous users
don't see any text on the screen even if they are allowed to view an object


Refactoring & testing
~~~~~~~~~~~~~~~~~~~~~

- Add tests for ``tcms.core.middleware``. Fixes
`Issue 1605 <https://github.com/kiwitcms/Kiwi/issues/1605>`_ (Gagan Deep)
- Add tests for ``tcms.handlers``. Fixes
`Issue 1611 <https://github.com/kiwitcms/Kiwi/issues/1611>`_ (Gagan Deep)
- Add tests for ``tcms.kiwi_auth.views``. Fixes
`Issue 1608 <https://github.com/kiwitcms/Kiwi/issues/1608>`_
(Abhishek Chaurasia)
- Update pip during bugtracker integration tests to fix dependency issues
- Reformat all files with black and isort. Closes
`Issue 1193 <https://github.com/kiwitcms/Kiwi/issues/1193>`_
- Refactor ``TestExecution.get_bugs()`` to use ``TestExecution.links()``
- Add return statement for invalid form to make pylint happy
- Make ``Bug.assignee`` field a ``UserField``
- Replace deprecated ``ugettext_lazy`` with ``gettext_lazy``
- Fixes for Azure Boards integration tests
- Remove ``CsrfDisableMiddleware``. Closes
`Issue 297 <https://github.com/kiwitcms/Kiwi/issues/297>`_
- Remove unused methods & left-over views


Translations
~~~~~~~~~~~~

- Updated `Catalan translation <https://crowdin.com/project/kiwitcms/ca#>`_
- Updated `Chinese Simplified translation <https://crowdin.com/project/kiwitcms/zh-CN#>`_
- Updated `French translation <https://crowdin.com/project/kiwitcms/fr#>`_
- Updated `Hungarian translation <https://crowdin.com/project/kiwitcms/hu#>`_
- Updated `Japanese translation <https://crowdin.com/project/kiwitcms/ja#>`_
- Updated `Slovenian translation <https://crowdin.com/project/kiwitcms/sl#>`_



Kiwi TCMS 8.9 (07 Dec 2020)
---------------------------

.. important::

This release includes many improvements,
API changes, bug fixes, translation updates,
new tests and internal refactoring.
It is the seventh release to include contributions via our
`open source bounty program`_.

This is the second release after `Kiwi TCMS reached 200K pulls
<https://kiwitcms.org/blog/kiwi-tcms-team/2020/10/26/kiwi-tcms-celebrates-200k-downloads/>`_
on Docker Hub!


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)

After upgrade don't forget to::

./manage.py migrate


Improvements
~~~~~~~~~~~~

- Update django from 3.1.3 to 3.1.4
- Update django-extensions from 3.0.9 to 3.1.0
- Update django-grappelli from 2.14.2 to 2.14.3
- Update pygments from 2.7.2 to 2.7.3
- Update python-bugzilla from 3.0.1 to 3.0.2
- Update node_modules/marked from 1.2.3 to 1.2.5
- Update node_modules/html5sortable from 0.9.18 to 0.10.0
- New ``manage.py initial_setup`` command for one-stop initial setup
(Ivajlo Karabojkov)
- Bug tracker integration with BitBucket (bitbucket.org). Fixes
`Issue 1916 <https://github.com/kiwitcms/Kiwi/issues/1916>`_ (cmbahadir)
- Complete redesign and refactoring of Test Run page:

- Closes
`Issue 189 <https://github.com/kiwitcms/Kiwi/issues/189>`_,
`Issue 241 <https://github.com/kiwitcms/Kiwi/issues/241>`_,
`Issue 212 <https://github.com/kiwitcms/Kiwi/issues/212>`_,
`Issue 431 <https://github.com/kiwitcms/Kiwi/issues/431>`_,
`Issue 1382 <https://github.com/kiwitcms/Kiwi/issues/1382>`_
- Add filter by component & tag. Closes
`Issue 833 <https://github.com/kiwitcms/Kiwi/issues/833>`_
- Don't limit the user to test cases from the parent test plan like before.
Testers can add any test case for execution inside a test run,
even mix & match test cases between products. Fixes
`Issue 1934 <https://github.com/kiwitcms/Kiwi/issues/1934>`_
- Add attachments to Test Run page. Fixes
`Issue 872 <https://github.com/kiwitcms/Kiwi/issues/872>`_
- Refresh execution row after reporting a bug. Closes
`Issue 479 <https://github.com/kiwitcms/Kiwi/issues/479>`_
- ``TestCaseStatus`` can now be customized. Fixes
`Issue 1932 <https://github.com/kiwitcms/Kiwi/issues/1932>`_
- Update documantation & screenshots


Settings
~~~~~~~~

- Setting ``ANONYMOUS_USER_NAME`` is now explicitly defined due to upstream bug
in django-guardian (Abhishek Chaurasia)


Database
~~~~~~~~

- New migrations for customizeable ``TestCaseStatus``


API
~~~

- Add ``TestExecution.history()`` meethod
- Add ``TestCase.history()`` method
- Add ``TestRun.add_cc()`` method
- Add ``TestRun.remove_cc()`` method
- Method ``TestExecution.update()`` will use build from parent test run if a
``build`` field isn't explicitly specified in the arguments
- Update method ``TestRun.add_case()``

- will return existing TestExecution if available
- will raise if test case status is not confirmed
- will always create new test executions with the highest sortkey


Bug fixes
~~~~~~~~~

- Fixed miscellaneous bugs in ``tcms.rpc.testcase`` (Gagan Deep)
- Disable name change in admin for the default groups. Fixes
`Issue 1313 <https://github.com/kiwitcms/Kiwi/issues/1313>`_


Refactoring & testing
~~~~~~~~~~~~~~~~~~~~~

- Add automated tests for ``tcms.core.views.server_error``. Fixes
`Issue 1606 <https://github.com/kiwitcms/Kiwi/issues/1606>`_
(Abhishek Chaurasia)
- Add automated tests for ``tcms.rpc.api.auth``. Fixes
`Issue 1620 <https://github.com/kiwitcms/Kiwi/issues/1620>`_
(Abhishek Chaurasia)
- Add automated test for ``AnonymousViewBackend.has_perm`` method. Fixes
`Issue 1905 <https://github.com/kiwitcms/Kiwi/issues/1905>`_
(Abhishek Chaurasia)
- Add automated tests for ``tcms.core.utils.maito``. Fixes
`Issue 1603 <https://github.com/kiwitcms/Kiwi/issues/1603>`_ (Gagan Deep)
- Add automated tests for ``tcms.utils.github``. Fixes
`Issue 1612 <https://github.com/kiwitcms/Kiwi/issues/1612>`_ (Gagan Deep)
- Add automated tests for ``tcms.rpc.api.testscase``. Fixes
`Issue 1623 <https://github.com/kiwitcms/Kiwi/issues/1623>`_ (Gagan Deep)
- Add automated tests for ``tcms.testcases.views.NewCaseView``. Fixes
`Issue 1614 <https://github.com/kiwitcms/Kiwi/issues/1614>`_ (rish07)
- Add automated tests for ``tcms.testplans.views.NewTestPlanView.`` Fixes
`Issue 1616 <https://github.com/kiwitcms/Kiwi/issues/1616>`_ (awalvie)
- Separate two functions one from another (Alexander Tsvetanov)
- Disable pylint checks (Alexander Tsvetanov)
- Upgrade to MySQL 8 in Travis CI
- Remove unused setup in Travis CI
- Be more robust when keeping internal state for TestPlan page


Translations
~~~~~~~~~~~~

- Updated `Bulgarian translation <https://crowdin.com/project/kiwitcms/bg#>`_
- Updated `Chinese Simplified translation <https://crowdin.com/project/kiwitcms/zh-CN#>`_
- Updated `Czech translation <https://crowdin.com/project/kiwitcms/cs#>`_
- Updated `French translation <https://crowdin.com/project/kiwitcms/fr#>`_
- Updated `Indonesian translation <https://crowdin.com/project/kiwitcms/id#>`_
- Updated `Japanese translation <https://crowdin.com/project/kiwitcms/ja#>`_
- Updated `Russian translation <https://crowdin.com/project/kiwitcms/ru#>`_
- Updated `Slovenian translation <https://crowdin.com/project/kiwitcms/sl#>`_



Kiwi TCMS 8.8 (07 Nov 2020, the 200K edition)
---------------------------------------------

.. important::

This release includes many improvements,
API changes, bug fixes, translation updates,
new tests and internal refactoring.
It is the sixth release to include contributions via our
`open source bounty program`_.

This is also the first release after `Kiwi TCMS reached 200K pulls
<https://kiwitcms.org/blog/kiwi-tcms-team/2020/10/26/kiwi-tcms-celebrates-200k-downloads/>`_
on Docker Hub!


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)

After upgrade don't forget to::

./manage.py migrate


Improvements
~~~~~~~~~~~~

- Update bleach from 3.1.5 to 3.2.1
- Update django-extensions from 3.0.8 to 3.0.9
- Update django from 3.1.1 to 3.1.3
- Update django-simple-history from 2.11.0 to 2.12.0
- Update markdown from 3.2.2 to 3.3.3
- Update pygments from 2.7.0 to 2.7.2
- Update python-bugzilla from 2.5.0 to 3.0.1
- Update node_modules/marked from 1.1.1 to 1.2.3
- Update node_modules/prismjs from 1.21.0 to 1.22.0
- Add management command ``refresh_permission``. Closes
`Issue 1137 <https://github.com/kiwitcms/Kiwi/issues/1137>`_ (Ivajlo Karabojkov)
- Add bug tracker integration for Azure Boards. Closes
`Issue 1979 <https://github.com/kiwitcms/Kiwi/issues/1979>`_ (cmbahadir)
- Add autosave configuration to web editor. Closes
`Issue 1958 <https://github.com/kiwitcms/Kiwi/issues/1958>`_ (Mfon Eti-mfon)
- Change ON/OFF button messages to Yes/No for several buttons
(Alexander Tsvetanov)
- Add support for object-level permissions for TestCase,
TestPlan, TestRun and Bug objects via ``django-guardian``
- Complete redesign of Test Plan page to match the rest of Kiwi TCMS:

- modern look and feel using the PatternFly UI library
- remove unused legacy code & HTML templates
- closes
`Issue 663 <https://github.com/kiwitcms/Kiwi/issues/663>`_,
`Issue 1977 <https://github.com/kiwitcms/Kiwi/issues/1977>`_

- Enable Markdown support for strike-through text
- Always pull latest RPMs when building container images
- Update documentation and images


Settings
~~~~~~~~

- ``AUTHENTICATION_BACKENDS`` setting is now explicitly specified because of
``django-guardian``. Take care to include the default backends if you
override this setting. See ``tcms/settings/common.py`` for more information.


Database
~~~~~~~~

- Add index to ``TestCase.summary`` field
- Additional migrations from ``django-guardian`` around object-level
permissions
- New ``AnonymousUser`` record added by ``django-guardian``
- Start using ``django-tree-queries`` which improves how tree based structures
are stored in the database.

.. important::

Requires PostgreSQL, sqlite3 >= 3.8.3, MariaDB >= 10.2.2 or
MySQL >= 8.0 (if running without ``ONLY_FULL_GROUP_BY``).

.. warning::

Supports only trees with max. 50 levels on MySQL/MariaDB, since those databases
do not support arrays and require us to provide a maximum length upfront.
This means up to 50 levels of nested child-parent test plans!


API
~~~

- Method ``TestExecution.update()`` will now modify field ``close_date``
depending on test execution status. Fixes
`Issue 1820 <https://github.com/kiwitcms/Kiwi/issues/1820>`_
- Method ``TestCase.add_comment()`` now returns the created comment
- Method ``TestExecution.add_comment()`` now returns the created comment
- Method ``TestPlan.add_case()`` now returns the newly added test case
- Add method ``TestCase.sortkeys()``. Fixes
`Issue 444 <https://github.com/kiwitcms/Kiwi/issues/444>`_
- Add method ``Markdown.render()``
- Add method ``TestCase.comments()``
- Add method ``TestPlan.tree()``


Bug fixes
~~~~~~~~~

- Fix url formatting. Fixes
`Issue 1806 <https://github.com/kiwitcms/Kiwi/issues/1806>`_ (Rosen Sasov)
- When deleting TestExecutionStatus check that there will be at least 1 left
before deleting! Closes
`Issue 1978 <https://github.com/kiwitcms/Kiwi/issues/1978>`_
- Update typeahead definitions for test case components, tags and
for adding test plans to test cases. Fixes
`Issue 882 <https://github.com/kiwitcms/Kiwi/issues/882>`_
- Add option to filter by reviewer in Test Plan page. Fixes
`Issue 564 <https://github.com/kiwitcms/Kiwi/issues/564>`_
- Pass the number of disabled test cases to HTML template when
creating a new test run. Fixes
`Issue 718 <https://github.com/kiwitcms/Kiwi/issues/718>`_


Refactoring & testing
~~~~~~~~~~~~~~~~~~~~~

- New linter to warn against ``GenericForeignKey`` fields in models. Closes
`Issue 1303 <https://github.com/kiwitcms/Kiwi/issues/1303>`_ (Bryan Mutai)
- Add tests for ``assign_default_group_permissions()`` (Ivajlo Karabojkov)
- Add tests for ``TestExecutionStatusAdmin``. Refs
`Issue 1618 <https://github.com/kiwitcms/Kiwi/issues/1618>`_ (Mariyan Garvanski)
- Add tests for ``tcms.bugs.views.Search``. Closes
`Issue 1601 <https://github.com/kiwitcms/Kiwi/issues/1601>`_ (Mfon Eti-mfon)
- Add tests for ``tcms.rpc.api.testrun``. Closes
`Issue 1628 <https://github.com/kiwitcms/Kiwi/issues/1628>`_ (lcmtwn)
- Add tests for ``tcms.rpc.api.classification``. Closes
`Issue 1621 <https://github.com/kiwitcms/Kiwi/issues/1621>`_ (Abhishek Chaurasia)
- Add tests for ``tcms.rpc.api.priority``. Closes
`Issue 1622 <https://github.com/kiwitcms/Kiwi/issues/1622>`_ (Abhishek Chaurasia)
- Add tests for ``tcms.rpc.api.testcasestatus``. Closes
`Issue 1624 <https://github.com/kiwitcms/Kiwi/issues/1624>`_ (Abhishek Chaurasia)
- Add tests for ``tcms.rpc.api.attachment``. Closes
`Issue 1619 <https://github.com/kiwitcms/Kiwi/issues/1619>`_ (awalvie)
- Add tests for ``tcms.rpc.api.testexecution.remove_comment``. Closes
`Issue 1625 <https://github.com/kiwitcms/Kiwi/issues/1625>`_ (awalvie)
- Add tests for ``tcms.rpc.api.testexecutionstatus``. Closes
`Issue 1626 <https://github.com/kiwitcms/Kiwi/issues/1626>`_ (awalvie)
- Add tests for ``TestRun.add_case_run()`` method and rename it to
``TestRun.create_execution()``
- ``libkrb5-dev`` is not needed anymore in CI with newer ``tcms-api``
- Use Fedora 32 to build Bugzilla docker image in CI
- Update signature for overriden class to match Django 3.1
- Move SimpleMDE initialization to simplemde_security_overide.js
- Move ``post_save.send()`` from ``bugs.views`` to ``comments.add_comment()``


Translations
~~~~~~~~~~~~

- Updated `Bulgarian translation <https://crowdin.com/project/kiwitcms/bg#>`_
- Updated `Chinese Simplified translation <https://crowdin.com/project/kiwitcms/zh-CN#>`_
- Updated `Czech translation <https://crowdin.com/project/kiwitcms/cs#>`_
- Updated `French translation <https://crowdin.com/project/kiwitcms/fr#>`_
- Updated `Hungarian translation <https://crowdin.com/project/kiwitcms/hu#>`_
- Updated `Italian translation <https://crowdin.com/project/kiwitcms/it#>`_
- Updated `Japanese translation <https://crowdin.com/project/kiwitcms/ja#>`_
- Updated `Slovenian translation <https://crowdin.com/project/kiwitcms/sl#>`_



Kiwi TCMS 8.7 (16 Sep 2020)
---------------------------

**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`_.


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)

After upgrade don't forget to::

./manage.py migrate


Improvements
~~~~~~~~~~~~

- 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:
INSTALLED_APPS.append('captcha')

RECAPTCHA_PUBLIC_KEY = '......'
RECAPTCHA_PRIVATE_KEY = '.....'
RECAPTCHA_USE_SSL = True

For more info see https://www.google.com/recaptcha/admin/
- Replace ``GlobalLoginRequiredMiddleware`` with
``tcms.kiwi_auth.backends.AnonymousViewBackend`` for anonymous read-only
functionality. See section
`Anonymous read-only access <https://kiwitcms.readthedocs.io/en/latest/configuration.html#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


Settings
~~~~~~~~

- Remove setting ``PUBLIC_VIEWS``


API
~~~

- 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 <https://github.com/kiwitcms/Kiwi/issues/1602>`_ (Mariyan Garvanski)
- Add tests for ``tcms.bugs.views.Edit``. Closes
`Issue 1599 <https://github.com/kiwitcms/Kiwi/issues/1599>`_ (Mfon Eti-mfon)
- Add tests for ``tcms.bugs.views.AddComment``. Closes
`Issue 1600 <https://github.com/kiwitcms/Kiwi/issues/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 <https://github.com/kiwitcms/Kiwi/issues/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


Translations
~~~~~~~~~~~~

- Updated `Bulgarian translation <https://crowdin.com/project/kiwitcms/bg#>`_
- Updated `Chinese Traditional translation <https://crowdin.com/project/kiwitcms/zh-TW#>`_
- Updated `French translation <https://crowdin.com/project/kiwitcms/fr#>`_
- Updated `Hungarian translation <https://crowdin.com/project/kiwitcms/hu#>`_
- Updated `Japanese translation <https://crowdin.com/project/kiwitcms/ja#>`_
- Updated `Slovenian translation <https://crowdin.com/project/kiwitcms/sl#>`_



Kiwi TCMS 8.6 (23 Aug 2020)
---------------------------

**IMPORTANT:** this is a high severity security update which includes
improvements, database migrations, API changes, translation updates and
new tests. It is the fourth release to include contributions via our
`open source bounty program`_.


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)

After upgrade don't forget to::

./manage.py migrate


Security
~~~~~~~~

- A high severity vulnerability which allows unprivileged data access
via JSON-RPC endpoints has been fixed:

- Affects all previous versions of Kiwi TCMS
- Instances on public networks, such as Amazon EC2, are at higher risk
- Instances on private networks are still vulnerable to anyone who can
access the same network
- This vulnerability has been disclosed by Michael Longmire (ShastaQA)
and Stone Pack (ShastaQA)

- Update marked from 0.8.2 to 1.1.1 for a medium severity vulnerability, see
`SNYK-JS-MARKED-584281 <https://snyk.io/vuln/SNYK-JS-MARKED-584281>`_


Improvements
~~~~~~~~~~~~

- Update django from 3.0.8 to 3.0.9
- Update django-attachments from 1.5 to 1.6
- Update prismjs from 1.20.0 to 1.21.0
- Update pygithub from 1.51 to 1.53
- Replace deprecated bleach-whitelist with bleach-allowlist
- Make django-extensions a production dependency because it provides
many useful manage.py commands
- Enable syntax highlight for code blocks
- Remove file attachments when related objects are deleted
- Add image and file upload buttons to text editor. Fixes
`Issue 977 <https://github.com/kiwitcms/Kiwi/issues/977>`_
- Require ``auth.view_user`` permission when trying to view user profiles.
Fixes `Issue 1685 <https://github.com/kiwitcms/Kiwi/issues/1685>`_
- Multiple pages now explicitly require view permissions before displaying
read-only information. This gives administrators a finer grained control:

- ``/bugs/<id>/`` -> ``bugs.view_bug``
- ``/bugs/search/`` -> ``bugs.view_bug``
- ``/cases/search/`` -> ``testcases.view_testcase``
- ``/case/<id>/`` -> ``testcases.view_testcase``
- ``/plans/search/`` -> ``testplans.view_testplan``
- ``/plan/<id>/*`` -> ``testplans.view_testplan``
- ``/runs/search/`` -> ``testruns.view_testrun``
- ``/runs/<id>/`` -> ``testruns.view_testrun``

Previously these pages only required the user to be logged in


.. warning::

The ``auth.view_user`` permission is not granted by default because the
profile page contains personal information like names and email address, see
:ref:`managing-permissions`.


Database
~~~~~~~~

- Migrations which manipulate data (contain ``RunPython``) can now be
rollbacked. See ``./manage.py migrate --plan`` for the order in which
migrations are applied (Bryan Mutai)
- Increase ``Product.name`` size from 64 to 255 characters


API
~~~

- Remove method ``TestExecution.create()`` in favor of ``TestRun.add_case()``
- Add method ``User.add_attachment()``
- Multiple API methods now explicitly require view permissions before returning
read-only information. This is in-sync with the per-page changes
listed above:

- ``Bug.filter()`` -> ``bugs.view_bug``
- ``Bug.report()`` -> ``testruns.view_testexecution``
- ``Build.filter()`` -> ``management.view_build``
- ``Category.filter()`` -> ``testcases.view_category``
- ``Classification.filter()`` -> ``management.view_classification``
- ``Component.filter()`` -> ``management.view_component``
- ``PlanType.filter()`` -> ``testplans.view_plantype``
- ``Priority.filter()`` -> ``management.view_priority``
- ``Product.filter()`` -> ``management.view_product``
- ``Tag.filter()`` -> ``management.view_tag``
- ``TestCase.get_components()`` -> ``testcases.view_testcase``
- ``TestCase.get_notification_cc()`` -> ``testcases.view_testcase``
- ``TestCase.filter()`` -> ``testcases.view_testcase``
- ``TestCaseStatus.filter()`` -> ``testcases.view_testcasestatus``
- ``TestExecution.filter()`` -> ``testruns.view_testexecution``
- ``TestExecution.get_links()`` -> ``linkreference.view_linkreference``
- ``TestExecutionStatus.filter()`` -> ``testruns.view_testexecutionstatus``
- ``TestPlan.filter()`` -> ``testplans.view_testplan``
- ``TestRun.get_cases()`` -> ``testruns.view_testrun``
- ``TestRun.filter()`` -> ``testruns.view_testrun``
- ``User.filter()`` -> ``auth.view_user``
- ``Version.filter()`` -> ``management.view_version``


Bug fixes
~~~~~~~~~

- Update documentation to reflect that test cases cannot be rearranged from
within a TestRun but only from a TestPlan. Fixes
`Issue 1805 <https://github.com/kiwitcms/Kiwi/issues/1805>`_ (Prome88)
- Incorrect code formatting for HTML <pre> tags. Closes
`Issue 1300 <https://github.com/kiwitcms/Kiwi/issues/1300>`_
- Fix a bug with the history handler when importing objects with ID field set.
Resolves a crash when trying to restore backup data
- Delete comments when Bug is removed


Refactoring & testing
~~~~~~~~~~~~~~~~~~~~~

- Add linter to warn about missing backwards migrations callable in ``RunPython``
and fix all pylint offenses. Fixes
`Issue 1774 <https://github.com/kiwitcms/Kiwi/issues/1774>`_ (Bryan Mutai)
- Teach linter to check API for ``permissions_required``. Fixes
`Issue 1089 <https://github.com/kiwitcms/Kiwi/issues/1089>`_
- Refactor ``NewExecutionForm`` to use ModelForm (Rosen Sasov)
- Refactor ``UpdateExecutionForm`` to use ModelForm (Rosen Sasov)
- Add tests for ``tcms.bugs.api``. Closes
`Issue 1597 <https://github.com/kiwitcms/Kiwi/issues/1597>`_ (Mfon Eti-mfon)
- Add tests for ``tcms.bugs.views.New``. Closes
`Issue 1598 <https://github.com/kiwitcms/Kiwi/issues/1598>`_ (Mfon Eti-mfon)
- Add tests for ``tcms.rpc.api.testplan``. Closes
`Issue 1627 <https://github.com/kiwitcms/Kiwi/issues/1627>`_ (lcmtwn)
- Add tests for ``percentage()`` function References
`Issue 1602 <https://github.com/kiwitcms/Kiwi/issues/1602>`_ (Mariyan Garvanski)
- Add the ``migrations_order`` command to help test rollbacks
- Adjust code for deprecation warnings from Django 3.1
- Use Python 3 style ``super()`` without arguments
- Update login page to match our new website design


Translations
~~~~~~~~~~~~

- Updated `Chinese Simplified translation <https://crowdin.com/project/kiwitcms/zh-CN#>`_
- Updated `Czech translation <https://crowdin.com/project/kiwitcms/cs#>`_
- Updated `French translation <https://crowdin.com/project/kiwitcms/fr#>`_
- Updated `German translation <https://crowdin.com/project/kiwitcms/de#>`_
- Updated `Hungarian translation <https://crowdin.com/project/kiwitcms/hu#>`_
- Updated `Japanese translation <https://crowdin.com/project/kiwitcms/ja#>`_
- Updated `Portuguese, Brazilian translation <https://crowdin.com/project/kiwitcms/pt-BR#>`_
- Updated `Slovenian translation <https://crowdin.com/project/kiwitcms/sl#>`_



Kiwi TCMS 8.5 (10 Jul 2020)
---------------------------

**IMPORTANT:** this is a medium sized release which includes many improvements,
database migrations, translation updates and new tests.
It is the third release to include contributions via our
`open source bounty program`_.


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)

After upgrade don't forget to::

./manage.py migrate


Improvements
~~~~~~~~~~~~

- Update django from 3.0.7 to 3.0.8
- Update django-colorfield from 0.3.0 to 0.3.2
- Update django-modern-rpc from 0.12.0 to 0.12.1
- Update django-simple-history from 2.10.0 to 2.11.0
- Update mysqlclient from 1.4.6 to 2.0.1
- Update python-gitlab from 2.2.0 to 2.4.0
- Update python-bugzilla from 2.3.0 to 2.5.0
- Add middleware to warn for unapplied migrations. Fixes
`Issue 1696 <https://github.com/kiwitcms/Kiwi/issues/1696>`_ (Bryan Mutai)
- Add "insert table" button to SimpleMDE toolbar. References
`Issue 1531 <https://github.com/kiwitcms/Kiwi/issues/1531>`_ (Bryan Mutai)
- Implement
`kiwitcms-django-plugin <https://kiwitcms.org/blog/kiwi-tcms-team/2020/06/30/django-plugin-for-kiwi-tcms/>`_.
Resolves `Issue 693 <https://github.com/kiwitcms/Kiwi/issues/693>`_
(Bryan Mutai)
- Add missing permission check for ``TestExecution.add_link()`` API method
(Rosen Sasov)
- Add missing permission check for ``TestExecution.remove_link()`` API method
(Rosen Sasov)
- Admin interface will now appear translated
- Propagate server side API errors to the browser. Closes
`Issue 625 <https://github.com/kiwitcms/Kiwi/issues/625>`_,
`Issue 1333 <https://github.com/kiwitcms/Kiwi/issues/1333>`_
- Improvements for Status Matrix telemetry page:

- Make the horizontal scroll bar at the bottom always visible
- Make the header row always visible
- Add button to show columns in reverse. Fixes
`Issue 1682 <https://github.com/kiwitcms/Kiwi/issues/1682>`_
- Make it possible to display TestExecutions from child TestPlans. Fixes
`Issue 1683 <https://github.com/kiwitcms/Kiwi/issues/1683>`_


Database
~~~~~~~~

- Update existing Bug tracker records to match the changes introduced with
the new ``EXTERNAL_BUG_TRACKERS`` setting


Settings
~~~~~~~~

- Add ``EXTERNAL_BUG_TRACKERS`` setting which is a list of dotted class paths
representing external bug tracker integrations. Plugins and Kiwi TCMS admins
can now more easily include customized integrations


Refactoring & testing
~~~~~~~~~~~~~~~~~~~~~

- Add new linter to check for label arguments in form field classes. Fixes
`Issue 738 <https://github.com/kiwitcms/Kiwi/issues/738>`_ (Bryan Mutai)
- Add new linter to check if all forms inherit from ``ModelForm``. Fixes
`Issue 1384 <https://github.com/kiwitcms/Kiwi/issues/1384>`_ (Bryan Mutai)
- Enable pylint plugin ``pylint.extensions.docparams`` and resolve errors. Fixes
`Issue 1192 <https://github.com/kiwitcms/Kiwi/issues/1192>`_ (Bryan Mutai)
- Migrate 'test-for-missing-migrations' from Travis CI to GitHub workflow. Fixes
`Issue 1553 <https://github.com/kiwitcms/Kiwi/issues/1553>`_ (Bryan Mutai)
- Add tests for ``tcms.bugs.api.add_tag()``. References
`Issue 1597 <https://github.com/kiwitcms/Kiwi/issues/1597>`_ (Mfon Eti-mfon)
- Add tests for ``tcms.bugs.api.remove_tag()``. References
`Issue 1597 <https://github.com/kiwitcms/Kiwi/issues/1597>`_ (Mfon Eti-mfon)
- Add test for ``tcms.testplans.views.Edit``. References
`Issue 1617 <https://github.com/kiwitcms/Kiwi/issues/1617>`_ (cmbahadir)
- Add tests for ``markdown2html()``. Fixes
`Issue 1659 <https://github.com/kiwitcms/Kiwi/issues/1659>`_ (Mariyan Garvanski)
- Add test for Cyrillic support with MariaDB. References
`Issue 1770 <https://github.com/kiwitcms/Kiwi/issues/1770>`_


Translations
~~~~~~~~~~~~

- Updated `Chinese Simplified translation <https://crowdin.com/project/kiwitcms/zh-CN#>`_
- Updated `Chinese Traditional translation <https://crowdin.com/project/kiwitcms/zh-TW#>`_
- Updated `French translation <https://crowdin.com/project/kiwitcms/fr#>`_
- Updated `Hungarian translation <https://crowdin.com/project/kiwitcms/hu#>`_
- Updated `Indonesian translation <https://crowdin.com/project/kiwitcms/id#>`_
- Updated `Japanese translation <https://crowdin.com/project/kiwitcms/ja#>`_
- Updated `Slovenian translation <https://crowdin.com/project/kiwitcms/sl#>`_
- Updated `Swahili translation <https://crowdin.com/project/kiwitcms/sw#>`_



Kiwi TCMS 8.4 (03 June 2020)
----------------------------

**IMPORTANT:** this is a medium sized release which includes
minor security fixes, many improvements & bug-fixes and translations
in several new languages. It is the second release to include
contributions via our `open source bounty program`_.

.. important::

Last month we've also reached an important milestone - 100K+ pulls on Docker Hub !!!

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)

After upgrade don't forget to::

./manage.py migrate


Improvements
~~~~~~~~~~~~

- Update Django from 3.0.5 to 3.0.7 -
`security update <https://docs.djangoproject.com/en/3.0/releases/3.0.7/>`_
for functionality not used by Kiwi TCMS
- Update bleach from 3.1.4 to 3.1.5
- Update django-grappelli from 2.14.1 to 2.14.2
- Update django-simple-history from 2.9.0 to 2.10.0
- Update markdown from 3.2.1 to 3.2.2
- Update pygithub from 1.50 to 1.51
- Update python-redmine from 2.2.1 to 2.3.0
- Update patternfly from 3.59.4 to 3.59.5
- Add ``manage.py set_domain`` command to change Kiwi TCMS domain. Fixes
`Issue 971 <https://github.com/kiwitcms/Kiwi/issues/971>`_ (Ivajlo Karabojkov)
- GitHub bug details now works for private issues
- Gitlab bug details now works for private issues
- JIRA bug details now works for private issues
- Redmine bug details now works for private issues
- New feature: 1-click bug report for Bugzilla
- New feature: 1-click bug report for Gitlab
- New feature: 1-click bug report for JIRA
- New feature: 1-click bug report for Redmine
- Reverting to older historical version via Admin panel now redirects
to object which was reverted. Fixes
`Issue 1074 <https://github.com/kiwitcms/Kiwi/issues/1074>`_
- Documentation updates

.. important::

Starting from v8.4 all supported bug trackers now feature
1-click bug report integration!

.. note::

Some external bug trackers like Bugzilla & JIRA provide more
flexibility over which fields are required for a new bug report.
The current functionality should work for vanilla installations and would
fall back to manual bug reporting if it can't create a new bug
automatically!


Database
~~~~~~~~

- Force creation of missing permissions for m2m fields from the
``tcms.bugs`` app:

- ``bugs.add_bug_tags``
- ``bugs.change_bug_tags``
- ``bugs.delete_bug_tags``
- ``bugs.view_bug_tags``
- ``bugs.add_bug_executions``
- ``bugs.change_bug_execution``
- ``bugs.delete_bug_execution``
- ``bugs.view_bug_executions``

.. warning::

TCMS admins of existing installations will have to assign these by hand
to users/groups who will be allowed to change tags on bugs!


Settings
~~~~~~~~

- Define the ``KIWI_DISABLE_BUGTRACKER=yes`` environment variable if you wish
to disable the internal bug tracker. Closes
`Issue 1370 <https://github.com/kiwitcms/Kiwi/issues/1370>`_


Bug fixes
~~~~~~~~~

- Workaround missing MariaDB CHARSET/COLLATION support, see our
``docker-compose.yml``. Fixes
`Issue 1700 <https://github.com/kiwitcms/Kiwi/issues/1700>`_
- Install missing ``/usr/bin/mysql`` in container
- Warning message for unconfigured Kiwi TCMS domain does not show HTML tags in
Admin anymore. Fixes
`Issue 964 <https://github.com/kiwitcms/Kiwi/issues/964>`_
- Unescape the ``&amp;`` string when trying to open new windows after
clicking the 'Report bug' button in TestExecution. Fixes
`Issue 1533 <https://github.com/kiwitcms/Kiwi/issues/1533>`_
- Try harder to restore the original navigation menu instead of
leaving bogus menu items. Fixes
`Issue 991 <https://github.com/kiwitcms/Kiwi/issues/991>`_
- Robot Framework plugin is now GA. Close
`Issue 984 <https://github.com/kiwitcms/Kiwi/issues/984>`_
- Add LinkReference to TestExecution after creating bug via 1-click.
The UI still needs to be refreshed which will be implemented together
with the redesign of the TestRun page
- Update documented signature for API method ``TestCase.add_component`` to
match current behavior, see https://stackoverflow.com/questions/61648405/


Refactoring & testing
~~~~~~~~~~~~~~~~~~~~~

- Migrate ``check-docs-source-in-git`` to GitHub workflows. Fixes
`Issue 1552 <https://github.com/kiwitcms/Kiwi/issues/1552>`_ (Prome88)
- Migrate ``build-for-pypi`` to GitHub workflows. Fixes
`Issue 1554 <https://github.com/kiwitcms/Kiwi/issues/1554>`_ (lcmtwn)
- Add tests for ``TestCaseAdmin`` (Mariyan Garvanski)
- Add tests for ``BugAdmin``. Fixes
`Issue 1596 <https://github.com/kiwitcms/Kiwi/issues/1596>`_ (Mariyan Garvanski)
- Omit ``utils/test`` from coverage reports. Fixes
`Issue 1631 <https://github.com/kiwitcms/Kiwi/issues/1631>`_ (cmbahadir)
- Omit ``tcms/tests`` from coverage reports. Fixes
`Issue 1630 <https://github.com/kiwitcms/Kiwi/issues/1630>`_ (cmbahadir)
- Add tests for ``tcms.core.forms.fields`` - Fixes
`Issue 1629 <https://github.com/kiwitcms/Kiwi/issues/1629>`_ (cmbahadir)
- Add tests for ``TestExecution.update()`` for ``case_text_version`` field
(Rosen Sasov)
- Refactor bulk-update methods in TestRun page to use JSON-RPC. Fixes
`Issue 1063 <https://github.com/kiwitcms/Kiwi/issues/1063>`_ (Rosen Sasov)
- Start using ``_change_reason`` instead of ``changeReason`` field in
django-simple-history
- Remove unused ``StripURLField`` & ``Version.string_to_id()``
- Refactoring around TestCase and TestPlan cloning methods
- Start testing with the internal bug tracker disabled
- Start testing with all supported external bug trackers. Fixes
`Issue 1079 <https://github.com/kiwitcms/Kiwi/issues/1079>`_
- Start Codecov for coverage reports
- Add tests for presense of mysql/psql binaries in container
- Add ``APIPermissionsTestCase`` with example in
``TestVersionCreatePermissions``
- Move most test jobs away from Travis CI to GitHub workflows


Translations
~~~~~~~~~~~~

- Updated `Bengali translation <https://crowdin.com/project/kiwitcms/bn#>`_
- Updated `Bulgarian translation <https://crowdin.com/project/kiwitcms/bg#>`_
- Updated `Chinese Simplified translation <https://crowdin.com/project/kiwitcms/zh-CN#>`_
- Updated `French translation <https://crowdin.com/project/kiwitcms/fr#>`_
- Updated `German translation <https://crowdin.com/project/kiwitcms/de#>`_
- Updated `Hindi translation <https://crowdin.com/project/kiwitcms/hi#>`_
- Updated `Hungarian translation <https://crowdin.com/project/kiwitcms/hu#>`_
- Updated `Indonesian translation <https://crowdin.com/project/kiwitcms/id#>`_
- Updated `Japanese translation <https://crowdin.com/project/kiwitcms/ja#>`_
- Updated `Korean translation <https://crowdin.com/project/kiwitcms/ko#>`_
- Updated `Russian translation <https://crowdin.com/project/kiwitcms/ru#>`_
- Updated `Slovenian translation <https://crowdin.com/project/kiwitcms/sl#>`_
- Updated `Spanish translation <https://crowdin.com/project/kiwitcms/es-ES#>`_
- Updated `Swahili translation <https://crowdin.com/project/kiwitcms/sw#>`_

.. note::

Some of the translations in Chinese and German and all of the strings in
Japanese and Korean have been contributed by a non-native speaker and are
sub-optimal, see
`OpenCollective 18663 <https://opencollective.com/kiwitcms/expenses/18663>`_.
If you are a native in these languages and spot strings which don't
sit well with you we kindly ask you to
`contribute a better translation <https://kiwitcms.readthedocs.io/en/latest/contribution.html#translation>`_
via the built-in translation editor!


Kiwi TCMS 8.3 (27 Apr 2020)
---------------------------

**IMPORTANT:** this is a small release which updates 3rd party libraries,
provides several improvements, includes minor API changes and new translations.
It is the first release to include contributions via our
`open source bounty program`_.

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)

After upgrade don't forget to::

./manage.py migrate


Improvements
~~~~~~~~~~~~

- Update django-colorfield from 0.2.2 to 0.3.0
- Update django-simple-history from 2.8.0 to 2.9.0
- Update prismjs from 1.19.0 to 1.20.0
- Update psycopg2 from 2.8.4 to 2.8.5
- Update pygithub from 1.47 to 1.50
- Update python-gitlab from 2.1.2 to 2.2.0
- It is now possible to reopen closed bugs - Fixes
`Issue 1152 <https://github.com/kiwitcms/Kiwi/issues/1152>`_ (cmbahadir)
- Visual improvements for Status matrix telemetry:

- columns now link to test runs
- tooltips show test run summary

- Show TOTAL in tooltip for Execution trends telemetry
- Self-signed SSL certificate is now built more frequently and is valid
for 10 years
- Improved documentation around self-signed certificates
- Improved documentation around e-mail backend configuration. Closes
`Issue 1070 <https://github.com/kiwitcms/Kiwi/issues/1070>`_
(Schwarzkrieger)


API
~~~

- Methods ``TestPlan.create``, ``TestPlan.update`` and ``TestRun.update``
now use Django's ModelForm to properly validate input data against the model
- Method ``TestCase.update`` now also accepts username and email values for
fields ``author``, ``default_tester`` and ``reviewer``


Refactoring
~~~~~~~~~~~

- Migrate bandit test job to GitHub workflows, Closes
`Issue 1550 <https://github.com/kiwitcms/Kiwi/issues/1550>`_ (lcmtwn)
- Migrate doc8 test job to GitHub workflows. Closes
`Issue 1551 <https://github.com/kiwitcms/Kiwi/issues/1551>`_ (Prome88)
- Add 2 more tests (Mariyan Garvanski)
- Convert TP edit page to class based view
- Convert forms to ModelForm


Translations
~~~~~~~~~~~~

- Updated `Chinese Simplified translation <https://crowdin.com/project/kiwitcms/zh-CN#>`_
- Updated `German translation <https://crowdin.com/project/kiwitcms/de#>`_
- Updated `French translation <https://crowdin.com/project/kiwitcms/fr#>`_
- Updated `Portuguese, Brazilian translation <https://crowdin.com/project/kiwitcms/pt-BR#>`_
- Updated `Russian translation <https://crowdin.com/project/kiwitcms/ru#>`_
- Updated `Slovenian translation <https://crowdin.com/project/kiwitcms/sl#>`_
- Updated `Vietnamese translation <https://crowdin.com/project/kiwitcms/vi#>`_



Kiwi TCMS 8.2 (03 Apr 2020)
---------------------------

**IMPORTANT:** this is a small release which updates 3rd party libraries,
provides minor improvements, minor API changes and some new translations.


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)

After upgrade don't forget to::

./manage.py migrate


Improvements
~~~~~~~~~~~~

- Update bleach from 3.1.1 to 3.1.4
- Update django from 3.0.4 to 3.0.5
- Update django-colorfield from 0.2.1 to 0.2.2
- Update pygithub from 1.46 to 1.47
- Update python-gitlab from 2.0.1 to 2.1.2
- Update marked(js) to version 0.8.2
- Change default MariaDB charset and collation to utf8mb4. Will only affect
new installations. Closes
`Issue 327 <https://github.com/kiwitcms/Kiwi/issues/327>`_
- Document ``TCMS_PLAN_ID`` ENV variable supported by automation framework
plugins
- Test case Search page now allows searching for records containing the
specified text. Closes 1209 Schwarzkrieger
- Provide ``../site-packages/tcms_settings_dir/`` when installing Kiwi TCMS
which is an empty pkgutil-style namespace where other packages can drop
their configuration
- Hide empty values in Execution trends chart tooltips


API
~~~

- Remove ``Auth.login_krbv()`` method
- Method ``TestRun.update()`` will now accept ``%Y-%m-%d %H:%M:%S``
timestamp format. The previous format ``%Y-%m-%d`` is also supported
- Method ``TestExecution.create()`` now defaults to first neutral status
instead of searching for the hard-coded ``IDLE``. That means newly created
test executions which do not specify status will be created with the first
neutral status found in the database


Refactoring
~~~~~~~~~~~

- Fix pylint errors. Closes
`Issue 1510 <https://github.com/kiwitcms/Kiwi/issues/1510>`_ (cmbahadir)
- Add tests for ``TestRunAdmin.delete_view()`` (Mariyan Garvanski)
- Revert "[l10n] Add Serializer class which returns untranslated models"


Translations
~~~~~~~~~~~~

- Updated `Bulgarian translation <https://crowdin.com/project/kiwitcms/bg#>`_
- Updated `Portuguese, Brazilian translation <https://crowdin.com/project/kiwitcms/pt-BR#>`_



Kiwi TCMS 8.1 (04 Mar 2020)
---------------------------

**IMPORTANT:** this is a small security and improvement release which
also includes several bug fixes, internal refactoring and updated translations.


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)

After upgrade don't forget to::

./manage.py migrate


Security
~~~~~~~~

- JSON-RPC handler will now HTML escape all strings. This prevents XSS attacks
via tags, components or anything else which is loaded on the web page via RPC
and then shown as string. Even if someone saves
``<script>alert(123);</script>`` in the database the returned result will be
HTML escaped and will not be executed as JavaScript!

.. note::

This is easy to exploit but people able to do so should have accounts in
your Kiwi TCMS installation and write privileges on their accounts. If they
do this means they can cause a lot more damage much more easily!

- Update Django from 3.0.3 to 3.0.4 - fixes security issue CVE-2020-9402:
Potential SQL injection via ``tolerance`` parameter in GIS functions and
aggregates on Oracle which we believe does not affect Kiwi TCMS


Improvements
~~~~~~~~~~~~

- Update bleach from 3.1.0 to 3.1.1
- Update django-colorfield from 0.1.15 to 0.2.1
- Update markdown from 3.2 to 3.2.1
- On bug creation send email to assignee. Fixes
`Issue 1154 <https://github.com/kiwitcms/Kiwi/issues/1154>`_ (Mfon Eti-mfon)
- Make it possible to provide override settings in a directory. Kiwi TCMS will
respect:

- ``local_settings.py``
- ``local_settings_dir/*.py``

For more information see
https://kiwitcms.readthedocs.io/en/latest/installing_docker.html#customization
- Allow adding TestPlan to TestCase via UI. Fixes
`Issue 1021 <https://github.com/kiwitcms/Kiwi/issues/1021>`_
- Add visual representation of failures in TestCase health telemetry
- Add helper text to TestExecutionStatus admin
- Add link to discussion forum in Help menu


API
~~~

- ``TestCase.create()`` method no longer accepts ``product`` or ``product_id``
fields which have previously been deprecated
- API methods which receive True/False values will no longer parse yes,no,1,0
values. The only accepted values are boolean constants defined in the calling
programming language which are then transmitted via XML-RPC or JSON-RPC and
converted to native boolean on the backend


Bug fixes
~~~~~~~~~

- The number of search results shown per page can now be controlled via
``DEFAULT_PAGE_SIZE`` setting, which is 100 by default. Fixes
`Issue 1210 <https://github.com/kiwitcms/Kiwi/issues/1210>`_ (Ivailo Karabojkov)
- Use comma separated display of components in bug reports. Fixes
`Issue 1157 <https://github.com/kiwitcms/Kiwi/issues/1157>`_ (Ivailo Karabojkov)
- Update selector for 'Select All' test executions in TestRun page. Fixes
`Issue 1404 <https://github.com/kiwitcms/Kiwi/issues/1404>`_
- Fix crash when sorting test cases in TestPlan page. Fixes
`Sentry KIWI-TCMS-A6 <https://sentry.io/organizations/open-technologies-bulgaria-ltd/issues/1519809326/>`_
- Fix a ``TC-undefined`` displayed in TestCase health telemetry


Refactoring
~~~~~~~~~~~

- Add test for ``TestRunAdmin.change_view()`` (Mariyan Garvanski)
- Remove unused ``showCaseRunsWithSelectedStatus``
- Internal JavaScript updates


Translations
~~~~~~~~~~~~

- Updated `Bulgarian translation <https://crowdin.com/project/kiwitcms/bg#>`_
- Updated `Chinese Simplified translation <https://crowdin.com/project/kiwitcms/zh-CN#>`_
- Updated `French translation <https://crowdin.com/project/kiwitcms/fr#>`_
- Updated `Slovenian translation <https://crowdin.com/project/kiwitcms/sl#>`_



Kiwi TCMS 8.0 (12 Feb 2020)
---------------------------

**IMPORTANT:** this is a major release which includes important database and
API changes, several improvements and bug fixes. Multiple API methods are now
incompatible with older releases and extra caution needs to be applied when
upgrading via ``docker-compose.yml`` because newer MariaDB versions are
breaking direct upgrades from existing installations!

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)

After upgrade don't forget to::

./manage.py migrate


Improvements
~~~~~~~~~~~~

- Update Django from 3.0.2 to 3.0.3
- Update django-grappelli from 2.13.3 to 2.14.1
- Update markdown from 3.1.1 to 3.2
- Update python-gitlab from 1.15.0 to 2.0.1
- Update pygithub from 1.45 to 1.46
- Allow customization of test execution statuses via admin.
For more information see
https://kiwitcms.readthedocs.io/en/latest/admin.html#test-execution-statuses.
Fixes `Issue 236 <https://github.com/kiwitcms/Kiwi/issues/236>`_
- Add passing rate chart to Execution trends telemetry
- Documentation updates (Prome88)


Database
~~~~~~~~

This release adds several migrations which alter the underlying database schema
by renaming multiple columns.

.. warning::

- SQLite has very poor capabilities for altering schema and it will break
when run with existing database! If you had deployed Kiwi TCMS with
SQLite for production purposes you will not be able to upgrade! We recommend
switching to Postgres first and then upgrading!

- ``docker-compose.yml`` has been updated from MariaDB 5.5 to MariaDB 10.3.
The 10.x MariaDB containers change their ``datadir`` configuration from
``/var/lib/mysql`` to ``/var/lib/mysql/data``! We recommend first upgrading
your MariaDB version, using Kiwi TCMS 7.3 and afterwards upgrading to
Kiwi TCMS 8.0:

1. Backup existing database with::

docker exec -it kiwi_db mysqldump -u kiwi -pYourPass kiwi > backup.sql

2. ``docker-compose down``
3. ``docker volume rm kiwi_db_data`` - will remove existing data volume
b/c of incompatibilities between different MariaDB versions
4. ``docker-compose up`` - will recreate data volume with missing data. e.g.
``manage.py showmigrations`` will report that 0 migrations have been applied.
5. Restore the data from backup::

cat backup.sql | docker exec -u 0 -i kiwi_db /opt/rh/rh-mariadb103/root/usr/bin/mysql kiwi

.. note::

This connects to the database as the root user

6. Proceed to upgrade your Kiwi TCMS container !


- Remove model fields of type ``AutoField``. They are a legacy construct
and shouldn't be specified in the source code! Django knows how to add them
dynamically. These are:

- ``Tag.id``
- ``TestCaseStatus.id``
- ``Category.id``
- ``PlanType.id``
- ``TestExecutionStatus.id``

- Remove ``db_column`` attribute from model fields
- Rename several primary key fields to ``id``:

- ``Build.build_id`` -> ``Build.id``
- ``TestRun.run_id`` -> ``TestRun.id``
- ``TestPlan.plan_id`` -> ``TestPlan.id``
- ``TestCase.case_id`` -> ``TestCase.id``
- ``TestExecution.case_run_id`` -> ``TestExecution.id``


API
~~~

.. warning::

The database schema changes mentioned above affect multiple API methods
in a backwards incompatible way!
There is possibility that your API scripts will also be affected. You will
have to adjust those to use the new field names where necessary!

- Methods ``Build.create()``, ``Build.filter()`` and ``Build.update()`` will
return ``id`` instead of ``build_id`` field
- Method ``TestRun.get_cases()`` will return ``execution_id`` instead of
``case_run_id`` field and ``id`` instead of ``case_id`` field
- Methods ``TestRun.add_case()``, ``TestExecution.create()``,
``TestExecution.filter()`` and ``TestExecution.update()`` will return
``id`` instead of ``case_run_id`` field
- Methods ``TestRun.create()``, ``TestRun.filter()``, ``TestRun.update()`` will
return ``id`` instead of ``run_id`` field
- Methods ``TestPlan.create()``, ``TestPlan.filter()`` and
``TestPlan.update()`` will return ``id`` instead of ``plan_id`` field
- Methods ``TestCase.add_component()``, ``TestCase.create()``,
``TestCase.filter()`` and ``TestCase.update()`` will return ``id`` instead
of ``case_id`` field

.. note::

Kiwi TCMS automation framework plugins have been updated to work with the
newest API. At the time of Kiwi TCMS v8.0 release their versions are:

- kiwitcms-tap-plugin v8.0.1
- kiwitcms-junit.xml-plugin v8.0.1
- kiwitcms-junit-plugin v8.0


Bug fixes
~~~~~~~~~

- Allow displaying lists with more then 9 items when reviewing test cases. Fixes
`Issue 339 <https://github.com/kiwitcms/Kiwi/issues/339>`_ (Mfon Eti-mfon)
- Make ``tcms.tests.storage.RaiseWhenFileNotFound capable of finding
finding static files on Windows which enables development mode for folks
not using Linux environment. See
`SO 55297178 <https://stackoverflow.com/questions/55297178>`_ (Mfon Eti-mfon)
- Allow changing test execution status without adding comment. Fixes
`Issue 1261 <https://github.com/kiwitcms/Kiwi/issues/1261>`_
- Properly refresh test run progress bar when changing statuses. Fixes
`Issue 1326 <https://github.com/kiwitcms/Kiwi/issues/1326>`_
- Fix a bug where updating test cases from the UI was causing text and various
other fields to be reset. Fixes
`Issue 1318 <https://github.com/kiwitcms/Kiwi/issues/1318>`_


Refactoring
~~~~~~~~~~~

- Extract attachments widget to new template. Fixes
`Issue 1124 <https://github.com/kiwitcms/Kiwi/issues/1124>`_
(Rosen Sasov)
- Rename RPC related classes. Fixes
`Issue 682 <https://github.com/kiwitcms/Kiwi/issues/682>`_
(Rosen Sasov)
- Add new test (Mariyan Garvanski)
- Start using GitHub actions, first for running flake8
- Remove unused ``TestCase.get_previous_and_next()``
- Remove unused ``TestCaseStatus.string_to_instance()``
- Remove unused ``TestCase.create()``
- Remove unused ``json_success_refresh_page()``
- Remove unused fields from ``SearchPlanForm``
- Use JSON-RPC in ``previewPlan()``
- Remove ``toggleTestCaseContents()``, duplicate of
``toggleTestExecutionPane()``
- Refactor a few more views to class-based


Translations
~~~~~~~~~~~~

- Updated `Bulgarian translation <https://crowdin.com/project/kiwitcms/bg#>`_
- Updated `French translation <https://crowdin.com/project/kiwitcms/fr#>`_
- Updated `Korean translation <https://crowdin.com/project/kiwitcms/ko#>`_
- Updated `Slovenian translation <https://crowdin.com/project/kiwitcms/sl#>`_
- Updated `Turkish translation <https://crowdin.com/project/kiwitcms/tr#>`_



Kiwi TCMS 7.3 (16 Jan 2020)
---------------------------

**IMPORTANT:** this is a critical security update for
**CVE-2019-19844: Potential account hijack via password reset form!**

Also migrates to Django 3.0 and includes several other improvement
and bug-fixes!


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)

After upgrade don't forget to::

./manage.py migrate


Improvements
~~~~~~~~~~~~

- Update Django from 2.2.8 to 3.0.2
- Update python-gitlab from 1.13.0 to 1.15.0
- Update pygithub from 1.44.1 to 1.45
- Update django-grappelli from 2.13.2 to 2.13.3
- Bump django-uuslug from 1.1.9 to 1.2.0
- Bump django-attachments from 1.4.1 to 1.5
- Bump django-vinaigrette from 1.2.0 to 2.0.1
- Update marked to version 0.8.0
- Update prismjs to version 1.19.0
- Generalize existing ``kiwitcms.telemetry.plugins`` handling code by
renaming the entry point to ``kiwitcms.plugins``
- Refactor views to class based (Svetlozar Stoyanov)
- Teach Kiwi TCMS to automatically report bugs to GitHub when the user
selects such action. Fall back to opening a new browser window for
manually entering the bug if something goes wrong


Database
~~~~~~~~

- When migrating from the older ``Bug`` model to ``LinkReference`` skip
bugs which are attached directly to test cases instead of test executions.
See `SO 59321756 <https://stackoverflow.com/questions/59321756/>`_
- Remove ``AutoField.max_length`` because it is ignored by Django 3


API
~~~

- ``TestCase.update()`` method now allows to update the ``author`` field. Fixes
`Issue 630 <https://github.com/kiwitcms/Kiwi/issues/630>`_


Bug fixes
~~~~~~~~~

- Modify template pass ``object`` as ``test_plan``. Fixes
`Issue 1307 <https://github.com/kiwitcms/Kiwi/issues/1307>`_ (Ed Oswald S. Go)
- Enable version selection in test plan search page. Fixes
`Issue 1276 <https://github.com/kiwitcms/Kiwi/issues/1276>`_
- Apply percentage rounding for completed test executions. Fixes
`Issue 1230 <https://github.com/kiwitcms/Kiwi/issues/1230>`_
- Fix a logical bug in conditional expression when deciding whether or not
reporting bugs to selected issue tracker is disabled


Refactoring
~~~~~~~~~~~

- Add code of conduct. Fixes
`Issue 1185 <https://github.com/kiwitcms/Kiwi/issues/1185>`_ (Rosen Sasov)
- Add test for ``KIWI_DONT_ENFORSE_HTTPS``. Closes
`Issue 1274 <https://github.com/kiwitcms/Kiwi/issues/1274>`_
- Replace ``ugettext_lazy`` with ``gettext_lazy`` for Django 3
- Remove ``BaseCaseSearchForm.bug_id`` field
- Refactor testcase edit view to class-based
- Happy New Year pylint


Translations
~~~~~~~~~~~~

- Updated `Chinese Simplified translation <https://crowdin.com/project/kiwitcms/zh-CN#>`_
- Updated `Slovenian translation <https://crowdin.com/project/kiwitcms/sl#>`_
- Updated `Vietnamese translation <https://crowdin.com/project/kiwitcms/vi#>`_



Kiwi TCMS 7.2 (08 Dec 2019)
---------------------------


**IMPORTANT:** this is an improvement & bug fix release which includes
new database migrations and API methods, internal refactoring and updated
translations.


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)

After upgrade don't forget to::

./manage.py migrate


Improvements
~~~~~~~~~~~~

- Base docker image to new CentOS 8
- Update Django from 2.2.6 to 2.2.8
- Update django-contrib-comments from 1.9.1 to 1.9.2
- Update django-grappelli from 2.13.1 to 2.13.2
- Update django-modern-rpc from 0.11.1 to 0.12.0
- Update django-simple-history from 2.7.3 to 2.8.0
- Update mysqlclient from 1.4.4 to 1.4.6
- Update pygithub from 1.44 to 1.44.1
- Update python-gitlab from 1.12.1 to 1.13.0
- Several documentation updates


Database migrations
~~~~~~~~~~~~~~~~~~~

- Add new database fields ``weight``, ``icon`` and ``color`` to
``TestExecutionStatus`` and adjust existing code to work with them.
This is a necessary step before allowing customization of test execution
statuses, see
`Issue 236 <https://github.com/kiwitcms/Kiwi/issues/236>`_


API
~~~

- RPC method ``TestExecution.add_comment()`` now requires
``django_comments.add_comment`` permission
- Add new RPC method ``TestExecution.remove_comment()``
- Add new RPC method ``TestCase.add_comment()``
- Add new RPC method ``TestCase.remove_comment()``


Bug fixes
~~~~~~~~~

- ``testplans.views.DeleteCasesView`` now requires
``testplans.change_testplan`` permission (Svetlomir Balevski)
- ``testplans.views.ReorderCasesView`` now requires
``testplans.change_testplan`` permission (Svetlomir Balevski)
- Fix counting bug in execution trends telemetry
- Fix several telemetry queries to still show data in the corner case
where test cases have been deleted from a TestPlan but test runs
are still available
- Fix broken bulk menu in TestRun page when (translated) status names
are too long
- Automatically expand TestExecution comment history if there are comments
present. Fixes
`Issue 349 <https://github.com/kiwitcms/Kiwi/issues/349>`_ (Matt Porter)
- Document timezone settings and show current server time in navbar. Fixes
`Issue 1206 <https://github.com/kiwitcms/Kiwi/issues/1206>`_
- Check for permissions in HTML template. Closes
`Issue 961 <https://github.com/kiwitcms/Kiwi/issues/961>`_
- Document bug tracker integration support. Fixes
`Issue 698 <https://github.com/kiwitcms/Kiwi/issues/698>`_
- Delete comments when TestCase and TestExecution are removed. Closes
`Issue 1028 <https://github.com/kiwitcms/Kiwi/issues/1028>`_


Refactoring
~~~~~~~~~~~

- Pylint fixes (Mariyan Garvanski)
- Use ``django.utils.timezone.now()`` instead of ``datetime.now()``. Closes
`Issue 545 <https://github.com/kiwitcms/Kiwi/issues/545>`_
- Use JSON-RPC instead of backend views when working with comments. Resolves
`Issue 960 <https://github.com/kiwitcms/Kiwi/issues/960>`_
- Remove ``tcms.core.contrib.comments`` module. Closes
`Issue 959 <https://github.com/kiwitcms/Kiwi/issues/959>`_
- Remove ``label=`` attribute from form field. Fixes
`Issue 652 <https://github.com/kiwitcms/Kiwi/issues/652>`_
- Move and rename XML-RPC forms. Resolves
`Issue 681 <https://github.com/kiwitcms/Kiwi/issues/681>`_
- Convert ``testplans.views.DeleteCasesView`` to JSON-RPC
- Refactor more views from function based to class based
- Remove duplicate JavaScript


Translations
~~~~~~~~~~~~

- Updated `Bulgarian translation <https://crowdin.com/project/kiwitcms/bg#>`_
- Updated `Chinese Traditional translation <https://crowdin.com/project/kiwitcms/zh-TW#>`_
- Updated `French translation <https://crowdin.com/project/kiwitcms/fr#>`_



Kiwi TCMS 7.1 (29 Oct 2019)
---------------------------

**IMPORTANT:** this is a small improvement update which includes
database schema and API changes, several other improvements,
internal refactoring and updated translations.


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)

After upgrade don't forget to::

./manage.py migrate


Improvements
~~~~~~~~~~~~

- Update django from 2.2.5 to 2.2.6
- Update python-gitlab from 1.11.0 to 1.12.1
- Update pygithub from 1.43.8 to 1.44
- Update psycopg2 from 2.8.3 to 2.8.4
- Add help tooltips in all telemetry pages
- Better styling for checkboxes in 'Add hyperlink' dialog,
part of TestRun page
- Add hyperlink validation. Fixes
`Issue 1147 <https://github.com/kiwitcms/Kiwi/issues/1147>`_

Database migrations
~~~~~~~~~~~~~~~~~~~

- Add ``bugs`` permissions to ``Tester`` group. Will make any difference
only if upgrading from existing installation


API
~~~

- New method ``Bug.remove()``


Bug fixes
~~~~~~~~~

- Always build with the latest versions of translations
- Add 'Delete' menu item in Bugs page. Fixes
`Issue 1153 <https://github.com/kiwitcms/Kiwi/issues/1153>`_
- When deleting hyperlink from TestExecution hide the actual UI
elements from the page
- Fix failure to delete TCs when the number of TCs inside TP is greater
than 100. Fixes
`Issue 1149 <https://github.com/kiwitcms/Kiwi/issues/1149>`_ and
`Sentry KIWI-TCMS-8F <https://sentry.io/organizations/open-technologies-bulgaria-ltd/issues/1245504316/>`_


Refactoring
~~~~~~~~~~~

- Rename directory ``xmlrpc`` to ``rpc`` and pylint updates. Refs
`Issue 682 <https://github.com/kiwitcms/Kiwi/issues/682>`_
(Matej Aleksandrov, Sinergise)
- Remove labels from form fields, Refs
`Issue 652 <https://github.com/kiwitcms/Kiwi/issues/652>`_ (Azmi YÜKSEL)
- New base class for tests around permissions (Svetlomir Balevski)
- New "blueprint" test case around permissions to make testing in this area
more robust
- Refactor many views from function based to class based
- Update stale tests in ``tcms/core/tests/`` and make sure they aren't ignored
by the test runner
- Remove empty class ``XMLRPCBaseCaseForm``
- Remove ``XMLRPCNewCaseForm``, duplicate of ``NewCaseForm``
- Remove ``rpc.forms.UpdateCaseForm`` in favor of ``XMLRPCUpdateCaseForm``
- Update only English sources with new strings as a temporary workaround b/c
Crowdin uses different formatting heuristics than gettext. This will minimize
the number of .po format changes
- A few pylint fixes


Translations
~~~~~~~~~~~~

- Updated `Albanian translation <https://crowdin.com/project/kiwitcms/sq#>`_ - 97%
- Updated `Bulgarian translation <https://crowdin.com/project/kiwitcms/bg#>`_ - 91%
- Updated `Chinese Simplified <https://crowdin.com/project/kiwitcms/zh-CN#>`_ - 71%
- Updated `Greek translation <https://crowdin.com/project/kiwitcms/el#>`_ - 44%
- Updated `Italian translation <https://crowdin.com/project/kiwitcms/it#>`_ - 97%
- Updated `Japanese translation <https://crowdin.com/project/kiwitcms/ja#>`_ - 0%
- Updated `Macedonian translation <https://crowdin.com/project/kiwitcms/mk#>`_ - 11%
- Updated `Russian translation <https://crowdin.com/project/kiwitcms/ru#>`_ - 97%
- Updated `Slovenian translation <https://crowdin.com/project/kiwitcms/sl#>`_ - 100%
- Updated `Spanish translation <https://crowdin.com/project/kiwitcms/es-ES#>`_ - 96%
- Updated `Turkish translation <https://crowdin.com/project/kiwitcms/tr#>`_ - 97%



Kiwi TCMS 7.0 (24 Sep 2019)
---------------------------

**IMPORTANT:** this is a major release which includes security updates,
significant database schema and API changes, many improvements,
removed functionality, bug fixes, substantial internal refactoring and
several new languages.


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)

After upgrade don't forget to::

./manage.py migrate


Security
~~~~~~~~

- API method ``BugSystem.filter()`` has been removed (now unused) but
it was possible to use this method to steal passwords or keys used for
Issue Tracker integration. This vulnerability could be exploited by
users logged into Kiwi TCMS and is classified as medium severity!
We advise you to change your integration API keys and passwords
immediately!


Improvements
~~~~~~~~~~~~

- Update Django from 2.2.4 to 2.2.5
- Update django-uuslug from 1.1.8 to 1.1.9
- Update mysqlclient from 1.4.2.post1 to 1.4.4
- Update python-bugzilla from 2.2.0 to 2.3.0
- Update python-gitlab from 1.10.0 to 1.11.0
- Update patternfly from 3.59.3 to 3.59.4
- Reduce docker image size from 1.01 GB to 577 MB
- Add TestCase Health telemetry
- Add support for Redmine issue tracker. Fixes
`Issue 41 <https://github.com/kiwitcms/Kiwi/issues/41>`_ (Jesse C. Lin)
- Add breathing room around HTML form's submit buttons (Rady Madjev)
- New TestRun page action: bulk-add hyperlinks to TestExecution(s)
- Make it possible to disable HTTPS by specifying the
``KIWI_DONT_ENFORCE_HTTPS`` environment variable! Fixes
`Issue 1036 <https://github.com/kiwitcms/Kiwi/issues/1036>`_ (Marco Descher)
- Documentation updates, including internal style checker. Fixes
`Issue 1000 <https://github.com/kiwitcms/Kiwi/issues/1000>`_ (Prome88)
- When linking a TestExecution to a defect and choosing to update the
Issue Tracker Kiwi TCMS will not add a comment pointing back to
TR ID/summary/URL and TE ID/summary. This provides more detailed information
about the reproducer instead of just linking to a TestCase without any
specific execution details like we did in the past
- Display additional defect information via Issue Tracker integration.
On Patternfly pages which show defect URLs this is accessible via a
small info icon. Fixes
`Issue 117 <https://github.com/kiwitcms/Kiwi/issues/117>`_
- Add minimalistic defect tracker functionality. Fixes
`Issue 699 <https://github.com/kiwitcms/Kiwi/issues/699>`_

- integrated with Issue Tracker integration layer as if it was
an external system
- when adding hyperlink to TestExecition (also via API method
``TestExecution.add_link()``) this is special cased and the
references between ``Bug`` and ``TestExecution`` are always updated
- when clicking 'Report bug' from inside Test Execution the new
defect is reported automatically and a new browser window opens to
display the information


Database migrations
~~~~~~~~~~~~~~~~~~~

- Tell the migration planner to apply
``testruns.0006_rename_test_case_run_to_test_execution`` after
``linkreference.0001_squashed``. This enables subsequent migrations
and new functionality to be applied without crashing.

.. warning::

Django should be able to handle this automatically both for
existing installations and for new ones. In any case make sure
you backup your data first and make a dry-run to verify that
nothing breaks!

- Remove fields ``url_reg_exp``, ``validate_reg_exp`` and ``description`` from
``BugSystem`` model
- Update the following fields in ``LinkReference`` model:

- rename ``test_case_run`` to ``execution``
- add indexing for ``created_on`` and ``url``
- add ``is_defect`` field

- Apply ``LinkReference`` permissions to default group ``Tester``. Fixes
`Issue 881 <https://github.com/kiwitcms/Kiwi/issues/881>`_

.. warning::

Administrators of existing applications will need to
apply these permissions by hand via the Admin section.

- Remove ``testcases.Bug`` model, replaced with ``LinkReference``.
Closes `Issue 1029 <https://github.com/kiwitcms/Kiwi/issues/1029>`_ and
obsoletes `Issue 320 <https://github.com/kiwitcms/Kiwi/issues/320>`_.

.. note::

Linking bugs to TestExecution is now performed via URLs instead of
keeping a reference to BUG-ID and trying to reconstruct the URL
on the fly.

.. warning::

The model named ``Bug`` which is added by subsequent migrations
refers to defects reported into Kiwi TCMS minimalistic defect tracker!

- New model ``bugs.Bug`` is now available. Permissions of type
``bugs | bug | Can ...`` will be applied to the default group named
``Tester`` only for new installations.

.. warning::

Administrators of existing applications will need to
apply these permissions by hand via the Admin section.


API
~~~

- ``TestExecution.add_link()`` method now returns serialized
``LinkReference`` object.
- ``TestExecution.remove_link()`` method now accepts one parameter of type
``dict`` used to filter the objects which to remove
- ``TestExecution.get_links()`` method now accepts one parameter of type
``dict`` instead of ``int``
- ``TestExecution.add_link()`` method signature changed from
(int, str, str) to (dict), where the single parameter holds field values for
the ``LinkReference`` model
- Remove ``TestExecution.add_bug()`` method, use ``TestExecution.add_link()``
- Remove ``TestExecution.remove_bug()`` method, use
``TestExecution.remove_link()``
- Remove ``TestCase.add_bug()`` method
- Remove ``TestCase.remove_bug()`` method
- Remove ``Bug.remove()`` method, use ``TestExecution.remove_link()``
- Remove ``Bug.create()`` method, use ``TestExecution.add_link()``
- Add method ``Bug.details()`` which together with the underlying
``IssueTracker.details()`` is the foundation of how Kiwi TCMS fetches
extra details from the issue tracking system. The default implementation
uses OpenGraph protocol to collect the data that will be shown. You may
override ``.details()`` for each issue tracker (or add your own IT) to
extend this functionality. Information is cached for 1 hour by default.
References
`Issue 117 <https://github.com/kiwitcms/Kiwi/issues/117>`_
- Add methods ``Bug.add_tag()`` and ``Bug.remove_tag()``
- Existing method with name ``Bug.filter()`` has changed behavior. It is
now used to query objects from Kiwi TCMS minimalistic defect tracker


Removed functionality
~~~~~~~~~~~~~~~~~~~~~

- Remove ``IssueTrackerType.all_issues_link()`` method. This was used in
TestRun Report page to show a single link that will open all bugs in the
Issue Tracker. Most trackers don't support this and the UI portion has
been rewritten
- Remove ``LinkOnly`` issue tracker - obsolete because all defects are
now added to TestExecutions via their URLs
- Remove bulk-add/bulk-remove of bugs in TestRun page, replaced by bulk-add
for hyperlinks


Settings
~~~~~~~~

- Respect the ``CACHES`` setting, see
`Django docs <https://docs.djangoproject.com/en/2.2/ref/settings/#std:setting-CACHES>`_
for more info. Initially this setting is used to cache defect details
received via Issue Tracker integration. See
`Issue 117 <https://github.com/kiwitcms/Kiwi/issues/117>`_


Bug fixes
~~~~~~~~~

- Don't auto-download FontAwesome for SimpleMDE. Resolves icons disappearing
on pages which have the markdown editor. Fixes
`Issue 905 <https://github.com/kiwitcms/Kiwi/issues/905>`_
- Reorder HTML elements so Delete button is still visible in TestCase review
comment section. Fixes
`Issue 1013 <https://github.com/kiwitcms/Kiwi/issues/1013>`_ (Rady Madjev)
- Remove section that displays bugs in TestExecution container. Bugs are now
denoted by a small icon next to their hyperlink. Closes
`Issue 475 <https://github.com/kiwitcms/Kiwi/issues/475>`_
- Cache Issue Tracker connections per ``base_url``. Fixes
`Issue 290 <https://github.com/kiwitcms/Kiwi/issues/290>`_



Refactoring
~~~~~~~~~~~

- Lots of refactoring from function based views to class based views
(Rady Madjev)
- Use JavaScript and the API to remove case execution instead of
dedicated backend function (Rady Madjev)
- Update pylint directives around missing permissions (Svetlomir Balevski)
- Fix typo in identifier. Fixes
`CID 344186 <https://scan4.coverity.com/reports.htm#v38579/p14953/fileInstanceId=65904319&defectInstanceId=11526612&mergedDefectId=344186&eventId=1>`_
- Use ``TestExecution.add_link()`` and ``TestExecution.remove_link()`` in UI
instead of dedicated backend function.
- Remove unused LinkReference views, forms and tests modules


Translations
~~~~~~~~~~~~

- Introduce a translation mode where you can translate the interface via
in-context editor. For more information see
`Translation guide <https://kiwitcms.readthedocs.io/en/latest/contribution.html#translation>`_.
Fixes `Issue 1098 <https://github.com/kiwitcms/Kiwi/issues/1098>`_
- Updated `Albanian translation <https://crowdin.com/project/kiwitcms/sq#>`_
- Updated `Bulgarian translation <https://crowdin.com/project/kiwitcms/bg#>`_
- Updated `Chinese Traditional translation <https://crowdin.com/project/kiwitcms/zh-TW#>`_
- Updated `French translation <https://crowdin.com/project/kiwitcms/fr#>`_
- Updated `Greek translation <https://crowdin.com/project/kiwitcms/el#>`_
- Updated `Italian translation <https://crowdin.com/project/kiwitcms/it#>`_
- Updated `Slovenian translation <https://crowdin.com/project/kiwitcms/sl#>`_
- Updated `Turkish translation <https://crowdin.com/project/kiwitcms/tr#>`_

For more information check-out
`all supported languages <https://crowdin.com/project/kiwitcms>`_.
To request new language
`click here <https://github.com/kiwitcms/Kiwi/issues/new?title=Request+new+language:+...&body=Please+enable+...+language+in+Crowdin>`_!



Kiwi TCMS 6.11 (02 Aug 2019)
----------------------------


**IMPORTANT:** this is a security and improvement update which updates
many internal dependencies, adds 2 new Telemetry reports, updates
TestPlan and TestCase cloning pages and provides several other
improvements and bug fixes. 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)

After upgrade don't forget to::

./manage.py migrate


Security
~~~~~~~~

- Update Django from 2.2.2 to 2.2.4, see

Resources

Use this package?

Scan your Python project for dependency vulnerabilities in two minutes

Scan your application

Severity Details

CVSS Base Score

MEDIUM 5.3

CVSS v3 Details

MEDIUM 5.3
Attack Vector (AV)
NETWORK
Attack Complexity (AC)
LOW
Privileges Required (PR)
NONE
User Interaction (UI)
NONE
Scope (S)
UNCHANGED
Confidentiality Impact (C)
LOW
Integrity Impact (I)
NONE
Availability Availability (A)
NONE

CVSS v2 Details

MEDIUM 5.0
Access Vector (AV)
NETWORK
Access Complexity (AC)
LOW
Authentication (Au)
NONE
Confidentiality Impact (C)
PARTIAL
Integrity Impact (I)
NONE
Availability Impact (A)
NONE