We're happy to announce Kiwi TCMS version 10.0!
IMPORTANT: this is a major release which includes backwards
incompatible API changes, new database fields, improvements, bug fixes,
translation updates, new tests and internal refactoring.
It is the ninth release to include contributions via our
open source bounty program.
This is also the first release after Kiwi TCMS reached 400K pulls
on Docker Hub! You can explore everything at
https://public.tenant.kiwitcms.org!
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:
pub.kiwitcms.eu/kiwitcms/kiwi latest 9f23186803d5 736 MB
pub.kiwitcms.eu/kiwitcms/kiwi 6.2 7870085ad415 957 MB
pub.kiwitcms.eu/kiwitcms/kiwi 6.1.1 49fa42ddfe4d 955 MB
pub.kiwitcms.eu/kiwitcms/kiwi 6.1 b559123d25b0 970 MB
pub.kiwitcms.eu/kiwitcms/kiwi 6.0.1 87b24d94197d 970 MB
pub.kiwitcms.eu/kiwitcms/kiwi 5.3.1 a420465852be 976 MB
Changes since Kiwi TCMS 9.0
Security
- Update node_modules/marked from 1.2.7 to 2.0.1. Also fixes
SNYK-JS-MARKED-1070800
- Update django from 3.1.5 to 3.1.7 for CVE-2021-3281 and CVE-2021-23336
Improvements
- Update bleach from 3.2.1 to 3.3.0
- Update django-colorfield from 0.3.2 to 0.4.1
- Update django-extensions from 3.1.0 to 3.1.1
- Update markdown from 3.3.3 to 3.3.4
- Update pygments from 2.7.4 to 2.8.0
- Update python-gitlab from 2.5.0 to 2.6.0
- Change ON/OFF button messages (Krum Petkov)
- Automatically set test run to finished/not-finished depending on
the state of all executions. Closes
Issue #441
- Allow assigning users from group admin page. Fixes
Issue #1844
- Improve documentation around setting up devel environment
Database
- Add TestRun.planned_start and TestRun.planned_stop fields. Refs
Issue #1928 (Andreea Moraru)
- Add TestExecution.start_date field. Refs
Issue #1924 (Anastasiya Uraleva)
- Rename field TestExecution.close_date to TestExecution.stop_date (Anastasiya Uraleva)
API
Warning
This release changes how Kiwi TCMS serializes API results and thus
introduces multiple backwards incompatible changes.
Important
All .filter() methods now return distinct records!
- New method PlanType.create()
- Method TestCase.add_component() now returns a serialized Component
instead of a serialized TestCase. Refs
Issue #2145
- Methods Product.filter(), Product.create() and Product.update():
- change input parameter classification_id to classification - type int
- change result field classification_id to classification - type int
- Method Category.filter() changes result field
product_id to product - type int
- Methods Component.filter(), Component.create() and Component.update():
- change input parameter product_id to product - type int
- change input parameter initial_owner_id to initial_owner - type int
- change input parameter initial_qa_contact_id to initial_qa_contact - type int
- change result field product_id to product - type int
- change result field initial_owner_id to initial_owner - type int
- change result field initial_qa_contact_id to initial_qa_contact - type int
- adds result field cases - type int - a TestCase ID if this component is
attached to a test case
- Methods Version.filter() and Version.create():
- change input parameter product_id to product - type int
- change result field product_id to product - type int
- Method Tag.filter() now returns additional fields:
bugs, case, plan and run which causes existing queries to
return similar records attached to different parent objects. Consumers of these
results should be updated
- Methods TestPlan.filter(), TestPlan.create() and TestPlan.update():
- change input parameter author_id to author - type int
- change input parameter parent_id to parent - type int
- change input parameter product_id to product - type int
- change input parameter product_version_id to product_version - type int
- change input parameter type_id to type - type int
- change result field author_id to author - type int
- change result field parent_id to parent - type int
- change result field product_id to product - type int
- change result field product_version_id to product_version - type int
- change result field type_id to type - type int
- remove result fields cases, tag, default_product_version
- Method TestPlan.filter()
adds result fields product_version__value, product__name,
author__username and type__name
- Methods TestRun.filter(), TestRun.create() and TestRun.update():
- change result field build_id to build - type int
- change result field default_tester_id to default_tester - type int
- change result field manager_id to manager - type int
- change result field plan_id to plan - type int
- change result field product_version_id to product_version - type int
- remove result fields cc, tag
- Method TestRun.filter() adds result fields product_version__value,
plan__product, plan__name, build__name, manager__username and
default_tester__username
- Methods TestExecution.filter() and TestExecution.update():
- change input parameter assigee_id to assignee - type int
- change input parameter build_id to build - type int
- change input parameter case_id to case - type int
- change input parameter run_id to run - type int
- change input parameter status_id to status - type int
- change input parameter tested_by_id to tested_by - type int
- change result field assigee_id to assignee - type int
- change result field build_id to build - type int
- change result field case_id to case - type int
- change result field run_id to run - type int
- change result field status_id to status - type int
- change result field tested_by_id to tested_by - type int
- Method TestExecution.filter() adds result fields assignee__username,
tested_by__username, case__summary, build__name and status__name
- Method TestExecution.get_links() change result field
execution_id to execution - type int
- Method TestRun.add_case() changes result field names similarly to
TestExecution.filter() method
- Methods TestCase.filter(), TestCase.create() and TestCase.update():
- change input parameter author_id to author - type int
- change input parameter case_status_id to case_status - type int
- change input parameter category_id to category - type int
- change input parameter default_tester_id to default_tester - type int
- change input parameter priority_id to priority - type int
- change input parameter reviewer_id to reviewer - type int
- change result field author_id to author - type int
- change result field case_status_id to case_status - type int
- change result field category_id to category - type int
- change result field default_tester_id to default_tester - type int
- change result field priority_id to priority - type int
- change result field reviewer_id to reviewer - type int
- remove result fields component, plan, tag
- Method TestCase.filter() adds result fields case_status__name,
category__name, priority__value, author__username,
default_tester__username and reviewer__username
- Methods TestRun.get_cases() and TestPlan.add_case() change
result field names similarly to TestCase.filter() method
Bug fixes
- Fix removing a component from a test case immediately after it has been added. Fixes
Issue #2145 (Gagan Deep)
- Fix broken object navigation in navbar. Fixes
Issue #991
- Refactor search pages rendering to speed it up. Closes
Issue #1014
Refactoring & testing
- Update tests for TestRun.create() API method. Refs
Issue #1928 (Andreea Moraru)
- Add automation tests. Closes
Issue #1618 (Mariyan Garvanski)
- Add additional automation tests for tcms.management.admin. Closes
Issue #1610 (Gagan Deep)
- Add additional automation tests for tcms.testcases.views.EditTestCaseView. Closes
Issue #1615 (Gagan Deep)
- Add additional automation tests for tcms.kiwi_auth.forms. Closes
Issue #1609 (Kapil Bansal)
- Change location of included HTML templates (Alexander Tsvetanov, Krum Petkov)
- Erase unused view & templates (Alexander Tsvetanov)
- Enable eslint. Closes
Issue #1281
- Change how beakerlib test framework is installed to avoid problems
during integration tests
- Better inspection of beakerlib test results to avoid false positive results
Kiwi TCMS Enterprise v10.0-mt
- Based on Kiwi TCMS v10.0
- Update kiwitcms-github-app from 1.2.2 to 1.2.4
- Update kiwitcms-tenants from 1.4.2 to 1.4.3
- Update django-python3-ldap from 0.11.3 to 0.11.4
How to upgrade
Backup first!
If you are using Kiwi TCMS as a Docker container then:
cd path/containing/docker-compose/
docker-compose down
docker-compose pull
docker-compose up -d
docker exec -it kiwi_web /Kiwi/manage.py migrate
Refer to
our documentation
for more details!
Happy testing!
---
If you like what we're doing and how Kiwi TCMS supports various communities
please help us!