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 betweenBug
andTestExecution
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
- integrated with Issue Tracker integration layer as if it was
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>
.
FixesIssue #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>
!