We're happy to announce Kiwi TCMS version 6.5! This is a minor security, improvement and bug-fix update that includes new versions of Django and other dependencies, removes some database fields, includes backend API updates and fixes several bugs. You can explore everything at https://public.tenant.kiwitcms.org!
Together with this release we announce:
- kiwitcms-tap-plugin : for reading Test Anything Protocol (TAP) files and uploading the results to Kiwi TCMS
- kiwitcms-junit.xml-plugin : for reading junit.xml formatted files and uploading the results to Kiwi TCMS
Both of these are implemented in Python and should work on standard TAP and junit.xml files generated by various tools!
Additionally 3 more plugins are currently under development by contributors:
- Native JUnit 5 plugin written in Java
- Native PHPUnit written in PHP
- py.test plugin
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)
Docker images:
kiwitcms/kiwi latest 7ca4fda602fc 1.002 GB kiwitcms/kiwi 6.2 7870085ad415 957.6 MB kiwitcms/kiwi 6.1.1 49fa42ddfe4d 955.7 MB kiwitcms/kiwi 6.1 b559123d25b0 970.2 MB kiwitcms/kiwi 6.0.1 87b24d94197d 970.1 MB kiwitcms/kiwi 5.3.1 a420465852be 976.8 MB
Changes since Kiwi TCMS 6.4
Security
- Better override of SimpleMDE markdown rendering to prevent XSS vulnerabilities in SimpleMDE
Improvements
- Update patternfly to version 3.59.1
- Update bleach from 3.0.2 to 3.1.0
- Update django-vinaigrette from 1.1.1 to 1.2.0
- Update django-simple-history from 2.6.0 to 2.7.0
- Update django-grappelli from 2.12.1 to 2.12.2
- Update mysqlclient from 1.3.14 to 1.4.1
- Update psycopg2 from 2.7.6.1 to 2.7.7
- Update pygithub from 1.43.4 to 1.43.5
- Convert TestCase page to Patternfly
- page menu is under ... in navigation bar
- Test plans card is missing the old 'add plan' functionality b/c we are not at all sure if adding plans to test cases is used at all. Can bring it back upon user request!
- Bugs card is missing the add/remove functionality for b/c we are not quite sure how that functionality is used outside test runs!
- Convert new TestCase page to Patternfly and provide Given-When-Then text template. This prompts the author to use a BDD style definition for their scenarios. We believe this puts the tester into a frame of mind more suitable for expressing what needs to be tested
- Add a favicon. Fixes Issue #532
- Sort Component, Product and Version objects alphabetically. Fixes Issue #633
- Search test case page now shows Components and Tags
- Search test case page now allows filtering by date. Fixes Issue #715
- Search test case page now uses radio buttons to filter by automation status
- Small performance improvement when searching test plans and test cases
- Search test run page now allows to filter by Product but still continue to display all Builds in the selected Product
- Updated doc-string formatting for some tcms modules
Database migrations
Known issues: on our demo installation we have observed that permission labels were skewed after applying migrations. The symptom is that labels for removed models are still available, labels for some models may have been removed from groups/users or there could be permission labels appearing twice in the database.
This may affect only existing installations, new installations do not have this problem!
We are not certain what caused this but a quick fix is to remove all permissions from the default Tester group and re-add them again!
- Remove TestCase.alias
- Remove TestCaseRun.running_date
- Remove TestCaseRun.notes
- Remove TestCase.is_automated_proposed
- Remove TestCaseText model, merge into TestCase.text field. Closes Issue #198
- Remove Priority.sortkey
- Remove Build.description
- Remove Classification.sortkey and Classification.description
- Convert TestCase.is_automated from int to bool
- Rename TestCaseRun.case_run_status to status
API
- New method TestCaseRunStatus.filter()
- New method Product.create()
- New method Classification.filter()
- New method BugSystem.filter()
- Changes to TestCase.add_component():
- now accepts component name instead of id
- now fails if trying to add components linked to another Product.
- now returns serialized TestCase object
Translations
- Updated French translation
- Updated Slovenian translation
Bug fixes
- Fix for missing migrations from django-simple-history, see DSH #512 and StackOverflow #54177838
- Fix cloning of test cases by surrounding bootstrap-selectpicker call with try-catch. Fixes Issue #695
- Fix a traceback with TestRun report page when the RPC connection to Bugzilla can't be established
Refactoring
- Remove unused form classes, methods, fields and label attributes
- Remove unused or duplicate methods from TestCase model
- Remove useless methods from BaseCaseForm()
- Add test for discovering missing migrations
- Add test for sanity checking PyPI packages which will always build tarball and wheel packages
tcms-api 5.2 (30 Jan 2019)
- Add plugin_helpers.Backend which implements our test runner plugin specification in Python
- Add dependency to kerberos (Aniello Barletta)
How to upgrade
If you are using Kiwi TCMS as a Docker container then:
cd Kiwi/ git pull docker-compose down docker pull kiwitcms/kiwi docker pull centos/mariadb docker-compose up -d docker exec -it kiwi_web /Kiwi/manage.py migrate
Don't forget to backup before upgrade!
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
Happy testing!