We’re happy to announce Kiwi TCMS version 8.0!
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!
You can explore everything at
Supported upgrade paths:
5.3 (or older) -> 5.3.1 5.3.1 (or newer) -> 6.0.1 6.0.1 -> 6.1 6.1 -> 6.1.1 6.1.1 -> 6.2 (or newer)
kiwitcms/kiwi latest 71a55e353da2 557 MB kiwitcms/kiwi 6.2 7870085ad415 957 MB kiwitcms/kiwi 6.1.1 49fa42ddfe4d 955 MB kiwitcms/kiwi 6.1 b559123d25b0 970 MB kiwitcms/kiwi 6.0.1 87b24d94197d 970 MB kiwitcms/kiwi 5.3.1 a420465852be 976 MB
Changes since Kiwi TCMS 7.3
- 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
Fixes Issue #236
- Add passing rate chart to Execution trends telemetry
- Documentation updates (@Prome88)
This release adds several migrations which alter the underlying database schema
by renaming multiple columns.
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:
Backup existing database with:
docker exec -it kiwi_db mysqldump -u kiwi -pYourPass kiwi > backup.sql
docker volume rm kiwi_db_data – will remove existing data volume
b/c of incompatibilities between different MariaDB versions
docker-compose up – will recreate data volume with missing data. e.g.
manage.py showmigrations will report that 0 migrations have been applied.
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
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:
- 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
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
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
- Allow displaying lists with more then 9 items when reviewing test cases. Fixes
Issue #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 (Mfon Eti-mfon)
- Allow changing test execution status without adding comment. Fixes
- Properly refresh test run progress bar when changing statuses. Fixes
- Fix a bug where updating test cases from the UI was causing text and various
other fields to be reset. Fixes
- Extract attachments widget to new template. Fixes
- Rename RPC related classes. Fixes
- 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
GitHub Marketplace listing deprecation
As we’ve stated previously Kiwi TCMS has migrated to a new GitHub backend and
OAuth tokens for the previous backend have been revoked and the
existing listing on GitHub Marketplace is deprecated. It is a non-functioning
app at the moment!
It is not possible for us to cancel Marketplace subscriptions programatically,
that is GitHub does not provide such API. Active subscribers please follow these
3 steps to help us clean up stale information:
- Go to https://github.com/marketplace/kiwi-tcms
- From “Edit your plan” button at the top select your GitHub account
- Then click “Cancel this plan” link which is at the left-hand side
at the bottom of the description box!
How to upgrade
If you are using Kiwi TCMS as a Docker container then:
cd path/containing/docker-compose/ docker-compose down docker pull kiwitcms/kiwi docker pull centos/mariadb-103-centos7 docker-compose up -d docker exec -it kiwi_web /Kiwi/manage.py migrate
WHERE: docker-compose.yml has been updated from your private git repository!
The file provided in our GitHub repository is an example. Not for production use!
WARNING: kiwitcms/kiwi:latest and docker-compose.yml will
always point to the latest available version! If you have to upgrade in steps,
e.g. between several intermediate releases, you have to modify the above workflow:
# starting from an older Kiwi TCMS version docker-compose down docker pull kiwitcms/kiwi:<next_upgrade_version> edit docker-compose.yml to use kiwitcms/kiwi:<next_upgrade_version> docker-compose up -d docker exec -it kiwi_web /Kiwi/manage.py migrate # repeat until you have reached latest