Kiwi TCMS 13.0

new major version introducing backwards incompatible changes

Posted by Kiwi TCMS Team on Wed 17 January 2024 under releases

We're happy to announce Kiwi TCMS version 13.0!

IMPORTANT: This is a backwards incompatible release which contains security and functional improvements, runtime, settings and API changes, bug fixes, internal refactoring and updated translations!

You can explore everything at https://public.tenant.kiwitcms.org!

---

Upstream container images (x86_64):

kiwitcms/kiwi   latest  088187a81d3c    686MB

IMPORTANT: version tagged and multi-arch container images are available only to subscribers!

Changes since Kiwi TCMS 12.7

Security

  • Preventatively patch calls to the built-in xmlrpc.client module using the defusedxml package

Improvements

  • Update container runtime from Python 3.9 to Python 3.11
  • Update Django from 4.2.7 to 4.2.9
  • Update django-colorfield from 0.10.1 to 0.11.0
  • Update django-modern-rpc from 0.12.1 to 1.0.2
  • Update django-tree-queries from 0.15.0 to 0.16.1
  • Update django-simple-captcha from 0.5.20 to 0.6.0
  • Update jira from 3.5.2 to 3.6.0
  • Update markdown from 3.5.1 to 3.5.2
  • Update mysqlclient from 2.2.0 to 2.2.1
  • Update psycopg from 2.9.9 to 3.1.17
  • Update python-gitlab from 4.1.1 to 4.4.0
  • Update tzdata from 2023.3 to 2023.4
  • Update node_modules/pdfmake from 0.2.8 to 0.2.9
  • Show an icon when some child TPs not shown on Search Test Plans page to let the user know that parent-child hierarchies shown on the page may be incomplete because the data has been filtered out by their search criteria. Closes Issue #3313
  • Hide the Expand/Collapse button Search Test Plans page for TP with 0 children in the result set

Settings

WARNING:

The location of the Python runtime inside the container has changed. This affects settings override files as well as any downstream customizations to the Kiwi TCMS container image! For example you may have to adjust Docker volumes like so:

         volumes:
-            - ./local_settings.py:/venv/lib64/python3.9/site-packages/tcms/settings/local_settings.py
+            - ./local_settings.py:/venv/lib64/python3.11/site-packages/tcms/settings/local_settings.py
  • Explicitly define the DATA_UPLOAD_MAX_MEMORY_SIZE setting. It controls file uploads via RPC, not webUI, because the payload is base64 encoded and is part of the request body. Closes Issue #3262

API

WARNING:

This version of Kiwi TCMS introduces backward incompatible changes to API methods

  • Method TestRun.filter() no longer returns the field plan__product
  • Method TestRun.filter() no longer returns the field plan__product_version
  • Method TestRun.filter() no longer returns the field plan__product_version__value
  • Method TestRun.filter() now returns the new field build__version
  • Method TestRun.filter() now returns the new field build__version__product
  • Method TestRun.filter() now returns the new field build__version__value

Bug fixes

  • Fix TestPlan cloning with different product (@somenewacc)
  • Fix row reload when adding new comment in TestRun page (@somenewacc)
  • Fix tag display for parametrized executions on TestRun page (@somenewacc)
  • Fix bug in search/display of Version on Search TestRun page. The root cause was that the correct relationship here should have been TR -> Build -> Version which is independent of the relationship TP -> Product -> Version. Fixes Issue #3258
  • Fix bug in search/display of Product on Search TestRun page. The root cause was that the correct relationship here should have been TR -> Build -> Version -> Product which is independent of the relationship TP -> Product
  • Fix Telemetry pages to query Product/Version from execution's data. All of these underlying queries on these pages operate on TestExecution and Product/Version information should be matched against what is stored in TestExecution->Build because it is more accurate over time, while TE->TR->TP->Product/Version is more likely to change as test plan documents evolve
  • Adjust Product & Version display on TestRun page using the relationship TR->Build as the starting point
  • For IssueTracker integration use Product/Version from execution.build Note that execution.build is initialized with run.build and then may change its value if we're recording results against multiple builds inside the same TestRun. For example mark some executions as PASS, others as FAIL; then update TR to a newer Build; retest and mark the FAIL results as PASS. Using the value of execution.build is more accurate
  • Treat the file /Kiwi/etc/uwsgi.override as an ini file and load it if it exists. This means that any override files must include the [uwsgi] section as well

Refactoring and testing

  • Adjust Kiwi TCMS for newer version of django-modern-rpc (Antoine Lorence)
  • Remove commented out code (@deepsource-autofix[bot])
  • Add integration test for uploading files with maximum allowed size
  • Update isort from 5.12.0 to 5.13.2
  • Update node_modules/eslint from 8.54.0 to 8.56.0
  • Update node_modules/eslint-plugin-import from 2.29.0 to 2.29.1
  • Update node_modules/eslint-plugin-n from 16.3.1 to 16.6.2
  • Update actions/setup-python from 4 to 5
  • Update github/codeql-action from 2 to 3
  • Update actions/upload-artifact from 3 to 4

Kiwi TCMS Enterprise v13.0-mt

  • Based on Kiwi TCMS v13.0

  • Update container runtime from Python 3.9 to Python 3.11

  • Update django-ses from 3.5.0 to 3.5.2

  • Update kiwitcms-github-app from 1.5.1 to 1.6.0

  • Update kiwitcms-tenants from 2.5.2 to 2.6.0

  • Update kiwitcms-trackers-integration from 0.6.0 to 0.7.0

  • Update social-auth-kerberos from 0.2.4 to 0.3.0

  • Start testing with upstream Postgres container image

  • Assert that Personal API Tokens is listed in PLUGINS menu

  • Adjust search path for images during test

    Private container images:

    quay.io/kiwitcms/version            13.0 (aarch64)          edf0999ee223    17 Jan 2024     698MB
    quay.io/kiwitcms/version            13.0 (x86_64)           088187a81d3c    17 Jan 2024     686MB
    quay.io/kiwitcms/enterprise         13.0-mt (aarch64)       58a8321da098    17 Jan 2024     899MB
    quay.io/kiwitcms/enterprise         13.0-mt (x86_64)        2c6fbc6adcc5    17 Jan 2024     885MB
    

IMPORTANT: version tagged, multi-arch and Enterprise container images are available only to subscribers!

tcms-api changes since v12.7

  • Refresh internal https transport every 4 minutes to avoid an ssl.SSLEOFError: EOF occurred in violation of protocol error on Python 3.10 and later when executing very long running tests
  • Include Python version in User-Agent header
  • Send XML-RPC method name in Referer header
  • When creating a TestPlan limit name to 255 characters
  • When creating a TestCase limit summary to 255 characters

How to upgrade

Backup first! Then follow the Upgrading instructions from our documentation.

Happy testing!

---

If you like what we're doing and how Kiwi TCMS supports various communities please help us grow!