Blog

Kiwi TCMS 10.5

We're happy to announce Kiwi TCMS version 10.5 which celebrates the very positive reception we had at WebSummit 2021!

IMPORTANT: this is a medium sized release which contains various improvements and new features, database changes, new settings and API methods, bug-fixes, internal refactoring and updated translations.

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)

Container images:

kiwitcms/kiwi       latest  0574b19b5d66    583 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 10.4

Improvements

  • Update django from 3.2.7 to 3.2.9
  • Update django-colorfield from 0.4.3 to 0.4.5
  • Update django-extensions from 3.1.3 to 3.1.5
  • Update django-grappelli from 2.15.1 to 2.15.3
  • Update django-tree-queries from 0.6.0 to 0.7.0
  • Update jira from 3.0.1 to 3.1.1
  • Update markdown from 3.3.4 to 3.3.6
  • Update mysqlclient from 2.0.3 to 2.1.0
  • Update psycopg2 from 2.9.1 to 2.9.2
  • Display a warning if connection doesn't use HTTPS (Ivajlo Karabojkov)
  • Account registration page can be turned on/off via settings. Fixes Issue #2500
  • TestCase Search page can now filter by TestPlan. Fixes Issue #2283
  • Allow template selection when creating new test case. Fixes Issue #957
  • TestCase page now allows specification of properties, e.g. mobile devices on which the test should be executed. This feature serves as a building block for Issue #1843, Issue #1931 and Issue #1344 but isn't active anywhere else inside Kiwi TCMS at the moment
  • TestExecution properties will be displayed inside TestRun page if they have been specified
  • Rearrange help-text in admin page for better visibility
  • Switch to official Postgres image from Docker Hub
  • Switch to official MariaDB image from Docker Hub

Warning:

For Postgres data dir changed from /var/lib/pgsql/data to /var/lib/postgres/data. Environment variables inside docker-compose file changed as well, see docker-compose.postgres.

For MariaDB data dir changed from /var/lib/mysql/data to /var/lib/mysql. MYSQL_CHARSET & MYSQL_COLLATION environment variables are no longer recognized. Instead they are present as command line options passed to the container, see docker-compose.yml. Previous workaround for these variables was also removed.

If you want to migrate from the previous centos/mariadb-103-centos7 or centos/postgresql-12-centos7 containers to mariadb:latest and postgres:latest make sure to update your container control files!

Settings

  • New setting REGISTRATION_ENABLED, default True, Can be controlled via environment variable KIWI_REGISTRATION_ENABLED. When set to False will disable account registration page

Database

  • New model testcases.Property
  • New model testcases.Template
  • New model testruns.TestExecutionProperty
  • Remove unique_together constraint for testruns.TestExecution model. This makes it possible to add multiple executions for the same test case in the same test run

Warning:

These newly added models create additional permission labels with names testcases | template | Can .... template, testcases | property | Can .... property, testruns | test execution property | Can .... test execution property

Execute manage.py refresh_permissions and/or assign them manually to users and groups if they should be able to interact with the new objects!

API

  • Method TestCase.filter() now returns additional fields setup_duration, testing_duration, expected_duration - all serialized in seconds. Refs Issue #1923 (Mfon Eti-mfon)
  • Method User.filter() will no longer return fields groups, user_permissions, date_joined and last_login
  • New method TestExecution.properties()
  • New method TestCase.properties()
  • New method TestCase.add_property()
  • New method TestCase.remove_property()

Bug fixes

  • Unify tab size & tab indentation b/w Python & SimpleMDE. Fixes Issue #1802
  • Use sane_list extension for rendering consecutive lists in markdown. Closes Issue #2511

Warning:

The visual markdown editor explicitly didn't follow markdown syntax rules by allowing indentation with 2 spaces and treating tabs as 2 spaces as well. See "Indentation/Tab Length" at https://python-markdown.github.io/#differences

The backend markdown rendering engine explicitly followed an undefined behavior which happens to be different from what the visual markdown editor does. See "Consecutive Lists" at https://python-markdown.github.io/#differences

The previous 2 changes make sure the visual editor and backend rendering engine follow the same rules. This may result is "broken" display of existing text which doesn't follow the markdown syntax rules. If you spot such text just edit to make it render the way you wish.

  • Fix broken URL and minor updates to documentation
  • Update GitLab tracker integration documentation to avoid confusion. Closes Issue #2559
  • Limit tag input length to 255 characters. Closes Issue #2176
  • Make error notifications in Admin to display with red color
  • Select only visible rows for bulk-update in TestRun page. Fixes Issue #2222
  • Remove Cache-Control header from httpd. Closes Issue #443

Refactoring and testing

  • Add permissions test for add-hyperlink-bulk menu. Closes Issue #716
  • Add explicit tests for issue tracker integration with GitLab.com
  • Tests teardown - remove comments & close issues on GitLab.com
  • Add missing rlPhaseEnd for docker tests
  • Multiple pylint and eslint fixes

Translations

Kiwi TCMS Enterprise v10.5-mt

  • Based on Kiwi TCMS v10.5
  • Update django-python3-ldap from 0.12.0 to 0.12.1
  • Update django-ses from 2.3.0 to 2.3.1
  • Update kiwitcms-tenants from 1.7.0 to 1.8.0

Private images:

quay.io/kiwitcms/enterprise         10.5-mt         3e597c91d057   804 MB
quay.io/kiwitcms/version            10.5            0574b19b5d66   583 MB

IMPORTANT: version tagged and Enterprise container images are available only to subscribers!

How to upgrade

Backup first! Then execute the commands:

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!

Kiwi TCMS subscription guidelines

An active subscription provides you with certain guarantees that your organization will continue to extract value from Kiwi TCMS and is your buy-in into the open source world. We recommend that customers purchase a subscription for every container running Kiwi TCMS however this becomes distorted for teams who don't actively seek support and large organizations! Here are our guidelines.

Phase of deployment

Casual exploration: No subscription required. Use https://public.tenant.kiwitcms.org to explore Kiwi TCMS and formulate your questions and further plan of action.

Serious evaluation or Proof of concept: 1x Private Tenant SaaS or 1x Enterprise. You will have lots of questions during this period and you will need answers in a timely manner. You can cancel at any time!

Pilot: 2-3x Private Tenant SaaS or 1x Enterprise during the pilot period. Consider add-on services if you need data migration or custom development for a successful pilot. Plan your future needs and issues you'd like to see fixed.

Production: make your decision according to the size of your test team and anticipated support needs, see below.

Our mission is to transform the testing process inside your organization. You don't have to do it alone! Let us help you!

--

Note that Kiwi TCMS is still working to clearly define our value proposition and support offering for large organizations! Tell us what are you looking for!

Number of testers

<= 25: 1x Private Tenant SaaS

25-100: 2-5x Private Tenant SaaS; consider splitting teams and purchase a subscription for each of them

100 - 200: 1x Enterprise; consider additional subscriptions of any kind for non-production instances

200 - 500 - 2-3x Enterprise; consider additional subscriptions of any kind for non-production instances

500 - 1000: - 5x Enterprise; consider additional Enterprise subscriptions for non-production instances

Over 1000: 10x Enterprise; consider add-on services for custom development

Note that these are not hard rules as we don't restrict the number of accounts registered into a specific instance nor how many containers you deploy!

--

Note that you can still deploy Kiwi TCMS with a 1x subscription inside organization with thousands of testers. Or even no subscription at all. Do you really value your testing infrastructure so low ?

Ready ? Explore subscriptions!


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

Venue map

We're happy to announce that Kiwi TCMS will host an exhibition stand at WebSummit 2021 in Lisbon. You can find us on Wednesday, November 03, Stand number: A 407, Industry category: Pavilion 3, ALPHA 4.

black boxes

At the exhibition stand you will have the opportunity to perform some real black-box testing, learn about Salience bias, Peltzman effect and Wason's experiments and take a photo with our lovely mascot.

The Kiwi TCMS team will be there to answer all of your questions regarding open source, community, support, various integrations and the differences between Free, SaaS and Enterprise subscriptions!

If you still need more convincing check-out our WebSummit SHOWCASE video and how QGIS organizes their testing with Kiwi TCMS.

Fun fact: adoption of Kiwi TCMS is lead by Alexandre Neto - a QGIS community member from Portugal.


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

Here are the winners of our ticket giveaway:

  • Martin Ayvazov
  • Ralitsa Georgieva
  • Teodora Pashina - Dimitrova
  • Gabriela Luhova
  • Lyuboslava Arshinkova
  • Yoan Bachev

Attention winners: please get in touch with us at info@kiwitcms.org to claim your tickets. We will ask you to validate your GitLab account by performing a quick action which will be disclosed to you via email!

Raw data from our winner selection script below:

***** WINNER #1: Martin Ayvazov
{'avatar_url': 'https://secure.gravatar.com/avatar/eea811553e2b8aa3dd7ef670c3cd3552?s=80&d=identicon',
 'id': 9640539,
 'name': 'Martin Ayvazov',
 'state': 'active',
 'username': 'majvazov',
 'web_url': 'https://gitlab.com/majvazov'}
***** WINNER #2: Ralitsa Georgieva
{'avatar_url': 'https://secure.gravatar.com/avatar/43aa50437fc245766bc3e6072777c056?s=80&d=identicon',
 'id': 9869926,
 'name': 'Ralitsa Georgieva',
 'state': 'active',
 'username': 'ralitsa.georgieva',
 'web_url': 'https://gitlab.com/ralitsa.georgieva'}
***** WINNER #3: Teodora Pashina - Dimitrova
{'avatar_url': 'https://secure.gravatar.com/avatar/beca49c67ce9862a8ecb8deff94780a7?s=80&d=identicon',
 'id': 9869893,
 'name': 'Teodora Pashina - Dimitrova',
 'state': 'active',
 'username': 'tedi.pashina',
 'web_url': 'https://gitlab.com/tedi.pashina'}
***** WINNER #4: Gabriela Luhova
{'avatar_url': 'https://secure.gravatar.com/avatar/92e863a1e3df1122cc0beb2477a375be?s=80&d=identicon',
 'id': 9641952,
 'name': 'Gabriela Luhova',
 'state': 'active',
 'username': 'gabriela.luhova',
 'web_url': 'https://gitlab.com/gabriela.luhova'}
***** WINNER #5: Lyuboslava Arshinkova
{'avatar_url': 'https://secure.gravatar.com/avatar/1e0a308ddbe3b8ab9660ec7702fa0d6d?s=80&d=identicon',
 'id': 9869399,
 'name': 'Lyuboslava Arshinkova',
 'state': 'active',
 'username': 'arshinkovalyuboslava',
 'web_url': 'https://gitlab.com/arshinkovalyuboslava'}
***** WINNER #6: Yoan Bachev
{'avatar_url': 'https://gitlab.com/uploads/-/system/user/avatar/7630581/avatar.png',
 'id': 7630581,
 'name': 'Yoan Bachev',
 'state': 'active',
 'username': 'yobachev',
 'web_url': 'https://gitlab.com/yobachev'}

Video recording of the selection process:


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

Kiwi TCMS 10.4

We're happy to announce Kiwi TCMS version 10.4!

IMPORTANT: this is a small release which includes several improvements, bug fixes, internal refactoring and updated translations. It is the thirteenth release to include contributions via our open source bounty program!

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)

Container images:

kiwitcms/kiwi       latest  10eb8f04cccd    590 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 10.3

Security

Improvements

  • Update bleach from 4.0.0 to 4.1.0
  • Update django from 3.2.6 to 3.2.7
  • Update django-colorfield from 0.4.2 to 0.4.3
  • Update pygithub from 1.54.1 to 1.55
  • Update pygments from 2.9.0 to 2.10.0
  • Update python-gitlab from 2.10.0 to 2.10.1
  • Allow filtering by TestRun ID in Test Case Search page
  • Update test execution prefix in list of executions on TestRun page. Now includes both TE and TC numbers before the summary link
  • Allow search by translated names on Test Run page
  • Redirect "ADMIN -> Users and groups" menu item according to tenancy
  • Allow creation of new test run from selected test cases inside existing test run. For example only select cases which are currently failing and re-test against a different build!
  • The initial_setup command will create a schema called "empty" when executed inside a multi-tenant setup. Refs Issue #127

Settings

  • Update values for MODERNRPC_HANDLERS setting
  • Rename SafeJSONRPCHandler to KiwiTCMSJsonRpcHandler
  • New RPC handler class KiwiTCMSXmlRpcHandler

Warning

If you had manipulated the value of MODERNRPC_HANDLERS make sure that you update to the new class names!

Database

  • New migrations for altered meta options

API

  • TestCase.create method accepts setup_duration and testing_duration fields. Refs Issue #1923 (Mfon Eti-mfon)
  • TestCase.update method acepts setup_duration and testing_duration fields. Refs Issue #1923 (Mfon Eti-mfon)
  • New method Testing.individual_test_case_health
  • Timedelta values are serialized to float, representing seconds

Bug fixes

  • Fix wrong URL parameter passed to test cases clone page
  • Show translated execution statuses for TestRun page. Closes Issue #1966
  • Properly initialize Product value on TestRun Edit page. Closes Issue #2514
  • Clone duration fields when cloning a test case

Refactoring and testing

  • New automated test scenario for kiwi_auth.admin (Mariyan Garvanski)
  • Unify similar strings to reduce translations burden
  • Inside buildroot PyNaCl needs make in order to build a wheel package
  • Adjust values for parametrized test to match existing scenarios
  • Fix code smells from newer pylint
  • eslint fixes for the JavaScript files

Kiwi TCMS Enterprise v10.4.1-mt

  • Based on Kiwi TCMS v10.4
  • Update django-ses from 2.2.1 to 2.3.0
  • Update kiwitcms-github-app from 1.3.0 to 1.3.1
  • Update python3-saml from 1.11.0 to 1.12.0
  • Update social-auth-app-django from 4.0.0 to 5.0.0
  • Use initial_setup during testing. Closes Issue #88
  • Fix new pylint issues and start using f-strings
  • Test "ADMIN -> Users and Groups" menu redirect

IMPORTANT: Kiwi TCMS Enterprise container images are available only to subscribers!

How to upgrade

Backup first! If you are using Kiwi TCMS as a 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!

Kiwi TCMS is happy to announce that our first post-COVID live presence will be at WebSummit 2021, Nov 1-4 in Lisbon, Portugal. We're joining as a featured startup as part of the ALPHA program in category Enterprise Software Solutions.

Kiwi TCMS will have an on-site presence during the exhibition (1 day) where you can easily find us. We've also applied to the Startup Showcase track where you can see Alex present on stage. In addition, if all goes well our team will be joined by Alexandre Neto of QCooperative who is leading the effort to adopt Kiwi TCMS for testing the QGIS open source project. More on that here.

Exact schedules are still unknown at this stage so you will have to ping us via email/Twitter or find us on the conference floor if you want to meet.

Below is our video submission to the organizers:


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

MLH Nomination

Last year Kiwi TCMS started partnering with the MLH Fellowship open source program. During the span of 3 semesters fellows received mentorship and career advice from us. They were also able to work on 20+ issues the majority of which have been complete.

For that we kindly ask the open source community to nominate Kiwi TCMS at the MLH Open Source Awards.

Steps to reproduce:

  1. Go to https://fellowship.mlh.io/opensourceawards
  2. Click the Submit a Nomination button
  3. Follow the instructions on screen!

Expected results:

  1. It should take you 2 minutes
  2. Your submission is recorded by MLH

Why are we doing this

MLH is recognizing extraordinary open source projects and communities. It is up to you, our community members and the general public to decide whether Kiwi TCMS qualifies or not. Winning this award will let us show what we do before a larger audience!

Thank you for supporting Kiwi TCMS and happy testing!


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

HackConf is one of the premium developer conferences in Bulgaria. Over the years Kiwi TCMS and HackConf have collaborated multiple times and our history goes way back to before the first edition of the conference! We're happy to announce that Kiwi TCMS will be giving away 6 SUPERFAN tickets for HackConf 2021 in order to celebrate their 6th anniversary!

All 6 tickets include:

  • Conference live stream access (online due to COVID-19), sessions are in English
  • Ability to ask questions during the live stream
  • Virtual Goodie Bag with valuable content & digital treats
  • Special Physical Goodie Bag delivered to your home. ** Shipping is available only for the territory of Bulgaria.

How to win a ticket

We need your support in order to become part of GitLab's open source family! We kindly ask you to upvote the first comment at https://gitlab.com/gitlab-org/gitlab/-/issues/334558!

Scenario: help Kiwi TCMS become part of GitLab’s open source family
    Given: navigate your browser to http://tinyurl.com/KiwiTCMS
    And: log into GitLab via the "Sign in / Register" button
    And: complete the login / registration process
    When: click the 👍 icon under the first comment
    Then: wait for the winners to be announced!

"GitLab steps"

Thank you very much and Happy Testing!

Winners announcement

Winners will be selected from all voters, excluding Kiwi TCMS team members, HackConf organizers and GitLab affiliated accounts. The accounts which have participated can be verified with curl https://gitlab.com/api/v4/projects/gitlab-org%2Fgitlab/issues/334558/participants.

Winners will be announced on Oct 6th 2021 in a blog post on our website. We will try our best to get in touch with all winners but we also ask you to get in touch with us if you see your username!


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

Kiwi TCMS 10.3

We're happy to announce Kiwi TCMS version 10.3!

IMPORTANT: this is a small release which includes several improvements, bug fixes, internal refactoring and updated translations. It is the twelveth release to include contributions via our open source bounty program!

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)

Container images:

kiwitcms/kiwi       latest  bd28c4b064f5    579 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 10.2

Improvements

Bug fixes

  • Fix a bug where drop-down selectors for test plans would not show any values when product is changed. Fixes Issue #2467

Refactoring and testing

Kiwi TCMS Enterprise v10.3-mt

  • Based on Kiwi TCMS v10.3
  • Container image based on Red Hat Universal Base Image
  • Update django-ses from 2.1.1 to 2.2.1
  • Update python3-saml from 1.10.1 to 1.11.0
  • Add GitLab login icon

IMPORTANT: Kiwi TCMS Enterprise container images are available only to subscribers!

How to upgrade

Backup first! If you are using Kiwi TCMS as a 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!

Kiwi TCMS 10.2

We're happy to announce Kiwi TCMS version 10.2!

IMPORTANT: this is a small release including upgrades to 3rd party libraries (including security related updates), several improvements and bug fixes. It is the eleventh release to include contributions via our open source bounty program!

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:

kiwitcms/kiwi       latest  71b5c2a3dee4    972 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 10.1

Improvements & security updates

  • Update django from 3.2.3 to 3.2.5
  • Update django-guardian from 2.3.0 to 2.4.0
  • Update django-tree-queries from 0.5.1 to 0.5.2
  • Update psycopg2 from 2.8.6 to 2.9.1
  • Update python-gitlab from 2.7.1 to 2.9.0
  • Update node_modules/marked from 2.0.3 to 2.1.3
  • Update node_modules/html5sortable from 0.11.1 to 0.13.2
  • Update node_modules/prismjs from 1.23.0 to 1.24.1
  • Multiple select for filters on Telemetry pages. Fixes Issue #1940 (Shantanu Verma + Alex Todorov)
  • Allow editting TestCase setup_duration & testing_duration fields. References Issue #1923 (@APiligrim + Alex Todorov)
  • Move several checks to Dashboard page instead of performing them on every request (Ivajlo Karabojkov)
  • Fix grammatical error in documentation (Kushal Beniwal)
  • Add health check for Issue Tracker configuration. Fixes Issue #97
  • Document API URL field for Jira integration. Closes Issue #2443

Settings

  • tcms.core.middleware.CheckSettingsMiddleware has been removed
  • tcms.core.middleware.CheckUnappliedMigrationsMiddleware has been removed

API

  • Method Version.filter() now returns new field called product__name
  • Method Build.filter() now returns new field called version__value
  • Methods Build.filter(), Version.filter() and TestPlan.filter() will now order their results by product/version and then id.
  • Method Telemetry.breakdown() now returns only distinct results

Bug fixes

  • Make error messages in admin forms more legible. Fixes Issue #2404
  • Large images will now fit into the available space on the screen, e.g. inside test case description cards. Fixes Issue #2220

Refactoring and testing

  • Add automated tests for missing coverage in kiwi_auth.admin References Issue #1607 (Mariyan Garvanski)
  • Apply eslint fixes (@sonyagennova + Alex Todorov)
  • Refactor TestExecution.add_link method to use ModelForm and extend tests. Closes Issue #1327 (Rosen Sasov + Alex Todorov)
  • Use context manager when opening files to make pylint happier
  • Simplify 2 UI buttons on TestRun page
  • Enable doc8 for README and CHANGELOG and fix formatting errors

Kiwi TCMS Enterprise v10.2-mt

  • Based on Kiwi TCMS v10.2
  • Update django-ses from 2.0.0 to 2.1.1
  • Update django-python3-ldap from 0.11.4 to 0.12.0
  • Update documentation around initial config

IMPORTANT: Kiwi TCMS Enterprise container images are available only to subscribers!

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!

Kiwi TCMS Enterprise 10.1.1-mt

We're happy to announce Kiwi TCMS Enterprise version 10.1.1-mt!

IMPORTANT: this release includes support for authentication via Keycloak and support for enabling read-only view of tenants data for anonymous users.

Docker images:

quay.io/kiwitcms/enterprise       10.1.1-mt   d61e243dc4f5   1.19GB

Changes since Kiwi TCMS Enterprise 10.1-mt

  • Based on Kiwi TCMS v10.1
  • Fix URL to Python Social Auth documentation
  • Support read-only view on tenants for anonymous users. Contains a database migration to rename on_trial field to publicly_readable
  • Document initial configuration. Site administrators should add the tenants.change_tenant permission to users/groups who are allowed to make their tenants publicly visible. Fixes Issue #87, references Issue #88
  • Document the build process. Fixes Issue #89
  • Verify support for Keycloak logins. Fixes Issue #86
  • Update kiwitcms-github-app from 1.2.4 to 1.3.0
  • Update kiwitcms-tenants from 1.5.0 to 1.6.0

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!

"500K banner"

We are happy to announce that Kiwi TCMS has been downloaded more than 500000 times via Docker Hub! You can check the real-time stats here.

Thank you very much and Happy Testing!


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

Kiwi TCMS 10.1

We're happy to announce Kiwi TCMS version 10.1!

IMPORTANT: this release includes many improvements & security updates, database changes, new and updated API methods, bug fixes, translation updates, new tests and internal refactoring. It is the tenth release to include contributions via our open source bounty program and collaboration with Major League Hacking!

This is the second 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:

kiwitcms/kiwi       latest  788af5c3f067    800 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 10.0

Improvements & security updates

  • Upgrade from Python 3.6 to Python 3.8 inside the container
  • Upgrade Django from 3.1.7 to 3.2.3
  • Upgrade django-attachments from 1.8 to 1.9.1
  • Upgrade django-contrib-comments from 2.0.0 to 2.1.0
  • Upgrade django-extensions from 3.1.1 to 3.1.3
  • Upgrade django-grappelli from 2.14.3 to 2.15.1
  • Upgrade django-simple-history from 2.12.0 to 3.0.0
  • Upgrade django-tree-queries from 0.4.3 to 0.5.1
  • Upgrade jira from 2.0.0 to 3.0.1
  • Upgrade pygments from 2.8.0 to 2.9.0
  • Upgrade python-gitlab from 2.6.0 to 2.7.1
  • Upgrade node_modules/html5sortable from 0.10.0 to 0.11.1
  • Upgrade node_modules/marked from 2.0.1 to 2.0.3
  • Time-stamp fields added to all TestRun pages. Closes Issue #1928 (Andreea Moraru)
  • Don't set TestRun.start_date automatically. Fixes Issue #2323 (Andreea Moraru)
  • Web based database initialization for new installations. Closes Issue #1698 (Ivajlo Karabojkov)
  • Automatically active the first registered user via web UI
  • Rearrange layout of before and after fields on search pages
  • Allow TestRun creation from navigation menu. Fixes Issue #2281
  • Document hardware specs & performance baseline results. Refs Issue #721
  • Document performance for TestCase.filter/TestRun.filter methods. Closes Issue #1173
  • Update documentation around docker-compose.yml and the extra script files that it needs
  • Document some useful management commands
  • Clarify set_domain command. Closes Issue #2375

Settings

  • Change TEMP_DIR to /var/tmp which affects the location in which intermediate files coming from migrations are saved. If /var/tmp doesn't exist the fallback is /tmp which on modern Linux distributions is ephemeral
  • Add DEFAULT_AUTO_FIELD to hard-code expected behavior and prevent unwanted changes introduced by future versions of Django

Database

  • Add new fields to TestCase - setup_duration, testing_duration and a calculatable expected_duration attribute (Angelina)
  • Remove unused TestRun.product_version field

API

  • Method TestRun.filter() return value changes field names:

    • product_version -> plan__product_version
    • product_version__value -> plan__product_version__value

    Warning

    You will need to adjust your API scripts if using these fields!

  • Method Component.filter() will return only distinct results

  • New method KiwiTCMS.version()

Bug fixes

  • Remove links and icons from TestRun print styling. Fixes Issue #2263 and Issue #2264 (Gagan Deep)
  • Emails notifications are now sent into server language. Fixes Issue #1589 (Kapil Bansal)
  • Fix compatibility bug for "advanced search & add" popup windows and latest Chrome browsers. Fixes Issue #2100
  • Redirect TestPlan Admin "Add" to the correct URL
  • Fix wrong TestExecution field names in queryset & HTML template. Refs Issue #1924
  • Add default display for None fields in Test Case page

Refactoring & testing

  • Add test automation for TestExecution.actual_duration. Refs Issue #1924 (@APiligrim)
  • Add test automation for TestCase.expected_duration. Refs Issue #1923 (@APiligrim)
  • Add test automation for ReadOnlyHistoryAdmin. Fixes Issue #1604 (Kapil Bansal)
  • Add similar-string checker to kiwi_lint. Fixes Issue #1126 (@17sushmita)
  • Resolve or silence the remaining outstanding pylint issues. Closes Issue #171
  • Update isort from 5.7.0 to 5.8.0
  • Convert forms to ModelForm
  • Remove unused method parameters
  • Remove unused string_to_list(). Closes Issue #340
  • Simplify method used for progress-bar in dashboard which also reduces the total number of SQL queries
  • Use existing functions, remove duplication
  • Remove unnecessary calls & definition of loadInitialTestPlans() in Telemetry pages

Kiwi TCMS Enterprise v10.1-mt

  • Based on Kiwi TCMS v10.1
  • Container image built with Python 3.8
  • Update kiwitcms-tenants from 1.4.3 to 1.4.4

IMPORTANT: monthly subscription price for Kiwi TCMS SaaS offering has been updated to 50 $/mo for new subscriptions. Existing customers will not be affected!

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!

Kiwi TCMS 10.0

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:

kiwitcms/kiwi       latest  9f23186803d5    736 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 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

Automation framework plugins

The following test automation framework plugins have been upgraded to work with Kiwi TCMS v10.0:

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!

Kiwi TCMS has applied for GSoC 2021

"GSoC banner"

Dear open source hackers, we are happy to share that Kiwi TCMS has applied to Google Summer of Code 2021 as a mentoring organization!

While we're very early in the program timeline and we still don't know whether Kiwi TCMS will be accepted or not we'd like to use this opportunity and outline several areas which are good candidates for GSoC fellows to work on. Some of the tasks are also eligible for our open source bounty program. The majority of them require some knowledge of Python and Django.

Let's Encrypt SSL integration

By default Kiwi TCMS' container image comes with a self-signed SSL certificate! This is irritating because all modern browsers issue warnings for that and the majority of deployments do not have the infrastructure to distribute the self-signing Certificate Authority certificate files, e.g. make the browser trust the provided certificate.

This issue is compounded by the fact that production SSL certificates, issues by a well-known authority must be introduced from the outside. While this is documented there are fair amount of testers who do not have sufficient proficiency with Docker to do so.

The result is that we see many Kiwi TCMS deployments in the wild which completely disable HTTPS and users struggling to configure their SSL certificates.

An integration with Let's Encrypt would be a good choice. We've tried a proof of concept but had troubles running their official client on our container image.

The challenge will be to use a Let's Encrypt client that is supported on the CentOS Linux distribution (that's what we use) or a frequently maintained distribution independent package. Another challenge will be that the ACME protocol used needs to be able to talk back to the system asking for a new certificate. In most cases Kiwi TCMS will be deployed behind a firewall and initial certificate request/renewal requests may be able to go one way only.

Securing 3rd party dependencies

Kiwi TCMS itself uses services and tools like Snyk, npm audit, Coverity and Bandit against our own and against 3rd party source code. On the other hand some of our components (e.g. PatternFly) do not perform any kind of security testing. The starting point to unravel this is Issue #871.

As a minimum all issues reported by bandit & coverity against 3rd party dependencies must be sorted out:

  • Figure out if we execute our tools in the appropriate way as to not report unnecessary issues
  • Dissect all of the issues, especially ones from Bandit, report them to their upstream community, discuss and decide how to fix or ignore the issue and send a pull request to upstream
  • Figure out how to keep track/dashboard whether or not all of our runtime dependencies are using the same tools as we are (they are either open source or free to use for open source projects) since they seem to be good tools
  • Work with any upstream (2nd, 3rd, 4th, etc level dependencies) communities to adopt said tools and fix issues as they are discovered

All of this will ultimately benefit a broader community than Kiwi TCMS alone.

Integration with GitHub Actions and GitLab pipelines

As part of our continuing integration with GitHub we need to have an action which would report the results to Kiwi TCMS similar to how our automation framework plugins do!

You should start with GitHub because this is what Kiwi TCMS uses and we can immediately eat our own dog food. Originally proposed in Issue #817 then moved to github-app #10 with a slightly different focus.

Next (or in parallel) would be similar functionality for GitLab pipelines, proposed in Issue #1421

Java hacking

Kiwi TCMS does have a native junit-plugin but we are no experts in Java. In the testing world however Java is a very popular language and we need help building on top of the existing library and developing several other tools:

C# and Objective-C hacking

  • Issue #2020 - reporting plugin for NUnit, similar to other existing automation framework plugins. We're not sure how popular NUnit vs other test runners in the C# world is but it could be a good basis for developing future plugins. The challenge here is mostly for us since we're a Linux based team
  • Issue #1316 - reporting plugin for Kiwi-bdd a simple BDD for iOS. Again the challenge here would be on us since we don't have experience building and testing applications on iOS

Migration to Patternfly v4, possibly with React JS

The visual component library that Kiwi TCMS uses is called PatternFly. First it is a standard describing visual design, widget behavior and development hints for enterprise applications. Then it provides an actual implementation of their standards.

Kiwi TCMS is built with PatternFly v3 using raw HTML + CSS. This approach allowed us to get started quickly and gradually migrate from our legacy UI. It also works very well with Django which is structured around rendering HTML templates.

A major task is switching over to PatternFly v4 where there could be some differences in component syntax.

Since Kiwi TCMS v8.8 and v8.9 we have completely redesigned the TestPlan and TestRun pages. As they are the ones with the most possible interactivity and functionality we have hit the need to keep internal state on the front-end. This is rather cumbersome to manage by hand and calls for a more modern solution using React. There is PatternFly implementation as React components too.

The starting point is Issue #1323.

The volume of work is a challenge because all pages need to be migrated and we're not sure if this can be done and released in steps or all pages should be migrated and released together. In other words we don't know if shipping UI based on both PatternFly v3 and v4 will work.

The next challenge is refactoring the TestRun and TestPlan pages with React, keeping all existing functionality intact. A challenge here will also be the transactional nature of Django where it receives a browser request and sends a response, usually rendered HTML content! Lots of functionality happens both on the backend as well as in the HTML templates themselves - for example translations and permission checks.

JavaScript hacking

  • Issue #1281 - start using ESLint against our code base and clean-up all related issues
  • Issue #1910 - replace SimpleMDE with EasyMDE. Ideally we would like to depend on other active open source libraries and the rich text editor what we use looks like it needs replacement. We've got a few extra features hooked into the editor like syntax highlighting with dynamic loading of language definitions, support for inline attachments and a security override. All of these need to be kept in place.
  • Issue #1919 - reconsider using MomentJS. Well it looks like its original authors encourage everyone to actually stop using it and we should consider doing so as well. As it stands MomentJS is not widely used inside Kiwi TCMS except for timezone conversions in the browser. Should be relatively easy to replace, preferably with a vanilla JavaScript implementation. Either way we first need to know what actually has to be done.

Remaining telemetry

Testing Telemetry is one of our cool features and since we've started to redesign the legacy report feature testers are very happy with it. There are still some bits and pieces that are missing: Issue #616, Issue #1923, Issue #1924, Issue #1925, Issue #1926, Issue #1927, Issue #1928, Issue #1929, Issue #1940.

These generally depend on having the ability to record execution times in our database and afterwards the features are similar but relatively independent of one another.

Web hooks

Kiwi TCMS should be able to better integrate with 3rd party systems. This feature will allow users to configure custom URL to which Kiwi TCMS will send HTTP POST requests on certain events. It looks like we can base the implementation on top of django-rest-hooks and pair it up with RestrictedPython for further flexibility.

This feature is being tracked in Issue #1080 and Issue #913 but needs a more detailed definition.

Anything else

All of the proposals above are items which we have in our backlog and need help with. However participation in the Google Summer of Code program is not limited only to them. You are free to propose any other ideas/projects on which you would like to work during the summer. We would be happy to accept your contributions if we make it into the program.

Happy Testing!


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

Project roadmap 2021

Hello testers, this blog post outlines Kiwi TCMS roadmap for 2021 and what we feel is important to us!

roadmap image 2021

Project sustainability

The big goal towards which we are striving is to turn Kiwi TCMS into a sustainable open source project. For now this means three key areas:

1) Team
2) Technical
3) Community & Adoption

Team

Right now we have a core team with 3 members, 3 more members on-boarding and 2 interns. In the past year we weren't successful into turning more people into core-team members. I have seen several problems and core-team will significantly reconsider how we approach & recruit people to join the team, how we on-board and help them so that they can become productive and fully fledged team members.

Long term focus is improving and strengthening core-team which also implies a level of responsibility and performance criteria which core-team members must meet.

Goal: 1 PR/week/person as broad measure of individual performance so that we can operate with a predictable capacity.

Goal: (re)structure internal team processes around candidates and newcomers! Note: These are not public at the moment.

Technical

The areas shown on the picture above will receive more priority.

Goal: complete remaining Telemetry features.

Goal: complete remaining refactoring with major focus in pylint issues, migration to Patternfly v4 and eslint issues.

Goal: improve SSL configuration with strong bias towards Let's Encrypt being configured by default.

Goal: provide support for web hooks so that Kiwi TCMS can be integrated more easily/flexibly with 3rd party systems. We're aiming for Kiwi TCMS to be able to POST webhooks to external URLs and inform them about events in the system.

Community & Adoption

Last year Kiwi TCMS had massive success despite not visiting many events. The open source community spirit is important to us both in terms of technical collaborations and in terms of features & exposure which drives further adoption of Kiwi TCMS downstream.

Goal: complete bug-tracker integration milestone.

Goal: extended GitHub integration via GitHub actions which will report results into our database. We do have other ideas as stretch goals.

Goal: similar to GitHub actions we're looking towards GitLab pipelines and similar integration with GitLab.

Goal: continue our collaboration with Major League Hacking Fellowship program.

Goal: apply for the Google Summer of Code program and work with students if selected.


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

Kiwi TCMS 9.0

We're happy to announce Kiwi TCMS version 9.0!

IMPORTANT: this is a major release which includes backwards incompatible database and API changes, improvements, bug fixes, translation updates, new tests and internal refactoring. It is the eight release to include contributions via our open source bounty program.

This is the third release after Kiwi TCMS reached 200K 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:

kiwitcms/kiwi       latest  f98908772a2a    695 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 8.9

Improvements

  • Update django from 3.1.4 to 3.1.5
  • Update django-contrib-comments from 1.9.2 to 2.0.0
  • Update pygithub from 1.53 to 1.54.1
  • Update pygments from 2.7.3 to 2.7.4
  • Update mysqlclient from 2.0.1 to 2.0.3
  • Update node_modules/prismjs from 1.22.0 to 1.23.0
  • Update node_modules/marked from 1.2.5 to 1.2.7
  • Implement 'Select all' for TestCase Search page. Resolves Issue #2103 (Bryan Mutai)
  • Change ON/OFF button messages for several buttons (Krum Petkov)
  • Remove delete_selected action from admin pages
  • Show active test runs in TestPlan page
  • Hide irrelevant Version & Build selectors for Testing breakdown telemetry
  • Allow running to be passed as URL query param to TestRun Search page

Settings

  • Remove unused kiwi.rpc log handler from LOGGING setting

Database

Warning: Contains backwards incompatible changes.

  • Replace Build.product with Build.version. Closes Issue #246. Build objects are now associated with Version objects, not with Product objects!

    Warning:

    After migration existing builds will point to the "unspecified" version! If you want your telemetry to be accurate you will have to update these objects manually and point them to the appropriate version value!

  • Rename related_name for TestExecution model: case_run -> executions

  • Rename related_name for TestCase model: case -> cases

API

Warning: Contains backwards incompatible changes.

  • Methods Build.filter, Build.create and Build.update replace the product field with a version field

Bug fixes

  • Display raw Markdown text before rendering to fix a bug where anonymous users don't see any text on the screen even if they are allowed to view an object

Refactoring & testing

  • Add tests for tcms.core.middleware. Fixes Issue #1605 (Gagan Deep)
  • Add tests for tcms.handlers. Fixes Issue #1611 (Gagan Deep)
  • Add tests for tcms.kiwi_auth.views. Fixes Issue #1608 (Abhishek Chaurasia)
  • Update pip during bugtracker integration tests to fix dependency issues
  • Reformat all files with black and isort. Closes Issue #1193
  • Refactor TestExecution.get_bugs() to use TestExecution.links()
  • Add return statement for invalid form to make pylint happy
  • Make Bug.assignee field a UserField
  • Replace deprecated ugettext_lazy with gettext_lazy
  • Fixes for Azure Boards integration tests
  • Remove CsrfDisableMiddleware. Closes Issue #297
  • Remove unused methods & left-over views

Kiwi TCMS Enterprise v9.0-mt

  • Based on Kiwi TCMS v9.0
  • Update kiwitcms-github-app from 1.2.1 to 1.2.2
  • Update kiwitcms-tenants from 1.3.1 to 1.4.2

For more info see https://github.com/kiwitcms/enterprise#v90-mt-12-jan-2021

Automation framework plugins

The following test automation framework plugins have been upgraded to work with Kiwi TCMS v9.0:

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!

Roadmap status report for 2020

Another year rolls out and despite all difficulties it is by far the strongest one for Kiwi TCMS!

Stats

  • 2 physical events and a few virtual ones
  • 12 releases
  • 24 language translations
  • 683 PRs, most of them closed & merged
  • Reached Issue/PR number 2000
  • Reached 5000 commits
  • Reached 8000 registrations via https://public.tenant.kiwitcms.org
  • Reached 270K downloads via Docker Hub

Status update

From the 2020 roadmap we've established 3 main areas to work on. Their completeness scores are:

1) Team - 30%
2) Technical - 70%
3) Community - 100%

Average score is 65% completion!

Team

Overall the team has stalled its growth and improvement. Contributors which started onboarding a year ago are still under-productive and do not meet our criteria to become core-team members. The average team productivity is far beyond the goal of 1PR/week/person. This is largely due to contributors not being active on their items, very long periods between pull requests and longer than average time for closing pull requests.

The only positive side in this area is that core-team has improved its internal processes, is meeting regularly, discusses issues with members when they arise and relatively quickly spots problems and acts on them.

Technical

The dominating effort this year was refactoring the remaining legacy UI and converting everything to PatternFly. The effect of this is reduced code complexity and improved CodeClimate score/technical debt, removed vendored-in JavaScript dependencies and lots of unused code in favor of using the existing API.

Additional work has been done on closing bugs, implementing some features, integration with new bug tracking systems and improvements around the telemetry feature.

However there is still a lot of work to be done until all telemetry pages are complete. There are also around 30 pylint issues remaining which require internal refactoring and more legacy code cleanup. It's getting there but it's also getting harder.

Community

This area turned out to be our strongest one this year. We started very strong at FOSDEM 2020 and collaborated with multiple communities on plugins, code & translation contributions, adoption of Kiwi TCMS and general partnerships around open source.

Kiwi TCMS got a substantial grant from the Mozilla foundation which helped bootstrap our open source bounty program and internship program.

In May we reached 100K downloads on Docker Hub then in October we've surpassed 200K. Next month we'll reach 300K!

Summary

2020 was definitely a year full with uncertainties and hardship. It was not what we were used to and there were many ideas and lead projects that looked very promising in the beginning of the year but didn't materialize for a multitude of reasons.

Overall Kiwi TCMS, its team and its community did very well and I am confident that next year we can achieve more together!

Happy Testing and Happy New Year!


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

"Virtual show screen"

Dear testers, we are happy to share that Kiwi TCMS has been distinguished with the Excellence in Innovation 2020 award by Applied Research and Communications Fund in Bulgaria. This is also the first award that we receive locally and we're very happy about that!

Kiwi TCMS was a finalist in the Digital transformation category for the fact that leveraging the power of open source we've transformed an abandoned project (the predecessor of Kiwi TCMS) into a usable product with over 270000 downloads to date!

If you would like to checkout the awards ceremony and all of the particiants go to www.innovation.bg, we're listed under Отворени Технологии България ЕООД (the name of our parent company)! Text and video is not in English however!

Happy Testing!


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

Kiwi TCMS 8.9

We're happy to announce Kiwi TCMS version 8.9!

IMPORTANT: this release includes many improvements, API changes, bug fixes, translation updates, new tests and internal refactoring. It is the seventh release to include contributions via our open source bounty program. You can explore everything at https://public.tenant.kiwitcms.org! This is also the second release after Kiwi TCMS reached 200K pulls on Docker Hub!

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  9bcfea3a532e    652 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 8.8

Improvements

  • Update django from 3.1.3 to 3.1.4
  • Update django-extensions from 3.0.9 to 3.1.0
  • Update django-grappelli from 2.14.2 to 2.14.3
  • Update pygments from 2.7.2 to 2.7.3
  • Update python-bugzilla from 3.0.1 to 3.0.2
  • Update node_modules/marked from 1.2.3 to 1.2.5
  • Update node_modules/html5sortable from 0.9.18 to 0.10.0
  • New manage.py initial_setup command for one-stop initial setup (Ivajlo Karabojkov)
  • Bug tracker integration with BitBucket (bitbucket.org). Fixes Issue #1916 (@cmbahadir)
  • Complete redesign and refactoring of Test Run page:
  • TestCaseStatus can now be customized. Fixes Issue #1932
  • Update documentation & screenshots

Settings

  • Setting ANONYMOUS_USER_NAME is now explicitly defined due to upstream bug in django-guardian (Abhishek Chaurasia)

Database

  • New migrations for customizeable TestCaseStatus

API

  • Add TestExecution.history() method
  • Add TestCase.history() method
  • Add TestRun.add_cc() method
  • Add TestRun.remove_cc() method
  • Method TestExecution.update() will use build from parent test run if a build field isn't explicitly specified in the arguments
  • Update method TestRun.add_case()
    • will return existing TestExecution if available
    • will raise if test case status is not confirmed
    • will always create new test executions with the highest sortkey

Bug fixes

  • Fixed miscellaneous bugs in tcms.rpc.testcase (Gagan Deep)
  • Disable name change in admin for the default groups. Fixes Issue #1313

Refactoring & testing

  • Add automated tests for tcms.core.views.server_error. Fixes Issue #1606 (Abhishek Chaurasia)
  • Add automated tests for tcms.rpc.api.auth. Fixes Issue #1620 (Abhishek Chaurasia)
  • Add automated test for AnonymousViewBackend.has_perm method. Fixes Issue #1905 (Abhishek Chaurasia)
  • Add automated tests for tcms.core.utils.maito. Fixes Issue #1603 (Gagan Deep)
  • Add automated tests for tcms.utils.github. Fixes Issue #1612 (Gagan Deep)
  • Add automated tests for tcms.rpc.api.testscase. Fixes Issue #1623 (Gagan Deep)
  • Add automated tests for tcms.testcases.views.NewCaseView. Fixes Issue #1614 (@rish07)
  • Add automated tests for tcms.testplans.views.NewTestPlanView. Fixes Issue #1616 (@awalvie)
  • Separate two functions one from another (Alexander Tsvetanov)
  • Disable pylint checks (Alexander Tsvetanov)
  • Upgrade to MySQL 8 in Travis CI
  • Remove unused setup in Travis CI
  • Be more robust when keeping internal state for TestPlan page

Kiwi TCMS Enterprise v8.9-mt

  • Based on Kiwi TCMS v8.9

For more info see https://github.com/kiwitcms/enterprise#v89-mt-07-dec-2020

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!

Page 1 / 6

Older Posts