Articles by Kiwi TCMS Team

Kiwi TCMS is opening a call for proposals: Tell us how do you deploy, backup and upgrade your Kiwi TCMS containers? What environment do you use, how do you migrate data or ensure the system is always up and running? How do you go about testing if a newer version doesn't break the features that you use ? What best practices have you identified that can help others?

We are going to collect your feedback and update the existing documentation.

Please submit your responses here: https://docs.google.com/forms/d/e/1FAIpQLSe-kioT_e3UHwV5irwLroR2Jsk5oYM_Ls6acVeLVcBn7Kpt7Q/viewform. All fields are optional, including your email address!

Thank you and happy testing!

Django plugin for Kiwi TCMS

We're happy to announce the initial release of kiwitcms-django-plugin! This package allows you execute your Django test suite and report the results into Kiwi TCMS! This plugin has been developed by contributor Bryan Mutai as part of our open source bounty program.

To install:

pip install kiwitcms-django-plugin

and then in your settings.py specify:

TEST_RUNNER = 'tcms_django_plugin.TestRunner'

This plugin needs the ~/.tcms.conf configuration file:

[tcms]
url = https://tcms.server/xml-rpc/
username = your-username
password = your-password

Product information and how to report can be controlled via environment variables which are documented here. Example results from the plugin's own test suite are reported in TP-296!

Happy testing!

We are happy to announce that versioned releases of Kiwi TCMS container images are now available to customers with an active enterprise subscription.

For a long time our release policy has been to push only latest version of our upstream kiwitcms/kiwi containers. This upstream channel doesn't carry version tags and receives versioned releases only when there are backwards incompatible database migrations! This proved challenging to administrators who don't upgrade immediately to the latest version as soon as it comes out.

For example this happens in environments where admins use the upstream images as proof of concept and later switch to a production grade installation. Quite often they migrate to the Kiwi TCMS Enterprise containers during the same time.

Starting today versioned releases of Kiwi TCMS (single tenant) will be available via the mrsenko/kiwitcms private repository on Docker Hub. This repository includes tagged versions of the same docker images coming from the kiwitcms/kiwi channel! Access is granted automatically to all existing enterprise subscribers!

Kiwi TCMS 8.4

We're happy to announce Kiwi TCMS version 8.4!

IMPORTANT: this is a medium sized release which includes minor security fixes, many improvements & bug-fixes and translations in several new languages. It is the second 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  602dddcf41a7    646 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.3

Improvements

  • Update Django from 3.0.5 to 3.0.7 - security update for functionality not used by Kiwi TCMS
  • Update bleach from 3.1.4 to 3.1.5
  • Update django-grappelli from 2.14.1 to 2.14.2
  • Update django-simple-history from 2.9.0 to 2.10.0
  • Update markdown from 3.2.1 to 3.2.2
  • Update pygithub from 1.50 to 1.51
  • Update python-redmine from 2.2.1 to 2.3.0
  • Update patternfly from 3.59.4 to 3.59.5
  • Add manage.py set_domain command to change Kiwi TCMS domain. Fixes Issue #971 (Ivajlo Karabojkov)
  • GitHub bug details now works for private issues
  • Gitlab bug details now works for private issues
  • JIRA bug details now works for private issues
  • Redmine bug details now works for private issues
  • New feature: 1-click bug report for Bugzilla
  • New feature: 1-click bug report for Gitlab
  • New feature: 1-click bug report for JIRA
  • New feature: 1-click bug report for Redmine
  • Reverting to older historical version via Admin panel now redirects to object which was reverted. Fixes Issue #1074
  • Documentation updates

Important

Starting from v8.4 all supported bug trackers now feature 1-click bug report integration! Here's an example of how they look like for GitHub and JIRA:


Note

Some external bug trackers like Bugzilla & JIRA provide more flexibility over which fields are required for a new bug report. The current functionality should work for vanilla installations and would fall back to manual bug reporting if it can't create a new bug automatically!

Database

  • Force creation of missing permissions for m2m fields from the tcms.bugs app:
    • bugs.add_bug_tags
    • bugs.change_bug_tags
    • bugs.delete_bug_tags
    • bugs.view_bug_tags
    • bugs.add_bug_executions
    • bugs.change_bug_execution
    • bugs.delete_bug_execution
    • bugs.view_bug_executions

Warning

TCMS admins of existing installations will have to assign these by hand to users/groups who will be allowed to change tags on bugs!

Settings

  • Define the KIWI_DISABLE_BUGTRACKER=yes environment variable if you wish to disable the internal bug tracker. Closes Issue #1370

Bug fixes

  • Workaround missing MariaDB CHARSET/COLLATION support, see our docker-compose.yml. Fixes Issue #1700
  • Install missing /usr/bin/mysql in container
  • Warning message for unconfigured Kiwi TCMS domain does not show HTML tags in Admin anymore. Fixes Issue #964
  • Unescape the & string when trying to open new windows after clicking the 'Report bug' button in TestExecution. Fixes Issue #1533
  • Try harder to restore the original navigation menu instead of leaving bogus menu items. Fixes Issue #991
  • Robot Framework plugin is now GA. Close Issue #984
  • Add LinkReference to TestExecution after creating bug via 1-click. The UI still needs to be refreshed which will be implemented together with the redesign of the TestRun page
  • Update documented signature for API method TestCase.add_component to match current behavior, see https://stackoverflow.com/questions/61648405/

Refactoring & testing

  • Migrate check-docs-source-in-git to GitHub workflows. Fixes Issue #1552 (@Prome88)
  • Migrate build-for-pypi to GitHub workflows. Fixes Issue #1554 (@lcmtwn)
  • Add tests for TestCaseAdmin (Mariyan Garvanski)
  • Add tests for BugAdmin. Fixes Issue #1596 (Mariyan Garvanski)
  • Omit utils/test from coverage reports. Fixes Issue #1631 (@cmbahadir)
  • Omit tcms/tests from coverage reports. Fixes Issue #1630 (@cmbahadir)
  • Add tests for tcms.core.forms.fields - Fixes Issue #1629 (@cmbahadir)
  • Add tests for TestExecution.update() for case_text_version field (Rosen Sasov)
  • Refactor bulk-update methods in TestRun page to use JSON-RPC. Fixes Issue #1063 (Rosen Sasov)
  • Start using _change_reason instead of changeReason field in django-simple-history
  • Remove unused StripURLField & Version.string_to_id()
  • Refactoring around TestCase and TestPlan cloning methods
  • Start testing with the internal bug tracker disabled
  • Start testing with all supported external bug trackers. Fixes Issue #1079
  • Start Codecov for coverage reports
  • Add tests for presence of mysql/psql binaries in container
  • Add APIPermissionsTestCase with example in TestVersionCreatePermissions
  • Move most test jobs away from Travis CI to GitHub workflows

Translations

Note

Some of the translations in Chinese and German and all of the strings in Japanese and Korean have been contributed by a non-native speaker and are sub-optimal, see OpenCollective #18663. If you are a native in these languages and spot strings which don't sit well with you we kindly ask you to contribute a better translation via the built-in translation editor!

Kiwi TCMS Enterprise v8.4-mt

  • Based on Kiwi TCMS v8.4
  • Update social-auth-app-django from 3.1.0 to 3.4.0
  • Add django-python3-ldap add-on for LDAP logins

For more info see https://github.com/MrSenko/kiwitcms-enterprise/#v84-mt-03-june-2020

Vote for Kiwi TCMS

Our website has been nominated in the 2020 .eu Web Awards and we've promised to do everything in our power to greet future FOSDEM visitors with an open source billboard advertising at BRU airport. We need your help to do that!

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 tag to keep older image version on the machine
docker pull kiwitcms/kiwi
docker pull centos/mariadb-103-centos7
docker-compose up -d
docker exec -it kiwi_web /Kiwi/manage.py migrate

Refer to our documentation for more details!

Happy testing!

We are happy to announce that Kiwi TCMS is going to partner with Pionir on the development of open source hardware for testers! Pionir is a free school focused on creating a new generation of digital leaders, an exponential culture and solving challenges using technology. They are located in Kikinda, Serbia.

Pionir students

This is not our first collaboration - the students are already aware of the Kiwi TCMS project and last year they participated in presentation & workshop hosted by Alex. Zamphyr, the organization behind Pionir, is also one of the first open source projects on our OSS program!

Black boxes for black-box testing

Black-box testing is a method of software testing that examines the functionality of the subject under test without peering into its internal structures or workings. It is often performed by manipulating the possible inputs and examining the resulting output. Experienced black-box testers often develop a hunch for where bugs my be and it is not uncommon for them to discover some obscure problems nobody else thought about. More often than not the basis for this is developing an understanding/expectation how the SUT works by careful exploration during many iterations. Thus being able to explore a SUT, observe its behavior, keep mental notes about possible relations between input-behavior-output and analyzing what is happening under the hood becomes an important skill for testers.

The idea for having something unknown to explore & train your skills first comes from James Lyndsay’s Black Box Puzzles and was more recently implemented by Claudiu Draghia. Now it's our turn!

Project description

Pionir will be developing hardware black boxes for teaching exploratory testing in cooperation with Kiwi TCMS. We have dedicated €2000 from our bounty program for students of the free school towards completing this project.

The goal of the project is to produce at least 3 boxes and reference designs that will serve as a didactic tool for teaching, but also be free and open hardware, and as such, available to everyone to build from source.

This project will be trusted to the students of the free school who will get opportunity to take part in the challenging process of building a digital appliance, from designing the machine logic, to develop and prototype hardware.

The project includes designing, assembling, programming, documenting and delivering this hardware to us! Everything is expected to be open source: list of components, assembly instructions, 3D design files, source code, documentation and instructions! Our goal is that this will be relatively cheap and easy to build so everyone else can build their own boxes. During the next several months there will be new repositories created under https://github.com/kiwitcms to host the various boxes.

The black boxes are expected to be available in October 2020 - just in time for the upcoming conference season where members of the larger testing and open source communities will be able to practice with them!

Call for sponsors

We are also calling upon teams and organizations who use Kiwi TCMS in their testing workflows. Please consider making a one-time donation or becoming a regular sponsor via our Collective. You can contribute as low as € 1! The entire budget will be distributed to the community!

Vote for Kiwi TCMS

Our website has been nominated in the 2020 .eu Web Awards and we've promised to do everything in our power to greet future FOSDEM visitors with an open source billboard advertising at BRU airport. We need your help to do that!

Happy testing!

We're happy to announce the initial release of kiwitcms-robotframework-plugin! This package allows you execute your Robot Framework test suite and report the results into Kiwi TCMS! This plugin is the brain child of our Luca Valentini and Aniello Barletta and has its roots in the Robot Framework Milano user-group.

To install:

pip install kiwitcms-robotframework-plugin

and then make use of it like so:

robot --listener zealand.listener.KiwiTCMS

The plugin needs the ~/.tcms.conf configuration file:

[tcms]
url = https://tcms.server/xml-rpc/
username = your-username
password = your-password

and you can also specify the ${plan_id}, ${product} and ${build_user_email} variables in your .robot files. If any of these are missing it will attempt to discover the necessary information from your environment. The exact behavior is documented here.

This plugin uses the upstream robotframework/WebDemo test suite with SeleniumLibrary in a combination with a downstream test with the OperatingSystem library. The results are reported in TP-290. For more information checkout our package repository on GitHub!

Happy testing!

Kiwi TCMS is donating € 10000 (ten thousand euro) to our community to enable more hands working together and give an opportunity for people to get exposed to open source contributions. You can read more about the rules of the program in Round 01!

Bounties announced in Round 02

Custom pylint plugins:

#736, #738, #1126, #1303, #1384

Automation tests:

#1596, #1597, #1598, #1599, #1600, #1601, #1602, #1603, #1604, #1605, #1606, #1607, #1608, #1609, #1610, #1611, #1612, #1613, #1614, #1615, #1616, #1617, #1618, #1619, #1620, #1621, #1622, #1623, #1624, #1625, #1626, #1627, #1628, #1629, #1630, #1631

Call for sponsors

We are also calling upon teams and organizations who use Kiwi TCMS in their testing workflows. Please consider making a one-time donation or becoming a regular sponsor via our Collective. You can contribute as low as € 1! The entire budget will be distributed to the community!

Vote for Kiwi TCMS

Our website has been nominated in the 2020 .eu Web Awards and we've promised to do everything in our power to greet future FOSDEM visitors with an open source billboard advertising at BRU airport. We need your help to do that!

Happy testing!

Kiwi TCMS 8.3

We're happy to announce Kiwi TCMS version 8.3!

IMPORTANT: this is a small release which updates 3rd party libraries, provides several improvements, includes minor API updates and new translations. It is the first 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  c5dbd9a7ded6    562 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.2

Improvements

  • Update django-colorfield from 0.2.2 to 0.3.0
  • Update django-simple-history from 2.8.0 to 2.9.0
  • Update prismjs from 1.19.0 to 1.20.0
  • Update psycopg2 from 2.8.4 to 2.8.5
  • Update pygithub from 1.47 to 1.50
  • Update python-gitlab from 2.1.2 to 2.2.0
  • It is now possible to reopen closed bugs - Fixes Issue #1152 (@cmbahadir)
  • Visual improvements for Status matrix telemetry:
    • columns now link to test runs
    • tool-tips show test run summary
  • Show TOTAL in tool-tip for Execution trends telemetry
  • Self-signed SSL certificate is now built more frequently and is valid for 10 years
  • Improved documentation around self-signed certificates
  • Improved documentation around e-mail backend configuration. Closes Issue #1070 (@Schwarzkrieger)

API

  • Methods TestPlan.create, TestPlan.update and TestRun.update now use Django's ModelForm to properly validate input data against the model
  • Method TestCase.update now also accepts username and email values for fields author, default_tester and reviewer

Refactoring

  • Migrate bandit test job to GitHub workflows, Closes Issue #1550 (@lcmtwn)
  • Migrate doc8 test job to GitHub workflows. Closes Issue #1551 (@Prome88)
  • Add 2 more tests (Mariyan Garvanski)
  • Convert TP edit page to class based view
  • Convert forms to ModelForm

Kiwi TCMS Enterprise v8.3-mt

Includes internal refactoring and upgrades around Tenant schema names/domain names validation and better visual hints when creating tenants. For a list of changes see https://github.com/MrSenko/kiwitcms-enterprise/#v83-mt-27-apr-2020

Vote for Kiwi TCMS

Our website has been nominated in the 2020 .eu Web Awards and we've promised to do everything in our power to greet future FOSDEM visitors with an open source billboard advertising at BRU airport. We need your help to do that!

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 tag to keep older image version on the machine
docker pull kiwitcms/kiwi
docker pull centos/mariadb-103-centos7
docker-compose up -d
docker exec -it kiwi_web /Kiwi/manage.py migrate

Refer to our documentation for more details!

Happy testing!

bounty program banner

Kiwi TCMS is donating € 10000 (ten thousand euro) to our community to enable more hands working together and give an opportunity for people to get exposed to open source contributions. You will help us complete pending tasks faster while learning something new and receive a bonus for your efforts! This blog post outlines the rules of our open source bounty program.

Who is eligible to participate

Everyone who meets the following criteria is eligible to participate:

  • Has an account on https://opencollective.com - needed to follow program updates and request payments
  • Has a bank account - needed for actual money transfer, more info below!

If you are beginner in Python, Django or some other technology that we use please consider available documentation, your local user group, developers forum and StackOverflow to get help. Do not turn GitHub issues into a "getting started in programming" discussion.

Engagement rules

FIFO order for code review

  • Contributions will be reviewed and merged in a rolling first-in-first-out order, that is we review 1 PR and while waiting for updates continue on the next in the queue
  • In case of collisions, multiple contributions that try to resolve the same problem, our team will review the first one, then the second one, etc. The pull request which is first to pass DoD and code review will be merged and the conflicting ones closed
  • Please comment on issues and work together with other community members to split the work and avoid collisions as much as possible

About issues

Our team will try to clearly describe each task and what constitutes a successfully completed task, e.g. definition of done (DoD). If this isn't the case please ask questions and seek clarification about such tasks.

  • Only Issues under the bounty-program milestone AND labelled with a specific monetary amount are eligible for payout!
  • Unlabelled issues need further refinement before they can be accepted for bounties!

Payout rules

Once DoD has been met and the contribution is merged you may claim the assigned bounty. You must perform the following steps:

  • Submit an expense to the Kiwi TCMS Collective
  • All expenses submitted to the Kiwi TCMS Collective must follow the invoicing rules of our Fiscal Host. Here is an invoice template (Google Doc) you can use. Fill-in the blue parts and leave the black parts
  • Invoice & expense description contains the number of issue(s) and PR(s) for which bounty is claimed

Identity cross validation:

Once an expense has been submitted add a comment with your GitHub/Crowdin username to it + open a new issue in GitHub /new discussion in Crowdin with link to the expense submission. This will help us cross-validate that we are talking to the same person between platforms.

Note on bank transfers

A message from our Fiscal Host:

We currently prefer to do payouts using bank transfers. We used to support PayPal but fees were way too high for the collectives.

About bank transfer, we do EU transfers as well as non EU (which takes more time obviously).

We noticed that several collectives are now using Revolut bank accounts which is the easiest and cheapest way (it’s free) to receive money anywhere in the world.

It looks like the fastest & cheapest way to get paid is via Revolut account if you have one, followed by standard bank transfer and PayPal account is last!

Bounties: translation related tasks

Bounties: test automation plugins

  • Django test runner reporting plugin - #693
  • py.test reporting plugin - #1511
  • JUnit plugin: annotation & improvement for test case mapping - #1512
  • TestNG plugin - #692

Bounties: assorted technical issues

Call for sponsors

We are also calling upon teams and organizations who use Kiwi TCMS in their testing workflows. Please consider making a one-time donation or becoming a regular sponsor via our Collective. You can contribute as low as € 1! The entire budget will be distributed to the community!

Vote for Kiwi TCMS

Our website has been nominated in the 2020 .eu Web Awards and we've promised to do everything in our power to greet future FOSDEM visitors with an open source billboard advertising at BRU airport. We need your help to do that!

Happy bounty hunting!

Click here to vote for Kiwi TCMS

Scenario: Display open source advertising in Brussels airport
    Given one of the prizes is a 2 month billboard advertising campaign
    And the awards ceremony is on Nov 18th 2020
    When Kiwi TCMS wins
    Then there is good chance this campaign coincides with FOSDEM

Out team promises to do everything in our power so that visitors to FOSDEM 2021 start feeling the community vibe directly at the airport!

Please vote and share.

Thank you!

Kiwi TCMS 8.2

We're happy to announce Kiwi TCMS version 8.2!

IMPORTANT: this is a small release which updates 3rd party libraries, provides minor improvements, minor API changes and some new 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)

Docker images:

kiwitcms/kiwi       latest  7c1b947b9a43    561 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.1

Improvements

  • Update bleach from 3.1.1 to 3.1.4
  • Update django from 3.0.4 to 3.0.5
  • Update django-colorfield from 0.2.1 to 0.2.2
  • Update pygithub from 1.46 to 1.47
  • Update python-gitlab from 2.0.1 to 2.1.2
  • Update marked(js) to version 0.8.2
  • Change default MariaDB charset and collation to utf8mb4. Will only affect new installations. Closes Issue #327
  • Document TCMS_PLAN_ID ENV variable supported by automation framework plugins
  • Test case Search page now allows searching for records containing the specified text. Closes #1209 @Schwarzkrieger
  • Provide ../site-packages/tcms_settings_dir/ when installing Kiwi TCMS which is an empty pkgutil-style namespace where other packages can drop their configuration
  • Hide empty values in Execution trends chart tooltips

API

  • Remove Auth.login_krbv() method
  • Method TestRun.update() will now accept %Y-%m-%d %H:%M:%S timestamp format. The previous format %Y-%m-%d is also supported
  • Method TestExecution.create() now defaults to first neutral status instead of searching for the hard-coded IDLE. That means newly created test executions which do not specify status will be created with the first neutral status found in the database

Refactoring

  • Fix pylint errors. Closes Issue #1510 (@cmbahadir)
  • Add tests for TestRunAdmin.delete_view() (Mariyan Garvanski)
  • Revert "[l10n] Add Serializer class which returns untranslated models"

social-auth-kerberos v0.2.4

A new version of our Kerberos authentication backend has been released as well. For more info check https://github.com/kiwitcms/python-social-auth-kerberos#changelog. This version is included with Kiwi TCMS Enterprise.

tcms-api v8.2.0

New version of our tcms-api library has been released as well. Notable changes include the bug-fixes for Kerberos support and the ability to use Kerberos on Windows. For more information see https://github.com/kiwitcms/tcms-api/#changelog.

tap-plugin & junit.xml-plugin v8.2

Both plugins are now using the latest version of tcms-api library and include additional improvements like being able to specify existing TestPlan and setting stop_date for the automated TestRun. For more information see https://github.com/kiwitcms/tap-plugin#changelog and https://github.com/kiwitcms/junit.xml-plugin/#changelog

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 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

Happy testing!

Kiwi TCMS is the proud winner of a $10,000 award from Mozilla, Indeed, Open Collective, Ford Foundation & Simply Secure. Read below for the full story!

At the end of January Zahari alerted our team about the Open Source Speed Dating FOSDEM 2020 event and Alex was very swift in filing the application form. Just as we landed in Brussels, ready to host Testing and Automation devroom and the Open Source Test Management stand, we got the news - Kiwi TCMS has been selected as a participant.

What followed was a very hasty day of preparing a 5 min pitch and rehearsing it as much as possible so we can be ready to present our project. Alex prepared the pitch and made final review and polishing together with Anton. For the record everything was written down on paper, including important facts about the project and schedule - when and where is our slot, how is Alex going to get there, when does he need to leave to be on time, etc. We believe that preparation was key here and that's why our team always tries to be prepared when we participate at events! It was as good as it can get, no more changes!

On Feb 1st all hell broke loose - it was day #1 of FOSDEM, the Testing an Automation devroom was full with amazing speakers and packed with people, watch videos here, there was barely time to eat or drink water and at 5PM Alex had to rush across town to pitch Kiwi TCMS!

Then everything went like clockwork - weather was warm for the season, Alex decided to walk from ULB to La Tricoterie, both so he doesn't get stuck in traffic but also to regulate stress level and be clear minded for what comes next. He arrived just on time to meet with new folks and have a glass of wine before taking his turn with the judges.

Open Source Speed Dating is a format where projects pitch to a team of 3 judges who then follow up with various questions. Their goal is to assess how suitable your project is for the money they are giving away but also how would actually receiving an award help the project. You do get guidance how to prepare and what sort of information the judges are looking for. However you have no idea who the other participants are and who are you competing against! All you have is a 15 minutes slot where you have to give the best of you and hope it is enough.

Afterwards we reunited together, did even more walking, played the SPACESHIP at Let Me Out escape room and finished with a mandatory team dinner in the hearth of Brussels.

Following an internal selection process and due diligence we finally received the award. $10,000 for open source!

As a side note we also got to know who the other winners are, which can be seen from Open Source Speed Dating records: F-Droid, ossia, MNT Research GmbH and Kiwi TCMS!

We’re giving all of it to our community

All money from the Kiwi TCMS Collective will be going towards funding development tasks. Like Alex told the judges - this will help us enable more hands working on Kiwi TCMS and complete pending work faster. Stay tuned for our bounty program announcement!

Happy testing!

Kiwi TCMS 8.1

We're happy to announce Kiwi TCMS version 8.1!

IMPORTANT: this is a small security and improvement release which also includes several 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)

Docker images:

kiwitcms/kiwi       latest  fbb363af2d90    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 8.0

Security

  • JSON-RPC handler will now HTML escape all strings. This prevents XSS attacks via tags, components or anything else which is loaded on the web page via RPC and then shown as string. Even if someone saves <script>alert(123);</script> in the database the returned result will be HTML escaped and will not be executed as JavaScript!

    Notes:

    This is easy to exploit but people able to do so should have accounts in your Kiwi TCMS installation and write privileges on their accounts. If they do this means they can cause a lot more damage much more easily!

  • Update Django from 3.0.3 to 3.0.4 - fixes security issue CVE-2020-9402: Potential SQL injection via tolerance parameter in GIS functions and aggregates on Oracle which we believe does not affect Kiwi TCMS

Improvements

  • Update bleach from 3.1.0 to 3.1.1

  • Update django-colorfield from 0.1.15 to 0.2.1

  • Update markdown from 3.2 to 3.2.1

  • On bug creation send email to assignee. Fixes Issue #1154 (Mfon Eti-mfon)

  • Make it possible to provide override settings in a directory. Kiwi TCMS will respect:

    • local_settings.py
    • local_settings_dir/*.py

    For more information see https://kiwitcms.readthedocs.io/en/latest/installing_docker.html#customization

  • Allow adding TestPlan to TestCase via UI. Fixes Issue #1021

  • Add visual representation of failures in TestCase health telemetry

  • Add helper text to TestExecutionStatus admin

  • Add link to discussion forum in Help menu

API

  • TestCase.create() method no longer accepts product or product_id fields which have previously been deprecated
  • API methods which receive True/False values will no longer parse yes,no,1,0 values. The only accepted values are boolean constants defined in the calling programming language which are then transmitted via XML-RPC or JSON-RPC and converted to native boolean on the backend

Bug fixes

  • The number of search results shown per page can now be controlled via DEFAULT_PAGE_SIZE setting, which is 100 by default. Fixes Issue #1210 (Ivailo Karabojkov)
  • Use comma separated display of components in bug reports. Fixes Issue #1157 (Ivailo Karabojkov)
  • Update selector for 'Select All' test executions in TestRun page. Fixes Issue #1404
  • Fix crash when sorting test cases in TestPlan page. Fixes Sentry #KIWI-TCMS-A6
  • Fix a TC-undefined displayed in TestCase health telemetry

Refactoring

  • Add test for TestRunAdmin.change_view() (Mariyan Garvanski)
  • Remove unused showCaseRunsWithSelectedStatus
  • Internal JavaScript updates

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

Backup first! 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

Happy testing!

Hello testers, you can catch-up with your favorite open source test case management system during the month of March. Here's a list of events we are going to:

  • March 14 - QA: Challenge Accepted, Sofia where we will have an info booth. You will get a 15% community discount if you email tickets@qachallengeaccepted.com and mention this blog post
  • March 19-21 - OpenTechSummit, Singapore - aka FOSS ASIA summit:
    • Kiwi TCMS exhibition booth - 3 days
    • How to write pylint plugins for fun & profit workshop on March 19th
    • Testing [for] security [in] open source presentation on March 21st

To claim a free Community Standard Ticket use code atodorov. First 5 tickets only! For a 25% discount use code fossasia-speaker. For a 25% discount use code exhibitor-friends - applies only to Community Standard Ticket.

  • March 27-28 - TestingStage, Kiev where Alex will present his Static analysis as a test tool session. You can also claim 15% ticket discount by using promo-code AlexanderTodorov
  • April 1-2 - TestCon Moscow where Alex will present the Static analysis as a test tool again

Original plan was to visit OpenTest Con, Beijing between March 30-31 which has now been cancelled! The new plan is to stay 2-3 more days in Kiev and join some meetups if available.

Feel free to ping us at @KiwiTCMS or look for the kiwi bird logo and come to say hi. Happy testing!

Hello testers, this is the story of how our team is not taking part of the "QA of the year" contest organized by the QA: Challenge Accepted conference despite being nominated by Alex. In collaboration with Peter Sabev (organizer) we've managed to figure out what happened:

  • On Nov 17th Alex nominated the Kiwi TCMS team for the award
  • Last week Alex discovered our team is not listed on the voting page
  • Then Peter told us he's not seen any nomination related to Kiwi TCMS at all which made everything feel even stranger
  • We've managed to dig out browser history from November and it clearly shows the nomination form was submitted correctly
  • It was even possible to load the confirmation URL and edit the submission
  • Upon second submission the nomination was clearly visible on the other side, Peter confirmed this

Then after a few days we've got word back - Peter had figured out what happened. Apparently the same Google form has been opened on 2 different computers and one of them overwrote the existing submissions.

This kind of issue can be avoided by employing the following measures:

  • Make the submission results public so that everyone can verify their nomination is indeed present on the list. It does take away anonymity and can also expose personal information like email/phone/employer. ID, name and submission time-stamp however will be enough
  • History of edits could also be exposed publicly for extra safety
  • Turn on some sort of overwrite protection similar to what you have for git branches. At the very least have a warning before allowing data overwrite
  • Turn on email confirmation - the existing form didn't have this enabled
  • On our side: double check submission has been received - will put more pressure on the organizing team

Sadly the issue was discovered after the submission deadline has ended so Kiwi TCMS can't participate in this year's contest. We wish the rest of the finalists best of luck and we're going to see you at QA: Challenge Accepted next month.

Happy testing!

Kiwi TCMS 8.0

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 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  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

Improvements

  • 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 https://kiwitcms.readthedocs.io/en/latest/admin.html#test-execution-statuses. Fixes Issue #236
  • Add passing rate chart to Execution trends telemetry
  • Documentation updates (@Prome88)

Database

This release adds several migrations which alter the underlying database schema by renaming multiple columns.

WARNINGS:

  • 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:

    1. Backup existing database with:

      docker exec -it kiwi_db mysqldump -u kiwi -pYourPass kiwi > backup.sql
      
    2. docker-compose down

    3. docker volume rm kiwi_db_data - will remove existing data volume b/c of incompatibilities between different MariaDB versions

    4. docker-compose up - will recreate data volume with missing data. e.g. manage.py showmigrations will report that 0 migrations have been applied.

    5. 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

    6. Proceed to upgrade your Kiwi TCMS container !

CHANGES:

  • 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:
    • Tag.id
    • TestCaseStatus.id
    • Category.id
    • PlanType.id
    • TestExecutionStatus.id
  • 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

API

WARNING:

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!

CHANGES:

  • 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

NOTES:

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

Bug fixes

  • 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 Issue #1261
  • Properly refresh test run progress bar when changing statuses. Fixes Issue #1326
  • Fix a bug where updating test cases from the UI was causing text and various other fields to be reset. Fixes Issue #1318

Refactoring

  • Extract attachments widget to new template. Fixes Issue #1124 (Rosen Sasov)
  • Rename RPC related classes. Fixes Issue #682 (Rosen Sasov)
  • 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

Backup first! 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

Happy testing!

Hello testers as we've stated previously Kiwi TCMS has migrated to a new GitHub backend. The previous OAuth application with ID e45b09369720518e1fc3 has been deprecated.

OAuth tokens for this application have been revoked and you should have received an email notification from GitHub about this.

If you still have an active Marketplace listing we kindly ask you to cancel it until we're able to deploy the improved integration on GitHub Marketplace again.

Thank you!

Kiwi TCMS 7.3

We're happy to announce Kiwi TCMS version 7.3!

IMPORTANT: this is a critical security update for CVE-2019-19844: Potential account hijack via password reset form!

Also migrates to Django 3.0 and includes several other improvement and bug-fixes!

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  4026ee62e488    556 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.2

Security

  • Update Django from 2.2.8 to 3.0.2

Improvements

  • Update python-gitlab from 1.13.0 to 1.15.0
  • Update pygithub from 1.44.1 to 1.45
  • Update django-grappelli from 2.13.2 to 2.13.3
  • Bump django-uuslug from 1.1.9 to 1.2.0
  • Bump django-attachments from 1.4.1 to 1.5
  • Bump django-vinaigrette from 1.2.0 to 2.0.1
  • Update marked to version 0.8.0
  • Update prismjs to version 1.19.0
  • Generalize existing kiwitcms.telemetry.plugins handling code by renaming the entry point to kiwitcms.plugins
  • Refactor views to class based (Svetlozar Stoyanov)
  • Teach Kiwi TCMS to automatically report bugs to GitHub when the user selects such action. Fall back to opening a new browser window for manually entering the bug if something goes wrong

Database

  • When migrating from the older Bug model to LinkReference skip bugs which are attached directly to test cases instead of test executions. See SO #59321756
  • Remove AutoField.max_length because it is ignored by Django 3

API

  • TestCase.update() method now allows to update the author field. Fixes Issue #630

Bug fixes

  • Modify template pass object as test_plan. Fixes Issue #1307 (Ed Oswald S. Go)
  • Enable version selection in test plan search page. Fixes Issue #1276
  • Apply percentage rounding for completed test executions. Fixes Issue #1230
  • Fix a logical bug in conditional expression when deciding whether or not reporting bugs to selected issue tracker is disabled

Refactoring

  • Add code of conduct. Fixes Issue #1185 (Rosen Sasov)
  • Add test for KIWI_DONT_ENFORSE_HTTPS. Closes Issue #1274
  • Replace ugettext_lazy with gettext_lazy for Django 3
  • Remove BaseCaseSearchForm.bug_id field
  • Refactor testcase edit view to class-based
  • Happy New Year pylint

GitHub integration

The hosted version of Kiwi TCMS ships with additional GitHub integration. See GitHub App announcement and github-app for more information!

Upcoming conferences

The next two events we are going to participate are:

If you are around come and say "Happy testing"!

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 pull kiwitcms/kiwi
docker pull centos/mariadb
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

Happy testing!

Hello testers, Kiwi TCMS is migrating from its OAuth backend to the so called "GitHub App" backend in order to enable further integration with GitHub's PR flow as stated previously in our yearly goals. This blog post outlines the differences between the old and the new!

The old OAuth application only had access to your username, name and email for authentication purposes. Its authorization screen looked like so:

OAuth login screen

GitHub Apps on the other hand are designed for more granular access and tighter integration with the GitHub platform. This type of application still allows you to perform 1-click login into https://public.tenant.kiwitcms.org. If this is your first time logging into Kiwi TCMS after the migration you will see the following screen:

App login screen

Notice how the heading, information section and action button are slightly different! The important section is Resources on your account! We still only need your name, username and email address! Existing Kiwi TCMS accounts (from before the migration) will continue to work and they will still have access to all of their data previously created. Authorization of this new GitHub app (e.g. login only) does not give it permissions to access your repositories and act on your behalf.

To permit this GitHub App to access your repositories and/or act on your behalf you must Install it first. That is tell Kiwi TCMS GitHub integration code what kind of resources from your GitHub account it is allowed to access. You may install into your personal GitHub account or an organizational account! You may do this by following the Install & Authorize button on our home page or directly from https://github.com/apps/kiwi-tcms! The screen should look like this:

App installation screen

Initially we ask for read-only access to a few resources so Kiwi TCMS can start receiving webhooks from GitHub and synchronize information about your repositories into our database. This is documented both on the app installation screen itself (required by GitHub) and on https://github.com/kiwitcms/github-app!

Further ideas about integration between GitHub and Kiwi TCMS, including the original idea about status checks from Issue #700, can be found at https://github.com/kiwitcms/github-app/issues.

Help us grow

After this migration we're back to zero! The thousands of authorizations we've had on our legacy OAuth app can't be migrated to the new app. This also means our listing on GitHub Marketplace will be taken down and we have to qualify through the entire process from scratch.

Please help us get back on track! Here's what we ask you to do (in this order):

Thank you! Happy testing and happy new year!

Kiwi TCMS 7.2

We're happy to announce Kiwi TCMS version 7.2! This is an improvement & bug fix release which includes new database migrations and API methods, 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)

Docker images:

kiwitcms/kiwi       latest  f9a8a044c34e    537 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.1

Improvements

  • Base docker image to new CentOS 8
  • Update Django from 2.2.6 to 2.2.8
  • Update django-contrib-comments from 1.9.1 to 1.9.2
  • Update django-grappelli from 2.13.1 to 2.13.2
  • Update django-modern-rpc from 0.11.1 to 0.12.0
  • Update django-simple-history from 2.7.3 to 2.8.0
  • Update mysqlclient from 1.4.4 to 1.4.6
  • Update pygithub from 1.44 to 1.44.1
  • Update python-gitlab from 1.12.1 to 1.13.0
  • Several documentation updates

Database migrations

  • Add new database fields weight, icon and color to TestExecutionStatus and adjust existing code to work with them. This is a necessary step before allowing customization of test execution statuses, see Issue #236

API

  • RPC method TestExecution.add_comment() now requires django_comments.add_comment permission
  • Add new RPC method TestExecution.remove_comment()
  • Add new RPC method TestCase.add_comment()
  • Add new RPC method TestCase.remove_comment()

Bug fixes

  • testplans.views.DeleteCasesView now requires testplans.change_testplan permission (Svetlomir Balevski)
  • testplans.views.ReorderCasesView now requires testplans.change_testplan permission (Svetlomir Balevski)
  • Fix counting bug in execution trends telemetry
  • Fix several telemetry queries to still show data in the corner case where test cases have been deleted from a TestPlan but test runs are still available
  • Fix broken bulk menu in TestRun page when (translated) status names are too long
  • Automatically expand TestExecution comment history if there are comments present. Fixes Issue #349 (Matt Porter)
  • Document timezone settings and show current server time in navbar. Fixes Issue #1206
  • Check for permissions in HTML template. Closes Issue #961
  • Document bug tracker integration support. Fixes Issue #698
  • Delete comments when TestCase and TestExecution are removed. Closes Issue #1028

Refactoring

  • Pylint fixes (Mariyan Garvanski)
  • Use django.utils.timezone.now() instead of datetime.now(). Closes Issue #545
  • Use JSON-RPC instead of backend views when working with comments. Resolves Issue #960
  • Remove tcms.core.contrib.comments module. Closes Issue #959
  • Remove label= attribute from form field. Fixes Issue #652
  • Move and rename XML-RPC forms. Resolves Issue #681
  • Convert testplans.views.DeleteCasesView to JSON-RPC
  • Refactor more views from function based to class based
  • Remove duplicate JavaScript

Important changes

Soon Kiwi TCMS will switch from OAuth to GitHub App integration type with GitHub. Login with your GitHub accounts will still be supported but you will also be able to INSTALL Kiwi TCMS into your account/organization/repositories. This will open the possibility for further integration with GitHub as expressed in our roadmap for 2019!

We are going to share more information when this becomes available.

Upcoming conferences

The next two events we are going to participate are:

If you are around come and say "Happy testing"!

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 pull kiwitcms/kiwi
docker pull centos/mariadb
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

Happy testing!

Newer Posts

Page 5 / 8

Older Posts