Skip to content

Kiwi TCMS 7.0 (24 Sep 2019)

Compare
Choose a tag to compare
@atodorov atodorov released this 10 Nov 18:14
· 3813 commits to master since this release

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>
!