diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml new file mode 100644 index 00000000..9c055688 --- /dev/null +++ b/.github/workflows/codeql.yml @@ -0,0 +1,41 @@ +name: "CodeQL" + +on: + push: + branches: [ "master", "source" ] + pull_request: + branches: [ "master" ] + schedule: + - cron: "0 3 * * 2" + +jobs: + analyze: + name: Analyze + runs-on: ubuntu-latest + permissions: + actions: read + contents: read + security-events: write + + strategy: + fail-fast: false + matrix: + language: [ javascript ] + + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Initialize CodeQL + uses: github/codeql-action/init@v2 + with: + languages: ${{ matrix.language }} + queries: +security-and-quality + + - name: Autobuild + uses: github/codeql-action/autobuild@v2 + + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v2 + with: + category: "/language:${{ matrix.language }}" diff --git a/CNAME b/CNAME index aafb3256..be1b18f9 100644 --- a/CNAME +++ b/CNAME @@ -1 +1 @@ -kiwitcms.org \ No newline at end of file +kiwitcms.org diff --git a/README b/README new file mode 100644 index 00000000..69e660b1 --- /dev/null +++ b/README @@ -0,0 +1,38 @@ +Kiwi TCMS website +----------------- + +This website is built with Pelican, https://blog.getpelican.com/. +To start hacking you need: + +- make, preferably GNU Make. See https://en.wikipedia.org/wiki/Make_(software), + https://www.gnu.org/software/make/ and your Linux distribution +- Python 3.6 or later, see https://www.python.org/downloads/ +- git client, see https://git-scm.com/downloads or https://desktop.github.com/ +- fork this repository, see https://help.github.com/en/github/getting-started-with-github/fork-a-repo +- `git clone` your fork, see ^^^ +- create a virtual environment with `venv`, see https://docs.python.org/3/library/venv.html +- activate the virtual environment created above (`/bin/activate`) +- `cd kiwitcms.github.io/` +- `pip install -r requirements.txt` +- `git checkout source` to switch to the `source` branch +- `git checkout -b name_of_your_branch` + +In 2 separate terminals use: + +- `make regenerate` to regenerate the website with latest changes +- `make serve` to serve them at http://localhost:8000/ for preview + +Edit files to make changes in the website. You are most likely looking +for files in `content/pages/`! + +Once you are ready: + +- `git commit` you changes +- `git push origin name_of_your_branch` +- open a pull request against the `source` branch! + +For more help see: +https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/proposing-changes-to-your-work-with-pull-requests + + +WARNING: do not convert this file to Markdown, see c72b3ab. diff --git a/blog/archives/index.html b/blog/archives/index.html new file mode 100644 index 00000000..e759f749 --- /dev/null +++ b/blog/archives/index.html @@ -0,0 +1,703 @@ + + + + + Kiwi TCMS - Archives + + + + + + + + + + + + + + + + +
+

Archives

+

Wed 09 November 2022

+

+ Kiwi TCMS 11.6 +

+

Tue 08 November 2022

+

+ Call for participation: Testing and Automation devroom, FOSDEM'23 +

+

Tue 25 October 2022

+

+ Meet Kiwi TCMS at WebSummit 2022 in Lisbon +

+

Tue 06 September 2022

+

+ Kiwi TCMS 11.5 +

+

Thu 04 August 2022

+

+ Kiwi TCMS 11.4 +

+

Mon 27 June 2022

+

+ Mejor Sitio Web 2022 +

+

Tue 14 June 2022

+

+ Meet Kiwi TCMS at Collision 2022 in Toronto +

+

Tue 07 June 2022

+

+ Zaklina, welcome to the Kiwi TCMS team +

+

Thu 02 June 2022

+

+ Survey: How do testers and QA use GitHub, GitLab and Bitbucket +

+

Wed 18 May 2022

+

+ New versions of automation framework plugins +

+

Wed 27 April 2022

+

+ Kiwi TCMS 11.3 +

+

Wed 09 March 2022

+

+ Kiwi TCMS 11.2 +

+

Tue 01 March 2022

+

+ New and updated subscription plans for Kiwi TCMS +

+

Sun 27 February 2022

+

+ Container Registry Credentials for Subscribers +

+

Wed 02 February 2022

+

+ Kiwi TCMS 11.1 +

+

Tue 25 January 2022

+

+ Kiwi TCMS 11.0 +

+

Mon 24 January 2022

+

+ Parameters, Environments and test matrix generation +

+

Thu 06 January 2022

+

+ Kiwi TCMS Enterprise 10.5.1 +

+

Tue 14 December 2021

+

+ New versions of automation frameworks plugins +

+

Mon 06 December 2021

+

+ Call for participation: Testing and Automation devroom, FOSDEM'22 +

+

Fri 26 November 2021

+

+ Kiwi TCMS 10.5 +

+

Mon 01 November 2021

+

+ Kiwi TCMS subscription guidelines +

+

Fri 29 October 2021

+

+ Catch up with Kiwi TCMS at WebSummit 2021 Lisbon +

+

Wed 06 October 2021

+

+ Announcing winners of 6 tickets for HackConf 2021 +

+

Tue 05 October 2021

+

+ Kiwi TCMS 10.4 +

+

Tue 21 September 2021

+

+ Meet Kiwi TCMS at WebSummit 2021 in Lisbon +

+

Fri 17 September 2021

+

+ Please nominate Kiwi TCMS at MLH Open Source Awards +

+

Wed 01 September 2021

+

+ Win 6 SUPERFAN tickets for HackConf 2021 +

+

Wed 11 August 2021

+

+ Kiwi TCMS 10.3 +

+

Mon 12 July 2021

+

+ Kiwi TCMS 10.2 +

+

Thu 01 July 2021

+

+ Kiwi TCMS Enterprise 10.1.1-mt +

+

Tue 15 June 2021

+

+ Thank you for downloading Kiwi TCMS 500000 times +

+

Tue 18 May 2021

+

+ Kiwi TCMS 10.1 +

+

Tue 02 March 2021

+

+ Kiwi TCMS 10.0 +

+

Sat 30 January 2021

+

+ Kiwi TCMS has applied for GSoC 2021 +

+

Fri 29 January 2021

+

+ Project roadmap 2021 +

+

Wed 13 January 2021

+

+ Kiwi TCMS 9.0 +

+

Thu 31 December 2020

+

+ Roadmap status report for 2020 +

+

Sat 26 December 2020

+

+ Excellence in Innovation 2020 award for Kiwi TCMS +

+

Mon 07 December 2020

+

+ Kiwi TCMS 8.9 +

+

Wed 02 December 2020

+

+ Call for participation: Testing and Automation devroom, FOSDEM'21 +

+

Mon 09 November 2020

+

+ Kiwi TCMS 8.8 +

+

Mon 26 October 2020

+

+ Kiwi TCMS celebrates 200K+ downloads +

+

Sun 18 October 2020

+

+ SEDC Academy For Software Testing is running Kiwi TCMS +

+

Thu 15 October 2020

+

+ Kiwi TCMS is partnering with Vola Software +

+

Tue 13 October 2020

+

+ Kiwi TCMS is partnering with MLH Fellowship program +

+

Sat 10 October 2020

+

+ Progress update on open source hardware for black-box testing +

+

Wed 16 September 2020

+

+ Kiwi TCMS 8.7 +

+

Fri 04 September 2020

+

+ Please nominate @kiwitcms as a GitHub Star +

+

Tue 01 September 2020

+

+ Kiwi TCMS is a finalist in the 2020 .eu Web Awards +

+

Sun 23 August 2020

+

+ Kiwi TCMS 8.6 +

+

Tue 18 August 2020

+

+ Kiwi TCMS container images now available via Red Hat Quay.io +

+

Tue 11 August 2020

+

+ QGIS has chosen Kiwi TCMS +

+

Thu 06 August 2020

+

+ Kiwi TCMS Enterprise v8.5.2-mt +

+

Sat 11 July 2020

+

+ Customize the information used for 1-click bug reports +

+

Fri 10 July 2020

+

+ Kiwi TCMS 8.5 +

+

Tue 07 July 2020

+

+ CfP: deployment, backup and upgrade best practices +

+

Tue 30 June 2020

+

+ Django plugin for Kiwi TCMS +

+

Tue 23 June 2020

+

+ Versioned releases of Kiwi TCMS +

+

Wed 03 June 2020

+

+ Kiwi TCMS 8.4 +

+

Tue 26 May 2020

+

+ Kiwi TCMS is partnering up with Pionir +

+

Wed 06 May 2020

+

+ Robot Framework plugin for Kiwi TCMS +

+

Fri 01 May 2020

+

+ Kiwi TCMS open source bounty program, Round 02 +

+

Mon 27 April 2020

+

+ Kiwi TCMS 8.3 +

+

Fri 17 April 2020

+

+ Kiwi TCMS open source bounty program, Round 01 +

+

Thu 09 April 2020

+

+ Please vote for Kiwi TCMS in 2020 .eu Web Awards +

+

Fri 03 April 2020

+

+ Kiwi TCMS 8.2 +

+

Fri 27 March 2020

+

+ Kiwi TCMS is Open Source Seed Award winner +

+

Wed 04 March 2020

+

+ Kiwi TCMS 8.1 +

+

Mon 17 February 2020

+

+ Catch-up with Kiwi TCMS in Sofia, Singapore, Kiev & Moscow +

+

Fri 14 February 2020

+

+ We're not participating in 'QA of the year' award +

+

Wed 12 February 2020

+

+ Kiwi TCMS 8.0 +

+

Tue 11 February 2020

+

+ I deleted our newsletter from Mailchimp ! Please re-subscribe +

+

Tue 04 February 2020

+

+ GitHub OAuth tokens have been revoked +

+

Fri 17 January 2020

+

+ Project roadmap 2020 +

+

Thu 16 January 2020

+

+ Kiwi TCMS 7.3 +

+

Sun 12 January 2020

+

+ Kiwi TCMS is migrating from OAuth to GitHub App +

+

Thu 26 December 2019

+

+ Roadmap status report for 2019 +

+

Mon 09 December 2019

+

+ Kiwi TCMS 7.2 +

+

Tue 26 November 2019

+

+ Kiwi TCMS is going to FOSDEM 2020 +

+

Mon 11 November 2019

+

+ How to override bug details in Kiwi TCMS +

+

Tue 29 October 2019

+

+ Kiwi TCMS 7.1 +

+

Tue 24 September 2019

+

+ Kiwi TCMS 7.0 +

+

Tue 03 September 2019

+

+ Open source sprints at PyCon Balkan in Belgrade +

+

Fri 09 August 2019

+

+ Kiwi TCMS conference presence, AW2019 +

+

Fri 02 August 2019

+

+ Kiwi TCMS 6.11 +

+

Mon 08 July 2019

+

+ Contributor profile: Aneta Petkova +

+

Fri 05 July 2019

+

+ Contributor profile: Primož Klemen +

+

Fri 28 June 2019

+

+ Mid-year roadmap status report +

+

Mon 24 June 2019

+

+ Kiwi TCMS is OpenAwards 2019 Best Tech Community Winner +

+

Tue 18 June 2019

+

+ Kiwi TCMS 6.10 +

+

Mon 27 May 2019

+

+ Kiwi TCMS needs your help winning OpenAwards 2019 +

+

Sat 25 May 2019

+

+ Pylint workshop with Django Bulgaria user group +

+

Thu 16 May 2019

+

+ Kiwi TCMS 6.9 +

+

Fri 03 May 2019

+

+ Kiwi TCMS 6.8 +

+

Sat 06 April 2019

+

+ Kiwi TCMS 6.7 +

+

Tue 19 March 2019

+

+ Kiwi TCMS 6.6 +

+

Wed 13 March 2019

+

+ Taking the lead at OpenExpo Europe CfP votes +

+

Sun 03 March 2019

+

+ Legacy reports become Telemetry +

+

Sat 02 March 2019

+

+ Want to hack open source ? +

+

Fri 22 February 2019

+

+ How to use Kiwi TCMS plugins, Pt. 1 +

+

Tue 12 February 2019

+

+ Kiwi TCMS 6.5.3 +

+

Fri 01 February 2019

+

+ Kiwi TCMS 6.5 +

+

Thu 17 January 2019

+

+ Kiwi TCMS is going to FOSDEM 2019 +

+

Thu 10 January 2019

+

+ Project mission and goals for 2019 +

+

Mon 07 January 2019

+

+ Kiwi TCMS 6.4 +

+

Mon 17 December 2018

+

+ Roadmap status report for 2018 +

+

Tue 04 December 2018

+

+ Kiwi TCMS 6.3 +

+

Mon 12 November 2018

+

+ Kiwi TCMS 6.2.1 +

+

Mon 05 November 2018

+

+ Test runner plugin specification +

+

Fri 02 November 2018

+

+ Kiwi TCMS 6.2 +

+

Mon 29 October 2018

+

+ Kiwi TCMS 6.1.1 +

+

Fri 26 October 2018

+

+ Kiwi TCMS API performance baseline +

+

Sat 20 October 2018

+

+ Kiwi TCMS 6.1 +

+

Fri 12 October 2018

+

+ Kiwi TCMS team updates +

+

Thu 11 October 2018

+

+ Kiwi TCMS winter conference presence +

+

Thu 04 October 2018

+

+ Kiwi TCMS 6.0 +

+

Thu 13 September 2018

+

+ Happy birthday Kiwi TCMS +

+

Fri 07 September 2018

+

+ How to add API logging for Kiwi TCMS +

+

Tue 04 September 2018

+

+ Kiwi TCMS 5.3.1 +

+

Tue 07 August 2018

+

+ Kiwi TCMS 5.2 +

+

Mon 06 August 2018

+

+ How to override templates for Kiwi TCMS +

+

Tue 31 July 2018

+

+ Kiwi TCMS 5.1 +

+

Mon 30 July 2018

+

+ How to backup Docker volumes for Kiwi TCMS +

+

Wed 25 July 2018

+

+ Mid-year roadmap status report +

+

Tue 24 July 2018

+

+ Kiwi TCMS 5.0 +

+

Sun 24 June 2018

+

+ Kiwi TCMS 4.2 +

+

Wed 11 April 2018

+

+ Kiwi TCMS conference presence +

+

Tue 10 April 2018

+

+ Kiwi TCMS 4.1.4 +

+

Fri 16 March 2018

+

+ Kiwi TCMS 4.1.3 +

+

Wed 21 February 2018

+

+ Kiwi TCMS 4.1.0 +

+

Sat 10 February 2018

+

+ Kiwi TCMS & tcms-api version 4.0.0 +

+

Thu 25 January 2018

+

+ Kiwi TCMS version 3.50 +

+

Mon 22 January 2018

+

+ Kiwi TCMS roadmap for 2018 +

+

Tue 02 January 2018

+

+ Kiwi TCMS version 3.49 +

+

Fri 08 December 2017

+

+ Kiwi TCMS Python API client +

+

Tue 28 November 2017

+

+ Kiwi TCMS version 3.48 +

+

Fri 03 November 2017

+

+ Testing, testing. It works! +

+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/atodorov/2018/07/25/mid-year-roadmap-status-report/index.html b/blog/atodorov/2018/07/25/mid-year-roadmap-status-report/index.html new file mode 100644 index 00000000..14cf3ca1 --- /dev/null +++ b/blog/atodorov/2018/07/25/mid-year-roadmap-status-report/index.html @@ -0,0 +1,273 @@ + + + + + Kiwi TCMS - Mid-year roadmap status report + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Mid-year roadmap status report

+ + + +
+

Hello everyone, in this article I will outline the progress that the Kiwi TCMS +team has made towards achieving the goals on our +roadmap.

+

Make code easier to maintain

+

Status: moderate progress

+

Initially CodeClimate reported +a "D" rating with a 1 year estimated effort. Now it is still on "D" rating with +a 7 months estimated effort to bring the project back in shape. +Code smells have dropped from 600+ to 418, duplications have been reduced from 600+ to 359! +At the same time technical debt ratio has been decreased from 32,5% to 21,6% and +little over 10000 lines of code have been removed from the source code. +Checkout +the stats +for more info!

+

Use pylint and pylint-django

+

Status: good progress

+

Both pylint and pylint-django have been integrated into our CI workflow. There are even +a few custom built plugins that we use. The number of issues reported is down to around 900 +from 4000+ initially. The cleanup has been lead by Anton Sankov +with help from Ivaylo Ivanov and myself.

+

Render HTML, return JSON

+

Status: no progress

+

Several views were probably modified to return pure JSON in the meantime but we've not +done any targeted work to resolve this issue.

+

Submit forms, post JSON, GET clean URLs

+

Status: no progress

+

Same as above, not much has been done in this area.

+

API layer

+

Status: complete

+

After Kiwi TCMS v4.0 the server side API has been reorganized and updated +to follow the model/method names used internally.

+

After the recent version 5.0 the client side API library has been stripped +to its most basic form so that you can work directly with the responses from +the server.

+

There is no more duplication and ambiguity in names because there isn't +a lot of code left!

+

Documentation

+

Status: moderate progress, dropped

+

All RPC methods have been documented! The rest of the internals will be documented +as we go along.

+

No vendored JavaScript libraries

+

Status: moderate progress

+

Several JavaScript libraries have been removed but we still carry around jQuery +and Handlebars.js. No work has been done to convert Kiwi TCMS to use the jQuery +version provided with Django.

+

Less HTML templates with better organization

+

Status: minimal progress

+

There are still over 100 HTML templates in Kiwi TCMS. Some of the HTML templates +have been merged together, some email templates have been refactored and marked +as translatable but the majority of them have not been updated for a long time.

+

Modern interface with Patternfly

+

Status: no progress

+

JavaScript updates and front-end testing

+

Status: small progress

+

A number of JavaScript functions have been refactored and removed during the +past few releases but there are still thousands of lines of code left to deal with.

+

Community efforts

+

Status: moderate progress

+

We are seeing a steady stream of new users registered on +https://public.tenant.kiwitcms.org and +there are several active contributors (issues, translations).

+

Kiwi TCMS was represented at OSCAL Tirana, DjangoCon Heidelberg and PyCon Prague! +We're planning to attend HackConf and OpenFest in Sofia by the end of the year.

+

Happy testing!

+
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/index.html b/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/index.html new file mode 100644 index 00000000..bd6f124e --- /dev/null +++ b/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/index.html @@ -0,0 +1,299 @@ + + + + + Kiwi TCMS - How to backup Docker volumes for Kiwi TCMS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

How to backup Docker volumes for Kiwi TCMS

+ + + +
+

When you start Kiwi TCMS by running docker-compose up +(see here) +it will automatically create 2 volumes: kiwi_db_data and kiwi_uploads. +This blog post will outline how to backup these docker volumes.

+

Note: in the instructions below kiwi_db is the container name and kiwi is the +database name used inside the docker-compose.yml file!

+

MariaDB/MySQL database

+

To export all contents from the docker container execute the command:

+
docker exec -u 0 -i kiwi_db mysqldump kiwi > backup.sql
+
+ + +

This will create a file named backup.sql in the current directory, outside of the running container!

+

You can restore the database contents by using the following command:

+
cat backup.sql | docker exec -u 0 -i kiwi_db mysql -v kiwi
+
+ + +

Notes:

+
    +
  1. The commands above using -u 0 are executed with root privileges inside the + container. In this way you don't need to type-in the database password!
  2. +
  3. Depending on your scenario you may want to remove the existing volume + (docker-compose down && docker volume rm kiwi_db_data) before restoring the database!
  4. +
+

Postgres database

+

To export all contents from the docker container execute the command:

+
docker exec -i kiwi_db pg_dump --dbname=kiwi -F c > backup.bak
+
+ + +

This will create a file named backup.bak in the current directory, outside of the running container. +This is a PostgreSQL custom database dump format which contains all data and schema definitions. +That is a binary file which can be read with the pg_restore command!

+

To drop and restore the entire database execute:

+
docker exec -i kiwi_db psql -c "DROP DATABASE IF EXISTS kiwi;"
+cat backup.bak | docker exec -i kiwi_db pg_restore --dbname=template1 -vcC
+
+ + +

Multi-tenant database

+

The kiwitcms-tenant add-on and/or +Kiwi TCMS Enterprise work only on +Postgres! Each tenant (aka name-space) uses a separate database schema. +The first schema name is public.

+

The backup and restore instructions shown above operate on all tenants together! +If you want to [drop and] restore an individual tenant then use the commands:

+
docker exec -it kiwi_db psql --dbname=kiwi
+
+kiwi=> DROP SCHEMA $tenant_name CASCADE;
+....
+DROP SCHEMA
+kiwi=> CREATE SCHEMA $tenant_name;
+CREATE SCHEMA
+kiwi=>Ctrl+D
+
+cat backup.bak | docker exec -i kiwi_db pg_restore --dbname=kiwi -v --schema $tenant_name
+
+ + +

Backing up file uploads

+

Uploaded files can easily be backed up with:

+
docker exec -i kiwi_web /bin/tar -cP /Kiwi/uploads > uploads.tar
+
+ + +

and then restored with:

+
cat uploads.tar | docker exec -i kiwi_web /bin/tar -x
+
+ + +

You may also try the rsync command but be aware that it is not installed +by default!

+

Note: +the same approach may be used to backup /var/lib/mysql/ or /var/lib/pgsql/data +from the kiwi_db container.

+

Backing up multi-tenant uploads

+

By default multi-tenant file uploads are stored under /Kiwi/uploads/tenant/$tenant_name. +You can archive all contents with the same procedure above. If you wish to restore +files per tenant you will have to upload the $tenant_name directory into the +docker volume.

+

Alternatives

+

By default both docker volumes created for Kiwi TCMS use the local driver +and are available under /var/lib/docker/volumes/<volume_name> on the host +running your containers. You can try backing them up from there as well.

+

Another alternative is to use the +docker-lvm-plugin +and create these volumes as LVM2 block devices. Then use +lvcreate -s command to create a snapshot volume. For more information see +chapter 2.3.5. Snapshot Volumes +from the LVM Administrator Guide for Red Hat Enterprise Linux 7.

+

Happy testing!

+
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/atodorov/2018/08/06/how-to-override-templates-for-kiwi-tcms/index.html b/blog/atodorov/2018/08/06/how-to-override-templates-for-kiwi-tcms/index.html new file mode 100644 index 00000000..3f2c5f4e --- /dev/null +++ b/blog/atodorov/2018/08/06/how-to-override-templates-for-kiwi-tcms/index.html @@ -0,0 +1,267 @@ + + + + + Kiwi TCMS - How to override templates for Kiwi TCMS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

How to override templates for Kiwi TCMS

+ + + +
+

This is the first publication in our customization series. It will show you +how to override any template used by Kiwi TCMS. As an example we will override +the email template that is used when registering new account. By default the +email text looks like this:

+
    Welcome {{ user }},
+    thank you for signing up for an {{ site_domain }} account!
+
+    To activate your account, click this link:
+    {{ confirm_url }}
+
+ + +

https://public.tenant.kiwitcms.org +runs a custom Docker image based on +kiwitcms/kiwi. For this image the confirmation email looks like this

+
    Welcome {{ user }},
+    thank you for signing up for our Kiwi TCMS demo!
+
+    To activate your account, click this link:
+    {{ confirm_url }}
+
+    GDPR no longer allows us to automatically subscribe you to
+    our newsletter. If you wish to keep in touch and receive emails
+    with news and updates around Kiwi TCMS please subscribe at:
+    https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&id=c970a37581
+
+    --
+    Happy testing!
+    The Kiwi TCMS team
+    http://kiwitcms.org
+
+ + +

The file that we want to override is tcms/templates/email/confirm_registration.txt.

+

Create a local directory (git repository) which will hold customization configuration +and create a file named templates.d/email/confirm_registration.txt with your text!

+

Next you want to make this file available inside your docker image so your Dockerfile +should look like this:

+
    FROM kiwitcms/kiwi
+
+    COPY ./templates.d/ /venv/lib64/python3.6/site-packages/tcms/overridden_templates/
+    COPY local_settings.py /venv/lib64/python3.6/site-packages/tcms/settings/
+
+ + +

where local_settings.py contains

+
    import os
+    from django.conf import settings
+
+    settings.TEMPLATES[0]['DIRS'].insert(0, os.path.join(settings.TCMS_ROOT_PATH, 'overridden_templates'))
+
+ + +

The following code states instruct Django to look into overridden_templates first and +use any templates it finds there; also make my files available in that specific location +inside the docker image.

+

This approach can be used for all templates that you wish to override. Take into +account that file names must match (Django searches templates by directory path). +Now build your customized Docker image and use that for deployment!

+

Happy testing!

+
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/atodorov/2018/09/07/how-to-add-api-logging-for-kiwi-tcms/index.html b/blog/atodorov/2018/09/07/how-to-add-api-logging-for-kiwi-tcms/index.html new file mode 100644 index 00000000..f90b0fdf --- /dev/null +++ b/blog/atodorov/2018/09/07/how-to-add-api-logging-for-kiwi-tcms/index.html @@ -0,0 +1,317 @@ + + + + + Kiwi TCMS - How to add API logging for Kiwi TCMS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

How to add API logging for Kiwi TCMS

+ + + +
+

In this blog post I will show more ways to customize Kiwi TCMS by adding +logging capabilities to the API backend. Indeed this is a feature that +our team deemed not required for upstream and was removed in +PR #436.

+

Start by creating the following directory structure:

+
    api_logging/
+        __init__.py
+        handlers.py
+        models.py
+
+ + +

This is a small Django application that will log every call to the API backend. +Each file looks like this:

+
    # models.py contains DB schema for your new table
+    from django.db import models
+    from django.conf import settings
+
+    class ApiCallLog(models.Model):
+        executed_at = models.DateTimeField(auto_now_add=True)
+        user = models.ForeignKey(settings.AUTH_USER_MODEL, null=True, blank=True,
+                                 on_delete=models.CASCADE)
+        method = models.CharField(max_length=255)
+        args = models.TextField(blank=True)
+
+        def __str__(self):
+            return "%s: %s" % (self.user, self.method)
+
+ + +

Then

+
    # handlers.py overrides the RPC handlers coming from django-modernrpc
+    from modernrpc import handlers
+
+    from django.conf import settings
+    from django.contrib.auth import get_user_model
+
+    from .models import ApiCallLog
+
+    def log_call(request, method_name, args):
+        """ Log an RPC call to the database or stdout in DEBUG mode. """
+        request_user = request.user
+        if not request_user.is_authenticated:
+            # create an anonymous user object for logging purposes
+            request_user, _ = get_user_model().objects.get_or_create(
+                username='Anonymous',
+                is_active=False)
+
+        if method_name is None:
+            method_name = '--- method_name missing ---'
+
+        if settings.DEBUG:
+            print('API call:: user: {0}, method: {1}, args: {2}'.format(
+                request_user,
+                method_name,
+                args))
+        else:
+            ApiCallLog.objects.create(
+                user=request_user,
+                method=method_name,
+                args=str(args))
+
+    class XMLRPCHandler(handlers.XMLRPCHandler):
+        def process_request(self):
+            encoding = self.request.encoding or 'utf-8'
+            data = self.request.body.decode(encoding)
+            params, method_name = self.loads(data)
+
+            log_call(self.request, method_name, params)
+            return super().process_request()
+
+    class JSONRPCHandler(handlers.JSONRPCHandler):
+        def process_single_request(self, payload):
+            method_name = payload.get('method', None)
+            params = payload.get('params')
+
+            log_call(self.request, method_name, params)
+            return super().process_single_request(payload)
+
+ + +

NOTE: +You will have to execute ./manage.py makemigrations api_logging to create the +initial migration for Django. This could be easier if you place the above directory +into existing Django application or craft the migration file by hand!

+

The last thing you want to do is create a local_settings.py file which will override +Kiwi TCMS defaults:

+
    # local_settings.py
+    from django.conf import settings
+
+    settings.INSTALLED_APPS += [
+        'api_logging',
+    ]
+
+    MODERNRPC_HANDLERS = ['api_logging.handlers.XMLRPCHandler',
+                          'api_logging.handlers.JSONRPCHandler']
+
+ + +

Then place everything in Dockerfile like so:

+
    FROM kiwitcms/kiwi
+
+    COPY ./api_logging/ /venv/lib64/python3.6/site-packages/api_logging/
+    COPY local_settings.py /venv/lib64/python3.6/site-packages/tcms/settings/
+
+ + +

Kiwi TCMS will import your local_settings.py and enable the logging application. +Now build your customized Docker image and use it for deployment!

+

Happy testing!

+
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/atodorov/2018/10/12/kiwi-tcms-team-updates/index.html b/blog/atodorov/2018/10/12/kiwi-tcms-team-updates/index.html new file mode 100644 index 00000000..add4cc94 --- /dev/null +++ b/blog/atodorov/2018/10/12/kiwi-tcms-team-updates/index.html @@ -0,0 +1,281 @@ + + + + + Kiwi TCMS - Kiwi TCMS team updates + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS team updates

+

new team coach, team progress and internship program

+ + + +
+

I am happy to announce that our team is steadily growing! +As we work through our roadmap, +status update here, and +on-board new team members I start to feel the need for a bit more structure +and organization behind the scenes. I also wish for consistent contributions +to the project (commit early, commit often) so I can better estimate the resources +that we have!

+

I am also actively discussing Kiwi TCMS with lots of people at various conferences +and generate many ideas for the future. The latest SEETEST in Belgrade was particularly +fruitful. Some of these ideas are pulling into different directions and I need help +to keep them under control!

+

Development-wise sometimes I lose track of what's going on and who's doing what between +working on Kiwi TCMS, preparing for conferences and venues to promote the project, +doing code review of other team members, trying not to forget to check-in on +progress (especially by interns), recruiting fresh blood and thinking about +the overall future of the project. Our user base is growing and there are days +where I feel like everything is happening at once or that something +needs to be implemented ASAP (which is usually true anyway)!

+

+

Meet Rayna Stankova in the role of our team coach! +Reny is a director for Women Who Code Sofia, senior QA engineer at VMware, +mentor with CoderDojo Bulgaria and a long-time friend of mine. +Although she is an experienced QA in her own right she will be contributing +to the people side of Kiwi TCMS and less so technically!

+

Her working areas will be planning and organization:

+
    +
  • help us (re)define the project vision and goals
  • +
  • work with us on roadmaps and action plans so we can meet + the project goals faster
  • +
  • help us (self) organize so that we are more efficient, + including checking progress and blockers (aka enforcer) and + meet the aforementioned consistency point
  • +
  • serve as our professional coach, motivator and somebody who will + take care of team health (yes I really suck at motivating others)
  • +
+

and generally serving as another very experienced member of the team!

+

We did a quick brainstorming yesterday and started to produce results +(#smileyface)! We do have a team docs space to share information +(non-public for now, will open it gradually as we grow) and came up +with the idea to use Kiwi TCMS as a check-list for our on-boarding/internship +process!

+

I don't know how it will play out but I do expect from the +team to self-improve, be inspired, become more focused and more productive! +All of this also applies to myself, even more so!

+

Existing team members progress

+

Last year we started with 2 existing team members (Tony and myself) and 3 +new interns (Ivo, Kaloyan and Tseko) who built this website!

+

Tony is the #4 contributor to Kiwi TCMS in +terms of number of commits +and is on track to surpass one of the original authors (before Kiwi TCMS was forked)! +He's been working mostly on internal refactoring and resolving the thousands +of pylint errors that we had (down to around 500 I think). This summer Tony and I +visited the OSCAL conference in Tirana and hosted an info booth for the project.

+

Ivo is the #5 contributor in terms of numbers of commits. He did learn very +quickly and is working on getting rid of the remaining pylint errors. His ability +to adapt and learn is quite impressive actually. Last month he co-hosted a +git workshop at HackConf, a 1000+ people IT event in Sofia.

+

Kaloyan did most of the work on our website initially (IIRC). +Now he is studying in the Netherlands +and not active on the project. We are working to reboot his on-boarding +and I'm hoping he will find the time to contribute to Kiwi TCMS regularly.

+

From the starting team only Tseko decided to move on to other ventures after +he contributed to the website.

+

Internship program

+

At Kiwi TCMS we have a set of training +programs that teach all the necessary technical skills before we let anyone +actively work on the project, let alone become a team member.

+

Our new interns are Denitsa Uzunova and Desislava Koleva. Both of them are +coming from Vratsa Software Community and were mentors at the recently held +CodeWeek hackathon in their home city! I wish them fast learning and good luck!

+

Happy testing!

+
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/atodorov/2018/10/26/kiwi-tcms-api-performance-baseline/index.html b/blog/atodorov/2018/10/26/kiwi-tcms-api-performance-baseline/index.html new file mode 100644 index 00000000..d6cb8c46 --- /dev/null +++ b/blog/atodorov/2018/10/26/kiwi-tcms-api-performance-baseline/index.html @@ -0,0 +1,290 @@ + + + + + Kiwi TCMS - Kiwi TCMS API performance baseline + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS API performance baseline

+

7.5 req/sec or 130 msec/req

+ + + +
+

A friend from Red Hat sent me an email asking about Kiwi TCMS performance so I did +an experiment to establish a baseline. +For API requests I got 7.5 req/sec or 130 msec/req which is +1.5x slower than GitHub!

+

I used perf-script +(see here) +to measure that. The script takes the first 250 test cases from our test suite +and on every execution creates a new TestPlan (1 API request), then creates +new test cases (250 requests), adds cases to test plan (250 requests), +creates new product build (1 API request), creates new TestRun (1 API request), +adds test cases to test run (250 requests) and finally updates the statuses +(250 requests).

+

A total of 1003 API requests are sent to Kiwi TCMS every time you start this script! +An example is available at TR #567!

+

On localhost, running the development server (./manage.py runserver) with an +SQLite database I got:

+
$ time python perf-script
+
+real    2m6.450s
+user    0m1.069s
+sys     0m0.331s
+
+$ time python perf-script
+
+real    2m7.472s
+user    0m1.057s
+sys     0m0.342s
+
+$ time python perf-script
+
+real    2m9.368s
+user    0m1.072s
+sys     0m0.351s
+
+$ time python perf-script
+
+real    2m9.197s
+user    0m1.050s
+sys     0m0.353s
+
+ + +

This measures at 120 msec/req or 7.85 req/sec!

+

public.tenant.kiwitcms.org is running on an +AWS t2.micro +instance (via docker-compose) with the default centos/mariadb image! +No extra settings or changes. I used the same computer over a WiFi +connection and a pretty standard home-speed Internet connection. Times are:

+
$ time python perf-script
+
+real    2m18.983s
+user    0m1.175s
+sys     0m0.095s
+
+$ time python perf-script
+
+real    2m25.937s
+user    0m1.156s
+sys     0m0.108s
+
+$ time python perf-script
+
+real    2m24.120s
+user    0m1.102s
+sys     0m0.098s
+
+$ time python perf-script
+
+real    2m21.521s
+user    0m1.154s
+sys     0m0.091s
+
+ + +

This measures at 140 sec/req or 7.05 req/sec!

+

Note: since I am using Python 3.6 I had to modify the file +/opt/rh/rh-python36/root/lib64/python3.6/ssl.py to read:

+
# Used by http.client if no context is explicitly passed.
+_create_default_https_context = _create_unverified_context # this disables HTTPS cert validation
+
+ + +

The issue has been reported in +RHBZ #1643454

+

Happy testing!

+
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/atodorov/2018/11/05/test-runner-plugin-specification/index.html b/blog/atodorov/2018/11/05/test-runner-plugin-specification/index.html new file mode 100644 index 00000000..58912a42 --- /dev/null +++ b/blog/atodorov/2018/11/05/test-runner-plugin-specification/index.html @@ -0,0 +1,362 @@ + + + + + Kiwi TCMS - Test runner plugin specification + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Test runner plugin specification

+ + + +
+

Happy Monday testers! Kiwi TCMS needs your help! We are looking for developers who +wish to create plugins for popular test runners that will record test results +in Kiwi TCMS! Initially we are looking for plugins for Python's unittest, +Django +and JUnit!

+

What is a test runner?

+

When working with automated testing you have several components:

+
    +
  • A test module (or test script), e.g. test_models.py which contains + tests for your software;
  • +
  • A test framework, e.g. Python nose, which provides the structure + for test classes and methods and assert methods to use;
  • +
  • A test runner, which knows how to discover your test scripts, load them, + execute the testing scenarios inside of them and report the results.
  • +
+

Very often all of the components above live together inside the testing framework +but don't need to. For example the standard unittest module in Python +provides a test runner but there are also nose and py.test and Django provides +its own test runner that knows how to work with the database.

+

Workflow organization

+

Once you agree to writing a plugin we are going to create a separate GitHub +repository where you will be granted write privileges making you an independent +contributor to the Kiwi TCMS project!

+

Design and architecture of the plugin is up to you, following the practices +established by the testing framework in question. You will also have to create +a test suite for your plugin based on the specification below.

+

You are expected to use +public.tenant.kiwitcms.org while working on the +plugin and afterwards. This is known as eating your own dog food!

+

For Python we provide the tcms-api module which already takes care of the +communications layer. For other languages you will have to create this layer or +depend on other open source libraries that provide a XML-RPC or JSON-RPC +client!

+

You can use +this gist +for inspiration!

+

Behavior Specification

+

Please use the comments section to discuss unclear behavior and missing scenarios!

+
    SUMMARY: Will use configuration file if it exists
+    GIVEN: the file ~/.tcms.conf exists
+    WHEN: plugin initializes
+    THEN: the plugin will log an info message, read the file and
+    THEN: configure TCMS_API_URL, TCMS_USERNAME, TCMS_PASSWORD
+          variables with the respective values
+
+
+    SUMMARY: Will use ENVIRONMENT if configuration file doesn't exist
+    GIVEN: the file ~/.tcms.conf does not exists
+    WHEN: plugin initializes
+    THEN: the plugin will read configuration from environment and configure
+          the following variables/class members:
+          TCMS_API_URL, TCMS_USERNAME and TCMS_PASSWORD
+
+
+    SUMMARY: Will exit if TCMS_API_URL not configured
+    GIVEN: TCMS_API_URL variable is empty
+    WHEN: plugin initializes
+    THEN: log a warning message and exit
+    AND: depending on the test runner framework set exist status 1
+
+
+    SUMMARY: Will exit if TCMS_USERNAME not configured
+    GIVEN: TCMS_USERNAME is empty
+    WHEN: plugin initializes
+    THEN: log a warning message and exit
+    AND: depending on the test runner framework set exist status 1
+
+
+    SUMMARY: Will exit if TCMS_PASSWORD not configured
+    GIVEN: TCMS_PASSWORD is empty
+    WHEN: plugin initializes
+    THEN: log a warning message and exit
+    AND: depending on the test runner framework set exist status 1
+
+
+    SUMMARY: Will re-use existing TestPlan if configured
+    GIVEN: TCMS_RUN_ID environment variable is not empty
+    WHEN: plugin initializes
+    THEN:  this will be the Current_TestRun record to which the plugin is
+           going to add test execution results
+    AND: Current_TestPlan document in which the plugin will
+           search for test cases becomes Current_TestRun.plan
+
+
+    SUMMARY: Will create new TestPlan & TestRun if TCMS_RUN_ID not configured
+    GIVEN: TCMS_RUN_ID environment variable is empty
+    THEN: plugin will create a new TestPlan in Kiwi TCMS with attributes:
+        name='Automated test plan for %(product)'
+        product='%(product)'
+        product_version='%(version)'
+        type='Unit'
+    WHERE: %(product) is a placeholder for TCMS_PRODUCT==TRAVIS_REPO_SLUG==JOB_NAME
+           %(version) is a placeholder for TCMS_PRODUCT_VERSION==TRAVIS_COMMIT==TRAVIS_PULL_REQUEST_SHA==GIT_COMMIT
+    THEN: plugin will crate a new TestRun in Kiwi TCMS with attributes:
+        summary='Automated test run ....'
+        plan=Current TestPlan
+        build='%(build)'
+        manager=TCMS_USERNAME
+    WHERE: %(build) is a placeholder for TCMS_BUILD==TRAVIS_BUILD_NUMBER==BUILD_NUMBER
+    Environment variables are specified in:
+    https://docs.travis-ci.com/user/environment-variables#default-environment-variables
+    https://wiki.jenkins.io/display/JENKINS/Building+a+software+project#Buildingasoftwareproject-belowJenkinsSetEnvironmentVariables
+
+    SUMMARY: Will not create duplicate Product, Version & Build if they already exist
+    GIVEN: TCMS_RUN_ID is not configured
+    AND: %(product) exists
+    AND: %(version) exists
+    AND: %(build) exists
+    WHEN: plugin tries to auto-create TestPlan and TestRun
+    THEN: plugin will re-use %(product), %(version) and %(build) from the database
+    AND: not try to auto-create them
+
+
+    SUMMARY: Will auto-create Product, Version & Build if they don't exist
+    GIVEN: TCMS_RUN_ID is not configured
+    AND: %(product) doesn't exist
+    AND: %(version) doesn't exist
+    AND: %(build) doesn't exist
+    WHEN: plugin tries to auto-create TestPlan and TestRun
+    THEN: %(product), %(version) and %(build) be created automatically
+
+
+    SUMMARY: Unit test names are added to TestPlan
+    GIVEN: we have good plugin configuration
+    WHEN: plugin loops over unit tests emitted by the test runner
+    THEN: plugin will check Current_TestPlan for a TestCase with the same name
+    AND: if test case doesn't exist in Current_TestPlan
+    THEN: it will be added to Current_TestPlan
+    hint: it is probably best to process all unit test results at the end!
+
+
+    SUMMARY: Unit test names are added to TestRun
+    GIVEN: we have good plugin configuration
+    WHEN: plugin loops over unit tests emitted by the test runner
+    THEN: plugin will check Current_TestRun for a TestCaseRun object which matches
+          the current unit test name
+    hint: (or Current_TestCase object from previous scenario, depending on implementation)
+    AND: if such TestCaseRun doesn't exist in Current_TestRun
+    THEN: it will be added to Current_TestRun
+    hint: it is probably best to process all unit test results at the end!
+
+
+    SUMMARY: Current_TestRun is updated with unit test results
+    GIVEN: we have good plugin configuration
+    WHEN: plugin loops over unit tests emitted by the test runner
+    THEN: plugin will check Current_TestRun for a TestCaseRun object which matches
+          the current unit test name
+    hint: (or Current_TestCase object from previous scenario, depending on implementation)
+    AND: if TestCaseRun object exists in Current_TestRun
+    THEN: its status will be updated with the execution result coming from the test runner
+    hint: it is probably best to process all unit test results at the end!
+
+ + +

Happy testing!

+
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/atodorov/2018/12/17/roadmap-status-report-for-2018/index.html b/blog/atodorov/2018/12/17/roadmap-status-report-for-2018/index.html new file mode 100644 index 00000000..72a52d54 --- /dev/null +++ b/blog/atodorov/2018/12/17/roadmap-status-report-for-2018/index.html @@ -0,0 +1,286 @@ + + + + + Kiwi TCMS - Roadmap status report for 2018 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Roadmap status report for 2018

+

62% complete, good progress on refactoring

+ + + +
+

Hello everyone, in this article I will outline the progress that the Kiwi TCMS +team has made towards achieving the goals in our 2018 +roadmap +(mid-year update here). +TLDR; goals are completed at 62%. Refactoring legacy code is showing good results, +less so on the front-end side and there are items still in progress!

+

Make code easier to maintain

+

Status: good progress

+

Initially CodeClimate reported +a "D" rating with 600+ code smells and 600+ duplications and a 1 year estimation +to resolve these. We're now down to "C" rating with 171 smells and 203 duplications.

+

The level of technical debt has dropped from 32.5% down to 17.7% and we have removed +around 14000 lines of Python code and 8000 lines of JavaScript code without +losing significant functionality.

+

Checkout +the stats +for more info!

+

Use pylint and pylint-django

+

Status: almost finished

+

Both pylint and pylint-django have been integrated into our CI workflow. There are even +some custom built plugins that we use. The number of issues reported is down to 100 +from 4000+ initially. These are predominantly fixme comments which are also in parts +of the code that are scheduled for removal and refactoring.

+

Render HTML, return JSON

+

Status: moderate progress

+

Several views were modified to return pure JSON but we've not +done any targeted work to resolve this issue. A number of other views have been +removed in favor of using the existing JSON-RPC layer.

+

This is an internal refactoring effort which isn't very visible from the outside. +This is also one of the factors contributing to the high number of removed +source code.

+

Submit forms, post JSON, GET clean URLs

+

Status: no progress

+

Not much has been done in this area except the occasional refactoring to +JSON-RPC.

+

API layer

+

Status: complete

+

Documentation

+

Status: moderate progress, dropped

+

All RPC methods have been documented! The rest of the internals will be documented +as we go along.

+

No vendored JavaScript libraries

+

Status: good progress

+

We still carry around jQuery, jQuery-UI and Handlebars.js. They will be +removed once the pages using them are converted to use the Patternfly widgets +library.

+

Less HTML templates with better organization

+

Status: moderate progress

+

There are still over 50 HTML templates in tcms/templates/ that need to be +refactored into Patternfly. We've been working on them one at a time and will +focus more on this effort in the next couple of months.

+

Modern interface with Patternfly

+

Status: moderate progress

+

Some of the pages have been converted to use Patternfly. The most important pages +that still have a different look and feel are TestPlan view, TestCase view and +TestRun view. These are also the hardest to convert because they have lots of +tabs/components which pull information from various places. Our goal is to create +reusable widgets for the various components (e.g. a list of TestCases) and then +include these components into several different templates to minimize code +duplication.

+

JavaScript updates and front-end testing

+

Status: moderate progress

+

A number of JavaScript functions have been refactored and removed during the +past few releases but there are still thousands of lines of code left to deal with. +This effort is mostly happening in parallel with the Patternfly redesign. +We still don't have anything to test front-end JavaScript functionality!

+

Community efforts

+

Status: good progress

+

We are seeing a steady stream of new users registered on +https://public.tenant.kiwitcms.org and +there are several active contributors on GitHub. Most of our translators are +very active and keep their respective languages fresh and up to date!

+

Kiwi TCMS was represented at OSCAL Tirana, DjangoCon Heidelberg, PyCon Prague, +HackConf Sofia, PiterPy St. Petersburg and OpenFest Sofia. We've also been +approved for a project stand at FOSDEM 2019 so watch this blog for more news.

+

Happy testing!

+
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/atodorov/2019/01/10/project-mission-and-goals-for-2019/index.html b/blog/atodorov/2019/01/10/project-mission-and-goals-for-2019/index.html new file mode 100644 index 00000000..dea6b0bd --- /dev/null +++ b/blog/atodorov/2019/01/10/project-mission-and-goals-for-2019/index.html @@ -0,0 +1,441 @@ + + + + + Kiwi TCMS - Project mission and goals for 2019 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Project mission and goals for 2019

+ + + +
+

Hello testers, Kiwi TCMS has taken on a brave new +mission! We would like to transform the testing process by making it more +organized, transparent & accountable for everyone on your team. Our goal +is to improve engineering productivity and participation in +testing. The following blog post outlines how we would like to achieve +this and what goals we put before ourselves for this year.

+

Complete the internal refactoring

+

Last year we took on the challenge to bring a legacy code base up to modern +coding standard. We did not complete that effort but made very good progress +along the way. This is not a small task and that's why our team will continue +with it this year.

+

CodeClimate report

+
    +
  • CodeClimate: + 0 issues, 0% technical debt, health score A
  • +
  • Scrutinizer: + only A and B type issues
  • +
  • Pylint: 0 issues
  • +
  • Remove vendored-in Handlebars, jQuery, jQuery-UI and TableDnD JavaScript + libraries in favor of existing npm dependencies
  • +
  • Front-end uses the existing JSON-RPC instead of backend views that + are only used for AJAX requests. Tip: these are usually accessed via + postToURL() and jQ.ajax() on the front-end
  • +
  • Inspect and classify all 3rd party issues reported from + Coverity and + Bandit. Report and fix + what we can, ignore the rest that do not affect Kiwi TCMS.
  • +
+

Redesign the UI templates with the help of Patternfly

+

There are 59 templates remaining to be converted to a modern look and feel. +Along with them comes more refactoring and even redesign of the existing pages +and the workflow around them. Together with refactoring this will make Kiwi TCMS +easier to use and also to maintain.

+

Modernize reporting

+

We are planning to remove the existing reports feature because they are not well +designed. We will re-implement existing functionality that our community finds useful, +add new types of reports (incl. nicer graphics and UI) and make it possible for the +reporting sub-system to be more easily extendable.

+

Phase out is planned to begin after 1st March 2019! Until then we are looking for your +feedback. Please comment in +Issue #657!

+

Plugins for 3rd party test automation frameworks

+

These will make it easier to collect results from automated test suites into +Kiwi TCMS for later analysis. Instead of creating scripts that parse the +results and talk to our API you will only have to install an additional package +in your test environment and configure the test runner to use it! Automation +test results will then appear inside Kiwi TCMS.

+ +

If you would like to use such functionality leave your vote inside GitHub +issues! In case you would like to write a test-runner plugin you can find the +specification +here.

+

Redefine bug-tracker integration

+
+

Question: Does Kiwi TCMS integrate with JIRA?

+

Answer: Well, it does. How exactly do you want to integrate?

+

... silence ...

+
+

The following dialog happens every time someone asks me about bug-tracker +integration, especially with JIRA. The thing is integration is a specified +set of behavior which may or may not be desired in a particular team. As of now +Kiwi TCMS is able to open a URL to your bug-tracker with predefined field +values, add comments to bug reports and report a simple summary of bugs +inside a TestRun.

+

We recognize this may not be enough and together with the community we +really need to define what bug tracker integration means! The broader domain +of application lifecycle management tools (of which TCMS is a sub-set) have an +integrated bug tracking system. We can add something like this and save you +the trouble of using JIRA, however many teams have already invested in +integrating their infrastructure or just like other tools. For example we love +GitHub issues and our team regularly makes public reports about issues that +we find internally!

+ +

GitHub flow integration

+

Developers have their +GitHub PR flow and if they +have done the job of having unit tests then they will merge only when things +are green! This leaves additional testing efforts kind of to the side and +doesn't really help with transparency and visibility. I'm not going to mention +having an automatically deployed staging environment for every change +because very few teams actually have managed to do this effectively.

+

Kiwi TCMS statuses on GitHub PR

+
    +
  • Goal: Figure out how Kiwi TCMS can integrate with GitHub flow and bridge the gap. + Please share and +1 your wildest ideas in + Issue #700.
  • +
  • Follow up: depending on the results in #700 we will follow with other goals and + sub-tasks
  • +
+

Agile integration with Trello

+

Speaking of modern engineering flow is your team truly agile? When and how +do you plan your testing activities ? Before the devel sprint or afterwards? +How many testers take part in refining product backlog and working on user stories?

+

Similar to GitHub flow lots of teams and open source projects are using Trello +to effectively organize their development process. Testing should not be left +behind and Kiwi TCMS may be able to help.

+
    +
  • Goal: Figure out how Kiwi TCMS fits into the overall devel-test-planning + process for agile teams and what we can do to make this easier for testers. + Please share and +1 your wildest ideas in + Issue #701
  • +
  • Follow up: depending on the results in #701 we will follow with other goals and + sub-tasks
  • +
+

Improve engineering productivity

+

What makes a test engineer productive when they need to assess product risk and +new features, when mapping product requirements documents (PRD) to test plans and +test cases, when collaborating on user stories and behavior specification ? +What makes developers, product owners, designers and other professionals productive +when it comes to dealing with testing ?

+

For example consider the following workflow:

+
    +
  • Company has idea for a new product
  • +
  • In case this is a big product it may have its own mission, i.e. what kind + of problem is it trying to solve and for which group of customers
  • +
  • Product backlog is then created which outlines features that map + to the product mission
  • +
  • Then the team, together with test engineers perform example mapping + and discuss and refine the initial feature requirements. User stories + are created
  • +
  • Behavior specification may also be created
  • +
  • Test plans and test cases are the immediate product of BDD specs and + desired user stories
  • +
+

Later we iterate through the sprints and for each sprint something like +this happens:

+
    +
  • Desired product features are planned for development. They must be complete + at least in terms of requirements, specs and tests
  • +
  • Devel writes code, maybe some unit tests, testers can also write automated tests + and/or manually verify the current state of the feature being developed
  • +
  • Testing, including exploratory is performed before feature is merged
  • +
  • Rinse and repeat
  • +
+

Devel is also part of testing, right? Product owners, UX and interaction +designers as well. Producing quality software product is a team effort!

+

In every step of the way Kiwi TCMS can provide notification wizards, guidelines +and/or documentation for best practices, facilitate tooling, e.g. to write user stories +and assess them or map out an exploratory testing session, etc. The list +of ideas is virtually endless. We can even go into deep learning, AI and +blockchain but honestly who knows how to use them in testing ?

+

Our team is not quite sure how this goal will look like 3 months from now +but we are certain that testing needs to happen first, last and all the time +during the entire software development lifecycle. By providing the necessary +functionality and tools in Kiwi TCMS we can boost engineering productivity +and steer the testing process in your organization into a better, more productive +direction which welcomes participation from all engineering groups.

+

Let's consider another point of view: testing is a creative activity +which is benefited by putting your brain into a specific state of mind! +For example Gherkin (the Given-When-Then language) has the benefit of +forcing you to think about behavior and while doing so you are vocalizing +the various roles in the system, what kind of actions are accepted and +what sort of result is expected! Many times this will help you remember or +discover missing scenarios, edge cases and raise even more questions!

+

Crazy ideas, brain dumps and +1 as always are welcome in +Issue #703.

+

Community

+

Coding alone is not fun! Here's what you can do to help us:

+ +

We are also looking to expand our core team and the list of occasional +contributors. The following are mostly organizational goals:

+
    +
  • Goal: participate in 5 conferences with a project stand
  • +
  • Goal: define how we find, recruit and onboard new team members. The + foundation is already set in + TP-3
  • +
  • Goal: clearly mark GitHub issues which are suitable for external contributors + which don’t want to spend lots of time learning how Kiwi TCMS works under the hood. + We're going to tag all such issues with the + + GitHub help wanted + label
  • +
+

Development policy

+

Our team will be working on areas related to the goals above. A +1 +reaction on GitHub issues will help us prioritize what we work on!

+

GitHub +1

+

Bug fixes and other +issues will be occasionally slipped into the stream and pull requests from +non-team contributors will be reviewed and merged in a timely fashion.

+

There is at least 1 full day of work that goes behind the scenes when +a new version is officially released: compile changelog, build images and +upload them, create blog post and newsletter announcement, share on social +media, etc. We also deploy on our own Kiwi TCMS instance as a stop-gap +measure before making everything public!

+

New PyPI tarballs and Docker images will be released every few weeks as +we see fit, this has been our standard process. We try to align releases +with Django's release schedule and try to cut a new version when there are known +security vulnerabilities fixed. However we can't guarantee this will always +be the case!

+

If you are in a hurry and need something quickly the best option is to +send a pull request, build your own Docker image from source and +maybe consider +sponsoring us via Open Collective!

+

Happy testing!

+
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/atodorov/2019/02/22/how-to-use-kiwi-tcms-plugins-pt-1/index.html b/blog/atodorov/2019/02/22/how-to-use-kiwi-tcms-plugins-pt-1/index.html new file mode 100644 index 00000000..e8ed2fd2 --- /dev/null +++ b/blog/atodorov/2019/02/22/how-to-use-kiwi-tcms-plugins-pt-1/index.html @@ -0,0 +1,424 @@ + + + + + Kiwi TCMS - How to use Kiwi TCMS plugins, Pt. 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

How to use Kiwi TCMS plugins, Pt. 1

+

to import results from automated tests

+ + + +
+

In +release notes for v6.5 +we announced several plugins which will fetch test names and execution results +from your automated test suite.

+

Plugins can be controlled via environment variables which will affect how +test results are recorded in the Kiwi TCMS database! This blog post is an introduction +how that works and what you can do with it! For this purpose I will be using the +plugin-demo repository, which simulates +real development work.

+

Full documentation and list of available plugins is available in chapter +Automation Frameworks Plugins!

+

Always create new TestRun by default

+

The default behavior is always to create a new TestRun if controlling variables +are not overridden! Product name, version and build will receive default values +if tests are running in Travis CI or Jenkins. For example +Travis Build #2 for +commit d455fb4 +creates TR-12 and +TP-10!

+
Product=kiwitcms/plugin-demo
+Version=d455fb42fb7c2aedadfd5f66de7d131109c03350
+Build=2
+
+ + +

Next we convert the README file from Markdown to reStructuredText which triggers +Travis Build #3 for +commit 418b80b. +This build again creates a new TestRun and new TestPlan for it. Respectively +TR-14 and +TP-12!

+
Product=kiwitcms/plugin-demo
+Version=418b80b3bbb65a799f695dc59d488c76f560fa2b
+Build=3
+
+ + +

Important: we can see that version is different which will affect how artifacts +are organized in Kiwi TCMS, possibly affect how you will report status to stakeholders!

+

Override ENV variables for more control

+

Let's say the QA team has decided that all test results must be reported under the +same TestPlan. This means version must be the same between various builds in Travis CI! +To control this we export TCMS_PRODUCT_VERSION=master in CI before executing +the TAP plugin! Checkout the commit on GitHub to see how it is done!

+

This triggers +Travis Build #4 for +commit e484e59. +Because this is the first time where Version == master the plugin creates +TP-14 and reports the results under +TR-16.

+
Product=kiwitcms/plugin-demo
+Version=master
+Build=4
+
+ + +

Right after that I realized we can make this configuration a bit more generic +because our team is planning to support multiple versions of the product and +development will be done in separate branches! +Travis Build #5 for +commit f1f2878 +still ends up with Version == master because we are still working on the master +branch! That is to say, the product is in active mode of development.

+

Results are reported in +TR-18 which is again part of +TP-14.

+
Product=kiwitcms/plugin-demo
+Version=master
+Build=5
+
+ + +

Travis Build #6 for +commit df6153b +adds the new functionality README badges and reports test results in +TR-20 which is again part of +TP-14.

+

More ENV overrides

+

While giving status reports back to stakeholders and developers the information that +we have in the TestRun is Build number! This follows the numbering scheme in Travis CI +(or Jenkins job number) and isn't very useful.

+

Let's define TCMS_BUILD to be the first 7 characters of the commit hash! When QA +tells devel that something isn't working and redirects them to the TestRun they can +immediately use the Build information and git checkout the offending variant of the product +for investigation.

+

This results in +Travis Build #7 for +commit bf75d0a, +TR-22, +TP-14.

+
Product=kiwitcms/plugin-demo
+Version=master
+Build=bf75d0a
+
+ + +

Report results in pre-existing TestRun

+

There are many reasons you may want to do this:

+
    +
  • include both manual and automation tests for the same build;
  • +
  • mix results from multiple test suites for the same build, + e.g. unit, functional, performance
  • +
  • mix results from multiple but similar platforms in the same build, + e.g. cross-platform application for iOS and Android
  • +
+

To do so I've created TR-24 beforehand and +configured TCMS_RUN_ID=24 in my CI environment. TR-24 also contains +TC-57: Verify we can report results from several plugins into the same TR. +this was created and added via the web interface.

+

Note: mixing additional test cases can be done either before or after +automation results are reported with the plugin!

+

Important: when reporting results to an existing TestRun Kiwi TCMS plugins +don't care in which TestPlan this TR is! In theory it is possible to report +the results for Product=kiwitcms/plugin-demo into any TP/TR pair! However we +don't want to do this crazy thing and instead I've created TR-24 inside the already +existing TP-14!

+

Note: because I don't know what is the git commit beforehand I've configured +TR-24 with Build=unspecified. If I wanted I could update this with the correct value +once I know the commit hash for the related changes I am testing.

+

Important: the plugin-demo repository uses both kiwitcms-tap-plugin and +kiwitcms-junit.xml-plugin at the same time! They differ in the way test names +are compiled! Both are reported in TR-24. See TC-57 text for information how to +distinguish between the two.

+

See +Travis Build #8 for +commit 85ad939, +TR-24, +TP-14.

+
Product=kiwitcms/plugin-demo
+Version=master
+Build=unspecified
+
+ + +

Also check-out comments in TR executions to see when and who had executed the test case.

+

So far there have been some tests which were failing (although Travis reports PASS) so +I decided to fix them. +Travis Build #9 for +commit a25b384 +is still configured with TCMS_RUN_ID=24. This means results will be reported in +TR-24, effectively overwriting previous results.

+

Check-out Change Log under each individual execution and you will see several +time stamps when status was updated! In other words, as long as TCMS_RUN_ID is +pointing to an existing TestRun this TR will keep the results of the last test suite execution!

+

Continue development, restore ENV configuration

+

Travis Build #10 for +commit c4f1ae5 +removes TCMS_RUN_ID! Results are reported in +TR-25, +TP-14.

+
Product=kiwitcms/plugin-demo
+Version=master
+Build=c4f1ae5
+
+ + +

Branch out for an LTS version

+

Our team has decided to make the first LTS release of the product. We branch out into +lts-v0 branch in git and cut the first NVR. This results in +Travis Build #11 for +commit 9f1ef71 +TR-27, +TP-16.

+
Product=kiwitcms/plugin-demo
+Version=lts-v0
+Build=9f1ef71
+
+ + +

Because this is the first time we are running tests for this product version +we end up with the newly created TP-16!

+

Note: see how version was populated with the correct value for the git branch! +This is because my CI config uses TCMS_PRODUCT_VERSION=$TRAVIS_BRANCH and no further +changes were required! I made this change back in Travis Build #5 anticipating what +will come in the future!

+

The product is now live and customers have reported critical bugs for it: +URLs for the badges in README are wrong! I fix those and add more tests of course, see: +Travis Build #12 for +commit 2d72754, +TR-29 for +TP-16.

+
Product=kiwitcms/plugin-demo
+Version=lts-v0
+Build=2d72754
+
+ + +

TR-29 contains the new TC-58!

+

cherry-pick between branches

+

In the lts-v0 branch customers have identified a serious issue. It doesn't exist on master +but the test is still valid so I cherry-pick it! In git you can backport or forwardport very +easily. Regardless of the direction Kiwi TCMS plugins will record the test results for you.

+

See +Travis Build #13 for +commit 31ae5b3, +TR-31 for +TP-14.

+

We can see that TC-58, which was originally implemented on the lts-v0 branch +is now present!

+

Summary

+

This is a very basic example of how you can organize collection and reporting for +your automation test suite results with Kiwi TCMS. The links here only refer to +artifacts created by kiwitcms-tap-plugin while in the DB we keep others as well.

+

There are feature requests for more ENV variables which will allow you to control +TestPlan creation and child/parent relationship between test plans. See +https://github.com/kiwitcms/tap-plugin/issues and vote with a :+1: reaction +to help us plan for these features.

+

Kiwi TCMS automation framework plugins are nothing more than result parsers +which talk back to a database. It is up to you to decide how to organize the +collection of test results and how to report on them later, when the need arises.

+

Future installments in this post series will take a look at workflows with +feature branches and pull requests and discuss possible organization scenarios. +You are welcome to share your ideas in the comments below.

+

Happy testing!

+
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/atodorov/2019/05/25/pylint-workshop-with-django-bulgaria-user-group/index.html b/blog/atodorov/2019/05/25/pylint-workshop-with-django-bulgaria-user-group/index.html new file mode 100644 index 00000000..cb7b4fbf --- /dev/null +++ b/blog/atodorov/2019/05/25/pylint-workshop-with-django-bulgaria-user-group/index.html @@ -0,0 +1,236 @@ + + + + + Kiwi TCMS - Pylint workshop with Django Bulgaria user group + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Pylint workshop with Django Bulgaria user group

+

contributing more checkers for Kiwi TCMS

+ + + +
+

On Tuesday I hosted my pylint workshop during the regular +Django Bulgaria meetup. +This edition was the first which was practice based.

+

Attendance numbers were low but participation was very good. We managed to +create 4 new checkers for Kiwi TCMS:

+ +

Many thanks to all contributors. These new checkers have discovered quite a +few new issues with Kiwi TCMS so this is an area which our team is going to improve.

+

Those who missed the workshop will be able to catch up one of the next editions:

+
    +
  • 26-29 August, GUADEC, Thessaloniki - TBC (presentation)
  • +
  • end of September, Python meetup, Zagreb - TBA
  • +
  • 03-05 October, PyCon Balkan, Belgrade - TBC
  • +
  • 11-13 October, HackConf, Sofia
  • +
  • 15-17 October, TestCon Europe, Vilnius - TBC (backup presentation)
  • +
  • 23-25 October, Testwarez, Ossa, Poland - TBC (presentation)
  • +
  • 14-15 November, Software Engineering Conference Russia, Saint-Petersburg - TBC
  • +
  • 20-22 November, ConTEST, New York - TBC (workshop and/or presentation)
  • +
+

Happy testing!

+
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/atodorov/2019/06/24/kiwi-tcms-is-openawards-2019-best-tech-community-winner/index.html b/blog/atodorov/2019/06/24/kiwi-tcms-is-openawards-2019-best-tech-community-winner/index.html new file mode 100644 index 00000000..9cce1d2f --- /dev/null +++ b/blog/atodorov/2019/06/24/kiwi-tcms-is-openawards-2019-best-tech-community-winner/index.html @@ -0,0 +1,221 @@ + + + + + Kiwi TCMS - Kiwi TCMS is OpenAwards 2019 Best Tech Community Winner + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS is OpenAwards 2019 Best Tech Community Winner

+

thank you, everyone

+ + + +
+

Image of the award

+

Kiwi TCMS is the winner at OpenAwards'19 category Best Tech Community! +Big thanks to the jury, our contributors and core-team and the larger +open source and quality assurance communities who voted for us and supported +the project during all of those years.

+

This award is the best present we could get to mark the 10th anniversary +of the project. More news of how we are progressing with current roadmap will +follow soon in a separate blog post.

+

Thank you & happy testing!

+
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/atodorov/2019/06/28/mid-year-roadmap-status-report/index.html b/blog/atodorov/2019/06/28/mid-year-roadmap-status-report/index.html new file mode 100644 index 00000000..75daea97 --- /dev/null +++ b/blog/atodorov/2019/06/28/mid-year-roadmap-status-report/index.html @@ -0,0 +1,334 @@ + + + + + Kiwi TCMS - Mid-year roadmap status report + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Mid-year roadmap status report

+

tough progress, a bit behind schedule

+ + + +
+

Hello everyone, in this article I will outline the progress that the Kiwi TCMS +team has made towards achieving the goals on our +2019 mission and roadmap. +TL,DR: Kiwi TCMS has made progress since January, it's been tough and may not have been +very visible. I feel like we've been behind schedule till now! The greatest +positive thing has been community and team development!

+

Complete the internal refactoring

+

Status: minimal progress, needs help

+

CodeClimate progress is:

+
    +
  • -30 code smells
  • +
  • -40 duplications
  • +
  • -30 other issues
  • +
  • 4% technical debt improvement
  • +
  • -200 hrs remaining until issues are fixed
  • +
+

This is mostly the result of code reviews and minor fixes, not targeted work.

+

We have not done any targeted work to resolve other issues reported by Scrutinizer, +Pylint, remove vendored-in JavaScript libraries, JavaScript refactoring or +classification of issues in 3rd party dependencies.

+

There are new people onboarding in the team right now and our plan is for +them to start grinding at these issues very soon!

+

Redesign the UI templates with the help of Patternfly

+

Status: 50% done, needs help

+

There are 27 HTML templates remaining to be redesigned (from 59). That's mostly +due to internal cleanup than targeted refactoring. More work on this item +will probably follow towards the end of the year after we get more priority items out of +the way and get more of the new team members rolling!

+

Modernize reporting aka Telemetry

+

Status: in progress, a bit behind schedule

+

The specs for the new Telemetry system +have been defined after taking into account feedback on GitHub issues. Anton Sankov is +the leading developer for this feature. So far we have 2 telemetry reports merged: +testing break-down and status matrix. The next one will be execution trends.

+

There are lots of minor issues or missing functionality in these first iterations +(compared to specification). Our plan is to have the major use-cases satisfied first +and then work to refine all of the existing telemetry pages.

+

Plugins for 3rd party test automation frameworks

+

Status: good, needs help

+

Until now we have released TAP, junit.xml and native JUnit 5 plugins. There's also +a PHPUnit plugin which is more or less complete but unreleased yet. Both JUnit 5 +and PHPUnit plugins are developed by external contributors!

+

We often get asked for plugins for languages and frameworks we don't use or don't +even know! Given that our expertise is mostly in Python we will gladly accept your +pull requests if you decide to maintain or contribute to one of the plugins. This +will also help us get insight into what automation frameworks people are using +and how exactly you structure a test automation workflow around Kiwi TCMS.

+

Checkout the +documentation for links +and more info.

+

Redefine bug-tracker integration

+

Status: no progress

+

Last week, right after OpenExpo, we did a check-up session and this was one of the +areas identified with zero amount of progress. I have a strong preference to work +on this feature myself but have not been able to due to various other items that +need my attention.

+

The short version is that I'd prefer to remove all issue tracker specific code +and allow the tester to add arbitrary URLs to link to existing bugs. How to do +integration (even as simple as publishing a comment in the bug tracker) over +a generic interface still eludes me. In the next few weeks I will kick-off this +topic with a separate blog post/issue for everyone to comment on.

+

GitHub flow integration

+

Status: no progress

+

Our team spent some time making Kiwi TCMS the first open source TCMS available +on the GitHub Marketplace. We will +continue this integration effort and flow integration will emerge from that. +There's also many things that need to be done to satisfy GitHub's .

+

Agile integration with Trello

+

Status: no progress

+

Improve engineering productivity

+

Status: no progress

+

Our mission is to transform testing in your organization by providing +the tools for that via Kiwi TCMS. It is astonishing that so far nobody has provided +any kind of feedback in Issue #703 +wrt improving productivity in their teams!

+

We have some ideas which have been blocked by lack of resources on the team and +refactoring tasks. Because we've adopted this as our mission this is an important +item for us and we'll continue working on it as resources allow. +Progress is to be expected towards the end of the year.

+

Community

+

Status: great, on track, needs work

+

This is our strongest area during the year so far. We have a strong presence in +several communities, our event schedule is busy enough and we are gaining more +recognition every day!

+
    +
  • Hosted project stand at 3/5 conferences with 2 more on-track
  • +
  • Won the OpenAward for Best Tech Community
  • +
  • Hosted several presentations and workshops with few more on track
  • +
  • Found new talent to join the core team: 2 just ready to start contributing, 5 more in training
  • +
  • 1 more senior engineer as a mentor. We also have a few independent wanna-be contributors + and will be hosting qualification interviews for marketing assistant very soon
  • +
  • There are contributions and pull requests coming from users of Kiwi TCMS as well. + We'd like to see more of course.
  • +
  • There are a couple of open source projects and companies using Kiwi TCMS who + are friendly towards the project. We are working with them to get a public + endorsement on the website and engage in more technical work together. Of course + everyone has limited resources and is very busy :-(
  • +
  • Sponsors on OpenCollect are just + a few but we didn't have any previously so this is a good sign.
  • +
+

This is the moment to mention that not all is honey and roses in open source land. +Kiwi TCMS suffers from the problem that many of our users can't be contributors +or simply don't want to!

+

Manual testers can't program. This is a fact and a good sized chunk of our user base +actually performs manual testing. Those that can write automation and probably +code decently well may not be familiar with Python and Django. At least in Bulgaria +these two aren't very popular, definitely not among testers. That is to say this part +of the user-base simply doesn't have the necessary skills to contribute and the majority +of what we need is code contribution!

+

Another (fairly big IMO) group of users are coming from proprietary companies who +view open source and Kiwi TCMS as a zero cost option. Something that they take free +of charge and use it without ever contributing back. They don't understand nor really +care about the open source culture.

+

To make things worse we receive requests every single day via +our private email addresses or questions via IM despite our website clearly stating +community engagement rules. On a few occasions we have received very rude comments +of the sort "our company demands you fix this", "is this going to be ready this year" +(context implying entitlement), etc. To make things more ridiculous we've even received +support requests (via contact form) from companies and start-up +who get their return address wrong so we can't get in touch directly!

+

In short: don't demand anything from us unless you are ready to pay for it, work for it +yourself or propose a mutually beneficial scenario. We do try to keep the community +happy but more importantly follow our mission and develop our core team!

+

Happy testing!

+
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/atodorov/2019/11/11/how-to-override-bug-details-in-kiwi-tcms/index.html b/blog/atodorov/2019/11/11/how-to-override-bug-details-in-kiwi-tcms/index.html new file mode 100644 index 00000000..9d412bbd --- /dev/null +++ b/blog/atodorov/2019/11/11/how-to-override-bug-details-in-kiwi-tcms/index.html @@ -0,0 +1,336 @@ + + + + + Kiwi TCMS - How to override bug details in Kiwi TCMS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

How to override bug details in Kiwi TCMS

+ + + +
+

Starting with version 7.0 Kiwi TCMS pages displaying URLs to bugs also +contain an info icon which shows additional information as tooltip. These +are designed to provide more contextual information about the bug. By default +the tooltip shows the OpenGraph metadata for that URL. This article +will explain how to override this in 2 different ways.

+

bug details shown

+

Option #1: using the caching layer

+

Additional bug information is cached on the application layer. The cache +key is the bug URL! By default Kiwi TCMS uses local-memory caching which +isn't accessible for external processes but can be reconfigured very easily. +This example changes the CACHES setting to use a directory on the +file system like so

+
CACHES = {
+    'default': {
+        'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',
+        'LOCATION': '/tmp/kiwi-cache',
+        'TIMEOUT': 3600,
+    }
+}
+
+ + +

Then you need to poll your 3rd party bug tracker (and/or other systems) and +update the cache for each URL

+
from django.core.cache import cache
+from tcms.core.contrib.linkreference.models import LinkReference
+
+for reference in LinkReference.objects.filter(is_defect=True):
+    # possibly filter objects coming only from your own bug tracker
+    # in case there are multiple trackers in use
+
+    # custom methods to grab more information. Must return strings
+    title = fetch_title_from_bug_tracker(reference.url)
+    description = fetch_description_from_bug_tracker(reference.url)
+
+    # store the information in Kiwi TCMS cache
+    cache.set(reference, {'title': title, 'description': description})
+
+ + +

Then execute the Python script above regularly. For example use the following +as your cron script

+
#!/bin/bash
+export VIRTUAL_ENV=/venv
+export PATH=/venv/bin:${PATH}
+cat /path/to/cache_updater.py | /Kiwi/manage.py shell
+
+ + +

bug details from customized cache

+

IMPORTANT

+
    +
  • Kiwi TCMS expires cache entries after an hour. Either change + the TIMEOUT setting shown above or run your script more frequently
  • +
  • How to modify default Kiwi TCMS settings is documented + here
  • +
  • The Python + Bash scripts above don't need to be on the same system where Kiwi TCMS + is hosted. However they need the same Python 3 virtualenv and cache settings as + Kiwi TCMS does
  • +
  • Information about Django's cache framework and available backends + can be found here
  • +
  • memcached is a supported cache backend option, see + here
  • +
  • django-elasticache is a + backend for Amazon ElastiCache which provides several configuration examples
  • +
  • Both django-redis and + django-redis-cache are good + libraries which support Redis
  • +
  • Any 3rd party libraries must be pip3 install-ed into your own docker image
  • +
+

Option #2: extend bug tracker integration

+

Let's say you are already running a customized Docker image of Kiwi TCMS. Then +you may opt-in to extend the existing bug tracker integration code which provides +the information shown in the tooltip. In this example I've extended the +KiwiTCMS bug tracker implementation but you can even provide your own from +scratch

+
class ExtendedBugTracker(KiwiTCMS):
+    def details(self, url):
+        result = super().details(url)
+
+        result['title'] = 'EXTENDED: ' + result['title']
+        result['description'] += '<h1>IMPORTANT</h1>'
+
+        return result
+
+ + +

Then import the new ExtendedBugTracker class inside +tcms/issuetracker/types.py like so

+
index 9ad90ac..2c76621 100644
+--- a/tcms/issuetracker/types.py
++++ b/tcms/issuetracker/types.py
+@@ -17,6 +17,9 @@ from django.conf import settings
+
+ from tcms.issuetracker.base import IssueTrackerType
+ from tcms.issuetracker.kiwitcms import KiwiTCMS  # noqa
++from tcms.issuetracker.kiwitcms import ExtendedBugTracker
+
+ + +

and change the bug tracker type, via https://tcms.example.com/admin/testcases/bugsystem/, +to ExtendedBugTracker.

+

bug details extended internally

+

IMPORTANT

+
    +
  • ExtendedBugTracker may live anywhere on the filesystem but Python must be + able to import it
  • +
  • It is best to bundle all of your customizations into a Python package and + pip3 install it into your customized docker image
  • +
  • ExtendedBugTracker must be imported into tcms/issuetracker/types.py in order + for the admin interface and other functions to find it. You may also place the + import at the bottom of tcms/issuetracker/types.py
  • +
  • API documentation for bug tracker integration can be found + here
  • +
  • Rebuilding the docker image is outside the scope of this article. Have a look + at this + Dockerfile + for inspiration
  • +
+

NOTE: starting with Kiwi TCMS v8.5 +external bug tracker integration classes are listed in the EXTERNAL_BUG_TRACKERS +setting. If you are using v8.5 or newer instead of +importing ExtendedBugTracker in tcms/issuetracker/types.py you should +override the list of available bug tracker integrations:

+
EXTERNAL_BUG_TRACKERS.append('mymodule.ExtendedBugTracker')
+
+ + +

Happy testing!

+
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/atodorov/2019/12/26/roadmap-status-report-for-2019/index.html b/blog/atodorov/2019/12/26/roadmap-status-report-for-2019/index.html new file mode 100644 index 00000000..92137599 --- /dev/null +++ b/blog/atodorov/2019/12/26/roadmap-status-report-for-2019/index.html @@ -0,0 +1,290 @@ + + + + + Kiwi TCMS - Roadmap status report for 2019 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Roadmap status report for 2019

+

50-60% complete, slower pace, less visible progress

+ + + +
+

Hello everyone, in this article I will outline the progress that the Kiwi TCMS +team has made towards achieving the goals on our +2019 roadmap. +TL,DR: last year we've made lots of big and visible changes in Kiwi TCMS. +This year less so. Progress has been slower than before and not so much +visible. Community and team is growing. More contributors are welcome.

+

Complete the internal refactoring

+

Status: small progress, needs help

+

CodeClimate progress is:

+
    +
  • -60 code smells
  • +
  • -55 duplications
  • +
  • -50 other issues
  • +
  • 4.4% technical debt improvement
  • +
  • -240 hrs remaining until issues are fixed
  • +
+

The trend is showing less issues remaining +but it has been a slow progress. As we fix the easier items the remaining ones +become harder to deal with.

+

We've done minor work related to fixing issues reported by pylint. Around +150 of them still remain!

+

We have not done any targeted work to resolve other issues reported by Scrutinizer, +remove vendored-in JavaScript libraries, JavaScript refactoring or +classification of issues in 3rd party dependencies.

+

Redesign the UI templates with the help of Patternfly

+

Status: 60% done, needs help

+

There are 22 HTML templates remaining to be redesigned (from 59). That's mostly +due to internal cleanup and some refactoring! Test plan and Test run pages are the +two major templates that still need to be redesigned with Patternfly.

+

Modernize reporting aka Telemetry

+

Status: 60% done, in progress, behind schedule

+

The specs for the new Telemetry system +have been defined after taking into account feedback on GitHub issues. Anton Sankov is +the leading developer for this feature. So far we have 4 telemetry reports merged: +testing break-down, status matrix, execution trends and flaky tests.

+

There are lots of minor issues or missing functionality in these first iterations +(compared to specification). Work continues on the other telemetry use-cases +and related items.

+

Plugins for 3rd party test automation frameworks

+

Status: good, needs help

+

UPDATE: no change in last 6 months.

+

If you'd like to see plugins for more test automation frameworks +and/or file formats please checkout the +documentation +for links and more info.

+

Redefine bug-tracker integration

+

Status: 66% complete, in progress, behind schedule

+

We've been making slow progress on this milestone lately. For more info +see +https://github.com/kiwitcms/Kiwi/milestone/1

+

GitHub flow integration

+

Status: done, awaiting deployment

+

Our team spent some time making Kiwi TCMS the first open source TCMS available +on the GitHub Marketplace. At the end +of this year we were able to create a small application that allows further +integration and extending the testing workflow to the GitHub platform.

+

This is waiting on a few more clarifications from GitHub before we deploy but +for now it can be considered as done. Future functionality will be tracked +and developed directly at +https://github.com/kiwitcms/github-app/issues.

+

Agile integration with Trello

+

Status: no progress, will drop

+

This will be dropped from roadmap for the next year until we can get more interest +from the community.

+

Improve engineering productivity

+

Status: no progress

+

Looking for external help here. This will stay as a low priority item on our +roadmap for 2020 until we can free more resources on the team.

+

Community

+

Status: great, on track, needs work

+

This is our strongest area during this year. We have a strong presence in +multiple communities, our event schedule is very busy and we are gaining more +recognition every day! Core team hit several big bumps this year and is still +recovering with a few more people onboarding.

+

Kiwi TCMS suffers from the problem that many of our users can't be contributors +or simply don't want to!

+

In short: it is important for us to follow our mission and develop our core team +so we can deliver on promises made in our roadmap! That requires a lot of time and +effort which reduces short-term productivity.

+

Happy testing!

+
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/atodorov/2020/01/17/project-roadmap-2020/index.html b/blog/atodorov/2020/01/17/project-roadmap-2020/index.html new file mode 100644 index 00000000..85b5c2a9 --- /dev/null +++ b/blog/atodorov/2020/01/17/project-roadmap-2020/index.html @@ -0,0 +1,292 @@ + + + + + Kiwi TCMS - Project roadmap 2020 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Project roadmap 2020

+

team, technical & community towards sustainability

+ + + +
+

Hello testers, +the Kiwi TCMS team sat down together last week and talked about what we feel +is important for us during the upcoming year. This blog post outlines our +roadmap for 2020!

+

roadmap image 2020

+

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 several key areas:

+
1) Team
+2) Technical
+3) Community
+
+ + +

Team

+

Right now we have a core team with 6 newcomers on-boarding. +Engineering performance is all over the place with some people contributing +too much while others contributing too little. More importantly there is no +consistent pace of contributions which makes planning timely completion of +technical tasks impossible.

+

At the moment we do operate as a bunch of disconnected people who happen to +talk to each other from time to time.

+

We are going to adjust our internal processes and how we on-board new members. +In fact we did our first "scrum-like" meeting this week and agreed to change +our existing practice and strive to become better as a team!

+

Goal: to have a cohesive team at the end of the year which operates with +a predictable capacity.

+

Goal: 1 PR/week/person as broad measure of individual performance.

+

Technical

+

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

+

Goal: complete remaining Telemetry features.

+

Goal: complete +bug-tracker integration milestone.

+

Goal: all pylint issues resolved.

+

Goal: migrate all remaining legacy templates to Patternfly UI. See +patternfly-migration milestone.

+

Goal: where FE sends AJAX requests to BE views replace with JSON RPC API instead.

+

Extra: start tackling the JavaScript mess that we have. This depends and is related +to Patternfly migration and overall refactoring.

+

Extra: make it easier for downstream installations to extend and override parts +of Kiwi TCMS in order for users to adjust the system to their own needs. +The system is pretty flexible as-is but there have been requests, +both online and offline, to provide some extra features! We'll start looking +into them, likely making partial progress in the next 12 months.

+

Community

+

Last year Kiwi TCMS had massive success at every single conference that we've been to. +Both project and team have been well received. While we are going to continue +being part of various communities around the world we are trying to limit +extensive travel and focus on functionality and partnerships which will +increase Kiwi TCMS eco-system, make the project even more popular and +drive further adoption!

+

Goal: extended GitHub integration via +kiwitcms-github-app plugin.

+

Goal: release the following +test automation framework plugins +for Kiwi TCMS:

+ +

For more information see +test-automation-plugins milestone.

+

Ongoing: work with our partners from the proprietary and open source worlds. +This is hard to quantify and lots of it doesn't actually depend on the team. +However we are continuing to talk to them regularly. Expect new feedback to +become available under GitHub Issues.

+

Extra: see what we can do about testing productivity! This has always been +part of our mission but we have not been able to produce anything worth sharing. +We do have ideas in this space but we are generally looking for partnerships and collaborations. +It is very likely that there will not be very much progress on this front +because it is hard to define it properly :-(.

+

Summary

+

At the end of the day most of these goals compliment each other and help drive all of +them to completion. Many of the still on-boarding people have expressed desire to +improve their Python & Django skills. Working to resolve issues in the above specific +areas will give them this opportunity! I expect they will show good progress on their respective +tasks so we can write more about them on this blog.

+

Happy testing!

+
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/atodorov/2020/02/11/i-deleted-our-newsletter-from-mailchimp-please-re-subscribe/index.html b/blog/atodorov/2020/02/11/i-deleted-our-newsletter-from-mailchimp-please-re-subscribe/index.html new file mode 100644 index 00000000..0adeaf8b --- /dev/null +++ b/blog/atodorov/2020/02/11/i-deleted-our-newsletter-from-mailchimp-please-re-subscribe/index.html @@ -0,0 +1,246 @@ + + + + + Kiwi TCMS - I deleted our newsletter from Mailchimp ! Please re-subscribe + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

I deleted our newsletter from Mailchimp ! Please re-subscribe

+

and no, we didn't have backup

+ + + +
+

Hello testers, +I have to admit that I made a rookie mistake and deleted the entire email database +for the Kiwi TCMS +newsletter! +And of course we didn't have a backup of this database :-(. Please +re-subscribe here +and read below if you are interested to know what happened.

+

Last week, while exploring how to cancel active subscriptions for our +deprecated GitHub Marketplace listing I found there is no way to cancel +those programatically. So I've compiled a list of email addresses and decided +to send subscribers an email asking them to cancel their subscriptions.

+

For this purpose I decided to import the contacts into Mailchimp because +it gives you a better interface to design the actual message, include images +in the message body, preview and test the message before it is sent! The import +of addresses went fine, new addresses were tagged appropriately to separate them +from the rest of the newsletter audience but they were not subscribed to +receive emails automatically.

+

I selected "non-subscribed" option when importing as a second barrier to +accidentally emailing people who do not want to receive regular news from us! +However it turned out Mailchimp can't send messages to non-subscribed addresses! +Maybe that's part of their attempts to be GDPR compliant.

+

So I decided to delete the freshly imported addresses, import them again +and this time tag + subscribe them during the import! When selecting the addresses +for deletion I am 99% confident I did filter them by tag first and then selected +DELETE! And the entire contacts list was gone!

+

I've also contacted Mailchimp immediately to ask whether or not the addresses +can be restored. Unfortunately they are trying to be super GDPR compliant and +claim they don't have this information into their system anymore. +And in this particular case we've been relying on the vendor to keep backups +on their end so didn't even think about trying to backup this database!

+

For users who have accounts at +https://public.tenant.kiwitcms.org +we do have +their email addresses but we're not going to automatically re-subscribe them. +We've stopped auto-subscribing +2 years ago and also there's +no way of telling which addresses were on the list in the first hand.

+

Please +re-subscribe here +and I promise we're going to start backing up the newsletter database as well.

+

Thank you!

+
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/atodorov/2020/07/11/customize-the-information-used-for-1-click-bug-reports/index.html b/blog/atodorov/2020/07/11/customize-the-information-used-for-1-click-bug-reports/index.html new file mode 100644 index 00000000..8329da9b --- /dev/null +++ b/blog/atodorov/2020/07/11/customize-the-information-used-for-1-click-bug-reports/index.html @@ -0,0 +1,257 @@ + + + + + Kiwi TCMS - Customize the information used for 1-click bug reports + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Customize the information used for 1-click bug reports

+ + + +
+

Kiwi TCMS integration with 3rd party bug trackers supports the +1-click bug report feature. +However you may want to change how the initial information is structured or +even what exactly is written in the initial comment. This article +shows how to do this.

+

The default text used for 1-click bug reports gets compiled based on +information present in the TestExecution - Product, Version, TestCase.text, +etc. This is encapsulated in the +tcms.issuetracker.base.IssueTrackerType._report_comment() method. +You may extend the existing bug tracker integration code +with your own customizations. In this example I've extended the +KiwiTCMS bug tracker implementation but you can provide your own from +scratch

+
# filename: mymodule.py
+class ExtendedBugTracker(KiwiTCMS):
+    def _report_comment(self, execution):
+        comment = super()._report_comment(execution)
+
+        comment += "----- ADDITIONAL INFORMATION -----\n\n"
+        #
+        # fetch more info from other sources
+        #
+        comment += "----- END ADDITIONAL INFORMATION -----\n"
+        return comment
+
+ + +

Then override the EXTERNAL_BUG_TRACKERS setting to include your customizations:

+
EXTERNAL_BUG_TRACKERS.append('mymodule.ExtendedBugTracker')
+
+ + +

and change the bug tracker type, via https://tcms.example.com/admin/testcases/bugsystem/, +to mymodule.ExtendedBugTracker.

+

IMPORTANT

+
    +
  • Information how to change settings can be found + here
  • +
  • mymodule.py may live anywhere on the filesystem but Python must be + able to import it
  • +
  • It is best to bundle all of your customizations into a Python package and + pip3 install it into your customized docker image
  • +
  • API documentation for bug tracker integration can be found + here
  • +
  • Rebuilding the docker image is outside the scope of this article. Have a look + at this + Dockerfile + for inspiration
  • +
+

Happy testing!

+
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/atodorov/2020/12/31/roadmap-status-report-for-2020/index.html b/blog/atodorov/2020/12/31/roadmap-status-report-for-2020/index.html new file mode 100644 index 00000000..d8fae052 --- /dev/null +++ b/blog/atodorov/2020/12/31/roadmap-status-report-for-2020/index.html @@ -0,0 +1,288 @@ + + + + + Kiwi TCMS - Roadmap status report for 2020 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Roadmap status report for 2020

+

goals 65% complete

+ + + +
+

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!

+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/atodorov/2021/01/29/project-roadmap-2021/index.html b/blog/atodorov/2021/01/29/project-roadmap-2021/index.html new file mode 100644 index 00000000..4a4dff4f --- /dev/null +++ b/blog/atodorov/2021/01/29/project-roadmap-2021/index.html @@ -0,0 +1,272 @@ + + + + + Kiwi TCMS - Project roadmap 2021 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Project roadmap 2021

+

team, technical & community towards sustainability

+ + + +
+

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!

+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/atodorov/2022/01/24/parameters-environments-and-test-matrix-generation/index.html b/blog/atodorov/2022/01/24/parameters-environments-and-test-matrix-generation/index.html new file mode 100644 index 00000000..29625461 --- /dev/null +++ b/blog/atodorov/2022/01/24/parameters-environments-and-test-matrix-generation/index.html @@ -0,0 +1,382 @@ + + + + + Kiwi TCMS - Parameters, Environments and test matrix generation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Parameters, Environments and test matrix generation

+

understand what they mean and how they work

+ + + +
+

The upcoming Kiwi TCMS v11 contains new functionality around TestCase parameters and +TestRun environments which has an impact on how your final test execution matrix will +look like. This article provides detailed information about these features but have +in mind that they are still considered to be a technology-preview.

+

Parameters

+

Consider a login functionality which accepts email address and password. Possible states +for these fields are:

+
    +
  • +

    Email address:

    +
      +
    • valid - well formed email string, exists in database, access is allowed
    • +
    • invalid - malformed email string, should not exist in the DB but this fact is not relevant to the test
    • +
    • disabled - well formed email string, exists in database, access is not allowed
    • +
    +
  • +
  • +

    Password:

    +
      +
    • correct - matches the value in database for the given email address
    • +
    • another - matches the value in database which is related to another email address
    • +
    • wrong - doesn't match the value in database
    • +
    • empty - value is empty string, a special case of wrong
    • +
    • invalid - value doesn't conform to predefined rules. May or may not be relevant to login functionality
    • +
    +
  • +
+

Depending on how the software under test is put together you can design multiple test cases. +Fundamentally however these are the same test case and the above states are input parameters to it!

+

Definition: TestCase parameters are different input values which do not fundamentally affect the result of +a test case! A TestCase with parameters will result into multiple test executions!

+

In other words you will be executing a parameterized test scenario multiple times with different input values! +Inside Kiwi TCMS the actual parameter values during execution are recorded into the TestExecution model +which will not change if you modify test case parameter values afterwards!

+

Definition: TestExecution parameters record a snapshot of TestCase parameters at the time when you intended +to execute a particular test scenario!

+

Environments

+

A testing environment represents the specifics of where exactly you executed your test suite. +Consider this example:

+
+

The default desktop environment of Fedora is GNOME, but if you prefer an alternative, +you can download installation media which contains slightly differently defaults, e.g. +KDE, Xfce, MATE and others, see https://spins.fedoraproject.org.

+
+

Regardless of which Fedora variant you choose the expected functionallity +of the default desktop experience is the same. However this can only be guaranteed with exhaustive +testing across all variants. Check-out the test matrix at +https://fedoraproject.org/wiki/Test_Results:Fedora_36_Rawhide_20220118.n.0_Desktop?rd=Test_Results:Current_Desktop_Test#Non_release-blocking_desktops:_x86_.2F_x86_64

+

Definition: a TestRun environment is a set of attributes which apply to the entire test suite +at the time of execution. Usually you expect test results in different environments to be the same!

+

In Kiwi TCMS environments are represented as named containers of key/value pairs. +The same key may have multiple values! +They can be found under ADMIN -> Everything else -> Environments.

+

Because environments are meant to affect the entire test suite they are linked to the +TestRun model. When creating a new test run you can select multiple Environment +records.

+

Test matrix generation

+

The existing behavior in Kiwi TCMS is that when a test run is created there will be only one +test execution for every test case which is added inside this test run.

+

In the Fedora example shown above some of the test cases also have their own parameters, +e.g. the QA:Testcase_desktop_app_basic scenario.

+

Definition: TestRun environment key/values will be combined with TestCase parameter key/values +to form the final test matrix! This opens up the possibility for combinatorial test execution +generation.

+

Once parameters and environment(s) are specified you will start seeing multiple test executions +for the same test case inside newly created test runs. By default a full-combination test matrix +will be created. The other option is to pairwise all key/value records.

+

Important: test execution generation works only when creating or cloning a test run that contains +test cases. This feature still does not work for test cases added after a test run is created!

+

Environment(s) vs Tag(s)

+

Inside Kiwi TCMS you can use both environments and tags to annotate test runs. +There are 3 important facts that hold true:

+
    +
  • Tags possess only informational value, they don't influence how you perform testing;
  • +
  • Environments possess informational value and govern the final test matrix;
  • +
  • Environments which have a single value for each different key are the same as tags!
  • +
+

"Example from #1344"

+

If we look at this example from Issue #1344 we +can make out the following keys:

+
    +
  • Driver - 2 values
  • +
  • API - 2 values
  • +
  • Python - 2 values
  • +
  • Java - 1 value
  • +
  • Eclipse - 1 value
  • +
  • Host OS - 1 value
  • +
  • Target OS - 1 value
  • +
  • Redistributable - 1 value
  • +
  • Testing Type - 1 value
  • +
+

Here Driver, API and Python clearly should affect your test matrix. Otherwise there isn't +much point in having the different values recorded in the first place. That results in a 8x +multiplication factor for every functionality that may be affected/related to these attributes, +presumably the entire functionality of the product under test.

+

Java, Eclipse, Host OS and Target OS carry only informational value but they look like +more values could be possible. If that's the case these attributes will also affect the overall +test matrix.

+

Redistributable and Testing Type look like information-only attributes. They don't appear +to have any relevance to the test matrix at all. The same information-only effect can be achieved +both with environments and with tags.

+

Practical rules:

+
    +
  1. Attributes which affect a single test case should be defined as TestCase parameters
  2. +
  3. Attributes which affect all test cases in a suite should be defined as TestRun environment(s)
  4. +
  5. One big TestRun is likely the best from organizational and optimizational point of view
  6. +
+

You may decide to have multiple smaller test runs, usually with 1 value per environment key, +if you think that fits your workflow better. However you may be missing on some optimizations if you +choose to do so.

+

Real life example

+

To illustrate how all of these new features work let's look at +Partitioning custom software RAID +test case from Fedora QA. It instructs the tester to install Linux and inside the +partitioning screen create a Software RAID partition, format it with a filesystem and +assign a mount point! It is expected that once installation is complete the machine will +reboot, tester will be able to login as root and the created filesystem will be available!

+

Factors that could affect this functionality:

+
    +
  • +

    Raid Level: Fedora supports 7 of them - 0, 1, 4, 5, 6, 10 and linear. These are all different drivers + located under /lib/modules/$(uname -r)/kernel/drivers/md

    +
    ./linear.ko.xz
    +./raid0.ko.xz
    +./raid10.ko.xz
    +./raid1.ko.xz
    +./raid456.ko.xz
    +
    + + +
  • +
  • +

    Mount Point: / for example is mounted very early in the boot process, /home is mounted much later. + / also relates to rescue mode, while /home doesn't. /home, if corrupted, may affect the terminal + login process though

    +
  • +
  • Encryption: Yes/No. This is stackable on top of the RAID device and "should-just-work". However it is often + included into other partitioning test cases in order to discover weird issues and because it is a critical + functionality
  • +
+

We may add the actual filesystem type, used to format the RAID block device, +e.g. xfs, ext3, ext4, but that's not needed here! Here's how this test case looks in Kiwi TCMS:

+

"RAID test case"

+

Remember that Fedora comes with multiple variants for multiple CPU architectures! Of those we'll consider +Server and Workstation, which are both available for the aarch64 and x86_64 CPU +architectures. Here's how this can be represented inside Kiwi TCMS:

+

"Fedora variants represented as environment"

+


+
+Next we need to organize test execution for an upcoming release by creating test run(s) and +selecting environment and matrix generation type: +"New test run with environment"

+

The possible outcomes are:

+
    +
  • 112 test executions: full test matrix between all Fedora variants and all RAID parameters
  • +
  • 56 test executions: 4 TR x 14 TE; one TR/variant without environment; RAID parameters are pairwised
  • +
  • 16 test executions: all Fedora variants are pairwised together with all RAID parameters
  • +
+

Finally this is how the resulting test run looks like. Notice the 3 boxes icon for each +test execution, listing the actual parameters which should be used during testing:

+

"TR with environment, TE with parameters"

+

Environment parameters are read-only here b/c they have been copied to all test execution records. +It usually doesn't make sense to modify your environment mid-way during test execution. +If that's needed or you've made a mistake it's probably easier to create a new test run.

+

Happy Testing!

+
+

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

+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/atodorov/index.html b/blog/atodorov/index.html new file mode 100644 index 00000000..22894137 --- /dev/null +++ b/blog/atodorov/index.html @@ -0,0 +1,2419 @@ + + + + + Kiwi TCMS - Articles by Alexander Todorov + + + + + + + + + + + + + + + + + + + + + +
+

Articles by Alexander Todorov

+ +
+ + +
+

The upcoming Kiwi TCMS v11 contains new functionality around TestCase parameters and +TestRun environments which has an impact on how your final test execution matrix will +look like. This article provides detailed information about these features but have +in mind that they are still considered to be a technology-preview.

+

Parameters

+

Consider a login functionality which accepts email address and password. Possible states +for these fields are:

+
    +
  • +

    Email address:

    +
      +
    • valid - well formed email string, exists in database, access is allowed
    • +
    • invalid - malformed email string, should not exist in the DB but this fact is not relevant to the test
    • +
    • disabled - well formed email string, exists in database, access is not allowed
    • +
    +
  • +
  • +

    Password:

    +
      +
    • correct - matches the value in database for the given email address
    • +
    • another - matches the value in database which is related to another email address
    • +
    • wrong - doesn't match the value in database
    • +
    • empty - value is empty string, a special case of wrong
    • +
    • invalid - value doesn't conform to predefined rules. May or may not be relevant to login functionality
    • +
    +
  • +
+

Depending on how the software under test is put together you can design multiple test cases. +Fundamentally however these are the same test case and the above states are input parameters to it!

+

Definition: TestCase parameters are different input values which do not fundamentally affect the result of +a test case! A TestCase with parameters will result into multiple test executions!

+

In other words you will be executing a parameterized test scenario multiple times with different input values! +Inside Kiwi TCMS the actual parameter values during execution are recorded into the TestExecution model +which will not change if you modify test case parameter values afterwards!

+

Definition: TestExecution parameters record a snapshot of TestCase parameters at the time when you intended +to execute a particular test scenario!

+

Environments

+

A testing environment represents the specifics of where exactly you executed your test suite. +Consider this example:

+
+

The default desktop environment of Fedora is GNOME, but if you prefer an alternative, +you can download installation media which contains slightly differently defaults, e.g. +KDE, Xfce, MATE and others, see https://spins.fedoraproject.org.

+
+

Regardless of which Fedora variant you choose the expected functionallity +of the default desktop experience is the same. However this can only be guaranteed with exhaustive +testing across all variants. Check-out the test matrix at +https://fedoraproject.org/wiki/Test_Results:Fedora_36_Rawhide_20220118.n.0_Desktop?rd=Test_Results:Current_Desktop_Test#Non_release-blocking_desktops:_x86_.2F_x86_64

+

Definition: a TestRun environment is a set of attributes which apply to the entire test suite +at the time of execution. Usually you expect test results in different environments to be the same!

+

In Kiwi TCMS environments are represented as named containers of key/value pairs. +The same key may have multiple values! +They can be found under ADMIN -> Everything else -> Environments.

+

Because environments are meant to affect the entire test suite they are linked to the +TestRun model. When creating a new test run you can select multiple Environment +records.

+

Test matrix generation

+

The existing behavior in Kiwi TCMS is that when a test run is created there will be only one +test execution for every test case which is added inside this test run.

+

In the Fedora example shown above some of the test cases also have their own parameters, +e.g. the QA:Testcase_desktop_app_basic scenario.

+

Definition: TestRun environment key/values will be combined with TestCase parameter key/values +to form the final test matrix! This opens up the possibility for combinatorial test execution +generation.

+

Once parameters and environment(s) are specified you will start seeing multiple test executions +for the same test case inside newly created test runs. By default a full-combination test matrix +will be created. The other option is to pairwise all key/value records.

+

Important: test execution generation works only when creating or cloning a test run that contains +test cases. This feature still does not work for test cases added after a test run is created!

+

Environment(s) vs Tag(s)

+

Inside Kiwi TCMS you can use both environments and tags to annotate test runs. +There are 3 important facts that hold true:

+
    +
  • Tags possess only informational value, they don't influence how you perform testing;
  • +
  • Environments possess informational value and govern the final test matrix;
  • +
  • Environments which have a single value for each different key are the same as tags!
  • +
+

"Example from #1344"

+

If we look at this example from Issue #1344 we +can make out the following keys:

+
    +
  • Driver - 2 values
  • +
  • API - 2 values
  • +
  • Python - 2 values
  • +
  • Java - 1 value
  • +
  • Eclipse - 1 value
  • +
  • Host OS - 1 value
  • +
  • Target OS - 1 value
  • +
  • Redistributable - 1 value
  • +
  • Testing Type - 1 value
  • +
+

Here Driver, API and Python clearly should affect your test matrix. Otherwise there isn't +much point in having the different values recorded in the first place. That results in a 8x +multiplication factor for every functionality that may be affected/related to these attributes, +presumably the entire functionality of the product under test.

+

Java, Eclipse, Host OS and Target OS carry only informational value but they look like +more values could be possible. If that's the case these attributes will also affect the overall +test matrix.

+

Redistributable and Testing Type look like information-only attributes. They don't appear +to have any relevance to the test matrix at all. The same information-only effect can be achieved +both with environments and with tags.

+

Practical rules:

+
    +
  1. Attributes which affect a single test case should be defined as TestCase parameters
  2. +
  3. Attributes which affect all test cases in a suite should be defined as TestRun environment(s)
  4. +
  5. One big TestRun is likely the best from organizational and optimizational point of view
  6. +
+

You may decide to have multiple smaller test runs, usually with 1 value per environment key, +if you think that fits your workflow better. However you may be missing on some optimizations if you +choose to do so.

+

Real life example

+

To illustrate how all of these new features work let's look at +Partitioning custom software RAID +test case from Fedora QA. It instructs the tester to install Linux and inside the +partitioning screen create a Software RAID partition, format it with a filesystem and +assign a mount point! It is expected that once installation is complete the machine will +reboot, tester will be able to login as root and the created filesystem will be available!

+

Factors that could affect this functionality:

+
    +
  • +

    Raid Level: Fedora supports 7 of them - 0, 1, 4, 5, 6, 10 and linear. These are all different drivers + located under /lib/modules/$(uname -r)/kernel/drivers/md

    +
    ./linear.ko.xz
    +./raid0.ko.xz
    +./raid10.ko.xz
    +./raid1.ko.xz
    +./raid456.ko.xz
    +
    + + +
  • +
  • +

    Mount Point: / for example is mounted very early in the boot process, /home is mounted much later. + / also relates to rescue mode, while /home doesn't. /home, if corrupted, may affect the terminal + login process though

    +
  • +
  • Encryption: Yes/No. This is stackable on top of the RAID device and "should-just-work". However it is often + included into other partitioning test cases in order to discover weird issues and because it is a critical + functionality
  • +
+

We may add the actual filesystem type, used to format the RAID block device, +e.g. xfs, ext3, ext4, but that's not needed here! Here's how this test case looks in Kiwi TCMS:

+

"RAID test case"

+

Remember that Fedora comes with multiple variants for multiple CPU architectures! Of those we'll consider +Server and Workstation, which are both available for the aarch64 and x86_64 CPU +architectures. Here's how this can be represented inside Kiwi TCMS:

+

"Fedora variants represented as environment"

+


+
+Next we need to organize test execution for an upcoming release by creating test run(s) and +selecting environment and matrix generation type: +"New test run with environment"

+

The possible outcomes are:

+
    +
  • 112 test executions: full test matrix between all Fedora variants and all RAID parameters
  • +
  • 56 test executions: 4 TR x 14 TE; one TR/variant without environment; RAID parameters are pairwised
  • +
  • 16 test executions: all Fedora variants are pairwised together with all RAID parameters
  • +
+

Finally this is how the resulting test run looks like. Notice the 3 boxes icon for each +test execution, listing the actual parameters which should be used during testing:

+

"TR with environment, TE with parameters"

+

Environment parameters are read-only here b/c they have been copied to all test execution records. +It usually doesn't make sense to modify your environment mid-way during test execution. +If that's needed or you've made a mistake it's probably easier to create a new test run.

+

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!

+ +
+
+
+
+ +

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!

+ +
+
+
+ + +
+

Kiwi TCMS integration with 3rd party bug trackers supports the +1-click bug report feature. +However you may want to change how the initial information is structured or +even what exactly is written in the initial comment. This article +shows how to do this.

+

The default text used for 1-click bug reports gets compiled based on +information present in the TestExecution - Product, Version, TestCase.text, +etc. This is encapsulated in the +tcms.issuetracker.base.IssueTrackerType._report_comment() method. +You may extend the existing bug tracker integration code +with your own customizations. In this example I've extended the +KiwiTCMS bug tracker implementation but you can provide your own from +scratch

+
# filename: mymodule.py
+class ExtendedBugTracker(KiwiTCMS):
+    def _report_comment(self, execution):
+        comment = super()._report_comment(execution)
+
+        comment += "----- ADDITIONAL INFORMATION -----\n\n"
+        #
+        # fetch more info from other sources
+        #
+        comment += "----- END ADDITIONAL INFORMATION -----\n"
+        return comment
+
+ + +

Then override the EXTERNAL_BUG_TRACKERS setting to include your customizations:

+
EXTERNAL_BUG_TRACKERS.append('mymodule.ExtendedBugTracker')
+
+ + +

and change the bug tracker type, via https://tcms.example.com/admin/testcases/bugsystem/, +to mymodule.ExtendedBugTracker.

+

IMPORTANT

+
    +
  • Information how to change settings can be found + here
  • +
  • mymodule.py may live anywhere on the filesystem but Python must be + able to import it
  • +
  • It is best to bundle all of your customizations into a Python package and + pip3 install it into your customized docker image
  • +
  • API documentation for bug tracker integration can be found + here
  • +
  • Rebuilding the docker image is outside the scope of this article. Have a look + at this + Dockerfile + for inspiration
  • +
+

Happy testing!

+
+
+
+ + +
+

Hello testers, +I have to admit that I made a rookie mistake and deleted the entire email database +for the Kiwi TCMS +newsletter! +And of course we didn't have a backup of this database :-(. Please +re-subscribe here +and read below if you are interested to know what happened.

+

Last week, while exploring how to cancel active subscriptions for our +deprecated GitHub Marketplace listing I found there is no way to cancel +those programatically. So I've compiled a list of email addresses and decided +to send subscribers an email asking them to cancel their subscriptions.

+

For this purpose I decided to import the contacts into Mailchimp because +it gives you a better interface to design the actual message, include images +in the message body, preview and test the message before it is sent! The import +of addresses went fine, new addresses were tagged appropriately to separate them +from the rest of the newsletter audience but they were not subscribed to +receive emails automatically.

+

I selected "non-subscribed" option when importing as a second barrier to +accidentally emailing people who do not want to receive regular news from us! +However it turned out Mailchimp can't send messages to non-subscribed addresses! +Maybe that's part of their attempts to be GDPR compliant.

+

So I decided to delete the freshly imported addresses, import them again +and this time tag + subscribe them during the import! When selecting the addresses +for deletion I am 99% confident I did filter them by tag first and then selected +DELETE! And the entire contacts list was gone!

+

I've also contacted Mailchimp immediately to ask whether or not the addresses +can be restored. Unfortunately they are trying to be super GDPR compliant and +claim they don't have this information into their system anymore. +And in this particular case we've been relying on the vendor to keep backups +on their end so didn't even think about trying to backup this database!

+

For users who have accounts at +https://public.tenant.kiwitcms.org +we do have +their email addresses but we're not going to automatically re-subscribe them. +We've stopped auto-subscribing +2 years ago and also there's +no way of telling which addresses were on the list in the first hand.

+

Please +re-subscribe here +and I promise we're going to start backing up the newsletter database as well.

+

Thank you!

+
+
+
+
+ +

Project roadmap 2020

+
+ + +
+ +
+

Hello testers, +the Kiwi TCMS team sat down together last week and talked about what we feel +is important for us during the upcoming year. This blog post outlines our +roadmap for 2020!

+

roadmap image 2020

+

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 several key areas:

+
1) Team
+2) Technical
+3) Community
+
+ + +

Team

+

Right now we have a core team with 6 newcomers on-boarding. +Engineering performance is all over the place with some people contributing +too much while others contributing too little. More importantly there is no +consistent pace of contributions which makes planning timely completion of +technical tasks impossible.

+

At the moment we do operate as a bunch of disconnected people who happen to +talk to each other from time to time.

+

We are going to adjust our internal processes and how we on-board new members. +In fact we did our first "scrum-like" meeting this week and agreed to change +our existing practice and strive to become better as a team!

+

Goal: to have a cohesive team at the end of the year which operates with +a predictable capacity.

+

Goal: 1 PR/week/person as broad measure of individual performance.

+

Technical

+

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

+

Goal: complete remaining Telemetry features.

+

Goal: complete +bug-tracker integration milestone.

+

Goal: all pylint issues resolved.

+

Goal: migrate all remaining legacy templates to Patternfly UI. See +patternfly-migration milestone.

+

Goal: where FE sends AJAX requests to BE views replace with JSON RPC API instead.

+

Extra: start tackling the JavaScript mess that we have. This depends and is related +to Patternfly migration and overall refactoring.

+

Extra: make it easier for downstream installations to extend and override parts +of Kiwi TCMS in order for users to adjust the system to their own needs. +The system is pretty flexible as-is but there have been requests, +both online and offline, to provide some extra features! We'll start looking +into them, likely making partial progress in the next 12 months.

+

Community

+

Last year Kiwi TCMS had massive success at every single conference that we've been to. +Both project and team have been well received. While we are going to continue +being part of various communities around the world we are trying to limit +extensive travel and focus on functionality and partnerships which will +increase Kiwi TCMS eco-system, make the project even more popular and +drive further adoption!

+

Goal: extended GitHub integration via +kiwitcms-github-app plugin.

+

Goal: release the following +test automation framework plugins +for Kiwi TCMS:

+ +

For more information see +test-automation-plugins milestone.

+

Ongoing: work with our partners from the proprietary and open source worlds. +This is hard to quantify and lots of it doesn't actually depend on the team. +However we are continuing to talk to them regularly. Expect new feedback to +become available under GitHub Issues.

+

Extra: see what we can do about testing productivity! This has always been +part of our mission but we have not been able to produce anything worth sharing. +We do have ideas in this space but we are generally looking for partnerships and collaborations. +It is very likely that there will not be very much progress on this front +because it is hard to define it properly :-(.

+

Summary

+

At the end of the day most of these goals compliment each other and help drive all of +them to completion. Many of the still on-boarding people have expressed desire to +improve their Python & Django skills. Working to resolve issues in the above specific +areas will give them this opportunity! I expect they will show good progress on their respective +tasks so we can write more about them on this blog.

+

Happy testing!

+
+
+
+
+ +

Roadmap status report for 2019

+
+ + +
+ +
+

Hello everyone, in this article I will outline the progress that the Kiwi TCMS +team has made towards achieving the goals on our +2019 roadmap. +TL,DR: last year we've made lots of big and visible changes in Kiwi TCMS. +This year less so. Progress has been slower than before and not so much +visible. Community and team is growing. More contributors are welcome.

+

Complete the internal refactoring

+

Status: small progress, needs help

+

CodeClimate progress is:

+
    +
  • -60 code smells
  • +
  • -55 duplications
  • +
  • -50 other issues
  • +
  • 4.4% technical debt improvement
  • +
  • -240 hrs remaining until issues are fixed
  • +
+

The trend is showing less issues remaining +but it has been a slow progress. As we fix the easier items the remaining ones +become harder to deal with.

+

We've done minor work related to fixing issues reported by pylint. Around +150 of them still remain!

+

We have not done any targeted work to resolve other issues reported by Scrutinizer, +remove vendored-in JavaScript libraries, JavaScript refactoring or +classification of issues in 3rd party dependencies.

+

Redesign the UI templates with the help of Patternfly

+

Status: 60% done, needs help

+

There are 22 HTML templates remaining to be redesigned (from 59). That's mostly +due to internal cleanup and some refactoring! Test plan and Test run pages are the +two major templates that still need to be redesigned with Patternfly.

+

Modernize reporting aka Telemetry

+

Status: 60% done, in progress, behind schedule

+

The specs for the new Telemetry system +have been defined after taking into account feedback on GitHub issues. Anton Sankov is +the leading developer for this feature. So far we have 4 telemetry reports merged: +testing break-down, status matrix, execution trends and flaky tests.

+

There are lots of minor issues or missing functionality in these first iterations +(compared to specification). Work continues on the other telemetry use-cases +and related items.

+

Plugins for 3rd party test automation frameworks

+

Status: good, needs help

+

UPDATE: no change in last 6 months.

+

If you'd like to see plugins for more test automation frameworks +and/or file formats please checkout the +documentation +for links and more info.

+

Redefine bug-tracker integration

+

Status: 66% complete, in progress, behind schedule

+

We've been making slow progress on this milestone lately. For more info +see +https://github.com/kiwitcms/Kiwi/milestone/1

+

GitHub flow integration

+

Status: done, awaiting deployment

+

Our team spent some time making Kiwi TCMS the first open source TCMS available +on the GitHub Marketplace. At the end +of this year we were able to create a small application that allows further +integration and extending the testing workflow to the GitHub platform.

+

This is waiting on a few more clarifications from GitHub before we deploy but +for now it can be considered as done. Future functionality will be tracked +and developed directly at +https://github.com/kiwitcms/github-app/issues.

+

Agile integration with Trello

+

Status: no progress, will drop

+

This will be dropped from roadmap for the next year until we can get more interest +from the community.

+

Improve engineering productivity

+

Status: no progress

+

Looking for external help here. This will stay as a low priority item on our +roadmap for 2020 until we can free more resources on the team.

+

Community

+

Status: great, on track, needs work

+

This is our strongest area during this year. We have a strong presence in +multiple communities, our event schedule is very busy and we are gaining more +recognition every day! Core team hit several big bumps this year and is still +recovering with a few more people onboarding.

+

Kiwi TCMS suffers from the problem that many of our users can't be contributors +or simply don't want to!

+

In short: it is important for us to follow our mission and develop our core team +so we can deliver on promises made in our roadmap! That requires a lot of time and +effort which reduces short-term productivity.

+

Happy testing!

+
+
+
+
+ +

How to override bug details in Kiwi TCMS

+
+ + +
+ +
+

Starting with version 7.0 Kiwi TCMS pages displaying URLs to bugs also +contain an info icon which shows additional information as tooltip. These +are designed to provide more contextual information about the bug. By default +the tooltip shows the OpenGraph metadata for that URL. This article +will explain how to override this in 2 different ways.

+

bug details shown

+

Option #1: using the caching layer

+

Additional bug information is cached on the application layer. The cache +key is the bug URL! By default Kiwi TCMS uses local-memory caching which +isn't accessible for external processes but can be reconfigured very easily. +This example changes the CACHES setting to use a directory on the +file system like so

+
CACHES = {
+    'default': {
+        'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',
+        'LOCATION': '/tmp/kiwi-cache',
+        'TIMEOUT': 3600,
+    }
+}
+
+ + +

Then you need to poll your 3rd party bug tracker (and/or other systems) and +update the cache for each URL

+
from django.core.cache import cache
+from tcms.core.contrib.linkreference.models import LinkReference
+
+for reference in LinkReference.objects.filter(is_defect=True):
+    # possibly filter objects coming only from your own bug tracker
+    # in case there are multiple trackers in use
+
+    # custom methods to grab more information. Must return strings
+    title = fetch_title_from_bug_tracker(reference.url)
+    description = fetch_description_from_bug_tracker(reference.url)
+
+    # store the information in Kiwi TCMS cache
+    cache.set(reference, {'title': title, 'description': description})
+
+ + +

Then execute the Python script above regularly. For example use the following +as your cron script

+
#!/bin/bash
+export VIRTUAL_ENV=/venv
+export PATH=/venv/bin:${PATH}
+cat /path/to/cache_updater.py | /Kiwi/manage.py shell
+
+ + +

bug details from customized cache

+

IMPORTANT

+
    +
  • Kiwi TCMS expires cache entries after an hour. Either change + the TIMEOUT setting shown above or run your script more frequently
  • +
  • How to modify default Kiwi TCMS settings is documented + here
  • +
  • The Python + Bash scripts above don't need to be on the same system where Kiwi TCMS + is hosted. However they need the same Python 3 virtualenv and cache settings as + Kiwi TCMS does
  • +
  • Information about Django's cache framework and available backends + can be found here
  • +
  • memcached is a supported cache backend option, see + here
  • +
  • django-elasticache is a + backend for Amazon ElastiCache which provides several configuration examples
  • +
  • Both django-redis and + django-redis-cache are good + libraries which support Redis
  • +
  • Any 3rd party libraries must be pip3 install-ed into your own docker image
  • +
+

Option #2: extend bug tracker integration

+

Let's say you are already running a customized Docker image of Kiwi TCMS. Then +you may opt-in to extend the existing bug tracker integration code which provides +the information shown in the tooltip. In this example I've extended the +KiwiTCMS bug tracker implementation but you can even provide your own from +scratch

+
class ExtendedBugTracker(KiwiTCMS):
+    def details(self, url):
+        result = super().details(url)
+
+        result['title'] = 'EXTENDED: ' + result['title']
+        result['description'] += '<h1>IMPORTANT</h1>'
+
+        return result
+
+ + +

Then import the new ExtendedBugTracker class inside +tcms/issuetracker/types.py like so

+
index 9ad90ac..2c76621 100644
+--- a/tcms/issuetracker/types.py
++++ b/tcms/issuetracker/types.py
+@@ -17,6 +17,9 @@ from django.conf import settings
+
+ from tcms.issuetracker.base import IssueTrackerType
+ from tcms.issuetracker.kiwitcms import KiwiTCMS  # noqa
++from tcms.issuetracker.kiwitcms import ExtendedBugTracker
+
+ + +

and change the bug tracker type, via https://tcms.example.com/admin/testcases/bugsystem/, +to ExtendedBugTracker.

+

bug details extended internally

+

IMPORTANT

+
    +
  • ExtendedBugTracker may live anywhere on the filesystem but Python must be + able to import it
  • +
  • It is best to bundle all of your customizations into a Python package and + pip3 install it into your customized docker image
  • +
  • ExtendedBugTracker must be imported into tcms/issuetracker/types.py in order + for the admin interface and other functions to find it. You may also place the + import at the bottom of tcms/issuetracker/types.py
  • +
  • API documentation for bug tracker integration can be found + here
  • +
  • Rebuilding the docker image is outside the scope of this article. Have a look + at this + Dockerfile + for inspiration
  • +
+

NOTE: starting with Kiwi TCMS v8.5 +external bug tracker integration classes are listed in the EXTERNAL_BUG_TRACKERS +setting. If you are using v8.5 or newer instead of +importing ExtendedBugTracker in tcms/issuetracker/types.py you should +override the list of available bug tracker integrations:

+
EXTERNAL_BUG_TRACKERS.append('mymodule.ExtendedBugTracker')
+
+ + +

Happy testing!

+
+
+
+
+ +

Mid-year roadmap status report

+
+ + +
+ +
+

Hello everyone, in this article I will outline the progress that the Kiwi TCMS +team has made towards achieving the goals on our +2019 mission and roadmap. +TL,DR: Kiwi TCMS has made progress since January, it's been tough and may not have been +very visible. I feel like we've been behind schedule till now! The greatest +positive thing has been community and team development!

+

Complete the internal refactoring

+

Status: minimal progress, needs help

+

CodeClimate progress is:

+
    +
  • -30 code smells
  • +
  • -40 duplications
  • +
  • -30 other issues
  • +
  • 4% technical debt improvement
  • +
  • -200 hrs remaining until issues are fixed
  • +
+

This is mostly the result of code reviews and minor fixes, not targeted work.

+

We have not done any targeted work to resolve other issues reported by Scrutinizer, +Pylint, remove vendored-in JavaScript libraries, JavaScript refactoring or +classification of issues in 3rd party dependencies.

+

There are new people onboarding in the team right now and our plan is for +them to start grinding at these issues very soon!

+

Redesign the UI templates with the help of Patternfly

+

Status: 50% done, needs help

+

There are 27 HTML templates remaining to be redesigned (from 59). That's mostly +due to internal cleanup than targeted refactoring. More work on this item +will probably follow towards the end of the year after we get more priority items out of +the way and get more of the new team members rolling!

+

Modernize reporting aka Telemetry

+

Status: in progress, a bit behind schedule

+

The specs for the new Telemetry system +have been defined after taking into account feedback on GitHub issues. Anton Sankov is +the leading developer for this feature. So far we have 2 telemetry reports merged: +testing break-down and status matrix. The next one will be execution trends.

+

There are lots of minor issues or missing functionality in these first iterations +(compared to specification). Our plan is to have the major use-cases satisfied first +and then work to refine all of the existing telemetry pages.

+

Plugins for 3rd party test automation frameworks

+

Status: good, needs help

+

Until now we have released TAP, junit.xml and native JUnit 5 plugins. There's also +a PHPUnit plugin which is more or less complete but unreleased yet. Both JUnit 5 +and PHPUnit plugins are developed by external contributors!

+

We often get asked for plugins for languages and frameworks we don't use or don't +even know! Given that our expertise is mostly in Python we will gladly accept your +pull requests if you decide to maintain or contribute to one of the plugins. This +will also help us get insight into what automation frameworks people are using +and how exactly you structure a test automation workflow around Kiwi TCMS.

+

Checkout the +documentation for links +and more info.

+

Redefine bug-tracker integration

+

Status: no progress

+

Last week, right after OpenExpo, we did a check-up session and this was one of the +areas identified with zero amount of progress. I have a strong preference to work +on this feature myself but have not been able to due to various other items that +need my attention.

+

The short version is that I'd prefer to remove all issue tracker specific code +and allow the tester to add arbitrary URLs to link to existing bugs. How to do +integration (even as simple as publishing a comment in the bug tracker) over +a generic interface still eludes me. In the next few weeks I will kick-off this +topic with a separate blog post/issue for everyone to comment on.

+

GitHub flow integration

+

Status: no progress

+

Our team spent some time making Kiwi TCMS the first open source TCMS available +on the GitHub Marketplace. We will +continue this integration effort and flow integration will emerge from that. +There's also many things that need to be done to satisfy GitHub's .

+

Agile integration with Trello

+

Status: no progress

+

Improve engineering productivity

+

Status: no progress

+

Our mission is to transform testing in your organization by providing +the tools for that via Kiwi TCMS. It is astonishing that so far nobody has provided +any kind of feedback in Issue #703 +wrt improving productivity in their teams!

+

We have some ideas which have been blocked by lack of resources on the team and +refactoring tasks. Because we've adopted this as our mission this is an important +item for us and we'll continue working on it as resources allow. +Progress is to be expected towards the end of the year.

+

Community

+

Status: great, on track, needs work

+

This is our strongest area during the year so far. We have a strong presence in +several communities, our event schedule is busy enough and we are gaining more +recognition every day!

+
    +
  • Hosted project stand at 3/5 conferences with 2 more on-track
  • +
  • Won the OpenAward for Best Tech Community
  • +
  • Hosted several presentations and workshops with few more on track
  • +
  • Found new talent to join the core team: 2 just ready to start contributing, 5 more in training
  • +
  • 1 more senior engineer as a mentor. We also have a few independent wanna-be contributors + and will be hosting qualification interviews for marketing assistant very soon
  • +
  • There are contributions and pull requests coming from users of Kiwi TCMS as well. + We'd like to see more of course.
  • +
  • There are a couple of open source projects and companies using Kiwi TCMS who + are friendly towards the project. We are working with them to get a public + endorsement on the website and engage in more technical work together. Of course + everyone has limited resources and is very busy :-(
  • +
  • Sponsors on OpenCollect are just + a few but we didn't have any previously so this is a good sign.
  • +
+

This is the moment to mention that not all is honey and roses in open source land. +Kiwi TCMS suffers from the problem that many of our users can't be contributors +or simply don't want to!

+

Manual testers can't program. This is a fact and a good sized chunk of our user base +actually performs manual testing. Those that can write automation and probably +code decently well may not be familiar with Python and Django. At least in Bulgaria +these two aren't very popular, definitely not among testers. That is to say this part +of the user-base simply doesn't have the necessary skills to contribute and the majority +of what we need is code contribution!

+

Another (fairly big IMO) group of users are coming from proprietary companies who +view open source and Kiwi TCMS as a zero cost option. Something that they take free +of charge and use it without ever contributing back. They don't understand nor really +care about the open source culture.

+

To make things worse we receive requests every single day via +our private email addresses or questions via IM despite our website clearly stating +community engagement rules. On a few occasions we have received very rude comments +of the sort "our company demands you fix this", "is this going to be ready this year" +(context implying entitlement), etc. To make things more ridiculous we've even received +support requests (via contact form) from companies and start-up +who get their return address wrong so we can't get in touch directly!

+

In short: don't demand anything from us unless you are ready to pay for it, work for it +yourself or propose a mutually beneficial scenario. We do try to keep the community +happy but more importantly follow our mission and develop our core team!

+

Happy testing!

+
+
+
+ + +
+

Image of the award

+

Kiwi TCMS is the winner at OpenAwards'19 category Best Tech Community! +Big thanks to the jury, our contributors and core-team and the larger +open source and quality assurance communities who voted for us and supported +the project during all of those years.

+

This award is the best present we could get to mark the 10th anniversary +of the project. More news of how we are progressing with current roadmap will +follow soon in a separate blog post.

+

Thank you & happy testing!

+
+
+
+ + +
+

On Tuesday I hosted my pylint workshop during the regular +Django Bulgaria meetup. +This edition was the first which was practice based.

+

Attendance numbers were low but participation was very good. We managed to +create 4 new checkers for Kiwi TCMS:

+ +

Many thanks to all contributors. These new checkers have discovered quite a +few new issues with Kiwi TCMS so this is an area which our team is going to improve.

+

Those who missed the workshop will be able to catch up one of the next editions:

+
    +
  • 26-29 August, GUADEC, Thessaloniki - TBC (presentation)
  • +
  • end of September, Python meetup, Zagreb - TBA
  • +
  • 03-05 October, PyCon Balkan, Belgrade - TBC
  • +
  • 11-13 October, HackConf, Sofia
  • +
  • 15-17 October, TestCon Europe, Vilnius - TBC (backup presentation)
  • +
  • 23-25 October, Testwarez, Ossa, Poland - TBC (presentation)
  • +
  • 14-15 November, Software Engineering Conference Russia, Saint-Petersburg - TBC
  • +
  • 20-22 November, ConTEST, New York - TBC (workshop and/or presentation)
  • +
+

Happy testing!

+
+
+
+
+ +

How to use Kiwi TCMS plugins, Pt. 1

+
+ + +
+ +
+

In +release notes for v6.5 +we announced several plugins which will fetch test names and execution results +from your automated test suite.

+

Plugins can be controlled via environment variables which will affect how +test results are recorded in the Kiwi TCMS database! This blog post is an introduction +how that works and what you can do with it! For this purpose I will be using the +plugin-demo repository, which simulates +real development work.

+

Full documentation and list of available plugins is available in chapter +Automation Frameworks Plugins!

+

Always create new TestRun by default

+

The default behavior is always to create a new TestRun if controlling variables +are not overridden! Product name, version and build will receive default values +if tests are running in Travis CI or Jenkins. For example +Travis Build #2 for +commit d455fb4 +creates TR-12 and +TP-10!

+
Product=kiwitcms/plugin-demo
+Version=d455fb42fb7c2aedadfd5f66de7d131109c03350
+Build=2
+
+ + +

Next we convert the README file from Markdown to reStructuredText which triggers +Travis Build #3 for +commit 418b80b. +This build again creates a new TestRun and new TestPlan for it. Respectively +TR-14 and +TP-12!

+
Product=kiwitcms/plugin-demo
+Version=418b80b3bbb65a799f695dc59d488c76f560fa2b
+Build=3
+
+ + +

Important: we can see that version is different which will affect how artifacts +are organized in Kiwi TCMS, possibly affect how you will report status to stakeholders!

+

Override ENV variables for more control

+

Let's say the QA team has decided that all test results must be reported under the +same TestPlan. This means version must be the same between various builds in Travis CI! +To control this we export TCMS_PRODUCT_VERSION=master in CI before executing +the TAP plugin! Checkout the commit on GitHub to see how it is done!

+

This triggers +Travis Build #4 for +commit e484e59. +Because this is the first time where Version == master the plugin creates +TP-14 and reports the results under +TR-16.

+
Product=kiwitcms/plugin-demo
+Version=master
+Build=4
+
+ + +

Right after that I realized we can make this configuration a bit more generic +because our team is planning to support multiple versions of the product and +development will be done in separate branches! +Travis Build #5 for +commit f1f2878 +still ends up with Version == master because we are still working on the master +branch! That is to say, the product is in active mode of development.

+

Results are reported in +TR-18 which is again part of +TP-14.

+
Product=kiwitcms/plugin-demo
+Version=master
+Build=5
+
+ + +

Travis Build #6 for +commit df6153b +adds the new functionality README badges and reports test results in +TR-20 which is again part of +TP-14.

+

More ENV overrides

+

While giving status reports back to stakeholders and developers the information that +we have in the TestRun is Build number! This follows the numbering scheme in Travis CI +(or Jenkins job number) and isn't very useful.

+

Let's define TCMS_BUILD to be the first 7 characters of the commit hash! When QA +tells devel that something isn't working and redirects them to the TestRun they can +immediately use the Build information and git checkout the offending variant of the product +for investigation.

+

This results in +Travis Build #7 for +commit bf75d0a, +TR-22, +TP-14.

+
Product=kiwitcms/plugin-demo
+Version=master
+Build=bf75d0a
+
+ + +

Report results in pre-existing TestRun

+

There are many reasons you may want to do this:

+
    +
  • include both manual and automation tests for the same build;
  • +
  • mix results from multiple test suites for the same build, + e.g. unit, functional, performance
  • +
  • mix results from multiple but similar platforms in the same build, + e.g. cross-platform application for iOS and Android
  • +
+

To do so I've created TR-24 beforehand and +configured TCMS_RUN_ID=24 in my CI environment. TR-24 also contains +TC-57: Verify we can report results from several plugins into the same TR. +this was created and added via the web interface.

+

Note: mixing additional test cases can be done either before or after +automation results are reported with the plugin!

+

Important: when reporting results to an existing TestRun Kiwi TCMS plugins +don't care in which TestPlan this TR is! In theory it is possible to report +the results for Product=kiwitcms/plugin-demo into any TP/TR pair! However we +don't want to do this crazy thing and instead I've created TR-24 inside the already +existing TP-14!

+

Note: because I don't know what is the git commit beforehand I've configured +TR-24 with Build=unspecified. If I wanted I could update this with the correct value +once I know the commit hash for the related changes I am testing.

+

Important: the plugin-demo repository uses both kiwitcms-tap-plugin and +kiwitcms-junit.xml-plugin at the same time! They differ in the way test names +are compiled! Both are reported in TR-24. See TC-57 text for information how to +distinguish between the two.

+

See +Travis Build #8 for +commit 85ad939, +TR-24, +TP-14.

+
Product=kiwitcms/plugin-demo
+Version=master
+Build=unspecified
+
+ + +

Also check-out comments in TR executions to see when and who had executed the test case.

+

So far there have been some tests which were failing (although Travis reports PASS) so +I decided to fix them. +Travis Build #9 for +commit a25b384 +is still configured with TCMS_RUN_ID=24. This means results will be reported in +TR-24, effectively overwriting previous results.

+

Check-out Change Log under each individual execution and you will see several +time stamps when status was updated! In other words, as long as TCMS_RUN_ID is +pointing to an existing TestRun this TR will keep the results of the last test suite execution!

+

Continue development, restore ENV configuration

+

Travis Build #10 for +commit c4f1ae5 +removes TCMS_RUN_ID! Results are reported in +TR-25, +TP-14.

+
Product=kiwitcms/plugin-demo
+Version=master
+Build=c4f1ae5
+
+ + +

Branch out for an LTS version

+

Our team has decided to make the first LTS release of the product. We branch out into +lts-v0 branch in git and cut the first NVR. This results in +Travis Build #11 for +commit 9f1ef71 +TR-27, +TP-16.

+
Product=kiwitcms/plugin-demo
+Version=lts-v0
+Build=9f1ef71
+
+ + +

Because this is the first time we are running tests for this product version +we end up with the newly created TP-16!

+

Note: see how version was populated with the correct value for the git branch! +This is because my CI config uses TCMS_PRODUCT_VERSION=$TRAVIS_BRANCH and no further +changes were required! I made this change back in Travis Build #5 anticipating what +will come in the future!

+

The product is now live and customers have reported critical bugs for it: +URLs for the badges in README are wrong! I fix those and add more tests of course, see: +Travis Build #12 for +commit 2d72754, +TR-29 for +TP-16.

+
Product=kiwitcms/plugin-demo
+Version=lts-v0
+Build=2d72754
+
+ + +

TR-29 contains the new TC-58!

+

cherry-pick between branches

+

In the lts-v0 branch customers have identified a serious issue. It doesn't exist on master +but the test is still valid so I cherry-pick it! In git you can backport or forwardport very +easily. Regardless of the direction Kiwi TCMS plugins will record the test results for you.

+

See +Travis Build #13 for +commit 31ae5b3, +TR-31 for +TP-14.

+

We can see that TC-58, which was originally implemented on the lts-v0 branch +is now present!

+

Summary

+

This is a very basic example of how you can organize collection and reporting for +your automation test suite results with Kiwi TCMS. The links here only refer to +artifacts created by kiwitcms-tap-plugin while in the DB we keep others as well.

+

There are feature requests for more ENV variables which will allow you to control +TestPlan creation and child/parent relationship between test plans. See +https://github.com/kiwitcms/tap-plugin/issues and vote with a :+1: reaction +to help us plan for these features.

+

Kiwi TCMS automation framework plugins are nothing more than result parsers +which talk back to a database. It is up to you to decide how to organize the +collection of test results and how to report on them later, when the need arises.

+

Future installments in this post series will take a look at workflows with +feature branches and pull requests and discuss possible organization scenarios. +You are welcome to share your ideas in the comments below.

+

Happy testing!

+
+
+
+
+ +

Project mission and goals for 2019

+
+ + +
+ +
+

Hello testers, Kiwi TCMS has taken on a brave new +mission! We would like to transform the testing process by making it more +organized, transparent & accountable for everyone on your team. Our goal +is to improve engineering productivity and participation in +testing. The following blog post outlines how we would like to achieve +this and what goals we put before ourselves for this year.

+

Complete the internal refactoring

+

Last year we took on the challenge to bring a legacy code base up to modern +coding standard. We did not complete that effort but made very good progress +along the way. This is not a small task and that's why our team will continue +with it this year.

+

CodeClimate report

+
    +
  • CodeClimate: + 0 issues, 0% technical debt, health score A
  • +
  • Scrutinizer: + only A and B type issues
  • +
  • Pylint: 0 issues
  • +
  • Remove vendored-in Handlebars, jQuery, jQuery-UI and TableDnD JavaScript + libraries in favor of existing npm dependencies
  • +
  • Front-end uses the existing JSON-RPC instead of backend views that + are only used for AJAX requests. Tip: these are usually accessed via + postToURL() and jQ.ajax() on the front-end
  • +
  • Inspect and classify all 3rd party issues reported from + Coverity and + Bandit. Report and fix + what we can, ignore the rest that do not affect Kiwi TCMS.
  • +
+

Redesign the UI templates with the help of Patternfly

+

There are 59 templates remaining to be converted to a modern look and feel. +Along with them comes more refactoring and even redesign of the existing pages +and the workflow around them. Together with refactoring this will make Kiwi TCMS +easier to use and also to maintain.

+

Modernize reporting

+

We are planning to remove the existing reports feature because they are not well +designed. We will re-implement existing functionality that our community finds useful, +add new types of reports (incl. nicer graphics and UI) and make it possible for the +reporting sub-system to be more easily extendable.

+

Phase out is planned to begin after 1st March 2019! Until then we are looking for your +feedback. Please comment in +Issue #657!

+

Plugins for 3rd party test automation frameworks

+

These will make it easier to collect results from automated test suites into +Kiwi TCMS for later analysis. Instead of creating scripts that parse the +results and talk to our API you will only have to install an additional package +in your test environment and configure the test runner to use it! Automation +test results will then appear inside Kiwi TCMS.

+ +

If you would like to use such functionality leave your vote inside GitHub +issues! In case you would like to write a test-runner plugin you can find the +specification +here.

+

Redefine bug-tracker integration

+
+

Question: Does Kiwi TCMS integrate with JIRA?

+

Answer: Well, it does. How exactly do you want to integrate?

+

... silence ...

+
+

The following dialog happens every time someone asks me about bug-tracker +integration, especially with JIRA. The thing is integration is a specified +set of behavior which may or may not be desired in a particular team. As of now +Kiwi TCMS is able to open a URL to your bug-tracker with predefined field +values, add comments to bug reports and report a simple summary of bugs +inside a TestRun.

+

We recognize this may not be enough and together with the community we +really need to define what bug tracker integration means! The broader domain +of application lifecycle management tools (of which TCMS is a sub-set) have an +integrated bug tracking system. We can add something like this and save you +the trouble of using JIRA, however many teams have already invested in +integrating their infrastructure or just like other tools. For example we love +GitHub issues and our team regularly makes public reports about issues that +we find internally!

+ +

GitHub flow integration

+

Developers have their +GitHub PR flow and if they +have done the job of having unit tests then they will merge only when things +are green! This leaves additional testing efforts kind of to the side and +doesn't really help with transparency and visibility. I'm not going to mention +having an automatically deployed staging environment for every change +because very few teams actually have managed to do this effectively.

+

Kiwi TCMS statuses on GitHub PR

+
    +
  • Goal: Figure out how Kiwi TCMS can integrate with GitHub flow and bridge the gap. + Please share and +1 your wildest ideas in + Issue #700.
  • +
  • Follow up: depending on the results in #700 we will follow with other goals and + sub-tasks
  • +
+

Agile integration with Trello

+

Speaking of modern engineering flow is your team truly agile? When and how +do you plan your testing activities ? Before the devel sprint or afterwards? +How many testers take part in refining product backlog and working on user stories?

+

Similar to GitHub flow lots of teams and open source projects are using Trello +to effectively organize their development process. Testing should not be left +behind and Kiwi TCMS may be able to help.

+
    +
  • Goal: Figure out how Kiwi TCMS fits into the overall devel-test-planning + process for agile teams and what we can do to make this easier for testers. + Please share and +1 your wildest ideas in + Issue #701
  • +
  • Follow up: depending on the results in #701 we will follow with other goals and + sub-tasks
  • +
+

Improve engineering productivity

+

What makes a test engineer productive when they need to assess product risk and +new features, when mapping product requirements documents (PRD) to test plans and +test cases, when collaborating on user stories and behavior specification ? +What makes developers, product owners, designers and other professionals productive +when it comes to dealing with testing ?

+

For example consider the following workflow:

+
    +
  • Company has idea for a new product
  • +
  • In case this is a big product it may have its own mission, i.e. what kind + of problem is it trying to solve and for which group of customers
  • +
  • Product backlog is then created which outlines features that map + to the product mission
  • +
  • Then the team, together with test engineers perform example mapping + and discuss and refine the initial feature requirements. User stories + are created
  • +
  • Behavior specification may also be created
  • +
  • Test plans and test cases are the immediate product of BDD specs and + desired user stories
  • +
+

Later we iterate through the sprints and for each sprint something like +this happens:

+
    +
  • Desired product features are planned for development. They must be complete + at least in terms of requirements, specs and tests
  • +
  • Devel writes code, maybe some unit tests, testers can also write automated tests + and/or manually verify the current state of the feature being developed
  • +
  • Testing, including exploratory is performed before feature is merged
  • +
  • Rinse and repeat
  • +
+

Devel is also part of testing, right? Product owners, UX and interaction +designers as well. Producing quality software product is a team effort!

+

In every step of the way Kiwi TCMS can provide notification wizards, guidelines +and/or documentation for best practices, facilitate tooling, e.g. to write user stories +and assess them or map out an exploratory testing session, etc. The list +of ideas is virtually endless. We can even go into deep learning, AI and +blockchain but honestly who knows how to use them in testing ?

+

Our team is not quite sure how this goal will look like 3 months from now +but we are certain that testing needs to happen first, last and all the time +during the entire software development lifecycle. By providing the necessary +functionality and tools in Kiwi TCMS we can boost engineering productivity +and steer the testing process in your organization into a better, more productive +direction which welcomes participation from all engineering groups.

+

Let's consider another point of view: testing is a creative activity +which is benefited by putting your brain into a specific state of mind! +For example Gherkin (the Given-When-Then language) has the benefit of +forcing you to think about behavior and while doing so you are vocalizing +the various roles in the system, what kind of actions are accepted and +what sort of result is expected! Many times this will help you remember or +discover missing scenarios, edge cases and raise even more questions!

+

Crazy ideas, brain dumps and +1 as always are welcome in +Issue #703.

+

Community

+

Coding alone is not fun! Here's what you can do to help us:

+ +

We are also looking to expand our core team and the list of occasional +contributors. The following are mostly organizational goals:

+
    +
  • Goal: participate in 5 conferences with a project stand
  • +
  • Goal: define how we find, recruit and onboard new team members. The + foundation is already set in + TP-3
  • +
  • Goal: clearly mark GitHub issues which are suitable for external contributors + which don’t want to spend lots of time learning how Kiwi TCMS works under the hood. + We're going to tag all such issues with the + + GitHub help wanted + label
  • +
+

Development policy

+

Our team will be working on areas related to the goals above. A +1 +reaction on GitHub issues will help us prioritize what we work on!

+

GitHub +1

+

Bug fixes and other +issues will be occasionally slipped into the stream and pull requests from +non-team contributors will be reviewed and merged in a timely fashion.

+

There is at least 1 full day of work that goes behind the scenes when +a new version is officially released: compile changelog, build images and +upload them, create blog post and newsletter announcement, share on social +media, etc. We also deploy on our own Kiwi TCMS instance as a stop-gap +measure before making everything public!

+

New PyPI tarballs and Docker images will be released every few weeks as +we see fit, this has been our standard process. We try to align releases +with Django's release schedule and try to cut a new version when there are known +security vulnerabilities fixed. However we can't guarantee this will always +be the case!

+

If you are in a hurry and need something quickly the best option is to +send a pull request, build your own Docker image from source and +maybe consider +sponsoring us via Open Collective!

+

Happy testing!

+
+
+
+
+ +

Roadmap status report for 2018

+
+ + +
+ +
+

Hello everyone, in this article I will outline the progress that the Kiwi TCMS +team has made towards achieving the goals in our 2018 +roadmap +(mid-year update here). +TLDR; goals are completed at 62%. Refactoring legacy code is showing good results, +less so on the front-end side and there are items still in progress!

+

Make code easier to maintain

+

Status: good progress

+

Initially CodeClimate reported +a "D" rating with 600+ code smells and 600+ duplications and a 1 year estimation +to resolve these. We're now down to "C" rating with 171 smells and 203 duplications.

+

The level of technical debt has dropped from 32.5% down to 17.7% and we have removed +around 14000 lines of Python code and 8000 lines of JavaScript code without +losing significant functionality.

+

Checkout +the stats +for more info!

+

Use pylint and pylint-django

+

Status: almost finished

+

Both pylint and pylint-django have been integrated into our CI workflow. There are even +some custom built plugins that we use. The number of issues reported is down to 100 +from 4000+ initially. These are predominantly fixme comments which are also in parts +of the code that are scheduled for removal and refactoring.

+

Render HTML, return JSON

+

Status: moderate progress

+

Several views were modified to return pure JSON but we've not +done any targeted work to resolve this issue. A number of other views have been +removed in favor of using the existing JSON-RPC layer.

+

This is an internal refactoring effort which isn't very visible from the outside. +This is also one of the factors contributing to the high number of removed +source code.

+

Submit forms, post JSON, GET clean URLs

+

Status: no progress

+

Not much has been done in this area except the occasional refactoring to +JSON-RPC.

+

API layer

+

Status: complete

+

Documentation

+

Status: moderate progress, dropped

+

All RPC methods have been documented! The rest of the internals will be documented +as we go along.

+

No vendored JavaScript libraries

+

Status: good progress

+

We still carry around jQuery, jQuery-UI and Handlebars.js. They will be +removed once the pages using them are converted to use the Patternfly widgets +library.

+

Less HTML templates with better organization

+

Status: moderate progress

+

There are still over 50 HTML templates in tcms/templates/ that need to be +refactored into Patternfly. We've been working on them one at a time and will +focus more on this effort in the next couple of months.

+

Modern interface with Patternfly

+

Status: moderate progress

+

Some of the pages have been converted to use Patternfly. The most important pages +that still have a different look and feel are TestPlan view, TestCase view and +TestRun view. These are also the hardest to convert because they have lots of +tabs/components which pull information from various places. Our goal is to create +reusable widgets for the various components (e.g. a list of TestCases) and then +include these components into several different templates to minimize code +duplication.

+

JavaScript updates and front-end testing

+

Status: moderate progress

+

A number of JavaScript functions have been refactored and removed during the +past few releases but there are still thousands of lines of code left to deal with. +This effort is mostly happening in parallel with the Patternfly redesign. +We still don't have anything to test front-end JavaScript functionality!

+

Community efforts

+

Status: good progress

+

We are seeing a steady stream of new users registered on +https://public.tenant.kiwitcms.org and +there are several active contributors on GitHub. Most of our translators are +very active and keep their respective languages fresh and up to date!

+

Kiwi TCMS was represented at OSCAL Tirana, DjangoCon Heidelberg, PyCon Prague, +HackConf Sofia, PiterPy St. Petersburg and OpenFest Sofia. We've also been +approved for a project stand at FOSDEM 2019 so watch this blog for more news.

+

Happy testing!

+
+
+
+
+ +

Test runner plugin specification

+
+ + +
+ +
+

Happy Monday testers! Kiwi TCMS needs your help! We are looking for developers who +wish to create plugins for popular test runners that will record test results +in Kiwi TCMS! Initially we are looking for plugins for Python's unittest, +Django +and JUnit!

+

What is a test runner?

+

When working with automated testing you have several components:

+
    +
  • A test module (or test script), e.g. test_models.py which contains + tests for your software;
  • +
  • A test framework, e.g. Python nose, which provides the structure + for test classes and methods and assert methods to use;
  • +
  • A test runner, which knows how to discover your test scripts, load them, + execute the testing scenarios inside of them and report the results.
  • +
+

Very often all of the components above live together inside the testing framework +but don't need to. For example the standard unittest module in Python +provides a test runner but there are also nose and py.test and Django provides +its own test runner that knows how to work with the database.

+

Workflow organization

+

Once you agree to writing a plugin we are going to create a separate GitHub +repository where you will be granted write privileges making you an independent +contributor to the Kiwi TCMS project!

+

Design and architecture of the plugin is up to you, following the practices +established by the testing framework in question. You will also have to create +a test suite for your plugin based on the specification below.

+

You are expected to use +public.tenant.kiwitcms.org while working on the +plugin and afterwards. This is known as eating your own dog food!

+

For Python we provide the tcms-api module which already takes care of the +communications layer. For other languages you will have to create this layer or +depend on other open source libraries that provide a XML-RPC or JSON-RPC +client!

+

You can use +this gist +for inspiration!

+

Behavior Specification

+

Please use the comments section to discuss unclear behavior and missing scenarios!

+
    SUMMARY: Will use configuration file if it exists
+    GIVEN: the file ~/.tcms.conf exists
+    WHEN: plugin initializes
+    THEN: the plugin will log an info message, read the file and
+    THEN: configure TCMS_API_URL, TCMS_USERNAME, TCMS_PASSWORD
+          variables with the respective values
+
+
+    SUMMARY: Will use ENVIRONMENT if configuration file doesn't exist
+    GIVEN: the file ~/.tcms.conf does not exists
+    WHEN: plugin initializes
+    THEN: the plugin will read configuration from environment and configure
+          the following variables/class members:
+          TCMS_API_URL, TCMS_USERNAME and TCMS_PASSWORD
+
+
+    SUMMARY: Will exit if TCMS_API_URL not configured
+    GIVEN: TCMS_API_URL variable is empty
+    WHEN: plugin initializes
+    THEN: log a warning message and exit
+    AND: depending on the test runner framework set exist status 1
+
+
+    SUMMARY: Will exit if TCMS_USERNAME not configured
+    GIVEN: TCMS_USERNAME is empty
+    WHEN: plugin initializes
+    THEN: log a warning message and exit
+    AND: depending on the test runner framework set exist status 1
+
+
+    SUMMARY: Will exit if TCMS_PASSWORD not configured
+    GIVEN: TCMS_PASSWORD is empty
+    WHEN: plugin initializes
+    THEN: log a warning message and exit
+    AND: depending on the test runner framework set exist status 1
+
+
+    SUMMARY: Will re-use existing TestPlan if configured
+    GIVEN: TCMS_RUN_ID environment variable is not empty
+    WHEN: plugin initializes
+    THEN:  this will be the Current_TestRun record to which the plugin is
+           going to add test execution results
+    AND: Current_TestPlan document in which the plugin will
+           search for test cases becomes Current_TestRun.plan
+
+
+    SUMMARY: Will create new TestPlan & TestRun if TCMS_RUN_ID not configured
+    GIVEN: TCMS_RUN_ID environment variable is empty
+    THEN: plugin will create a new TestPlan in Kiwi TCMS with attributes:
+        name='Automated test plan for %(product)'
+        product='%(product)'
+        product_version='%(version)'
+        type='Unit'
+    WHERE: %(product) is a placeholder for TCMS_PRODUCT==TRAVIS_REPO_SLUG==JOB_NAME
+           %(version) is a placeholder for TCMS_PRODUCT_VERSION==TRAVIS_COMMIT==TRAVIS_PULL_REQUEST_SHA==GIT_COMMIT
+    THEN: plugin will crate a new TestRun in Kiwi TCMS with attributes:
+        summary='Automated test run ....'
+        plan=Current TestPlan
+        build='%(build)'
+        manager=TCMS_USERNAME
+    WHERE: %(build) is a placeholder for TCMS_BUILD==TRAVIS_BUILD_NUMBER==BUILD_NUMBER
+    Environment variables are specified in:
+    https://docs.travis-ci.com/user/environment-variables#default-environment-variables
+    https://wiki.jenkins.io/display/JENKINS/Building+a+software+project#Buildingasoftwareproject-belowJenkinsSetEnvironmentVariables
+
+    SUMMARY: Will not create duplicate Product, Version & Build if they already exist
+    GIVEN: TCMS_RUN_ID is not configured
+    AND: %(product) exists
+    AND: %(version) exists
+    AND: %(build) exists
+    WHEN: plugin tries to auto-create TestPlan and TestRun
+    THEN: plugin will re-use %(product), %(version) and %(build) from the database
+    AND: not try to auto-create them
+
+
+    SUMMARY: Will auto-create Product, Version & Build if they don't exist
+    GIVEN: TCMS_RUN_ID is not configured
+    AND: %(product) doesn't exist
+    AND: %(version) doesn't exist
+    AND: %(build) doesn't exist
+    WHEN: plugin tries to auto-create TestPlan and TestRun
+    THEN: %(product), %(version) and %(build) be created automatically
+
+
+    SUMMARY: Unit test names are added to TestPlan
+    GIVEN: we have good plugin configuration
+    WHEN: plugin loops over unit tests emitted by the test runner
+    THEN: plugin will check Current_TestPlan for a TestCase with the same name
+    AND: if test case doesn't exist in Current_TestPlan
+    THEN: it will be added to Current_TestPlan
+    hint: it is probably best to process all unit test results at the end!
+
+
+    SUMMARY: Unit test names are added to TestRun
+    GIVEN: we have good plugin configuration
+    WHEN: plugin loops over unit tests emitted by the test runner
+    THEN: plugin will check Current_TestRun for a TestCaseRun object which matches
+          the current unit test name
+    hint: (or Current_TestCase object from previous scenario, depending on implementation)
+    AND: if such TestCaseRun doesn't exist in Current_TestRun
+    THEN: it will be added to Current_TestRun
+    hint: it is probably best to process all unit test results at the end!
+
+
+    SUMMARY: Current_TestRun is updated with unit test results
+    GIVEN: we have good plugin configuration
+    WHEN: plugin loops over unit tests emitted by the test runner
+    THEN: plugin will check Current_TestRun for a TestCaseRun object which matches
+          the current unit test name
+    hint: (or Current_TestCase object from previous scenario, depending on implementation)
+    AND: if TestCaseRun object exists in Current_TestRun
+    THEN: its status will be updated with the execution result coming from the test runner
+    hint: it is probably best to process all unit test results at the end!
+
+ + +

Happy testing!

+
+
+
+
+ +

Kiwi TCMS API performance baseline

+
+ + +
+ +
+

A friend from Red Hat sent me an email asking about Kiwi TCMS performance so I did +an experiment to establish a baseline. +For API requests I got 7.5 req/sec or 130 msec/req which is +1.5x slower than GitHub!

+

I used perf-script +(see here) +to measure that. The script takes the first 250 test cases from our test suite +and on every execution creates a new TestPlan (1 API request), then creates +new test cases (250 requests), adds cases to test plan (250 requests), +creates new product build (1 API request), creates new TestRun (1 API request), +adds test cases to test run (250 requests) and finally updates the statuses +(250 requests).

+

A total of 1003 API requests are sent to Kiwi TCMS every time you start this script! +An example is available at TR #567!

+

On localhost, running the development server (./manage.py runserver) with an +SQLite database I got:

+
$ time python perf-script
+
+real    2m6.450s
+user    0m1.069s
+sys     0m0.331s
+
+$ time python perf-script
+
+real    2m7.472s
+user    0m1.057s
+sys     0m0.342s
+
+$ time python perf-script
+
+real    2m9.368s
+user    0m1.072s
+sys     0m0.351s
+
+$ time python perf-script
+
+real    2m9.197s
+user    0m1.050s
+sys     0m0.353s
+
+ + +

This measures at 120 msec/req or 7.85 req/sec!

+

public.tenant.kiwitcms.org is running on an +AWS t2.micro +instance (via docker-compose) with the default centos/mariadb image! +No extra settings or changes. I used the same computer over a WiFi +connection and a pretty standard home-speed Internet connection. Times are:

+
$ time python perf-script
+
+real    2m18.983s
+user    0m1.175s
+sys     0m0.095s
+
+$ time python perf-script
+
+real    2m25.937s
+user    0m1.156s
+sys     0m0.108s
+
+$ time python perf-script
+
+real    2m24.120s
+user    0m1.102s
+sys     0m0.098s
+
+$ time python perf-script
+
+real    2m21.521s
+user    0m1.154s
+sys     0m0.091s
+
+ + +

This measures at 140 sec/req or 7.05 req/sec!

+

Note: since I am using Python 3.6 I had to modify the file +/opt/rh/rh-python36/root/lib64/python3.6/ssl.py to read:

+
# Used by http.client if no context is explicitly passed.
+_create_default_https_context = _create_unverified_context # this disables HTTPS cert validation
+
+ + +

The issue has been reported in +RHBZ #1643454

+

Happy testing!

+
+
+
+
+ +

Kiwi TCMS team updates

+
+ + +
+ +
+

I am happy to announce that our team is steadily growing! +As we work through our roadmap, +status update here, and +on-board new team members I start to feel the need for a bit more structure +and organization behind the scenes. I also wish for consistent contributions +to the project (commit early, commit often) so I can better estimate the resources +that we have!

+

I am also actively discussing Kiwi TCMS with lots of people at various conferences +and generate many ideas for the future. The latest SEETEST in Belgrade was particularly +fruitful. Some of these ideas are pulling into different directions and I need help +to keep them under control!

+

Development-wise sometimes I lose track of what's going on and who's doing what between +working on Kiwi TCMS, preparing for conferences and venues to promote the project, +doing code review of other team members, trying not to forget to check-in on +progress (especially by interns), recruiting fresh blood and thinking about +the overall future of the project. Our user base is growing and there are days +where I feel like everything is happening at once or that something +needs to be implemented ASAP (which is usually true anyway)!

+

+

Meet Rayna Stankova in the role of our team coach! +Reny is a director for Women Who Code Sofia, senior QA engineer at VMware, +mentor with CoderDojo Bulgaria and a long-time friend of mine. +Although she is an experienced QA in her own right she will be contributing +to the people side of Kiwi TCMS and less so technically!

+

Her working areas will be planning and organization:

+
    +
  • help us (re)define the project vision and goals
  • +
  • work with us on roadmaps and action plans so we can meet + the project goals faster
  • +
  • help us (self) organize so that we are more efficient, + including checking progress and blockers (aka enforcer) and + meet the aforementioned consistency point
  • +
  • serve as our professional coach, motivator and somebody who will + take care of team health (yes I really suck at motivating others)
  • +
+

and generally serving as another very experienced member of the team!

+

We did a quick brainstorming yesterday and started to produce results +(#smileyface)! We do have a team docs space to share information +(non-public for now, will open it gradually as we grow) and came up +with the idea to use Kiwi TCMS as a check-list for our on-boarding/internship +process!

+

I don't know how it will play out but I do expect from the +team to self-improve, be inspired, become more focused and more productive! +All of this also applies to myself, even more so!

+

Existing team members progress

+

Last year we started with 2 existing team members (Tony and myself) and 3 +new interns (Ivo, Kaloyan and Tseko) who built this website!

+

Tony is the #4 contributor to Kiwi TCMS in +terms of number of commits +and is on track to surpass one of the original authors (before Kiwi TCMS was forked)! +He's been working mostly on internal refactoring and resolving the thousands +of pylint errors that we had (down to around 500 I think). This summer Tony and I +visited the OSCAL conference in Tirana and hosted an info booth for the project.

+

Ivo is the #5 contributor in terms of numbers of commits. He did learn very +quickly and is working on getting rid of the remaining pylint errors. His ability +to adapt and learn is quite impressive actually. Last month he co-hosted a +git workshop at HackConf, a 1000+ people IT event in Sofia.

+

Kaloyan did most of the work on our website initially (IIRC). +Now he is studying in the Netherlands +and not active on the project. We are working to reboot his on-boarding +and I'm hoping he will find the time to contribute to Kiwi TCMS regularly.

+

From the starting team only Tseko decided to move on to other ventures after +he contributed to the website.

+

Internship program

+

At Kiwi TCMS we have a set of training +programs that teach all the necessary technical skills before we let anyone +actively work on the project, let alone become a team member.

+

Our new interns are Denitsa Uzunova and Desislava Koleva. Both of them are +coming from Vratsa Software Community and were mentors at the recently held +CodeWeek hackathon in their home city! I wish them fast learning and good luck!

+

Happy testing!

+
+
+
+
+ +

How to add API logging for Kiwi TCMS

+
+ + +
+ +
+

In this blog post I will show more ways to customize Kiwi TCMS by adding +logging capabilities to the API backend. Indeed this is a feature that +our team deemed not required for upstream and was removed in +PR #436.

+

Start by creating the following directory structure:

+
    api_logging/
+        __init__.py
+        handlers.py
+        models.py
+
+ + +

This is a small Django application that will log every call to the API backend. +Each file looks like this:

+
    # models.py contains DB schema for your new table
+    from django.db import models
+    from django.conf import settings
+
+    class ApiCallLog(models.Model):
+        executed_at = models.DateTimeField(auto_now_add=True)
+        user = models.ForeignKey(settings.AUTH_USER_MODEL, null=True, blank=True,
+                                 on_delete=models.CASCADE)
+        method = models.CharField(max_length=255)
+        args = models.TextField(blank=True)
+
+        def __str__(self):
+            return "%s: %s" % (self.user, self.method)
+
+ + +

Then

+
    # handlers.py overrides the RPC handlers coming from django-modernrpc
+    from modernrpc import handlers
+
+    from django.conf import settings
+    from django.contrib.auth import get_user_model
+
+    from .models import ApiCallLog
+
+    def log_call(request, method_name, args):
+        """ Log an RPC call to the database or stdout in DEBUG mode. """
+        request_user = request.user
+        if not request_user.is_authenticated:
+            # create an anonymous user object for logging purposes
+            request_user, _ = get_user_model().objects.get_or_create(
+                username='Anonymous',
+                is_active=False)
+
+        if method_name is None:
+            method_name = '--- method_name missing ---'
+
+        if settings.DEBUG:
+            print('API call:: user: {0}, method: {1}, args: {2}'.format(
+                request_user,
+                method_name,
+                args))
+        else:
+            ApiCallLog.objects.create(
+                user=request_user,
+                method=method_name,
+                args=str(args))
+
+    class XMLRPCHandler(handlers.XMLRPCHandler):
+        def process_request(self):
+            encoding = self.request.encoding or 'utf-8'
+            data = self.request.body.decode(encoding)
+            params, method_name = self.loads(data)
+
+            log_call(self.request, method_name, params)
+            return super().process_request()
+
+    class JSONRPCHandler(handlers.JSONRPCHandler):
+        def process_single_request(self, payload):
+            method_name = payload.get('method', None)
+            params = payload.get('params')
+
+            log_call(self.request, method_name, params)
+            return super().process_single_request(payload)
+
+ + +

NOTE: +You will have to execute ./manage.py makemigrations api_logging to create the +initial migration for Django. This could be easier if you place the above directory +into existing Django application or craft the migration file by hand!

+

The last thing you want to do is create a local_settings.py file which will override +Kiwi TCMS defaults:

+
    # local_settings.py
+    from django.conf import settings
+
+    settings.INSTALLED_APPS += [
+        'api_logging',
+    ]
+
+    MODERNRPC_HANDLERS = ['api_logging.handlers.XMLRPCHandler',
+                          'api_logging.handlers.JSONRPCHandler']
+
+ + +

Then place everything in Dockerfile like so:

+
    FROM kiwitcms/kiwi
+
+    COPY ./api_logging/ /venv/lib64/python3.6/site-packages/api_logging/
+    COPY local_settings.py /venv/lib64/python3.6/site-packages/tcms/settings/
+
+ + +

Kiwi TCMS will import your local_settings.py and enable the logging application. +Now build your customized Docker image and use it for deployment!

+

Happy testing!

+
+
+
+
+ +

How to override templates for Kiwi TCMS

+
+ + +
+ +
+

This is the first publication in our customization series. It will show you +how to override any template used by Kiwi TCMS. As an example we will override +the email template that is used when registering new account. By default the +email text looks like this:

+
    Welcome {{ user }},
+    thank you for signing up for an {{ site_domain }} account!
+
+    To activate your account, click this link:
+    {{ confirm_url }}
+
+ + +

https://public.tenant.kiwitcms.org +runs a custom Docker image based on +kiwitcms/kiwi. For this image the confirmation email looks like this

+
    Welcome {{ user }},
+    thank you for signing up for our Kiwi TCMS demo!
+
+    To activate your account, click this link:
+    {{ confirm_url }}
+
+    GDPR no longer allows us to automatically subscribe you to
+    our newsletter. If you wish to keep in touch and receive emails
+    with news and updates around Kiwi TCMS please subscribe at:
+    https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&id=c970a37581
+
+    --
+    Happy testing!
+    The Kiwi TCMS team
+    http://kiwitcms.org
+
+ + +

The file that we want to override is tcms/templates/email/confirm_registration.txt.

+

Create a local directory (git repository) which will hold customization configuration +and create a file named templates.d/email/confirm_registration.txt with your text!

+

Next you want to make this file available inside your docker image so your Dockerfile +should look like this:

+
    FROM kiwitcms/kiwi
+
+    COPY ./templates.d/ /venv/lib64/python3.6/site-packages/tcms/overridden_templates/
+    COPY local_settings.py /venv/lib64/python3.6/site-packages/tcms/settings/
+
+ + +

where local_settings.py contains

+
    import os
+    from django.conf import settings
+
+    settings.TEMPLATES[0]['DIRS'].insert(0, os.path.join(settings.TCMS_ROOT_PATH, 'overridden_templates'))
+
+ + +

The following code states instruct Django to look into overridden_templates first and +use any templates it finds there; also make my files available in that specific location +inside the docker image.

+

This approach can be used for all templates that you wish to override. Take into +account that file names must match (Django searches templates by directory path). +Now build your customized Docker image and use that for deployment!

+

Happy testing!

+
+
+
+
+ +

How to backup Docker volumes for Kiwi TCMS

+
+ + +
+ +
+

When you start Kiwi TCMS by running docker-compose up +(see here) +it will automatically create 2 volumes: kiwi_db_data and kiwi_uploads. +This blog post will outline how to backup these docker volumes.

+

Note: in the instructions below kiwi_db is the container name and kiwi is the +database name used inside the docker-compose.yml file!

+

MariaDB/MySQL database

+

To export all contents from the docker container execute the command:

+
docker exec -u 0 -i kiwi_db mysqldump kiwi > backup.sql
+
+ + +

This will create a file named backup.sql in the current directory, outside of the running container!

+

You can restore the database contents by using the following command:

+
cat backup.sql | docker exec -u 0 -i kiwi_db mysql -v kiwi
+
+ + +

Notes:

+
    +
  1. The commands above using -u 0 are executed with root privileges inside the + container. In this way you don't need to type-in the database password!
  2. +
  3. Depending on your scenario you may want to remove the existing volume + (docker-compose down && docker volume rm kiwi_db_data) before restoring the database!
  4. +
+

Postgres database

+

To export all contents from the docker container execute the command:

+
docker exec -i kiwi_db pg_dump --dbname=kiwi -F c > backup.bak
+
+ + +

This will create a file named backup.bak in the current directory, outside of the running container. +This is a PostgreSQL custom database dump format which contains all data and schema definitions. +That is a binary file which can be read with the pg_restore command!

+

To drop and restore the entire database execute:

+
docker exec -i kiwi_db psql -c "DROP DATABASE IF EXISTS kiwi;"
+cat backup.bak | docker exec -i kiwi_db pg_restore --dbname=template1 -vcC
+
+ + +

Multi-tenant database

+

The kiwitcms-tenant add-on and/or +Kiwi TCMS Enterprise work only on +Postgres! Each tenant (aka name-space) uses a separate database schema. +The first schema name is public.

+

The backup and restore instructions shown above operate on all tenants together! +If you want to [drop and] restore an individual tenant then use the commands:

+
docker exec -it kiwi_db psql --dbname=kiwi
+
+kiwi=> DROP SCHEMA $tenant_name CASCADE;
+....
+DROP SCHEMA
+kiwi=> CREATE SCHEMA $tenant_name;
+CREATE SCHEMA
+kiwi=>Ctrl+D
+
+cat backup.bak | docker exec -i kiwi_db pg_restore --dbname=kiwi -v --schema $tenant_name
+
+ + +

Backing up file uploads

+

Uploaded files can easily be backed up with:

+
docker exec -i kiwi_web /bin/tar -cP /Kiwi/uploads > uploads.tar
+
+ + +

and then restored with:

+
cat uploads.tar | docker exec -i kiwi_web /bin/tar -x
+
+ + +

You may also try the rsync command but be aware that it is not installed +by default!

+

Note: +the same approach may be used to backup /var/lib/mysql/ or /var/lib/pgsql/data +from the kiwi_db container.

+

Backing up multi-tenant uploads

+

By default multi-tenant file uploads are stored under /Kiwi/uploads/tenant/$tenant_name. +You can archive all contents with the same procedure above. If you wish to restore +files per tenant you will have to upload the $tenant_name directory into the +docker volume.

+

Alternatives

+

By default both docker volumes created for Kiwi TCMS use the local driver +and are available under /var/lib/docker/volumes/<volume_name> on the host +running your containers. You can try backing them up from there as well.

+

Another alternative is to use the +docker-lvm-plugin +and create these volumes as LVM2 block devices. Then use +lvcreate -s command to create a snapshot volume. For more information see +chapter 2.3.5. Snapshot Volumes +from the LVM Administrator Guide for Red Hat Enterprise Linux 7.

+

Happy testing!

+
+
+ +
+

+ Page 1 / 2 +

+ Older Posts +
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/atodorov/index2.html b/blog/atodorov/index2.html new file mode 100644 index 00000000..275bd806 --- /dev/null +++ b/blog/atodorov/index2.html @@ -0,0 +1,243 @@ + + + + + Kiwi TCMS - Articles by Alexander Todorov + + + + + + + + + + + + + + + + + + + + + +
+

Articles by Alexander Todorov

+ +
+
+ +

Mid-year roadmap status report

+
+ + +
+ +
+

Hello everyone, in this article I will outline the progress that the Kiwi TCMS +team has made towards achieving the goals on our +roadmap.

+

Make code easier to maintain

+

Status: moderate progress

+

Initially CodeClimate reported +a "D" rating with a 1 year estimated effort. Now it is still on "D" rating with +a 7 months estimated effort to bring the project back in shape. +Code smells have dropped from 600+ to 418, duplications have been reduced from 600+ to 359! +At the same time technical debt ratio has been decreased from 32,5% to 21,6% and +little over 10000 lines of code have been removed from the source code. +Checkout +the stats +for more info!

+

Use pylint and pylint-django

+

Status: good progress

+

Both pylint and pylint-django have been integrated into our CI workflow. There are even +a few custom built plugins that we use. The number of issues reported is down to around 900 +from 4000+ initially. The cleanup has been lead by Anton Sankov +with help from Ivaylo Ivanov and myself.

+

Render HTML, return JSON

+

Status: no progress

+

Several views were probably modified to return pure JSON in the meantime but we've not +done any targeted work to resolve this issue.

+

Submit forms, post JSON, GET clean URLs

+

Status: no progress

+

Same as above, not much has been done in this area.

+

API layer

+

Status: complete

+

After Kiwi TCMS v4.0 the server side API has been reorganized and updated +to follow the model/method names used internally.

+

After the recent version 5.0 the client side API library has been stripped +to its most basic form so that you can work directly with the responses from +the server.

+

There is no more duplication and ambiguity in names because there isn't +a lot of code left!

+

Documentation

+

Status: moderate progress, dropped

+

All RPC methods have been documented! The rest of the internals will be documented +as we go along.

+

No vendored JavaScript libraries

+

Status: moderate progress

+

Several JavaScript libraries have been removed but we still carry around jQuery +and Handlebars.js. No work has been done to convert Kiwi TCMS to use the jQuery +version provided with Django.

+

Less HTML templates with better organization

+

Status: minimal progress

+

There are still over 100 HTML templates in Kiwi TCMS. Some of the HTML templates +have been merged together, some email templates have been refactored and marked +as translatable but the majority of them have not been updated for a long time.

+

Modern interface with Patternfly

+

Status: no progress

+

JavaScript updates and front-end testing

+

Status: small progress

+

A number of JavaScript functions have been refactored and removed during the +past few releases but there are still thousands of lines of code left to deal with.

+

Community efforts

+

Status: moderate progress

+

We are seeing a steady stream of new users registered on +https://public.tenant.kiwitcms.org and +there are several active contributors (issues, translations).

+

Kiwi TCMS was represented at OSCAL Tirana, DjangoCon Heidelberg and PyCon Prague! +We're planning to attend HackConf and OpenFest in Sofia by the end of the year.

+

Happy testing!

+
+
+ +
+ Newer Posts +

+ Page 2 / 2 +

+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/authors/index.html b/blog/authors/index.html new file mode 100644 index 00000000..1867139c --- /dev/null +++ b/blog/authors/index.html @@ -0,0 +1,157 @@ + + + + + Kiwi TCMS - Authors + + + + + + + + + + + + + + + + +
+

Blog authors

+ +

Alexander Todorov (21)

+
+ +

Kiwi TCMS Team (117)

+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/index.html b/blog/index.html new file mode 100644 index 00000000..7b6ab197 --- /dev/null +++ b/blog/index.html @@ -0,0 +1,2271 @@ + + + + + Kiwi TCMS - Blog + + + + + + + + + + + + + + + +
+

Blog

+ +
+
+ +

Kiwi TCMS 11.6

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 11.6! This is our first release +after the very positive reception we had at +WebSummit 2022!

+

IMPORTANT: this is a small release which contains security updates, +general improvements, bug fixes and 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)
+
+
+

---

+
+

Upstream container images (x86_64):

+
+kiwitcms/kiwi   latest  9773335a58d1    612MB
+
+
+

IMPORTANT: version tagged and multi-arch +container images are available only to +subscribers!

+
+

Changes since Kiwi TCMS 11.5

+
+

Security

+ +
+
+

Improvements

+
    +
  • Update django-extensions from 3.2.0 to 3.2.1

    +
  • +
  • Update jira from 3.4.0 to 3.4.1

    +
  • +
  • Update psycopg2 from 2.9.3 to 2.9.5

    +
  • +
  • Update pygithub from 1.55 to 1.57

    +
  • +
  • Update python-gitlab from 3.9.0 to 3.11.0

    +
  • +
  • Update tzdata from 2022.2 to 2022.6

    +
  • +
  • Container is now built on top of Red Hat Enteroprise Linux 9 and Python 3.9

    +

    Warning:

    +
    +

    There is high risk of breaking downstream containers. Pay attention to +bind-mounted settings files. Inspect downstream Dockerfile & docker-compose.yml +files !!!

    +
    +
  • +
  • Unify some translation strings

    +
  • +
  • Document add-on issue tracker integrations

    +
  • +
  • Rename Properties to Parameters because "test case parameters" is +more widely used

    +
  • +
+
+
+

Bug fixes

+
    +
  • JIRA.get_issue_type_from_jira() now accepts a second argument. Fixes +Issue #2929 (@cmbahadir)
  • +
  • Fix typo in documentation (Christian Clauss)
  • +
  • Trim white-space after splitting parameter values. For example the inputs +'OS=Linux' and 'OS = Windows ' will result in +Key: 'OS', Values: ['Linux', 'Windows']
  • +
+
+
+

Refactoring and testing

+
    +
  • Update Fedora from 32 to 36 in /tests/bugzilla
  • +
  • Remove Travis CI config b/c we don't use it anymore
  • +
  • Add Coverity Scan as a GitHub action
  • +
  • Don't scan devel dependencies with Coverity Scan
  • +
  • Redirect to where we came from in case posting a comment results in invalid +form
  • +
  • Configure Dependabot to update Docker containers and try tightening security +around docker containers used during testing
  • +
  • Use npm audit fix to automatically update some Node.js dependecies
  • +
  • Execute npm audit signatures when installing Node.js packages
  • +
  • Start using find_namespace_packages() to resolve +'Package would be ignored' warnings from setuptools
  • +
  • Add missing field in setup() to avoid a warning
  • +
+
+ +
+
+

Kiwi TCMS Enterprise v11.6-mt

+
    +
  • Based on Kiwi TCMS v11.6

    +
  • +
  • Update containers for RHEL 9, CentOS Stream 9 and Python 3.9

    +
  • +
  • Update actions/checkout from 2 to 3

    +
  • +
  • Update django-ses from 3.1.2 to 3.2.2

    +
  • +
  • Update kiwitcms-tenants from 2.3.1 to 2.3.2

    +
  • +
  • Update kiwitcms-trackers-integration from 0.2.0 to 0.3.0. +Supports integration with OpenProject and Mantis BT. +Closes Issue #2203 and +Issue #879

    +
    +

    Private images:

    +
    +quay.io/kiwitcms/version            11.6 (aarch64)          cf244e2f1dac    08 Nov 2022     636MB
    +quay.io/kiwitcms/version            11.6 (x86_64)           9773335a58d1    08 Nov 2022     612MB
    +quay.io/kiwitcms/enterprise         11.6-mt (aarch64)       55cf76524ebd    08 Nov 2022     858MB
    +quay.io/kiwitcms/enterprise         11.6-mt (x86_64)        61f48a62666b    08 Nov 2022     832MB
    +
    +
    +
  • +
+

IMPORTANT: version tagged, multi-arch 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 upgrade
+
+

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

+ +
+ +
+
+
+ + +
+

"Cfp banner"

+

Attention testers! On behalf of +Testing and Automation devroom +we'd like to announce that call for participation is now open.

+

Important: devroom will take place 09:00 to 12:50, Sunday, February 5th 2023 at +ULB Solbosch Campus, Brussels, Belgium! +Presentations will be streamed online but all accepted speakers are required to deliver +their talks in person! The devroom will not host pre-recorded videos in 2023!

+

Here are some ideas for topics that are a good fit for this devroom:

+

Testing in the real, open source world

+
    +
  • War stories/strategies for testing large scale or complex projects
  • +
  • Demystify resource e.g. systems/device/cloud provisioning in a CI loop
  • +
  • Tools that extend the ability to test low-level code, e.g. bootloaders, init +systems, etc.
  • +
  • Projects that are introducing new/interesting ways of testing "systems"
  • +
  • Address the automated testing frameworks fragmentation
  • +
  • Lessons learned from testing
  • +
+

Cool Tools (good candidates for lightning talks)

+
    +
  • How your open source tool made developing quality software better
  • +
  • What tools do you use to setup your CI/CD
  • +
  • Combining projects/plugins/tools to build amazing things "Not enough people in +the open source community know how to use $X, but here's a tutorial on how to +use $X to make your project better."
  • +
+

In the past the devroom has seen both newbies/students and experienced professionals and +past speakers as part of the audience and talks covering from beginner/practical +to advanced/abstract topics. If you have doubts then submit your proposal and +leave a comment for the devroom managers and we'll get back to you.

+

Checkout +https://fosdem-testingautomation.github.io/ for more information!

+

Happy Testing!

+
+

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

+ +
+
+
+
+ +

Meet Kiwi TCMS at WebSummit 2022 in Lisbon

+
+ + +
+ +
+

Kiwi TCMS is happy to announce that we're taking part in +WebSummit 2022, Nov 01-04 in Lisbon, Portugal. +We're joining as a featured startup +in the Enterprise Software Solutions category.

+

Kiwi TCMS will have an on-site presence on +Wednesday, Nov 02 at Pavilion 4, Stand A709. Check-out the map for more details: +venue map

+

For engineers

+

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. We've got new stickers too!

+

Alex and Zaklina will be there to answer all of your questions regarding +open source, community, support, various integrations and the differences between +Self-Support, SaaS and Enterprise subscriptions!

+

"black boxes"

+

IMPORTANT: We've previously announced participation in +Testing Portigal at the end of November. +Unfortunately this had to be canceled due to personal reasons. If you are a test or +QA engineer please swing by and Alex can tell you a bit about his presentation!

+

For partners

+

If you are another ISV providing engineering tools, a product outsourcing company +or a devel/testing services venture we've got a partnership proposal for you!

+

We're interested in partners where we can integrate other products with Kiwi TCMS +and provide a better offering; provide extra services (e.g. managed hosting) and/or +provide more transparency to your own customers (e.g. allow them to see how their products +are being tested).

+

Message us via the WebSummit mobile app and request a meeting or better yet, +find our team on-site!

+

After hours

+

The Kiwi TCMS team will be joining the following after-hours events:

+ +

Catch-up with us for a beer and let's talk testing and open source!

+
+

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

+ +
+
+
+
+ +

Kiwi TCMS 11.5

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 11.5!

+

IMPORTANT: +This is a small release which contains several improvements, bug fixes +and 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)
+
+
+

---

+
+

Upstream container images (x86_64):

+
+kiwitcms/kiwi   latest  66c51b64e0a6    608MB
+
+
+

IMPORTANT: version tagged and multi-arch +container images are available only to +subscribers!

+
+

Changes since Kiwi TCMS 11.4

+
+

Improvements

+
    +
  • Update jira from 3.3.1 to 3.4.0
  • +
  • Update pygments from 2.12.0 to 2.13.0
  • +
  • Update python-gitlab from 3.7.0 to 3.9.0
  • +
  • Update tzdata from 2022.1 to 2022.2
  • +
  • Add Product drop down field in Build admin page. Closes +Issue #2818
  • +
  • Add 'prune' argument required for Django 4.1 compatibility
  • +
  • Improve documentation around DEFAULT_GROUPS
  • +
  • Update docs about language preferences and add a Change language menu item. Closes +Issue #2901, +Issue #2902, +Issue #2903
  • +
  • Performance improvement for Status matrix telemetry
  • +
  • Performance improvement for Execution trends telemetry
  • +
  • Display a spinner widget while telemetry data is still loading. Closes +Issue #1801
  • +
+
+
+

Bug fixes

+
    +
  • Fix error Jquery deferred: No length property of null object (@cmbahadir)
  • +
+
+
+

Refactoring and testing

+
    +
  • Add test for AnonymousViewBackend & auth. permissions
  • +
  • Exclude auth.view_ permissions from AnonymousViewBackend
  • +
  • Specify 30 seconds timeout for internal requests via the requests library
  • +
+
+ +
+
+

Kiwi TCMS Enterprise v11.5-mt

+
    +
  • Based on Kiwi TCMS v11.5

    +
  • +
  • Update django-python3-ldap from 0.15.2 to 0.15.3

    +
  • +
  • Update django-ses from 3.1.0 to 3.1.2

    +
  • +
  • Update kiwitcms-tenants from 2.1.1 to 2.3.0

    +
  • +
  • Update kiwitcms-github-app from 1.3.3 to 1.4.0

    +
    +

    Private images:

    +
    +quay.io/kiwitcms/version            11.5 (aarch64)          4be7894de8ae    06 Sep 2022     638MB
    +quay.io/kiwitcms/version            11.5 (x86_64)           66c51b64e0a6    06 Sep 2022     608MB
    +quay.io/kiwitcms/enterprise         11.5-mt (aarch64)       82d64398d8bf    06 Sep 2022     862MB
    +quay.io/kiwitcms/enterprise         11.5-mt (x86_64)        8a5b0b58bcca    06 Sep 2022     829MB
    +
    +
    +
  • +
+

IMPORTANT: version tagged, multi-arch 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 upgrade
+
+

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

+ +
+ +
+
+
+
+ +

Kiwi TCMS 11.4

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 11.4!

+

IMPORTANT: +This is a medium sized release which contains security related updates, +multiple improvements, database and API changes, new settings, bug fixes +and 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)
+
+
+

---

+
+

Upstream container images (x86_64):

+
+kiwitcms/kiwi   latest  8c8356c0268d    610MB
+
+
+

IMPORTANT: version tagged and multi-arch +container images are available only to +subscribers!

+
+

Changes since Kiwi TCMS 11.3

+
+

Security

+ +
+
+

Improvements

+
    +
  • Update bleach from 5.0.0 to 5.0.1
  • +
  • Update django-colorfield from 0.6.3 to 0.7.2
  • +
  • Update django-extensions from 3.1.5 to 3.2.0
  • +
  • Update django-tree-queries from 0.9.0 to 0.11.0
  • +
  • Update jira from 3.2.0 to 3.3.1
  • +
  • Update markdown from 3.3.6 to 3.4.1
  • +
  • Update mysqlclient from 2.1.0 to 2.1.1
  • +
  • Update python-gitlab from 3.3.0 to 3.7.0
  • +
  • Update node_modules/marked from 4.0.14 to 4.0.18
  • +
  • Relax docutils requirement. Use latest version
  • +
  • Add template block which will allow logo customizations (Ivajlo Karabojkov)
  • +
  • Don't show PLUGINS menu when no plugins are installed. References +Issue #2729
  • +
  • Add information about Kiwi TCMS user to 1-click bug reports. Closes +Issue #2591
  • +
  • Use a better icon to signify a manual test inside the user interface
  • +
  • Change UserAdmin to be permission based instead of being role-based. +Fixes Issue #2496
  • +
  • Allow post-processing of automatically created issues. Closes +Issue #2383
  • +
  • Allow more customization over issue type discovery for Jira. Closes +Issue #2833
  • +
  • Allow more customization over project discovery for Jira
  • +
  • Allow more customization over Redmine tracker. Closes +Issue #2382
  • +
  • Allow DB settings to be read from Docker Secret files. Fixes +Issue #2606
  • +
  • Add filter on TestRun page to show test executions assigned to the +current user. Closes +Issue #333
  • +
  • Add URL for creating new TestRun from a TestPlan. The format is +/runs/from-plan/<plan-id>/. Closes +Issue #274
  • +
  • Add bug.Severity attribute which is fully customizeable. Closes +Issue #2703
  • +
  • Update documentation around TCMS_ environment variables +used by automation plugins
  • +
  • Update documentation to denote that pytest plugin is now generally available
  • +
  • Document necessary permissions for adding new users. References +Issue #2496
  • +
+
+
+

Database

+
    +
  • New migration for bug.Severity model
  • +
+
+
+

Settings

+ +
+
+

API

+
    +
  • If default_tester field is not specified for TestRun.create() method +then use the currently logged-in user.
  • +
  • Return value for method TestExecution.filter() now contains fields +expected_duration and actual_duration. Closes +Issue #1924
  • +
  • Return value for method Bug.filter() now contains fields +severity__name, severity__icon and severity__color
  • +
+
+
+

Bug fixes

+
    +
  • Adjust field name when rendering test execution on TestRun page. Fixes +Issue #2794
  • +
  • Render rich text editor preview via backend API:
      +
    • Makes display on HTML pages and editor preview the same. Fixes +Issue #2659
    • +
    • Fixes a bug with markdown rendered in JavaScript. Fixes +Issue #2711
    • +
    +
  • +
  • Stop propagation of HTML unescape which causes display issues with +code snippets that contain XML values. Fixes +Issue #2800
  • +
  • Show bug text only when creating new records, not when editing
  • +
  • Properly display & validate related form fields when editing bugs
  • +
  • Don't send duplicate emails when editing bugs. Fixes +Issue #2782
  • +
+
+
+

Refactoring and testing

+
    +
  • Convert two assignment statements to augmented source code. Closes +Issue #2610 (Markus Elfring)

    +
  • +
  • Rename method IssueTrackerType.report_issue_from_testexecution():

    +
      +
    • Rename to _report_issue() which returns tuple of (object, str)
    • +
    • In case new issue was not created automatically and the method falls +back to manual creation the return value will be (None, str)
    • +
    • report_issue_from_testexecution() will call _report_issue() +internally and handle the change in return type
    • +
    +
    +

    Note

    +
      +
    • This change is backwards compatible!
    • +
    • For customized issue tracker integration you will have to apply +the same changes to your customized code if you wish new functionality, +like post-processing of automatically created issues to work.
    • +
    +
    +
  • +
  • Add tests for backup & restore commands. Closes +Issue #2695

    +
  • +
  • Update versions of several CI tools

    +
  • +
  • Updates around new version of pylint

    +
  • +
  • Use codecov-action to upload coverage results

    +
  • +
  • Remove setuptools and other workarounds in tests

    +
  • +
  • Don't special case dependencies which already provide wheel packages

    +
  • +
  • Workaround an issue with setuptools_git_archive introduced by jira==3.2.0

    +
  • +
  • Workaround the fact that django-ranged-response doesn't provide wheels

    +
  • +
  • Report test results via kiwitcms-django-plugin. Closes +Issue #1757

    +
  • +
+
+
+

Translations

+ +
+
+
+

Kiwi TCMS Enterprise v11.4-mt

+
    +
  • Based on Kiwi TCMS v11.4

    +
  • +
  • Update django-python3-ldap from 0.13.1 to 0.15.2

    +
  • +
  • Update django-ses from 3.0.1 to 3.1.0

    +
  • +
  • Update dj-database-url from 0.5.0 to 1.0.0

    +
  • +
  • Add more icons for extra GitHub login backends

    +
  • +
  • Add images for various Google login backends

    +
    +

    Private images:

    +
    +quay.io/kiwitcms/enterprise         11.4-mt (aarch64)       f5720d030612    03 Aug 2022     862MB
    +quay.io/kiwitcms/enterprise         11.4-mt (x86_64)        8ffd5a64a4d1    03 Aug 2022     829MB
    +quay.io/kiwitcms/version            11.4 (aarch64)          62207c605dcf    03 Aug 2022     639MB
    +quay.io/kiwitcms/version            11.4 (x86_64)           8c8356c0268d    03 Aug 2022     610MB
    +
    +
    +
  • +
+

IMPORTANT: version tagged, multi-arch 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 upgrade
+
+

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

+ +
+ +
+
+
+
+ +

Mejor Sitio Web 2022

+
+ + +
+ +
+

Kiwi TCMS is happy to announce that we have been awarded a "Best Website 2022" award +by Reviewbox.es, scoring 36/40 on their evaluation. +The review criteria can be found at https://www.reviewbox.es/los-mejores-sitios-web/.

+
+

Querido equipo de Kiwitcms,

+

¡Felicidades!

+

Habéis logrado lo que muchos otros desean:

+

Habéis acumulado 36/40 puntos en nuestra investigación de +mercado y por lo tanto calificasteis (mínimo 30 de 40 puntos necesarios) +para nuestro premio Mejor Sitio Web 2022.

+

Resultados y criterios de investigación

+

URL: Kiwitcms-Team

+

Puntos: 36/40

+
+

Our team is happy to accept this award, which comes exactly 2 years +after we became an OpenAwards winner.

+

Thank you and Happy testing!

+
+

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

+ +
+
+
+
+ +

Meet Kiwi TCMS at Collision 2022 in Toronto

+
+ + +
+ +
+

Kiwi TCMS is happy to announce that we're taking part in +Collision 2022, Jun 20-23 in Toronto, Canada. +We're joining as a featured startup +in the Enterprise Software Solutions category.

+

Kiwi TCMS will have an on-site presence on +Thursday, Jun 23, Stand A3201. Check-out the map for more details: +venue map

+

For engineers

+

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 +Self-Support, SaaS and Enterprise subscriptions!

+

"black boxes"

+

If you are a test or QA engineer please answer our survey +https://forms.gle/LTYnimNjbUaSmTeL8. Participants may claim a small surprise at our booth!

+

For startups

+

We know that in a startup, the major strength of the people is that they are multitaskers. +And it is often the case that the founders will perform some functional and acceptance testing +because they know all the important use-cases.

+

Still you need to document and organize your testing activities early on. You need to +start collecting information about which features of the product have been tested and +how they have been tested. That's the basis on which you can scale your QA team and +future testing activities.

+

If you are a fellow startup exhibitor please swing by out stand to talk about +organizing your product testing with Kiwi TCMS. We know the drill because we're in +the same boat!

+

For partners

+

If you are another ISV providing engineering tools, a product outsourcing company +or a devel/testing service venture we've got a partnership proposal for you!

+

We're interested in partners where we can integrate other products with Kiwi TCMS +and provide a better offering; provide extra services (e.g. managed hosting) and/or +provide more transparency to your own customers (e.g. allow them to see how their products +are being tested).

+

Message us via the Collision app +and request a meeting or better yet, find our team on-site!

+

Virtual press conference

+

If you aren't around in Toronto please join us for a pre 2022 Collision News Conference (VIRTUAL) on +Wednesday, June 15, 1:00 - 2:00 p.m. EDT / 17:00 - 18:00 UTC.

+

For more information see +https://www.eventbrite.com/e/pre-collision-press-conference-1-of-2-hosted-by-brotmanwinterfried-tickets-365110534437

+

After hours

+

The Kiwi TCMS team will be joining the following after-hours events:

+ +

For media

+

If you have any questions, need additional information or would like to schedule an interview, +please email Steve Winter at swinter @ aboutbwf.com (remove spaces) or call 202-468-8100.

+
+

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

+ +
+
+
+
+ +

Zaklina, welcome to the Kiwi TCMS team

+
+ + +
+ +
+

Kiwi TCMS is pleased to welcome Zaklina Stojnev to our team!

+

+

She holds an engineering degree in computer science and +has been working as a test engineer for more than 10 years. +In the last couple of years her main focus is automation in testing, +finding ways to improve testing process and tools that will support testing activities.

+

Zaklina will be the primary contact for our +History of Testing project where we are +compiling a database of people who influenced or made important contributions to our professional field.

+

With her prior experience as a conference organizer Zaklina will also be lending a much needed hand +in preparing the Testing and Automation devroom at FOSDEM and showcasing Kiwi TCMS at different +events.

+

You can find her on-boarding progress at TR-1190 and her +contributions on +GitHub.

+

Happy Testing!

+
+

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

+ +
+
+
+ + +
+

Hello testers, +we are conducting a little research/survey into how other testers and QA professionals +use modern platforms like GitHub, GitLab and Bitbucket. At this moment in time our goal +is to collect as much information as possible in order to understand the existing ecosystem.

+

If you can spare 5 minutes of your time please check-out +https://forms.gle/avqjWVvSPsE4SWQr5.

+

We promise there will be no follow up emails unless you indicate that you agree to that.

+

Happy Testing!

+
+

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

+ +
+
+
+
+ +

New versions of automation framework plugins

+
+ + +
+ +
+

Kiwi TCMS is pleased to announce new versions of our plugins for different +test automation frameworks:

+ +

These new versions are compatible with Kiwi TCMS v11.x and include several improvements +and bug fixes. Check-out the pages above for individual information and instructions on +how to use them.

+

Happy testing!

+

---

+

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

+ + +
+
+
+
+ +

Kiwi TCMS 11.3

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 11.3 which is the 100th tagged version +in our git repository!

+

IMPORTANT: +This is a small release which contains security related updates, several improvements, +bug fixes and new translations! Most importantly the kiwitcms-tenants plugin now supports +tenant groups and permissions!

+

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

---

+
+

Upstream container images (x86_64):

+
+kiwitcms/kiwi   latest  58dcfa91e816    629MB
+
+
+

IMPORTANT: version tagged and multi-arch +container images are available only to +subscribers!

+
+

Changes since Kiwi TCMS 11.2

+
+

Security

+ +
+
+

Improvements

+
    +
  • Update bleach from 4.1.0 to 5.0.0
  • +
  • Update django-tree-queries from 0.7.0 to 0.9.0
  • +
  • Update jira from 3.1.1 to 3.2.0
  • +
  • Update pygments from 2.11.2 to 2.12.0
  • +
  • Update python-gitlab from 3.2.0 to 3.3.0
  • +
  • Update tzdata from 2021.5 to 2022.1
  • +
  • Update node_modules/marked from 4.0.12 to 4.0.14
  • +
  • Update node_modules/prismjs from 1.27.0 to 1.28.0
  • +
  • Allow overriding of Azure Boards API version. Closes +Issue #2717
  • +
  • If tenant_groups is enabled then refresh_permissions command will +update default tenant groups too
  • +
  • Document tenant-group permissions
  • +
+
+
+

Settings

+
    +
  • New setting AZURE_BOARDS_API_VERSION, defaults to 6.0. Can be overriden +directly in settings or via environment variable with the same name
  • +
+
+
+

Bug fixes

+
    +
  • Patch for repositories under GitLab subgroups. Fixes +Issue #2643 (@cmeissl)
  • +
  • Don't crash if a comment user has been removed. Fixes +KIWI-TCMS-HZ
  • +
+
+
+

Refactoring

+
    +
  • Split Users & Groups menu items under ADMIN entry in navigation
  • +
  • [pre-commit.ci] updates
  • +
  • pylint adjustments
  • +
+
+
+

Translations

+ +
+
+
+

Kiwi TCMS Enterprise v11.3.1-mt

+
    +
  • Based on Kiwi TCMS v11.3

    +
  • +
  • Update django-ses from 2.6.0 to 3.0.1

    +
  • +
  • Update kiwitcms-tenants from 1.11.0 to 2.1.1 for +tenant groups support

    +
    +

    Private images:

    +
    +quay.io/kiwitcms/enterprise         11.3.1-mt (aarch64  58a53d616105    27 Apr 2022     894MB
    +quay.io/kiwitcms/enterprise         11.3.1-mt (x86_64)  3b5e7fbd234a    27 Apr 2022     847MB
    +quay.io/kiwitcms/version            11.3 (aarch64)      e9f34a86cd0b    27 Apr 2022     671MB
    +quay.io/kiwitcms/version            11.3 (x86_64)       58dcfa91e816    27 Apr 2022     627MB
    +
    +
    +
  • +
+

IMPORTANT: version tagged, multi-arch 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 upgrade
+
+

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

+ +
+ +
+
+
+
+ +

Kiwi TCMS 11.2

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 11.2.

+

IMPORTANT: +This is a small release which contains several improvements, new API methods, +internal refactoring and new translations! This is the first release to ship +aarch64 container images!

+

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

---

+
+

Upstream container images (x86_64):

+
+kiwitcms/kiwi   latest  bcc4c658440a    622MB
+
+
+

IMPORTANT: version tagged and multi-arch +container images are available only to +subscribers!

+
+

Changes since Kiwi TCMS 11.1

+
+

Improvements

+
    +
  • Update django from 4.0.2 to 4.0.3
  • +
  • Update django-grappelli from 3.0.2 to 3.0.3
  • +
  • Update django-simple-captcha from 0.5.14 to 0.5.17
  • +
  • Update python-bugzilla from 3.1.0 to 3.2.0
  • +
  • Update python-gitlab from 3.1.1 to 3.2.0
  • +
  • Update node_modules/prismjs from 1.26.0 to 1.27.0
  • +
  • Add new command to perform a collection of post-upgrade tasks. +Kiwi TCMS admins are advised to replace +manage.py migrate with manage.py upgrade (Ivajlo Karabojkov)
  • +
+
+
+

API

+
    +
  • New API method Category.create(). Fixes +Issue #2705 (Erik Heeren)
  • +
  • New API method Classification.create(). Fixes +Issue #2705 (Erik Heeren)
  • +
+
+
+

Refactoring and testing

+
    +
  • Add docker build & push automation
  • +
  • Fix Bandit exclusion rule
  • +
  • Test and build on aarch64
  • +
  • Apply auto fixes fro pre-commit.ci
  • +
  • Apply auto fixes from Deepsource
  • +
  • Update versions of several GitHub Actions
  • +
  • Use the appropriate path to package.json for Dependabot
  • +
  • Remove old Telemetry link in menu to avoid confusion
  • +
+
+ +
+
+

Kiwi TCMS Enterprise v11.2-mt

+
    +
  • Based on Kiwi TCMS v11.2

    +
  • +
  • Update django-ses from 2.4.0 to 2.6.0

    +
  • +
  • Update python3-saml from 1.13.0 to 1.14.0

    +
  • +
  • Revert "Use django.contrib.staticfiles.storage from Django==3.2.12". +Instead use the implementation from latest Django version. Closes +Issue #140

    +
  • +
  • Start building kiwitcms/enterprise on aarch64

    +
  • +
  • Add changelog check & docker release automation

    +
  • +
  • Add test for PSA login URLs on login page. References +Issue #83

    +
  • +
  • Add SAML & Azure AD logo images

    +
  • +
  • Update GitHub Actions

    +
  • +
  • Hard-code testing with Keycloak 16.1.1 to workaround significant differences +with Keycloak v17 container

    +
    +

    Private images:

    +
    +quay.io/kiwitcms/enterprise         11.2-mt (aarch64)   fe5e869e36f6    09 Mar 2022    890MB
    +quay.io/kiwitcms/enterprise         11.2-mt (x86_64)    134320d5fb7c    09 Mar 2022    841MB
    +quay.io/kiwitcms/version            11.2 (aarch64)      3b782830d19d    09 Mar 2022    665MB
    +quay.io/kiwitcms/version            11.2 (x86_64)       bcc4c658440a    09 Mar 2022    620MB
    +
    +
    +
  • +
+

IMPORTANT: version tagged, multi-arch 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 upgrade
+
+

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!

+ +
+ +
+
+
+
+ +

New and updated subscription plans for Kiwi TCMS

+
+ + +
+ +
+

An active Kiwi TCMS subscription ensures a sustainable future for +all open source software maintained by the Kiwi TCMS team and +provides its holder with access to software versions and certain +level services. Given recent changes to +private container credentials +we have refreshed our product and service definitions.

+

New Self Support subscription

+

This is an entry-level subscription which provides read-only access to version tagged +containers of upstream Kiwi TCMS. It is suitable for experimentation, +very small teams, development against Kiwi TCMS and convenience during upgrades.

+

You are free to use any older or future versions of Kiwi TCMS available from +the kiwitcms/version container repository!

+

This subscription plan is also available via +GitHub Marketplace.

+

Private Tenant

+

This is our most popular subscription type.

+

Starting today it also includes access +to the kiwitcms/version container repository! +This is suitable for teams who prefer to be hosting Kiwi TCMS on-premise instead of +using the namespace provided under *.tenant.kiwitcms.org.

+

This subscription plan is also available via +GitHub Marketplace.

+

Everything else remains the same!

+

Enterprise Subscription

+

This is Kiwi TCMS tailored towards on-premise deployments in larger organizations. +Starting today it also automatically includes 1x Private Tenant which can be used +for development or experiments.

+

Support availability has been extended by 2 hours in order to cover more geographic areas!

+

Future features coming to enterprise subscribers - +tools for provisioning of Kiwi TCMS inside cloud environments and aarch64 containers.

+

Price has been increased to 400 $/mo.

+

New Managed Hosting subscription

+

This new offering is designed for the organizations which don't want to bother with provisioning +containers, configuring DNS resolution, managing SSL certificates, regular upgrades and backups. +The Kiwi TCMS team can do all of this for you and provide a fully isolated instance inside AWS.

+

Support availability has been extended by 2 days, covering Saturday and Sunday. When necessary +Managed Hosting subscribers have the option for video conferences with their support contact.

+
+

All changes are effective immediately. Existing customers are granted access to everything +that's new while billing changes are not applied.

+

If you prefer the "free beer" version of +Kiwi TCMS it is available via docker pull kiwitcms/kiwi - free to use +and without any guarantees according to GPLv2.

+

Please consider subscribing and help us make Kiwi TCMS better!

+

Happy Testing!

+
+
+
+
+ +

Container Registry Credentials for Subscribers

+
+ + +
+ +
+

Kiwi TCMS subscribers had to go through a manual process of registering +a username with our container registry, quay.io and email support +before they could access private docker images. This process is now fully +automated!

+

"private credentials card"

+

Credentials are automatically created upon subscription payment and configured for +read-only access to respective repositories based on the type of subscription. +You can find your credentials at the +subscriptions page, +PLUGINS -> Subscriptions. To authenticate try

+
$ docker login -u="USERNAME" -p "PASSWORD-TOKEN" quay.io
+# or
+$ echo "PASSWORD-TOKEN" | docker login -u="USERNAME" --password-stdin quay.io
+
+ + +

If you would like to have access to private container repositories for Kiwi TCMS +checkout the containers page and +subscribe!

+

Happy Testing!

+
+
+
+
+ +

Kiwi TCMS 11.1

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 11.1.

+

IMPORTANT: +This is a small release which contains security related updates, several improvements, +bug fixes and 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)
+
+
+

---

+
+

Container images:

+
+kiwitcms/kiwi       latest  72099aa8ee93    629 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
+
+
+

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

+
+

Changes since Kiwi TCMS 11.0

+
+

Security

+
    +
  • Update Django from 3.2.10 to 4.0.2 to fix several fulnerabilities: +CVE-2022-22818, CVE-2022-23833, CVE-2021-45115, CVE-2021-45116, +CVE-2021-45452. Of those we believe that only +CVE-2022-23833: Denial-of-service possibility in file uploads may directly +impact Kiwi TCMS
  • +
+
+
+

Improvements

+
    +
  • Update django-contrib-comments from 2.1.0 to 2.2.0
  • +
  • Update django-uuslug from 1.2.0 to 2.0.0
  • +
  • Update python-gitlab from 3.1.0 to 3.1.1
  • +
  • Update node_modules/marked from 4.0.10 to 4.0.12
  • +
+
+
+

Database

+
    +
  • New migration for django-simple-captcha
  • +
+
+
+

Settings

+
    +
  • RECAPTCHA_PUBLIC_KEY, RECAPTCHA_PRIVATE_KEY and RECAPTCHA_USE_SSL +are no longer in use
  • +
  • New setting USE_CAPTCHA, defaults to True
  • +
  • The string "captcha" is added to INSTALLED_APPS
  • +
+
+
+

Bug fixes

+
    +
  • Fix inappropriate RPC calls causing Version and Build dropdown widgets to +display no values. Fixes +Issue #2704
  • +
+
+
+

Refactoring and testing

+
    +
  • Add tzdata to requirements
  • +
  • Replace django-recaptcha with django-simple-captcha
  • +
  • Adjust /init-db view to reliably detect when applying database migrations +is complete and not exit prematurely
  • +
+
+
+

Translations

+ +
+
+
+

Kiwi TCMS Enterprise v11.1-mt

+
    +
  • Based on Kiwi TCMS v11.1

    +
  • +
  • Update kiwitcms-github-app from 1.3.2 to 1.3.3

    +
  • +
  • Update django-ses from 2.3.1 to 2.4.0

    +
  • +
  • Update python3-saml from 1.12.0 to 1.13.0

    +
  • +
  • Workaround UnicodeDecodeError while building the docker image

    +
    +

    Private images:

    +
    +quay.io/kiwitcms/enterprise         11.1-mt         df5ce509fd41   854 MB
    +quay.io/kiwitcms/version            11.1            72099aa8ee93   629 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 11.0

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 11.0.

+

IMPORTANT: +This is a new major release which contains security related updates, several improvements, +API changes, bug fixes and 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)
+
+
+

---

+
+

Container images:

+
+kiwitcms/kiwi       latest  6600bc56a544    622 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
+
+
+

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

+
+

Changes since Kiwi TCMS 10.5

+
+

Improvements

+
    +
  • Update Django to 3.2.11
  • +
  • Update django-colorfield from 0.4.5 to 0.6.3
  • +
  • Update django-grappelli from 2.15.3 to 3.0.2
  • +
  • Update psycopg2 from 2.9.2 to 2.9.3
  • +
  • Update pygments from 2.10.0 to 2.11.2
  • +
  • Update python-gitlab from 2.10.1 to 3.1.0
  • +
  • Update node_modules/prismjs from 1.25.0 to 1.26.0
  • +
  • Update node_modules/marked from 2.1.3 to 4.0.10
  • +
  • Admin panel now allows to view, add, edit and delete Environment records
  • +
  • Allow selection of environment when creating new TestRun and display the chosen +values inside the TestRun page. Closes +Issue #1344
  • +
  • Creating a TestRun will now generate test execution matrix based on the available +environment and test case properties. Closes +Issue #1843
  • +
  • When generating a test execution matrix the supported algorithms are +"full" and "pairwise". Closes +Issue #1931
      +
    • Feature is enabled for test runs which contain test cases. This +feature is not shown when creating an empty test run
    • +
    • This feature isn't supported when subsequently adding new test cases +to test run
    • +
    +
  • +
  • Record a random hex number under /Kiwi/uploads/installation-id
  • +
+

Detailed information about properties, environments and test matrix generation +can be found +in a separate article.

+
+
+

Database

+
    +
  • New model testrun.Environment
  • +
  • New model testrun.EnvironmentProperty
  • +
  • New model testrun.Property
  • +
+

Warning:

+
+

These newly added models create additional permission labels with names +testruns | environment | Can .... environment, +testruns | property | Can .... property, +testruns | environment property | Can .... environment 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!

+
+
+
+

Settings

+
    +
  • Update the value of MODERNRPC_METHODS_MODULES setting to include +modules with the new API methods
  • +
+
+
+

API

+
    +
  • Method TestRun.add_case will now return a list.

    +
    +

    Warning

    +

    This breaks API compatibility with older versions and will break +all plugins which rely on this method. Use plugins v11 or greater!

    +
    +
  • +
  • Method TestRun.add_case return value will now include a field named +properties

    +
  • +
  • New methods Environment.properties, Environment.add_property and +Environment.remove_property

    +
  • +
  • New method TestRun.properties

    +
  • +
+
+
+

Bug fixes

+
    +
  • Send e-mail notification when adding comments to bugs. Fixes +Issue #2232 (@cmbahadir)
  • +
  • Disable the "+" button when there is no related element selected. Fixes +Issue #2561 (@cmbahadir)
  • +
  • When cloning test plans keep the existing test case sort order inside +the resulting test plan. Fixes +Issue #2218 (Nicolas Gelot)
  • +
  • Configure en_US.UTF-8 locale inside container. Allows upload of files with +unicode names. Fixes +Issue #2600
  • +
+
+
+

Refactoring and testing

+
    +
  • Refresh logo design
  • +
  • Pylint fixes
  • +
  • Pin setuptools b/c of problem with django-extensions
  • +
  • Remove redundant test scenario
  • +
  • Shell script refactoring
  • +
+
+ +
+
+

Kiwi TCMS Enterprise v11.0-mt

+
    +
  • Based on Kiwi TCMS v11.0

    +
  • +
  • Update kiwitcms-tenants from 1.8.0 to 1.11.0

    +
    +

    Private images:

    +
    +quay.io/kiwitcms/enterprise         11.0-mt         a730291750f8   846 MB
    +quay.io/kiwitcms/version            11.0            6600bc56a544   622 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!

+ +
+ +
+
+
+ + +
+

The upcoming Kiwi TCMS v11 contains new functionality around TestCase parameters and +TestRun environments which has an impact on how your final test execution matrix will +look like. This article provides detailed information about these features but have +in mind that they are still considered to be a technology-preview.

+

Parameters

+

Consider a login functionality which accepts email address and password. Possible states +for these fields are:

+
    +
  • +

    Email address:

    +
      +
    • valid - well formed email string, exists in database, access is allowed
    • +
    • invalid - malformed email string, should not exist in the DB but this fact is not relevant to the test
    • +
    • disabled - well formed email string, exists in database, access is not allowed
    • +
    +
  • +
  • +

    Password:

    +
      +
    • correct - matches the value in database for the given email address
    • +
    • another - matches the value in database which is related to another email address
    • +
    • wrong - doesn't match the value in database
    • +
    • empty - value is empty string, a special case of wrong
    • +
    • invalid - value doesn't conform to predefined rules. May or may not be relevant to login functionality
    • +
    +
  • +
+

Depending on how the software under test is put together you can design multiple test cases. +Fundamentally however these are the same test case and the above states are input parameters to it!

+

Definition: TestCase parameters are different input values which do not fundamentally affect the result of +a test case! A TestCase with parameters will result into multiple test executions!

+

In other words you will be executing a parameterized test scenario multiple times with different input values! +Inside Kiwi TCMS the actual parameter values during execution are recorded into the TestExecution model +which will not change if you modify test case parameter values afterwards!

+

Definition: TestExecution parameters record a snapshot of TestCase parameters at the time when you intended +to execute a particular test scenario!

+

Environments

+

A testing environment represents the specifics of where exactly you executed your test suite. +Consider this example:

+
+

The default desktop environment of Fedora is GNOME, but if you prefer an alternative, +you can download installation media which contains slightly differently defaults, e.g. +KDE, Xfce, MATE and others, see https://spins.fedoraproject.org.

+
+

Regardless of which Fedora variant you choose the expected functionallity +of the default desktop experience is the same. However this can only be guaranteed with exhaustive +testing across all variants. Check-out the test matrix at +https://fedoraproject.org/wiki/Test_Results:Fedora_36_Rawhide_20220118.n.0_Desktop?rd=Test_Results:Current_Desktop_Test#Non_release-blocking_desktops:_x86_.2F_x86_64

+

Definition: a TestRun environment is a set of attributes which apply to the entire test suite +at the time of execution. Usually you expect test results in different environments to be the same!

+

In Kiwi TCMS environments are represented as named containers of key/value pairs. +The same key may have multiple values! +They can be found under ADMIN -> Everything else -> Environments.

+

Because environments are meant to affect the entire test suite they are linked to the +TestRun model. When creating a new test run you can select multiple Environment +records.

+

Test matrix generation

+

The existing behavior in Kiwi TCMS is that when a test run is created there will be only one +test execution for every test case which is added inside this test run.

+

In the Fedora example shown above some of the test cases also have their own parameters, +e.g. the QA:Testcase_desktop_app_basic scenario.

+

Definition: TestRun environment key/values will be combined with TestCase parameter key/values +to form the final test matrix! This opens up the possibility for combinatorial test execution +generation.

+

Once parameters and environment(s) are specified you will start seeing multiple test executions +for the same test case inside newly created test runs. By default a full-combination test matrix +will be created. The other option is to pairwise all key/value records.

+

Important: test execution generation works only when creating or cloning a test run that contains +test cases. This feature still does not work for test cases added after a test run is created!

+

Environment(s) vs Tag(s)

+

Inside Kiwi TCMS you can use both environments and tags to annotate test runs. +There are 3 important facts that hold true:

+
    +
  • Tags possess only informational value, they don't influence how you perform testing;
  • +
  • Environments possess informational value and govern the final test matrix;
  • +
  • Environments which have a single value for each different key are the same as tags!
  • +
+

"Example from #1344"

+

If we look at this example from Issue #1344 we +can make out the following keys:

+
    +
  • Driver - 2 values
  • +
  • API - 2 values
  • +
  • Python - 2 values
  • +
  • Java - 1 value
  • +
  • Eclipse - 1 value
  • +
  • Host OS - 1 value
  • +
  • Target OS - 1 value
  • +
  • Redistributable - 1 value
  • +
  • Testing Type - 1 value
  • +
+

Here Driver, API and Python clearly should affect your test matrix. Otherwise there isn't +much point in having the different values recorded in the first place. That results in a 8x +multiplication factor for every functionality that may be affected/related to these attributes, +presumably the entire functionality of the product under test.

+

Java, Eclipse, Host OS and Target OS carry only informational value but they look like +more values could be possible. If that's the case these attributes will also affect the overall +test matrix.

+

Redistributable and Testing Type look like information-only attributes. They don't appear +to have any relevance to the test matrix at all. The same information-only effect can be achieved +both with environments and with tags.

+

Practical rules:

+
    +
  1. Attributes which affect a single test case should be defined as TestCase parameters
  2. +
  3. Attributes which affect all test cases in a suite should be defined as TestRun environment(s)
  4. +
  5. One big TestRun is likely the best from organizational and optimizational point of view
  6. +
+

You may decide to have multiple smaller test runs, usually with 1 value per environment key, +if you think that fits your workflow better. However you may be missing on some optimizations if you +choose to do so.

+

Real life example

+

To illustrate how all of these new features work let's look at +Partitioning custom software RAID +test case from Fedora QA. It instructs the tester to install Linux and inside the +partitioning screen create a Software RAID partition, format it with a filesystem and +assign a mount point! It is expected that once installation is complete the machine will +reboot, tester will be able to login as root and the created filesystem will be available!

+

Factors that could affect this functionality:

+
    +
  • +

    Raid Level: Fedora supports 7 of them - 0, 1, 4, 5, 6, 10 and linear. These are all different drivers + located under /lib/modules/$(uname -r)/kernel/drivers/md

    +
    ./linear.ko.xz
    +./raid0.ko.xz
    +./raid10.ko.xz
    +./raid1.ko.xz
    +./raid456.ko.xz
    +
    + + +
  • +
  • +

    Mount Point: / for example is mounted very early in the boot process, /home is mounted much later. + / also relates to rescue mode, while /home doesn't. /home, if corrupted, may affect the terminal + login process though

    +
  • +
  • Encryption: Yes/No. This is stackable on top of the RAID device and "should-just-work". However it is often + included into other partitioning test cases in order to discover weird issues and because it is a critical + functionality
  • +
+

We may add the actual filesystem type, used to format the RAID block device, +e.g. xfs, ext3, ext4, but that's not needed here! Here's how this test case looks in Kiwi TCMS:

+

"RAID test case"

+

Remember that Fedora comes with multiple variants for multiple CPU architectures! Of those we'll consider +Server and Workstation, which are both available for the aarch64 and x86_64 CPU +architectures. Here's how this can be represented inside Kiwi TCMS:

+

"Fedora variants represented as environment"

+


+
+Next we need to organize test execution for an upcoming release by creating test run(s) and +selecting environment and matrix generation type: +"New test run with environment"

+

The possible outcomes are:

+
    +
  • 112 test executions: full test matrix between all Fedora variants and all RAID parameters
  • +
  • 56 test executions: 4 TR x 14 TE; one TR/variant without environment; RAID parameters are pairwised
  • +
  • 16 test executions: all Fedora variants are pairwised together with all RAID parameters
  • +
+

Finally this is how the resulting test run looks like. Notice the 3 boxes icon for each +test execution, listing the actual parameters which should be used during testing:

+

"TR with environment, TE with parameters"

+

Environment parameters are read-only here b/c they have been copied to all test execution records. +It usually doesn't make sense to modify your environment mid-way during test execution. +If that's needed or you've made a mistake it's probably easier to create a new test run.

+

Happy Testing!

+
+

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

+ +
+
+
+
+ +

Kiwi TCMS Enterprise 10.5.1

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS Enterprise version 10.5.1!

+

IMPORTANT: +this is a small release which contains minor improvements and bug-fixes.

+

You can explore everything at +https://public.tenant.kiwitcms.org!

+
+

Kiwi TCMS Enterprise v10.5.1-mt

+
    +
  • Based on Kiwi TCMS v10.5

    +
  • +
  • Update django-python3-ldap from 0.13.0 to 0.13.1

    +
  • +
  • Update kiwitcms-github-app from 1.3.1 to 1.3.2

    +
    +

    Private images:

    +
    +quay.io/kiwitcms/enterprise         10.5.1-mt       c4d745bd914c   806MB
    +
    +
    +
  • +
+

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!

+ +
+ +
+
+
+
+ +

New versions of automation frameworks plugins

+
+ + +
+ +
+

Kiwi TCMS is pleased to announce new versions of our plugins for different +test automation frameworks:

+ +

The new versions are future compatible with upcoming Kiwi TCMS v11 and also with existing +Kiwi TCMS v10.x installations. Check-out the pages above for individual instructions.

+

Happy testing!

+

---

+

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

+ + +
+
+
+ + +
+

"Cfp banner"

+

Attention testers! On behalf of +Testing and Automation devroom +we'd like to announce that call for participation is now open.

+

Here are some ideas for topics that are a good fit for this devroom:

+

Testing in the real, open source world

+
    +
  • War stories/strategies for testing large scale or complex projects
  • +
  • Demystify resource e.g. systems/device/cloud provisioning in a CI loop
  • +
  • Tools that extend the ability to test low-level code, e.g. bootloaders, init +systems, etc.
  • +
  • Projects that are introducing new/interesting ways of testing "systems"
  • +
  • Address the automated testing frameworks fragmentation
  • +
  • Lessons learned from testing
  • +
+

Cool Tools (good candidates for lightning talks)

+
    +
  • How your open source tool made developing quality software better
  • +
  • What tools do you use to setup your CI/CD
  • +
  • Combining projects/plugins/tools to build amazing things "Not enough people in +the open source community know how to use $X, but here's a tutorial on how to +use $X to make your project better."
  • +
+

In the past the devroom has seen both newbies/students and experienced professionals and +past speakers as part of the audience and talks covering from beginner/practical +to advanced/abstract topics. If you have doubts then submit your proposal and +leave a comment for the devroom managers and we'll get back to you.

+

Checkout +https://fosdem-testingautomation.github.io/ for more information!

+

Happy Testing!

+
+

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

+ +
+
+ +
+

+ Page 1 / 7 +

+ Older Posts +
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/index2.html b/blog/index2.html new file mode 100644 index 00000000..f3f7352f --- /dev/null +++ b/blog/index2.html @@ -0,0 +1,2722 @@ + + + + + Kiwi TCMS - Blog + + + + + + + + + + + + + + + +
+

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

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

+
+

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!

+
+

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 that low though?

+
+

Ready ? Explore subscriptions!

+
+

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

+ +
+
+
+
+ +

Catch up with Kiwi TCMS at WebSummit 2021 Lisbon

+
+ + +
+ +
+

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!

+ +
+
+
+
+ +

Announcing winners of 6 tickets for HackConf 2021

+
+ + +
+ +
+

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!

+ +
+ +
+
+
+
+ +

Meet Kiwi TCMS at WebSummit 2021 in Lisbon

+
+ + +
+ +
+

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!

+ +
+
+
+
+ +

Please nominate Kiwi TCMS at MLH Open Source Awards

+
+ + +
+ +
+

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. +
  3. Click the Submit a Nomination button
  4. +
  5. Follow the instructions on screen!
  6. +
+

Expected results:

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

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!

+ +
+
+
+
+ +

Win 6 SUPERFAN tickets for HackConf 2021

+
+ + +
+ +
+

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

+
    +
  • Add tests for missing coverage in kiwi_auth.admin. References +Issue #1607 +(Mariyan Garvanski)
  • +
  • Fix some eslint issues and formatting in testcases/js/get.js
  • +
  • Use shorter URL when cloning test cases from TP page. References +Issue #1054
  • +
  • Limit URI size to 10KiB. This alone should allow for more than 1000 PKs +specified for cloning. In addition Django itself limits the maximum number of +GET/POST fields to 1000 via the DATA_UPLOAD_MAX_NUMBER_FIELDS setting, +see https://docs.djangoproject.com/en/3.2/ref/settings/#data-upload-max-number-fields. +Closes +Issue #1054
  • +
+
+ +
+
+

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

Translations

+ +
+
+
+

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!

+ +
+
+
+
+ +

Excellence in Innovation 2020 award for Kiwi TCMS

+
+ + +
+ +
+

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

+ +
+ +
+
+ +
+ Newer Posts +

+ Page 2 / 7 +

+ Older Posts +
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/index3.html b/blog/index3.html new file mode 100644 index 00000000..1d64c21b --- /dev/null +++ b/blog/index3.html @@ -0,0 +1,1967 @@ + + + + + Kiwi TCMS - Blog + + + + + + + + + + + + + + + +
+

Blog

+ +
+ + +
+

"Cfp banner"

+

Attention open source testers: Testing and Automation devroom at FOSDEM'21 +is happening next year! Call for participation is now open. +Checkout +https://fosdem-testingautomation.github.io/ for more information!

+

Happy Testing!

+
+

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

+ +
+
+
+
+ +

Kiwi TCMS 8.8

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 8.8!

+

IMPORTANT: this release includes many improvements, +API changes, bug fixes, translation updates, new tests and internal refactoring. +It is the sixth release to include contributions via our +open source bounty program. +You can explore everything at +https://public.tenant.kiwitcms.org!

+

This is also the first 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  4b31ecf8ab5b    654 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.7

+
+

Improvements

+
    +
  • Update bleach from 3.1.5 to 3.2.1
  • +
  • Update django-extensions from 3.0.8 to 3.0.9
  • +
  • Update django from 3.1.1 to 3.1.3
  • +
  • Update django-simple-history from 2.11.0 to 2.12.0
  • +
  • Update markdown from 3.2.2 to 3.3.3
  • +
  • Update pygments from 2.7.0 to 2.7.2
  • +
  • Update python-bugzilla from 2.5.0 to 3.0.1
  • +
  • Update node_modules/marked from 1.1.1 to 1.2.3
  • +
  • Update node_modules/prismjs from 1.21.0 to 1.22.0
  • +
  • Add management command refresh_permission. Closes +Issue #1137 (Ivajlo Karabojkov)
  • +
  • Add bug tracker integration for Azure Boards. Closes +Issue #1979 (@cmbahadir)
  • +
  • Add autosave configuration to web editor. Closes +Issue #1958 (Mfon Eti-mfon)
  • +
  • Change ON/OFF buttons messages to Yes/No for several buttons (Alexander Tsvetanov)
  • +
  • Add support for object-level permissions for TestCase, +TestPlan, TestRun and Bug objects via django-guardian
  • +
  • Complete redesign of Test Plan page to match the rest of Kiwi TCMS:
      +
    • modern look and feel using the PatternFly UI library
    • +
    • remove unused legacy code & HTML templates
    • +
    • closes +Issue #663, +Issue #1977
    • +
    +
  • +
  • Enable Markdown support for strike-through text
  • +
  • Always pull latest RPMs when building container images
  • +
  • Update documentation and images
  • +
+
+
+

Settings

+
    +
  • AUTHENTICATION_BACKENDS setting is now explicitly specified because of +django-guardian. Take care to include the default backends if you +override this setting. See tcms/settings/common.py for more information.
  • +
+
+
+

Database

+
    +
  • Add index to TestCase.summary field
  • +
  • Additional migrations from django-guardian around object-level permissions
  • +
  • New AnonymousUser record added by django-guardian
  • +
  • Start using django-tree-queries which improves how tree based structures +are stored in the database.
  • +
+

important:

+
+Requires PostgreSQL, sqlite3 >= 3.8.3, MariaDB >= 10.2.2 or +MySQL >= 8.0 (if running without ONLY_FULL_GROUP_BY).
+

warning:

+
+Supports only trees with max. 50 levels on MySQL/MariaDB, since those databases +do not support arrays and require us to provide a maximum length upfront. +This means up to 50 levels of nested child-parent test plans!
+
+
+

API

+
    +
  • Method TestExecution.update() will now modify field close_date +depending on test execution status. Fixes +Issue #1820
  • +
  • Method TestCase.add_comment() now returns the created comment
  • +
  • Method TestExecution.add_comment() now returns the created comment
  • +
  • Method TestPlan.add_case() now returns the newly added test case
  • +
  • Add method TestCase.sortkeys(). Fixes +Issue #444
  • +
  • Add method Markdown.render()
  • +
  • Add method TestCase.comments()
  • +
  • Add method TestPlan.tree()
  • +
+
+
+

Bug fixes

+
    +
  • Fix url formatting. Fixes +Issue #1806 (Rosen Sasov)
  • +
  • When deleting TestExecutionStatus check that there will be at least 1 left +before deleting! Closes +Issue #1978
  • +
  • Update typeahead definitions for test case components, tags and +for adding test plans to test cases. Fixes +Issue #882
  • +
  • Add option to filter by reviewer in Test Plan page. Fixes +Issue #564
  • +
  • Pass the number of disabled test cases to HTML template when +creating a new test run. Fixes +Issue #718
  • +
+
+
+

Refactoring & testing

+
    +
  • New linter to warn against GenericForeignKey fields in models. Closes +Issue #1303 (Bryan Mutai)
  • +
  • Add tests for assign_default_group_permissions() (Ivajlo Karabojkov)
  • +
  • Add tests for TestExecutionStatusAdmin. Refs +Issue #1618 (Mariyan Garvanski)
  • +
  • Add tests for tcms.bugs.views.Search. Closes +Issue #1601 (Mfon Eti-mfon)
  • +
  • Add tests for tcms.rpc.api.testrun. Closes +Issue #1628 (@lcmtwn)
  • +
  • Add tests for tcms.rpc.api.classification. Closes +Issue #1621 (Abhishek Chaurasia)
  • +
  • Add tests for tcms.rpc.api.priority. Closes +Issue #1622 (Abhishek Chaurasia)
  • +
  • Add tests for tcms.rpc.api.testcasestatus. Closes +Issue #1624 (Abhishek Chaurasia)
  • +
  • Add tests for tcms.rpc.api.attachment. Closes +Issue #1619 (@awalvie)
  • +
  • Add tests for tcms.rpc.api.testexecution.remove_comment. Closes +Issue #1625 (@awalvie)
  • +
  • Add tests for tcms.rpc.api.testexecutionstatus. Closes +Issue #1626 (@awalvie)
  • +
  • Add tests for TestRun.add_case_run() method and rename it to +TestRun.create_execution()
  • +
  • libkrb5-dev is not needed anymore in CI with newer tcms-api
  • +
  • Use Fedora 32 to build Bugzilla docker image in CI
  • +
  • Update signature for overriden class to match Django 3.1
  • +
  • Move SimpleMDE initialization to simplemde_security_overide.js
  • +
  • Move post_save.send() from bugs.views to comments.add_comment()
  • +
+
+ +
+
+

Kiwi TCMS Enterprise v8.8-mt

+
    +
  • Based on Kiwi TCMS v8.7
  • +
  • Update kiwitcms-github-app from 1.2 to 1.2.
  • +
+

For more info see +https://github.com/kiwitcms/enterprise#v88-mt-07-nov-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!

+ +
+ +
+
+
+
+ +

Kiwi TCMS celebrates 200K+ downloads

+
+ + +
+ +
+

"200K banner"

+

We are happy to announce that Kiwi TCMS has been downloaded more than +200000 times via Docker Hub! +You can check the real-time stats +here. +To celebrate with us subscribe for a +SaaS and/or +Enterprise +subscriptions using coupon code 200KOFF at checkout!

+

Thank you very much and Happy Testing!

+
+

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

+ +
+
+
+ + +
+

Hello testers, +recently we had a chat with +Gjore Zaharchev, +a QA manager at Seavus and Testing Coach at +SEDC Software Testing Academy in Skopje. Here is their story +and how they use Kiwi TCMS!

+

Seavus Educational and Development Center +is a private company as part of the Seavus Group and a specialized +training center for education of staff in the fields of programming, +design, computer networks and software testing. +Around 90 students pass through their software testing academy every year +with 60 students enrolled thus far. The training program is 6 months +and covers many basic IT skills, manual testing, ISTQB fundamentals and +automation testing. SEDC is located in Skopje, North Macedonia.

+

Hands-On Lab Activities

+

The study program includes multiple individual and team projects, intermediate +exams and a final project. These are intended to exercise the most commonly used +test design techniques and practice writing up the test scenarios. All +scenarios are written directly in Kiwi TCMS. We've even seen test plans and +test cases created during Christmas and the New Year holidays last year!

+

The software under test is usually the programs developed by students +from our Academy for Programming, says Gjore. +Later in the program we use real websites in order to show some bugs in the +wild, he continues. On occasion students have found interesting problems with the websites of +Booking.com and WizzAir. They've also managed to find a critical issue on +one of our local systems. These are the trials and tribulations of +teaching & testing in the wild.

+
+

Kiwi TCMS team still remembers one of Alex's training sessions where we used +the website of an actual cinema. Unfortunately they went out of business +and shutdown the victimized website right in the middle of the session. ;-)

+
+

Why did you decide to use Kiwi TCMS

+

When searching for a TCMS platform for the academy one of the decisive +factors was cost. By being open source Kiwi TCMS has the side benefit of +having zero initial usage cost which was very important for us. +Regardless of that Kiwi TCMS is very easy to install & setup using Docker, +very easy to on-board new users and generally well received by everyone.

+
+

This is a huge benefit for students because they can experiment with Kiwi TCMS +and immediately see how some items work when executing testing workflows. +For example they can visualize how a regression test run looks like compared +to a test run for a critical security fix; or they can simulate working in +groups to cover execution of a larger test plan.

+
+

What do your students say

+

Overall they like the workflow and can easily navigate within the user interface. +They feel very positive because there is no complexity in the system and +it is very intuitive. One of the areas which often receives questions is +the ability to record test automation results!

+

Answer: Kiwi TCMS has the ability to fetch names and test results directly, via +plugins for several +test automation frameworks +while others are on our backlog - +TestNG, +Jenkins, +C#/NUnit! +Anyone interested is welcome to Subscribe to each GitHub issue and follow the progress. +Some issues are also part of our +open source bounty program so we urge students to +take a look and contribute!

+

Anything you want to ask our team

+

At SEDC we'd like to know what are your plans for Kiwi TCMS in the future?

+

Answer: Our plans, like our software, are transparent, check-out posts +tagged roadmap! For 2020 this is refactoring of the +last remaining legacy bits, continue work on our Telemetry feature and +more work towards integration with various bug trackers and test automation +frameworks. An extension to that is tighter integration with the GitHub +platform!

+

Help us do more

+

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

+ +


+Thanks for reading and happy testing!

+
+
+
+
+ +

Kiwi TCMS is partnering with Vola Software

+
+ + +
+ +
+

We are happy to announce that Kiwi TCMS is going to partner with +Vola Software to provide 2 interns with +opportunities for hacking open source and bootstrapping their careers!

+

Vola Software is a custom software development company +in one of the poorest regions of the European Union and a long-time contributor +to their local ecosystem via +Vratsa Software Community. +They are located in Vratsa, Bulgaria.

+

Internship program

+

Alexander Tsvetanov and +Vladislav Ankov are joining the Kiwi TCMS team +for a 10 month adventure until the end of July 2021 with the opportunity +to continue for another year afterwards!

+

Both Sasho and Vladi are students in the Professional Technical Gymnasium +in Vratsa and are required to work part-time as junior software developers during the +last 2 years of their education. Given that they have very limited practical +experience and the additional red tape around hiring youngsters many software +companies directly avoid such kind of relationship. This creates a catch-22 +circle for both employers who are looking to hire somewhat experienced young people +and youngsters who are looking to advance their practical skills.

+

Here's where Kiwi TCMS steps-in! What better way to improve practical knowledge +than contributing to an actively used and actively maintained open source software! +We are nearing the 200K downloads mark on Docker Hub so changes made by +Sasho and Vladi will be visible to a very big pool of our users and customers!

+

Both have already started their open source adventure last week and are currently +going through some training. However they were faced with real problems which +resulted in +bug discovery +and a +pull request for +python-bugzilla underlined by a +20 years old issue in Python. +How's that for a start ?

+

Administrative

+

Vola Software is the direct employer for Sasho and Vladi because they have the +necessary permits and experience required for hiring youngsters. Kiwi TCMS is +the direct technical mentor and will be acting as a customer to Vola Software!

+

Vola Software will be paying a minimal salary to our interns as required by law. +Kiwi TCMS will reimburse the full amount while Vola Software +will be covering their accounting and administrative expenses. +Both Sasho and Vladi will also be eligible for our +open source bounty-program as an extra stimulation!

+

All expenses will be fully transparent and visible via +our Open Collective page!

+

Help us do more

+

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

+ +


+Thanks for reading and happy testing!

+
+
+
+
+ +

Kiwi TCMS is partnering with MLH Fellowship program

+
+ + +
+ +
+

We are happy to announce that Kiwi TCMS is going to partner with the +MLH Fellowship +open source program which is a 12 week internship alternative for +students interested in becoming software engineers.

+

Major League Hacking (MLH) is a mission-driven B-Corp focused +on empowering our next generation of technologists. Every year, more than +100,000 developers, designers, and makers join the MLH community to gain +hands-on experience and build their professional networks. +They are headquartered in the Greater New York Area, USA but operate world-wide.

+

Fellowship program

+

The Fall 2020 cohort runs between October 5 - December 21 and we're already +into the Contributing phase of the program. +Fellow students will be working on +open issues from our backlog with +a focus on tasks from our +open source bounty program +but they can really work on any open task!

+

Once a pull request has been made it will undergo first round code review +by Cory Massaro +who is the dedicated MLH Python mentor. Once Cory gives the +1 +each pull request will be reviewed by a member of the Kiwi TCMS core team like usual.

+

To minimize the risk of conflicts between contributors we are going to apply +the following rules:

+
    +
  • Each MLH fellow would add a comment on the issue they are + interested in (applies to other contributors too);
  • +
  • The issue will be assigned to them (new);
  • +
  • The issue will be labeled with the + MLH Fellowship + label (new);
  • +
  • The following comment will be added: + This issue/bounty has been assigned to an MLH fellow who is currently + working on it. Pull requests towards the same issue from other contributors + will not be considered at this time. Please pick something else to work on!
  • +
+

Upon successful completion of tasks all MLH fellows will be eligible to claim their +bounties via our Open Collective page. This is +the same process other contributors go through, there is no difference.

+

Kiwi TCMS commits 2 core-team members who will serve office hours +on the MLH Fellowship Discord server for +couple of hours per week in order to answer questions and keep the ball rolling. +We also commit to having bi-weekly meetings with MLH mentor(s) during the +duration of the program.

+

Kiwi TCMS would also like to thank our friend +Eddie Jaoude for putting us in touch with MLH +and helping bring this partnership to reality. Thank you Eddie!

+

Help us do more

+

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

+ +


+Thanks for reading and happy testing!

+
+
+
+ + +
+

Hello testers, as you know our +friends at Pionir +are working on physical hardware which can be used for interactive training and +explanation of the Black-box testing technique. The inspiration +comes from James Lyndsay’s Black Box Puzzles and +Claudiu Draghia.

+

We have the source code of 3 boxes already published at +https://github.com/kiwitcms/black-boxes but still missing bill of materials, +design files for 3D printing and some basic instructions how to put everything +together. There was a delay in delivery of some components but most of the work +is close to completion. You may subscribe to +issues for each box to follow +the progress! Here are some images & videos from the development process.

+

Wason 2-4-6 box

+

Wason 246 box

+ + +

Peltzman effect box

+

Peltzman effect box

+ + +

Salience bias box

+

Salience bias box

+ + +

According to Pionir's own words: +We are testing the salience box and trying to cause emotional effect of an element. +Vuk made a mistake and now he can't turn it off :D. How's that for dogfooding?

+

Help us do more

+

If you like what we're doing and how Kiwi TCMS supports the various communities +around us please nominate us as GitHub Stars!

+


+Thanks for reading and happy testing!

+
+
+
+
+ +

Kiwi TCMS 8.7

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 8.7!

+

IMPORTANT: this is a medium sized release which includes +improvements, API changes, bug fixes, translation updates and +new tests. It is the fifth 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  1f2461b1facd    643 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.6

+
+

Improvements

+
    +
  • Update Django from 3.0.9 to 3.1.1

    +
  • +
  • Update django-attachments from 1.6 to 1.8

    +
  • +
  • Update django-extensions from 3.0.5 to 3.0.8

    +
  • +
  • Update psycopg2 from 2.8.5 to 2.8.6

    +
  • +
  • Update pygments from 2.6.1 to 2.7.0

    +
  • +
  • Update python-gitlab from 2.4.0 to 2.5.0

    +
  • +
  • Make it possible to use reCAPTCHA during registration. If you want to enable +this then add the following to your settings:

    +
    +if 'captcha' not in INSTALLED_APPS:
    +    INSTALLED_APPS.append('captcha')
    +
    +    RECAPTCHA_PUBLIC_KEY = '......'
    +    RECAPTCHA_PRIVATE_KEY = '.....'
    +    RECAPTCHA_USE_SSL = True
    +
    +

    For more info see https://www.google.com/recaptcha/admin/

    +
  • +
  • Replace GlobalLoginRequiredMiddleware with +tcms.kiwi_auth.backends.AnonymousViewBackend for anonymous read-only +functionality. See section +Anonymous read-only access +in the documentation

    +
  • +
  • Replace the ... in navigation bar with a 3 cogs icon to make the +object-level menu more visible

    +
  • +
+
+
+

Settings

+
    +
  • Remove setting PUBLIC_VIEWS
  • +
+
+
+

API

+
    +
  • Remove TestCase.get_components() in favor of Component.filter()
  • +
  • Bug.details() method will now return {} instead of failing if +it can't find an issue tracker from an URL
  • +
+
+
+

Bug fixes

+
    +
  • Remove documentation references to non-existing environment
  • +
  • Don't fail internal calls if Kiwi TCMS bug tracker can't find a bug
  • +
+
+
+

Refactoring & testing

+
    +
  • Add tests for tcms.core.templatetags. Closes +Issue #1602 (Mariyan Garvanski)
  • +
  • Add tests for tcms.bugs.views.Edit. Closes +Issue #1599 (Mfon Eti-mfon)
  • +
  • Add tests for tcms.bugs.views.AddComment. Closes +Issue #1600 (Mfon Eti-mfon)
  • +
  • Make paths used in migrations & settings platform aware in order to +enable development mode on Windows (Mfon Eti-mfon)
  • +
  • Add new linter checker to check for use of db_column argument in +model field definition. Closes +Issue #736 (Bryan Mutai)
  • +
  • Add tests for Bug.details API method
  • +
  • Replace deprecated ifequal/ifnotequal template tags
  • +
  • Adjust migrations_order for Django 3.1 compatibility
  • +
  • Add npm audit check in CI
  • +
  • Resolve several pylint issues
  • +
+
+ +
+
+

Kiwi TCMS Enterprise v8.7-mt

+
    +
  • Based on Kiwi TCMS v8.7
  • +
  • Overrides for setting PUBLIC_VIEWS have been removed
  • +
  • Update django-ses from 1.0.2 to 1.0.3
  • +
  • Update kiwitcms-github-app from 1.1 to 1.2
  • +
  • Update kiwitcms-tenants from 1.2.1 to 1.3.1
  • +
+

For more info see +https://github.com/kiwitcms/enterprise/#v87-mt-16-sep-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!

+
+ +
+
+
+
+ +

Please nominate @kiwitcms as a GitHub Star

+
+ + +
+ +
+

GitHub Star nomination

+

After our recent success +we again ask the community to support Kiwi TCMS.

+

Steps to reproduce:

+
    +
  1. Go to https://stars.github.com/
  2. +
  3. Click the Sign in button and Authorize the GitHub-Stars application
  4. +
  5. Make sure you are on the Nominate page, https://stars.github.com/nominate/
  6. +
  7. Type kiwitcms as the username. The @ character is provided automatically
  8. +
  9. Type the following text for your reasoning: + they took an abandoned project and turned it into the leading open source + test management system with more than 150k downloads with users & contributors + across the world!
  10. +
  11. Click on the checkbox to acknowledge your nomination
  12. +
  13. Click the Submit nomination button!
  14. +
+

Expected results:

+
    +
  1. You fit into the 180 characters provided for nomination
  2. +
  3. Your submission is recorded by GitHub
  4. +
+

Why are we doing this

+

GitHub Stars is a program that recognizes those who go above and beyond and help +inspire and educate their communities which is exactly what the +Kiwi TCMS team has been doing from our very start! +Checkout our community blog posts for more information!

+

This program will give us access to cool new features +on the GitHub platform and also let us showcase what we do before a larger audience!

+

Thank you for helping us and happy testing!

+
+
+
+
+ +

Kiwi TCMS is a finalist in the 2020 .eu Web Awards

+
+ + +
+ +
+

Click here to vote for Kiwi TCMS

+

Kiwi TCMS is happy to announce that our website https://kiwitcms.eu is a finalist +in the 2020 .eu Web Awards +in the Leaders category! Big Thank You to everyone who voted for us!

+

Our team is also very happy that we are not the only open source finalist. +Congratulations to the OpenScan project and their community!

+

We are still committed to keeping +our earlier promise +and use the award to represent the larger open source community! The decision +is now in the hands of the jury. Wish us good luck!

+
+
+
+
+ +

Kiwi TCMS 8.6

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 8.6!

+

IMPORTANT: this is a high severity security update which includes +improvements, bug fixes, database migrations, API changes, translation updates and +new tests. It is the fourth 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  f2c21b370cd9    639 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.5

+
+

Security

+
    +
  • A high severity vulnerability which allows unprivileged data access +via JSON-RPC endpoints has been fixed:
      +
    • Affects all previous versions of Kiwi TCMS
    • +
    • Instances on public networks, such as Amazon EC2, are at higher risk
    • +
    • Instances on private networks are still vulnerable to anyone who can +access the same network
    • +
    • This vulnerability has been disclosed by Michael Longmire (ShastaQA) +and Stone Pack (ShastaQA)
    • +
    +
  • +
  • Update marked from 0.8.2 to 1.1.1 for a medium severity vulnerability, see +SNYK-JS-MARKED-584281
  • +
+
+
+

Improvements

+
    +
  • Update django from 3.0.8 to 3.0.9

    +
  • +
  • Update django-attachments from 1.5 to 1.6

    +
  • +
  • Update prismjs from 1.20.0 to 1.21.0

    +
  • +
  • Update pygithub from 1.51 to 1.53

    +
  • +
  • Replace deprecated bleach-whitelist with bleach-allowlist

    +
  • +
  • Make django-extensions a production dependency because it provides +many useful manage.py commands

    +
  • +
  • Enable syntax highlight for code blocks

    +
  • +
  • Remove file attachments when related objects are deleted

    +
  • +
  • Add image and file upload buttons to text editor. Fixes +Issue #977

    +
  • +
  • Require auth.view_user permission when trying to view user profiles. +Fixes Issue #1685

    +
  • +
  • Multiple pages now explicitly require view permissions before displaying read-only +information. This gives administrators a finer grained control:

    +
      +
    • /bugs/<id>/ -> bugs.view_bug
    • +
    • /bugs/search/ -> bugs.view_bug
    • +
    • /cases/search/ -> testcases.view_testcase
    • +
    • /case/<id>/ -> testcases.view_testcase
    • +
    • /plans/search/ -> testplans.view_testplan
    • +
    • /plan/<id>/* -> testplans.view_testplan
    • +
    • /runs/search/ -> testruns.view_testrun
    • +
    • /runs/<id>/ -> testruns.view_testrun
    • +
    +

    Previously these pages only required the user to be logged in

    +
  • +
+

Warning:

+
+The auth.view_user permission is not granted by default because the +profile page contains personal information like names and email address. +Administrators can grant this permission on a group or individual basis +if they are OK with sharing this information.
+
+
+

Database

+
    +
  • Migrations which manipulate data (contain RunPython) can now be +rollbacked. See ./manage.py migrate --plan for the order in which +migrations are applied (Bryan Mutai)
  • +
  • Increase Product.name size from 64 to 255 characters
  • +
+
+
+

API

+
    +
  • Remove method TestExecution.create() in favor of TestRun.add_case()
  • +
  • Add method User.add_attachment()
  • +
  • Multiple API methods now explicitly require view permissions before returning +read-only information. This is in-sync with the per-page changes listed above:
      +
    • Bug.filter() -> bugs.view_bug
    • +
    • Bug.report() -> testruns.view_testexecution
    • +
    • Build.filter() -> management.view_build
    • +
    • Category.filter() -> testcases.view_category
    • +
    • Classification.filter() -> management.view_classification
    • +
    • Component.filter() -> management.view_component
    • +
    • PlanType.filter() -> testplans.view_plantype
    • +
    • Priority.filter() -> management.view_priority
    • +
    • Product.filter() -> management.view_product
    • +
    • Tag.filter() -> management.view_tag
    • +
    • TestCase.get_components() -> testcases.view_testcase
    • +
    • TestCase.get_notification_cc() -> testcases.view_testcase
    • +
    • TestCase.filter() -> testcases.view_testcase
    • +
    • TestCaseStatus.filter() -> testcases.view_testcasestatus
    • +
    • TestExecution.filter() -> testruns.view_testexecution
    • +
    • TestExecution.get_links() -> linkreference.view_linkreference
    • +
    • TestExecutionStatus.filter() -> testruns.view_testexecutionstatus
    • +
    • TestPlan.filter() -> testplans.view_testplan
    • +
    • TestRun.get_cases() -> testruns.view_testrun
    • +
    • TestRun.filter() -> testruns.view_testrun
    • +
    • User.filter() -> auth.view_user
    • +
    • Version.filter() -> management.view_version
    • +
    +
  • +
+
+
+

Bug fixes

+
    +
  • Update documentation to reflect that test cases cannot be rearranged from +within a TestRun but only from a TestPlan. Fixes +Issue #1805 (@Prome88)
  • +
  • Incorrect code formatting for HTML <pre> tags. Closes +Issue #1300
  • +
  • Fix a bug with the history handler when importing objects with ID field set. +Resolves a crash when trying to restore backup data
  • +
  • Delete comments when Bug is removed
  • +
+
+
+

Refactoring & testing

+
    +
  • Add linter to warn about missing backwards migrations callable in RunPython +and fix all pylint offenses. Fixes +Issue #1774 (Bryan Mutai)
  • +
  • Teach linter to check API for @permissions_required. Fixes +Issue #1089
  • +
  • Refactor NewExecutionForm to use ModelForm (Rosen Sasov)
  • +
  • Refactor UpdateExecutionForm to use ModelForm (Rosen Sasov)
  • +
  • Add tests for tcms.bugs.api. Closes +Issue #1597 (Mfon Eti-mfon)
  • +
  • Add tests for tcms.bugs.views.New. Closes +Issue #1598 (Mfon Eti-mfon)
  • +
  • Add tests for tcms.rpc.api.testplan. Closes +Issue #1627 (@lcmtwn)
  • +
  • Add tests for percentage() function References +Issue #1602 (Mariyan Garvanski)
  • +
  • Add the migrations_order command to help test rollbacks
  • +
  • Adjust code for deprecation warnings from Django 3.1
  • +
  • Use Python 3 style super() without arguments
  • +
  • Update login page to match our new website design
  • +
+
+ +
+
+

Kiwi TCMS Enterprise v8.6-mt

+
    +
  • Based on Kiwi TCMS v8.6
  • +
+

For more info see +https://github.com/kiwitcms/enterprise/#v86-mt-23-aug-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!

+
+ +
+
+
+ + +
+

Hello testers, we have very important news around how container images +for Kiwi TCMS will be distributed! Recently Docker has announced +several changes in their storage plans which makes it less viable for +our team to continue using their services in full!

+

Information about official upstream container images

+

The official upstream Kiwi TCMS container image will continue to be +publicly available via Docker Hub +as before. In addition all existing and new images will be available via +Quay.io. +These images are available as

+ +

Content is exactly the same between the two registries and you may use +the one which you like best!

+

Warning: after November 1st 2020 older versions will not be available from +Docker Hub, only from Quay.io! The reason is that Docker is enforcing a +6 month image retention limit +for free plans!

+

Information about private containers for subscribers

+

Subscribers enjoy the benefit of having read-only access to tagged versions of the +upstream Kiwi TCMS container images as well as access to tagged versions of +Kiwi TCMS Enterprise container images! Previously these containers were distributed +via Docker Hub and are now available via Quay.io:

+
    +
  • mrsenko/kiwitcms -> quay.io/kiwitcms/version (version tagged upstream images)
  • +
  • mrsenko/kiwitcms-enterprise -> quay.io/kiwitcms/enterprise (enterprise images)
  • +
+

Important: existing subscribers have been notified and granted access +to the new repositories on Quay.io. We advise you to update your +docker-compose.yml files and start using the new images at your earliest convenience!

+

Warning: existing subscribers will continue having access to private +repositories on Docker Hub until December 31st 2020! Private repositories on +Docker Hub will become unavailable after January 31st, 2021 when Docker's new +storage plans will be forced into effect!

+

Why did we chose Quay.io

+

There are multiple container registry services available! We think Quay.io +delivers the best price/quality ratio for our own use-case. In particular +we like the billing model around number of private repositories instead the +one around the number of users in your organization. That's very similar +to how we provide access to Kiwi TCMS via our own subscriptions!

+

Also it just looks cool if you employ your imagination, especially +for non-native English speakers: quay -> qu-ai -> QA!

+


+Thanks for reading and happy testing!

+
+
+
+
+ +

QGIS has chosen Kiwi TCMS

+
+ + +
+ +
+

We are happy to announce that QGIS has chosen Kiwi TCMS +for the basis of their Quality Assurance methodology and infrastructure +improvement program! +Kiwi TCMS will play a central role in storing test case definitions, +organizing test cycles, and assigning and tracking test executions by testers +from the QGIS community.

+
+ + +

+ QGIS is a free and open source geographic information system which contains + desktop, server, web and mobile applications for various operating systems. + It is an established project with very large and diverse community and also + one of the very well known open source GIS systems. +

+
+ +

The proposal +QEP#180 is the +highest voted proposal in the +2020 QGIS Grant Program +and has been awarded a budget of 5000€! +This grant will allow the proponents to spend significantly more time setting up the +infrastructure and planning a methodology for manual testing.

+

Scope of proposal

+

QEP#180 +aims to create the necessary infrastructure and methodology to organize and +encourage systematic testing before each QGIS release:

+
    +
  • Setup a test management system to organize test cycles, assign and track tests execution;
  • +
  • Elaborate and document a methodology to execute testing to help testers;
  • +
  • Resurrect and move the tester plugin to QGIS repositories. Publish it in the QGIS official repository
  • +
  • Create an initial set of relevant test cases;
  • +
  • Organize and execute the initial test cases for the next releases.
  • +
+

This effort will steer members & volunteers of the QGIS community towards a more systematic +and organized testing during a feature freeze period before a release. The focus here +is on integration testing, manual & semi-automated workflows for important functionality +that should never regress and is hard or impossible to cover via unit tests.

+

The proposal is lead by Alexandre Neto, Giovanni Manghi and Alexander Bruy!

+


+On behalf of the Kiwi TCMS community welcome aboard and happy testing!

+
+
+
+
+ +

Kiwi TCMS Enterprise v8.5.2-mt

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS Enterprise version 8.5.2-mt +and extended support hours for subscribers in America.

+

Note: this is only available to customers with an active +Enterprise subscription!

+

Docker images:

+
+mrsenko/kiwitcms-enterprise   8.5.2-mt      633291dd5219    887MB
+
+
+

Changes since Kiwi TCMS Enterprise v8.5.1-mt

+
    +
  • Based on Kiwi TCMS v8.5
  • +
  • Update django-ses from 1.0.1 to 1.0.2
  • +
  • Update kiwitcms-github-app from 1.0 to 1.1
  • +
+

This release includes improvements and bug-fixes for +kiwitcms-github-app.

+

An important change is how issues reported via our 1-click bug report feature +are presented on GitHub. For public repositories issues reported via +Kiwi TCMS + GitHub App integration +will be opened by @kiwitcms-bot with Kiwi TCMS as shown below:

+ +
+
+

Extended support hours

+

Working hours have been updated as follows:

+
    +
  • 09-21 UTC/Mon-Fri with response within 24 hours for Enterprise subscribers
  • +
  • 09-17 UTC/Mon-Fri with response within 72 hours for Private Tenant subscribers
  • +
+

Happy testing!

+
+ +
+
+
+ + +
+

Kiwi TCMS integration with 3rd party bug trackers supports the +1-click bug report feature. +However you may want to change how the initial information is structured or +even what exactly is written in the initial comment. This article +shows how to do this.

+

The default text used for 1-click bug reports gets compiled based on +information present in the TestExecution - Product, Version, TestCase.text, +etc. This is encapsulated in the +tcms.issuetracker.base.IssueTrackerType._report_comment() method. +You may extend the existing bug tracker integration code +with your own customizations. In this example I've extended the +KiwiTCMS bug tracker implementation but you can provide your own from +scratch

+
# filename: mymodule.py
+class ExtendedBugTracker(KiwiTCMS):
+    def _report_comment(self, execution):
+        comment = super()._report_comment(execution)
+
+        comment += "----- ADDITIONAL INFORMATION -----\n\n"
+        #
+        # fetch more info from other sources
+        #
+        comment += "----- END ADDITIONAL INFORMATION -----\n"
+        return comment
+
+ + +

Then override the EXTERNAL_BUG_TRACKERS setting to include your customizations:

+
EXTERNAL_BUG_TRACKERS.append('mymodule.ExtendedBugTracker')
+
+ + +

and change the bug tracker type, via https://tcms.example.com/admin/testcases/bugsystem/, +to mymodule.ExtendedBugTracker.

+

IMPORTANT

+
    +
  • Information how to change settings can be found + here
  • +
  • mymodule.py may live anywhere on the filesystem but Python must be + able to import it
  • +
  • It is best to bundle all of your customizations into a Python package and + pip3 install it into your customized docker image
  • +
  • API documentation for bug tracker integration can be found + here
  • +
  • Rebuilding the docker image is outside the scope of this article. Have a look + at this + Dockerfile + for inspiration
  • +
+

Happy testing!

+
+
+
+
+ +

Kiwi TCMS 8.5

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 8.5!

+

IMPORTANT: this is a medium sized release which includes many improvements, +database migrations, translation updates and new tests. +It is the third 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  4379e2438e43    636 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.4

+
+

Improvements

+
    +
  • Update django from 3.0.7 to 3.0.8
  • +
  • Update django-colorfield from 0.3.0 to 0.3.2
  • +
  • Update django-modern-rpc from 0.12.0 to 0.12.1
  • +
  • Update django-simple-history from 2.10.0 to 2.11.0
  • +
  • Update mysqlclient from 1.4.6 to 2.0.1
  • +
  • Update python-gitlab from 2.2.0 to 2.4.0
  • +
  • Update python-bugzilla from 2.3.0 to 2.5.0
  • +
  • Add middleware to warn for unapplied migrations. Fixes +Issue #1696 (Bryan Mutai)
  • +
  • Add "insert table" button to SimpleMDE toolbar. References +Issue #1531 (Bryan Mutai)
  • +
  • Implement kiwitcms-django-plugin. +Resolves Issue #693 (Bryan Mutai)
  • +
  • Add missing permission check for TestExecution.add_link() API method (Rosen Sasov)
  • +
  • Add missing permission check for TestExecution.remove_link() API method (Rosen Sasov)
  • +
  • Admin interface will now appear translated
  • +
  • Propagate server side API errors to the browser. Closes +Issue #625, +Issue #1333
  • +
  • Improvements for Status Matrix telemetry page:
      +
    • Make the horizontal scroll bar at the bottom always visible
    • +
    • Make the header row always visible
    • +
    • Add button to show columns in reverse. Fixes +Issue #1682
    • +
    • Make it possible to display TestExecutions from child TestPlans. Fixes +Issue #1683
    • +
    +
  • +
+
+
+

Database

+
    +
  • Update existing Bug tracker records to match the changes introduced with +the new EXTERNAL_BUG_TRACKERS setting
  • +
+
+
+

Settings

+
    +
  • Add EXTERNAL_BUG_TRACKERS setting which is a list of dotted class paths +representing external bug tracker integrations. Plugins and Kiwi TCMS admins +can now more easily include customized integrations
  • +
+
+
+

Refactoring & testing

+
    +
  • Add new linter to check for label arguments in form field classes. Fixes +Issue #738 (Bryan Mutai)
  • +
  • Add new linter to check if all forms inherit from ModelForm. Fixes +Issue #1384 (Bryan Mutai)
  • +
  • Enable pylint plugin pylint.extensions.docparams and resolve errors. Fixes +Issue #1192 (Bryan Mutai)
  • +
  • Migrate 'test-for-missing-migrations' from Travis CI to GitHub workflow. Fixes +Issue #1553 (Bryan Mutai)
  • +
  • Add tests for tcms.bugs.api.add_tag(). References +Issue #1597 (Mfon Eti-mfon)
  • +
  • Add tests for tcms.bugs.api.remove_tag(). References +Issue #1597 (Mfon Eti-mfon)
  • +
  • Add test for tcms.testplans.views.Edit. References +Issue #1617 (@cmbahadir)
  • +
  • Add tests for markdown2html(). Fixes +Issue #1659 (Mariyan Garvanski)
  • +
  • Add test for Cyrillic support with MariaDB. References +Issue #1770
  • +
+
+ +
+
+

Kiwi TCMS Enterprise v8.5-mt

+
    +
  • Based on Kiwi TCMS v8.5
  • +
  • Update django-ses from 0.8.14 to 1.0.1
  • +
  • Update kiwitcms-tenants from 1.1.1 to 1.2
  • +
  • Update social-auth-app-django from 3.4.0 to 4.0.0
  • +
  • Start tagging non-Enterprise images of kiwitcms/kiwi - will be provided +via separate private repository for enterprise customers. See +here
  • +
+

For more info see +https://github.com/MrSenko/kiwitcms-enterprise/#v85-mt-10-july-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-compose pull
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Refer to +our documentation +for more details!

+

Happy testing!

+
+ +
+
+
+ + +
+

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!

+ +
+
+
+
+ +

Versioned releases of Kiwi TCMS

+
+ + +
+ +
+

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 &amp; 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!

+
+ +
+
+ +
+ Newer Posts +

+ Page 3 / 7 +

+ Older Posts +
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/index4.html b/blog/index4.html new file mode 100644 index 00000000..2bcc7754 --- /dev/null +++ b/blog/index4.html @@ -0,0 +1,2211 @@ + + + + + Kiwi TCMS - Blog + + + + + + + + + + + + + + + +
+

Blog

+ +
+
+ +

Kiwi TCMS is partnering up with Pionir

+
+ + +
+ +
+

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!

+
+
+
+
+ +

Robot Framework plugin for Kiwi TCMS

+
+ + +
+ +
+

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 open source bounty program, Round 02

+
+ + +
+ +
+

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!

+
+ +
+
+
+
+ +

Kiwi TCMS open source bounty program, Round 01

+
+ + +
+ +
+

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

+
    +
  • Program will be split into multiple rounds as we work to clearly define + what needs to be done and adjust priorities
  • +
  • News and updates will be posted at https://opencollective.com/kiwitcms/updates/
  • +
  • You are expected to mostly work alone on issues
  • +
  • Technical discussion will be happening via GitHub pull requests and/or GitHub issues + under https://github.com/kiwitcms/Kiwi unless indicated otherwise
  • +
  • Translation related discussion will be happening via Crowdin under + https://crowdin.com/project/kiwitcms/discussions when needed
  • +
  • Do not contact individual team members privately, we are going to ignore such messages
  • +
+

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

+
    +
  • pylint - + #1192
  • +
  • JavaScript: Add buttons for creating tables in text editor - + #1531
  • +
  • Migration from Travis CI to GitHub workflows - + #1550, + #1551, + #1552, + #1553, + #1554
  • +
+

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!

+
+
+
+
+ +

Please vote for Kiwi TCMS in 2020 .eu Web Awards

+
+ + +
+ +
+

+ 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"
  • +
+
+
+

Translations

+ +
+
+
+

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 Open Source Seed Award winner

+
+ + +
+ +
+

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

Translations

+ +
+
+
+

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!

+
+
+
+
+ +

We're not participating in 'QA of the year' award

+
+ + +
+ +
+

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. +
    3. docker-compose down

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

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

      +
    8. +
    9. 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

      +
    10. +
    11. Proceed to upgrade your Kiwi TCMS container !

      +
    12. +
    +
  • +
+

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

Translations

+ +
+
+
+

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, +I have to admit that I made a rookie mistake and deleted the entire email database +for the Kiwi TCMS +newsletter! +And of course we didn't have a backup of this database :-(. Please +re-subscribe here +and read below if you are interested to know what happened.

+

Last week, while exploring how to cancel active subscriptions for our +deprecated GitHub Marketplace listing I found there is no way to cancel +those programatically. So I've compiled a list of email addresses and decided +to send subscribers an email asking them to cancel their subscriptions.

+

For this purpose I decided to import the contacts into Mailchimp because +it gives you a better interface to design the actual message, include images +in the message body, preview and test the message before it is sent! The import +of addresses went fine, new addresses were tagged appropriately to separate them +from the rest of the newsletter audience but they were not subscribed to +receive emails automatically.

+

I selected "non-subscribed" option when importing as a second barrier to +accidentally emailing people who do not want to receive regular news from us! +However it turned out Mailchimp can't send messages to non-subscribed addresses! +Maybe that's part of their attempts to be GDPR compliant.

+

So I decided to delete the freshly imported addresses, import them again +and this time tag + subscribe them during the import! When selecting the addresses +for deletion I am 99% confident I did filter them by tag first and then selected +DELETE! And the entire contacts list was gone!

+

I've also contacted Mailchimp immediately to ask whether or not the addresses +can be restored. Unfortunately they are trying to be super GDPR compliant and +claim they don't have this information into their system anymore. +And in this particular case we've been relying on the vendor to keep backups +on their end so didn't even think about trying to backup this database!

+

For users who have accounts at +https://public.tenant.kiwitcms.org +we do have +their email addresses but we're not going to automatically re-subscribe them. +We've stopped auto-subscribing +2 years ago and also there's +no way of telling which addresses were on the list in the first hand.

+

Please +re-subscribe here +and I promise we're going to start backing up the newsletter database as well.

+

Thank you!

+
+
+
+
+ +

GitHub OAuth tokens have been revoked

+
+ + +
+ +
+

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!

+
+
+
+
+ +

Project roadmap 2020

+
+ + +
+ +
+

Hello testers, +the Kiwi TCMS team sat down together last week and talked about what we feel +is important for us during the upcoming year. This blog post outlines our +roadmap for 2020!

+

roadmap image 2020

+

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 several key areas:

+
1) Team
+2) Technical
+3) Community
+
+ + +

Team

+

Right now we have a core team with 6 newcomers on-boarding. +Engineering performance is all over the place with some people contributing +too much while others contributing too little. More importantly there is no +consistent pace of contributions which makes planning timely completion of +technical tasks impossible.

+

At the moment we do operate as a bunch of disconnected people who happen to +talk to each other from time to time.

+

We are going to adjust our internal processes and how we on-board new members. +In fact we did our first "scrum-like" meeting this week and agreed to change +our existing practice and strive to become better as a team!

+

Goal: to have a cohesive team at the end of the year which operates with +a predictable capacity.

+

Goal: 1 PR/week/person as broad measure of individual performance.

+

Technical

+

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

+

Goal: complete remaining Telemetry features.

+

Goal: complete +bug-tracker integration milestone.

+

Goal: all pylint issues resolved.

+

Goal: migrate all remaining legacy templates to Patternfly UI. See +patternfly-migration milestone.

+

Goal: where FE sends AJAX requests to BE views replace with JSON RPC API instead.

+

Extra: start tackling the JavaScript mess that we have. This depends and is related +to Patternfly migration and overall refactoring.

+

Extra: make it easier for downstream installations to extend and override parts +of Kiwi TCMS in order for users to adjust the system to their own needs. +The system is pretty flexible as-is but there have been requests, +both online and offline, to provide some extra features! We'll start looking +into them, likely making partial progress in the next 12 months.

+

Community

+

Last year Kiwi TCMS had massive success at every single conference that we've been to. +Both project and team have been well received. While we are going to continue +being part of various communities around the world we are trying to limit +extensive travel and focus on functionality and partnerships which will +increase Kiwi TCMS eco-system, make the project even more popular and +drive further adoption!

+

Goal: extended GitHub integration via +kiwitcms-github-app plugin.

+

Goal: release the following +test automation framework plugins +for Kiwi TCMS:

+ +

For more information see +test-automation-plugins milestone.

+

Ongoing: work with our partners from the proprietary and open source worlds. +This is hard to quantify and lots of it doesn't actually depend on the team. +However we are continuing to talk to them regularly. Expect new feedback to +become available under GitHub Issues.

+

Extra: see what we can do about testing productivity! This has always been +part of our mission but we have not been able to produce anything worth sharing. +We do have ideas in this space but we are generally looking for partnerships and collaborations. +It is very likely that there will not be very much progress on this front +because it is hard to define it properly :-(.

+

Summary

+

At the end of the day most of these goals compliment each other and help drive all of +them to completion. Many of the still on-boarding people have expressed desire to +improve their Python & Django skills. Working to resolve issues in the above specific +areas will give them this opportunity! I expect they will show good progress on their respective +tasks so we can write more about them on this blog.

+

Happy testing!

+
+
+
+
+ +

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

Translations

+ +
+
+
+

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!

+
+ +
+
+
+
+ +

Kiwi TCMS is migrating from OAuth to GitHub App

+
+ + +
+ +
+

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

+
    +
  • Go to https://public.tenant.kiwitcms.org and + click the GitHub login icon, follow through with the process;
  • +
  • Go to https://github.com/apps/kiwi-tcms and + click the Install button, select account & repositories and complete the + process;
  • +
  • Share this blog post with friends, co-workers and other testers who might be + interested to help!
  • +
+

Thank you! Happy testing and happy new year!

+
+
+
+
+ +

Roadmap status report for 2019

+
+ + +
+ +
+

Hello everyone, in this article I will outline the progress that the Kiwi TCMS +team has made towards achieving the goals on our +2019 roadmap. +TL,DR: last year we've made lots of big and visible changes in Kiwi TCMS. +This year less so. Progress has been slower than before and not so much +visible. Community and team is growing. More contributors are welcome.

+

Complete the internal refactoring

+

Status: small progress, needs help

+

CodeClimate progress is:

+
    +
  • -60 code smells
  • +
  • -55 duplications
  • +
  • -50 other issues
  • +
  • 4.4% technical debt improvement
  • +
  • -240 hrs remaining until issues are fixed
  • +
+

The trend is showing less issues remaining +but it has been a slow progress. As we fix the easier items the remaining ones +become harder to deal with.

+

We've done minor work related to fixing issues reported by pylint. Around +150 of them still remain!

+

We have not done any targeted work to resolve other issues reported by Scrutinizer, +remove vendored-in JavaScript libraries, JavaScript refactoring or +classification of issues in 3rd party dependencies.

+

Redesign the UI templates with the help of Patternfly

+

Status: 60% done, needs help

+

There are 22 HTML templates remaining to be redesigned (from 59). That's mostly +due to internal cleanup and some refactoring! Test plan and Test run pages are the +two major templates that still need to be redesigned with Patternfly.

+

Modernize reporting aka Telemetry

+

Status: 60% done, in progress, behind schedule

+

The specs for the new Telemetry system +have been defined after taking into account feedback on GitHub issues. Anton Sankov is +the leading developer for this feature. So far we have 4 telemetry reports merged: +testing break-down, status matrix, execution trends and flaky tests.

+

There are lots of minor issues or missing functionality in these first iterations +(compared to specification). Work continues on the other telemetry use-cases +and related items.

+

Plugins for 3rd party test automation frameworks

+

Status: good, needs help

+

UPDATE: no change in last 6 months.

+

If you'd like to see plugins for more test automation frameworks +and/or file formats please checkout the +documentation +for links and more info.

+

Redefine bug-tracker integration

+

Status: 66% complete, in progress, behind schedule

+

We've been making slow progress on this milestone lately. For more info +see +https://github.com/kiwitcms/Kiwi/milestone/1

+

GitHub flow integration

+

Status: done, awaiting deployment

+

Our team spent some time making Kiwi TCMS the first open source TCMS available +on the GitHub Marketplace. At the end +of this year we were able to create a small application that allows further +integration and extending the testing workflow to the GitHub platform.

+

This is waiting on a few more clarifications from GitHub before we deploy but +for now it can be considered as done. Future functionality will be tracked +and developed directly at +https://github.com/kiwitcms/github-app/issues.

+

Agile integration with Trello

+

Status: no progress, will drop

+

This will be dropped from roadmap for the next year until we can get more interest +from the community.

+

Improve engineering productivity

+

Status: no progress

+

Looking for external help here. This will stay as a low priority item on our +roadmap for 2020 until we can free more resources on the team.

+

Community

+

Status: great, on track, needs work

+

This is our strongest area during this year. We have a strong presence in +multiple communities, our event schedule is very busy and we are gaining more +recognition every day! Core team hit several big bumps this year and is still +recovering with a few more people onboarding.

+

Kiwi TCMS suffers from the problem that many of our users can't be contributors +or simply don't want to!

+

In short: it is important for us to follow our mission and develop our core team +so we can deliver on promises made in our roadmap! That requires a lot of time and +effort which reduces short-term productivity.

+

Happy testing!

+
+
+
+
+ +

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

Translations

+ +
+
+
+

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!

+
+ +
+
+
+
+ +

Kiwi TCMS is going to FOSDEM 2020

+
+ + +
+ +
+

Stand at FOSDEM'19

+

Hello testers, Kiwi TCMS is going to FOSDEM 2020. +This is where you can find us:

+
    +
  • Fri Jan 31st: after 18:00 @ Delirium Café - + we are taking part of the FOSDEM Beer Event where all participants are invited. + Shout out with #KiwiTCMS on Twitter if you can't find us in the crowd
  • +
  • Sat Feb 1st: + Testing and Automation devroom - + we are proud to be co-hosting this devroom together with Linaro and SUSE. + CfP is open until Dec 10th 2019. Apply here!
  • +
  • Sun Feb 2nd: Open Source Test Management stand - + we will be together with our friends from SystemTestPortal and we are preparing + some real black-box testing for you!
  • +
+

We would like to meet with all of you and talk about software testing, test management and +test process organization. In case you are stuck for crazy ideas checkout +our project mission for inspiration.

+

Picture: FOSDEM'19 with Kiwi TCMS, ReportPortal & SystemTestPortal

+

Happy testing!

+
+
+ +
+ Newer Posts +

+ Page 4 / 7 +

+ Older Posts +
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/index5.html b/blog/index5.html new file mode 100644 index 00000000..3cd6984e --- /dev/null +++ b/blog/index5.html @@ -0,0 +1,2644 @@ + + + + + Kiwi TCMS - Blog + + + + + + + + + + + + + + + +
+

Blog

+ +
+
+ +

How to override bug details in Kiwi TCMS

+
+ + +
+ +
+

Starting with version 7.0 Kiwi TCMS pages displaying URLs to bugs also +contain an info icon which shows additional information as tooltip. These +are designed to provide more contextual information about the bug. By default +the tooltip shows the OpenGraph metadata for that URL. This article +will explain how to override this in 2 different ways.

+

bug details shown

+

Option #1: using the caching layer

+

Additional bug information is cached on the application layer. The cache +key is the bug URL! By default Kiwi TCMS uses local-memory caching which +isn't accessible for external processes but can be reconfigured very easily. +This example changes the CACHES setting to use a directory on the +file system like so

+
CACHES = {
+    'default': {
+        'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',
+        'LOCATION': '/tmp/kiwi-cache',
+        'TIMEOUT': 3600,
+    }
+}
+
+ + +

Then you need to poll your 3rd party bug tracker (and/or other systems) and +update the cache for each URL

+
from django.core.cache import cache
+from tcms.core.contrib.linkreference.models import LinkReference
+
+for reference in LinkReference.objects.filter(is_defect=True):
+    # possibly filter objects coming only from your own bug tracker
+    # in case there are multiple trackers in use
+
+    # custom methods to grab more information. Must return strings
+    title = fetch_title_from_bug_tracker(reference.url)
+    description = fetch_description_from_bug_tracker(reference.url)
+
+    # store the information in Kiwi TCMS cache
+    cache.set(reference, {'title': title, 'description': description})
+
+ + +

Then execute the Python script above regularly. For example use the following +as your cron script

+
#!/bin/bash
+export VIRTUAL_ENV=/venv
+export PATH=/venv/bin:${PATH}
+cat /path/to/cache_updater.py | /Kiwi/manage.py shell
+
+ + +

bug details from customized cache

+

IMPORTANT

+
    +
  • Kiwi TCMS expires cache entries after an hour. Either change + the TIMEOUT setting shown above or run your script more frequently
  • +
  • How to modify default Kiwi TCMS settings is documented + here
  • +
  • The Python + Bash scripts above don't need to be on the same system where Kiwi TCMS + is hosted. However they need the same Python 3 virtualenv and cache settings as + Kiwi TCMS does
  • +
  • Information about Django's cache framework and available backends + can be found here
  • +
  • memcached is a supported cache backend option, see + here
  • +
  • django-elasticache is a + backend for Amazon ElastiCache which provides several configuration examples
  • +
  • Both django-redis and + django-redis-cache are good + libraries which support Redis
  • +
  • Any 3rd party libraries must be pip3 install-ed into your own docker image
  • +
+

Option #2: extend bug tracker integration

+

Let's say you are already running a customized Docker image of Kiwi TCMS. Then +you may opt-in to extend the existing bug tracker integration code which provides +the information shown in the tooltip. In this example I've extended the +KiwiTCMS bug tracker implementation but you can even provide your own from +scratch

+
class ExtendedBugTracker(KiwiTCMS):
+    def details(self, url):
+        result = super().details(url)
+
+        result['title'] = 'EXTENDED: ' + result['title']
+        result['description'] += '<h1>IMPORTANT</h1>'
+
+        return result
+
+ + +

Then import the new ExtendedBugTracker class inside +tcms/issuetracker/types.py like so

+
index 9ad90ac..2c76621 100644
+--- a/tcms/issuetracker/types.py
++++ b/tcms/issuetracker/types.py
+@@ -17,6 +17,9 @@ from django.conf import settings
+
+ from tcms.issuetracker.base import IssueTrackerType
+ from tcms.issuetracker.kiwitcms import KiwiTCMS  # noqa
++from tcms.issuetracker.kiwitcms import ExtendedBugTracker
+
+ + +

and change the bug tracker type, via https://tcms.example.com/admin/testcases/bugsystem/, +to ExtendedBugTracker.

+

bug details extended internally

+

IMPORTANT

+
    +
  • ExtendedBugTracker may live anywhere on the filesystem but Python must be + able to import it
  • +
  • It is best to bundle all of your customizations into a Python package and + pip3 install it into your customized docker image
  • +
  • ExtendedBugTracker must be imported into tcms/issuetracker/types.py in order + for the admin interface and other functions to find it. You may also place the + import at the bottom of tcms/issuetracker/types.py
  • +
  • API documentation for bug tracker integration can be found + here
  • +
  • Rebuilding the docker image is outside the scope of this article. Have a look + at this + Dockerfile + for inspiration
  • +
+

NOTE: starting with Kiwi TCMS v8.5 +external bug tracker integration classes are listed in the EXTERNAL_BUG_TRACKERS +setting. If you are using v8.5 or newer instead of +importing ExtendedBugTracker in tcms/issuetracker/types.py you should +override the list of available bug tracker integrations:

+
EXTERNAL_BUG_TRACKERS.append('mymodule.ExtendedBugTracker')
+
+ + +

Happy testing!

+
+
+
+
+ +

Kiwi TCMS 7.1

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 7.1! +This is a small improvement update which includes +database schema and API changes, several other improvements, +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  c8cf36ac5ca5    602 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.0

+
+

Improvements

+
    +
  • Update django from 2.2.5 to 2.2.6
  • +
  • Update python-gitlab from 1.11.0 to 1.12.1
  • +
  • Update pygithub from 1.43.8 to 1.44
  • +
  • Update psycopg2 from 2.8.3 to 2.8.4
  • +
  • Add help tooltips in all telemetry pages
  • +
  • Better styling for checkboxes in 'Add hyperlink' dialog, +part of TestRun page
  • +
  • Add hyperlink validation. Fixes +Issue #1147
  • +
+
+
+

Database migrations

+
    +
  • Add bugs permissions to Tester group. Will make any difference +only if upgrading from existing installation
  • +
+
+
+

API

+
    +
  • New method Bug.remove()
  • +
+
+
+

Bug fixes

+
    +
  • Always build with the latest versions of translations
  • +
  • Add 'Delete' menu item in Bugs page. Fixes #1153 +Issue #1153
  • +
  • When deleting hyperlink from TestExecution hide the actual UI +elements from the page
  • +
  • Fix failure to delete TCs when the number of TCs inside TP is greater +than 100. Fixes +Issue #1149 and +Sentry KIWI-TCMS-8F
  • +
+
+
+

Refactoring

+
    +
  • Rename directory xmlrpc to rpc and pylint updates. Refs +Issue #682 +(Matej Aleksandrov, Sinergise)
  • +
  • Remove labels from form fields, Refs +Issue #652 (Azmi YÜKSEL)
  • +
  • New base class for tests around permissions (Svetlomir Balevski)
  • +
  • New "blueprint" test case around permissions to make testing in this area more +robust
  • +
  • Refactor many views from function based to class based
  • +
  • Update stale tests in tcms/core/tests/ and make sure they aren't ignored +by the test runner
  • +
  • Remove empty class XMLRPCBaseCaseForm
  • +
  • Remove XMLRPCNewCaseForm, duplicate of NewCaseForm
  • +
  • Remove rpc.forms.UpdateCaseForm in favor of XMLRPCUpdateCaseForm
  • +
  • Update only English sources with new strings as a temporary workaround b/c +Crowdin uses different formatting heuristics than gettext. This will minimize +the number of .po format changes
  • +
  • A few pylint fixes
  • +
+
+
+

Translations

+ +
+
+
+

Acknowledgments

+

A special "thank you" goes to our friends from +PyCon Balkan in Belgrade who allowed us to host +an open source coding sprint in Belgrade during the conference!

+

A second "thank you" goes to +Open Labs Hackerspace who hosted a localization +sprint in Tirana and contributed to several different languages!

+

Thank you for being part of our community. Version 7.1 includes all of your +contributions.

+
+
+

Website updates

+

We're using the opportunity to share that website is now serving via SSL courtesy +of GitHub and Let's encrypt.

+

Our main page has also been updated to showcase some of our customers: +Better (Slovenia), Minds, Inc. (USA), Musala Soft (Bulgaria). If you would like to +feature your corporate logo and tell us how you use Kiwi TCMS then +drop us an email!

+
+
+

Upcoming conferences

+

The next two events we are going to participate are:

+ +

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

+
+
+

Upcoming FOSDEM 2020

+

We are happy to announce that our team, together with SUSE and Linaro will be +hosting the +Testing and Automation Developer Room +at FOSDEM in Brussels next February.

+

Call for papers is open until December 10th 2019. Anything related to +software testing and open source is welcome. Apply from the link above.

+
+
+

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!

+
+ +
+
+
+
+ +

Kiwi TCMS 7.0

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 7.0! +This is a major release which includes security updates, +significant database schema and API changes, many improvements, +removed functionality, bug fixes, substantial internal refactoring and +several new languages. You can explore everything at +https://public.tenant.kiwitcms.org!

+

The 7.0 version number happily coincides with the fact that we've surpassed +70000 downloads from 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  d34dc6d896bf    584 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 6.11

+
+

Security

+
    +
  • API method BugSystem.filter() has been removed (now unused) but +it was possible to use this method to steal passwords or keys used for +Issue Tracker integration. This vulnerability could be exploited by +users logged into Kiwi TCMS and is classified as medium severity! +We advise you to change your integration API keys and passwords +immediately!
  • +
+
+
+

Improvements

+
    +
  • Update Django from 2.2.4 to 2.2.5
  • +
  • Update django-uuslug from 1.1.8 to 1.1.9
  • +
  • Update mysqlclient from 1.4.2.post1 to 1.4.4
  • +
  • Update python-bugzilla from 2.2.0 to 2.3.0
  • +
  • Update python-gitlab from 1.10.0 to 1.11.0
  • +
  • Update patternfly from 3.59.3 to 3.59.4
  • +
  • Reduce docker image size from 1.01 GB to under 600 MB
  • +
  • Add TestCase Health telemetry
  • +
  • Add support for Redmine issue tracker. Fixes +Issue #41 (Jesse C. Lin)
  • +
  • Add breathing room around HTML form's submit buttons (Rady Madjev)
  • +
  • New TestRun page action: bulk-add hyperlinks to TestExecution(s)
  • +
  • Make it possible to disable HTTPS by specifying the +KIWI_DONT_ENFORCE_HTTPS environment variable! Fixes +Issue #1036 (Marco Descher)
  • +
  • Documentation updates, including internal style checker. Fixes +Issue #1000 (Prome88)
  • +
  • When linking a TestExecution to a defect and choosing to update the +Issue Tracker Kiwi TCMS will not add a comment pointing back to +TR ID/summary/URL and TE ID/summary. This provides more detailed information +about the reproducer instead of just linking to a TestCase without any +specific execution details like we did in the past
  • +
  • Display additional defect information via Issue Tracker integration. +On Patternfly pages which show defect URLs this is accessible via a +small info icon. Fixes +Issue #117
  • +
  • Add minimalistic defect tracker functionality. Fixes +Issue #699
      +
    • integrated with Issue Tracker integration layer as if it was +an external system
    • +
    • when adding hyperlink to TestExecition (also via API method +TestExecution.add_link()) this is special cased and the +references between Bug and TestExecution are always updated
    • +
    • when clicking 'Report bug' from inside Test Execution the new +defect is reported automatically and a new browser window opens to +display the information
    • +
    +
  • +
+
+
+

Database migrations

+
    +
  • Tell the migration planner to apply +testruns.0006_rename_test_case_run_to_test_execution after +linkreference.0001_squashed. This enables subsequent migrations +and new functionality to be applied without crashing.

    +
    +
    +

    Warning

    +

    Django should be able to handle this automatically both for +existing installations and for new ones. In any case make sure +you backup your data first and make a dry-run to verify that +nothing breaks!

    +
    +
    +
  • +
  • Remove fields url_reg_exp, validate_reg_exp and description from +BugSystem model

    +
  • +
  • Update the following fields in LinkReference model:

    +
      +
    • rename test_case_run to execution
    • +
    • add indexing for created_on and url
    • +
    • add is_defect field
    • +
    +
  • +
  • Apply LinkReference permissions to default group Tester. Fixes +Issue #881

    +
    +
    +

    Warning

    +

    Administrators of existing applications will need to +apply these permissions by hand via the Admin section.

    +
    +
    +
  • +
  • Remove testcases.Bug model, replaced with LinkReference. +Closes Issue #1029 and +obsoletes Issue #320.

    +
    +
    +

    Note

    +

    Linking bugs to TestExecution is now performed via URLs instead of +keeping a reference to BUG-ID and trying to reconstruct the URL +on the fly.

    +
    +
    +

    Warning

    +

    The model named Bug which is added by subsequent migrations +refers to defects reported into Kiwi TCMS minimalistic defect tracker!

    +
    +
    +
  • +
  • New model bugs.Bug is now available. Permissions of type +bugs | bug | Can ... will be applied to the default group named +Tester only for new installations.

    +
    +
    +

    Warning

    +

    Administrators of existing applications will need to +apply these permissions by hand via the Admin section.

    +
    +
    +
  • +
+
+
+

API

+
    +
  • TestExecution.add_link() method now returns serialized +LinkReference object.
  • +
  • TestExecution.remove_link() method now accepts one parameter of type +dict used to filter the objects which to remove
  • +
  • TestExecution.get_links() method now accepts one parameter of type +dict instead of int
  • +
  • TestExecution.add_link() method signature changed from +(int, str, str) to (dict), where the single parameter holds field values for +the LinkReference model
  • +
  • Remove TestExecution.add_bug() method, use TestExecution.add_link()
  • +
  • Remove TestExecution.remove_bug() method, use +TestExecution.remove_link()
  • +
  • Remove TestCase.add_bug() method
  • +
  • Remove TestCase.remove_bug() method
  • +
  • Remove Bug.remove() method, use TestExecution.remove_link()
  • +
  • Remove Bug.create() method, use TestExecution.add_link()
  • +
  • Add method Bug.details() which together with the underlying +IssueTracker.details() is the foundation of how Kiwi TCMS fetches +extra details from the issue tracking system. The default implementation +uses OpenGraph protocol to collect the data that will be shown. You may +override .details() for each issue tracker (or add your own IT) to +extend this functionality. Information is cached for 1 hour by default. +References +Issue #117
  • +
  • Add methods Bug.add_tag() and Bug.remove_tag()
  • +
  • Existing method with name Bug.filter() has changed behavior. It is +now used to query objects from Kiwi TCMS minimalistic defect tracker
  • +
+
+
+

Removed functionality

+
    +
  • Remove IssueTrackerType.all_issues_link() method. This was used in +TestRun Report page to show a single link that will open all bugs in the +Issue Tracker. Most trackers don't support this and the UI portion has +been rewritten
  • +
  • Remove LinkOnly issue tracker - obsolete because all defects are +now added to TestExecutions via their URLs
  • +
  • Remove bulk-add/bulk-remove of bugs in TestRun page, replaced by bulk-add +for hyperlinks
  • +
+
+
+

Settings

+
    +
  • Respect the CACHES setting, see +Django docs +for more info. Initially this setting is used to cache defect details received +via Issue Tracker integration. See +Issue #117
  • +
+
+
+

Bug fixes

+
    +
  • Don't auto-download FontAwesome for SimpleMDE. Resolves icons disappearing +on pages which have the markdown editor. Fixes +Issue #905
  • +
  • Reorder HTML elements so Delete button is still visible in TestCase review +comment section. Fixes +Issue #1013 (Rady Madjev)
  • +
  • Remove section that displays bugs in TestExecution container. Bugs are now +denoted by a small icon next to their hyperlink. Closes +Issue #475
  • +
  • Cache Issue Tracker connections per base_url. Fixes +Issue #290
  • +
+
+
+

Refactoring

+
    +
  • Lots of refactoring from function based views to class based views (Rady Madjev)
  • +
  • Use JavaScript and the API to remove case execution instead of dedicated +backend function (Rady Madjev)
  • +
  • Update pylint directives around missing permissions (Svetlomir Balevski)
  • +
  • Fix typo in identifier. Fixes +CID 344186
  • +
  • Use TestExecution.add_link() and TestExecution.remove_link() in UI +instead of dedicated backend function.
  • +
  • Remove unused LinkReference views, forms and tests modules
  • +
+
+
+

Translations

+ +

For more information check-out +all supported languages. +To request new language +click here!

+
+
+
+

junit.xml-plugin v0.4

+

A few days ago we have also released +kiwitcms-junit.xml-plugin +v0.4 with the following changes:

+
    +
  • Update junitparser from 1.3.2 to 1.3.4
  • +
  • Also support XML files with <testsuites> root tag (Katalon Studio). Fixes +Issue #9
  • +
+
+
+

tap-plugin v0.4

+

We have also released +kiwitcms-tap-plugin +v0.4 with the following changes:

+
    +
  • Include traceback from TAP file as TestExecution comment. Fixes +Issue #7 +(Christophe CHAUVET)
  • +
+
+
+

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!

+
+ +
+
+
+
+ +

Open source sprints at PyCon Balkan in Belgrade

+
+ + +
+ +
+

Next month our team will be at +PyCon Balkan, Oct 3-5 in Belgrade. Together with +presentation and a workshop we are going to host open source sprints! +These will be an informal gathering where participants will be able to +learn more about how open source works and go through their first +contributions. This is ideal for students and less experienced people +but we welcome everyone. There will be tasks ranging from easy to very hard!

+

Who: 4 mentors from Kiwi TCMS and you!

+

What: full day of peer programming and contributing to Kiwi TCMS

+

Where: room will be announced on the days of the conference, + follow @KiwiTCMS for more info

+

Why: up your tech skills, build your GitHub profile and have fun together

+

Translate Kiwi TCMS

+

Difficulty: easy

+

We have enabled Serbian language in our translation system. To get started +checkout our +translation contribution +page. +Once strings are translated kiwitcms-bot will automatically open a pull +request with the new text.

+

Find unused CSS classes

+

Difficulty: easy

+

This should be relatively easy. For each class/selector defined in our CSS files +search (grep) if any of the HTML templates use it. If it is not in use then remove +it.

+

Find unused JavaScript code

+

Difficulty: easy

+

Similar to the above. We're not 100% certain but there could be legacy JavaScript +functions which are no longer in use. Find them and remove them! At the very least +you have confirmed that all functions are in use!

+

CodeClimate Minor severity issues

+

Difficulty: easy to moderate

+

Check-out the +list of Minor severity issues. +There are many of them:

+
    +
  • CSS lint issues (we suggest you start with this one)
  • +
  • functions longer than 25 lines of code
  • +
  • functions with bigger cognitive and cyclomatic complexity
  • +
  • modules longer than 250 LOC
  • +
+

Try fixing a few to see how it goes and continue if you feel confident. +Not everything may be an issue so if you have any questions ask someone from our team.

+

CodeClimate Major severity issues

+

Difficulty: moderate to hard

+

Check-out the +list of Major severity issues. +There are around 150 of them:

+
    +
  • identical and similar code blocks
  • +
  • big modules
  • +
  • big functions
  • +
+

Most of these require some sort of refactoring, either splitting snippets +of code into smaller pieces (functions or sub-modules) or using one function +in several places instead of 2 very similar but different functions, etc. +Ask our team members about which approach they prefer for fixing these issues +to minimize the effort spent here.

+

CodeClimate Critical severity issues

+

Difficulty: hard

+

Check-out the +list of Critical severity issues. +All of these are functions with high cognitive complexity and +the recommended way to deal with them is refactoring into +class based views.

+

Improve pylint health

+

Difficulty: easy

+

Execute pylint against the latest sources and start fixing the issues. +Looking at pylint logs the +following items are relatively easy to work on:

+
    +
  • Everything in module tcms.urls
  • +
  • Everything in module tcms.telemetry.api
  • +
  • Everything in module tcms.testruns.tests.test_views
  • +
  • Everything in module tcms.xmlrpc.forms
  • +
  • Everything in module tcms.testcases.tests.test_models
  • +
  • Everything in module tcms.core.forms.fields
  • +
  • Everything in module tcms.settings.common
  • +
  • Everything in module tcms.settings.test
  • +
  • All module-in-directory-without-init errors reported for module tcms.tests.__init__
  • +
+

Note: fixme, missing-permission-required and avoid-auto-field errors are usually harder +to resolve and will require more work/refactoring. If you feel confident go ahead and +fix them, if not skip to the next error message.

+

We also use a custom pylint checker which reports function based views. +If you are looking for something harder to work on, then give it a try +(see 3rd pylint line in Makefile) and refactor some of the existing +view functions into class based views.

+

Fix 3rd party security issues discovered by Bandit

+

Difficulty: moderate to hard

+

Bandit is a static analysis tool similar to pylint. It focuses on discovering +issues which may lead to security vulnerabilities. We have resolved all such +issues in our own source code but we also execute Bandit against the entire +Python dependency stack. There it finds thousands of issues, so much so that +the reporter crashes.

+

In CI there are around +130 issues reported. The best course of action here is to execute Bandit locally +against the offending library and then figure out what to do:

+
    +
  • report an issue upstream
  • +
  • send a pull request upstream
  • +
  • if these are test files maybe exclude them from the package (e.g. don't ship them for production)
  • +
+

Note: inside Travis CI we have all runtime and testing dependencies which is more +than what we have inside the official Docker image for Kiwi TCMS.

+

Work on reported issues

+

The following issues look suitable for a sprint and don't require lots of +background knowledge. You can also find them using the +PyConBalkan label on +GitHub:

+
    +
  • #212 - moderate - Convert jQ to $ - + this is an easy search & rename but will require more extensive manual testing
  • +
  • #431 - moderate to hard - Remove JavaScript fireEvent() - + 17 matches in static/js/. Must be replaced with direct function calls
  • +
  • #652 - easy - Removal of labels from form fields - + all labels must be included in the HTML template and marked for translation
  • +
  • #681, #682 - moderate - + Move API modules & their tests from xmlrpc/api/<app>.py to <app>/api.py. These have good test + coverage so you have to make sure you don't break anything
  • +
  • #971 - moderate - manage.py command for changing Site URL - + will help with automatic provisioning, e.g. Ansible. For howto see + Django docs
  • +
  • #1021 - moderate - Update TestCase page UI to allow adding TestPlans to cases - + use TestPlan.add_case() API method and refresh the widget. See how Tags and Components cards work + in the same page
  • +
  • #1070 - moderate - manage.py command for checking email settings - + will help with troubleshooting misconfigured email. Must raise exceptions if something fails. + For howto see + Django docs
  • +
  • #733, + #736, + #738, + #883, + #1089 - hard to very hard - New checkers for pylint - + Kiwi TCMS uses customized pylint checkers to discover various conditions. We need a few more + of them and/or update of the existing ones
  • +
+

We hope to see you in Belgrade. Until then: Happy testing!

+
+
+
+
+ +

Kiwi TCMS conference presence, AW2019

+
+ + +
+ +
+

Your favorite open source test case management system is going on tour again. +During the next several months we will be at:

+ +

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

+
+
+
+
+ +

Kiwi TCMS 6.11

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 6.11! +This is a security and improvement release which updates +many internal dependencies, adds 2 new Telemetry reports, updates +TestPlan and TestCase cloning pages and provides several other +improvements 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  6a8249d23a67    1.011 GB
+kiwitcms/kiwi       6.2     7870085ad415    957.6 MB
+kiwitcms/kiwi       6.1.1   49fa42ddfe4d    955.7 MB
+kiwitcms/kiwi       6.1     b559123d25b0    970.2 MB
+kiwitcms/kiwi       6.0.1   87b24d94197d    970.1 MB
+kiwitcms/kiwi       5.3.1   a420465852be    976.8 MB
+
+
+

Changes since Kiwi TCMS 6.10

+
+

Security

+ +
+
+

Improvements

+
    +
  • Update python-gitlab from 1.8.0 to 1.10.0
  • +
  • Update django-grappelli from 2.12.3 to 2.13.1
  • +
  • Update django-simple-history from 2.7.2 to 2.7.3
  • +
  • Update django-attachments to 1.4.1
  • +
  • Update PyGithub from 1.43.7 to 1.43.8
  • +
  • Update patternfly to version 3.59.3
  • +
  • Update prismjs to version 1.17.0
  • +
  • Add Testing Status Matrix telemetry
  • +
  • Add Testing Execution Trends telemetry
  • +
  • Make it possible to attach files directly inside Test Plan page
  • +
  • Make it possible to attach files directly inside Test Execution widget
  • +
  • Convert Clone TestPlan page to Patternfly, greatly simplify the UI +and update behavior:
      +
    • Cloned TP author will always be set to the current user
    • +
    • Cloned TC author will always be set to the current user
    • +
    • Always keep the original default tester for test cases when cloning
    • +
    • Refactor to class based view
    • +
    • Fix a problem where Version values failed form validation b/c +we've been trying to filter based on non-existing field +product_id instead of just product
    • +
    • Fixes a problem where erroneous Version value was shown in the UI
    • +
    +
  • +
  • Convert Clone TestCase page to Patternfly, greatly simplify the UI +and update behavior. Fixes +Issue #838:
      +
    • Allow cloning into multiple test plans
    • +
    • Remove 'Filter another plan' option. Will be replaced by +'Add TP to TC', see +Issue #1021
    • +
    • Always update sortkey. Cloned TC will show at the bottom of the +TestPlan
    • +
    • Cloned TC author will always be set to the current user
    • +
    • Always keep the original default tester
    • +
    +
  • +
+
+
+

API

+
    +
  • First parameter of RPC method Bug.report() +has been renamed from test_case_run_id to execution_id. This may +break existing API scripts which try to pass this argument by name +instead of by position!
  • +
+
+
+

Settings

+
    +
  • Allow ENV variables KIWI_USE_TZ and KIWI_TIME_ZONE to control +settings USE_TZ and TIME_ZONE. Fixes +Issue #982 (Jason Yi)
  • +
+
+
+

Bug fixes

+
    +
  • Fix wrong permission label when deleting comments. Fixes +Issue #1010
  • +
+
+
+

Refactoring

+
    +
  • Disable unnecessary pylint messages for missing-permission-required +checker (Svetlomir Balevski)
  • +
  • Remove unnecessary from_plan URL variable making cleaner URLs
  • +
  • kiwi_lint: Don't check nested functions for permissions
  • +
  • Remove and regroup JavaScript functions
  • +
  • Instruct pyup-bot to monitor requirements/tarballs.txt for updates
  • +
+
+
+

Translations

+ +
+
+
+

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!

+
+ +
+
+
+
+ +

Contributor profile: Aneta Petkova

+
+ + +
+ +
+

Happy Monday, testers! +In this series we are introducing the contributors behind Kiwi TCMS. +This is our community and these are their stories.

+
+ + Aneta Petkova - QA Chapter Lead at SumUp + + +

+ Aneta is a software engineer navigating the complex field of QA + since her first "grownup" job. She's been working in the area of + test automation for web applications using different programming languages and tools. + + Her mission is to inspire people to think about quality from the + very inception of ideas and to blur the line between developers and + QA specialists. +

+ + + + + + + + + + + + +
+ +

What is your professional background

+

I have an engineering degree in computer science and I've spend the last 8 years in Quality Assurance. +Java, TestNG and UI automation with Selenium WebDriver are my strongest technical skills but +I use different programming languages and tools.

+
+

I believe languages and tools should only support an engineer and never define them.

+
+

Currently I am the QA Chapter Lead at SumUp, +where I can work towards achieving my goals in an amazing team of people that do what they love.

+

When did you use open source for the first time

+

The first time I remember was in 2011, but I've probably used it before and just didn't pay attention. +To me it seemed the same as proprietary, and I guess that means it was good.

+

Describe your contributions to the project

+

I created kiwitcms-junit-plugin. +This is a native Java library which you can install via Maven Central. It +will discover your automated test suite and publish test execution results in +Kiwi TCMS. This plugin is very simple and requires only minimal configuration +before it is ready to work. +Check-out the example in TP-25!

+

editor comment: Aneta and Ivo (Kiwi TCMS) hosted the +"Git crash course" workshop at HackConf 2018. +Kiwi TCMS will be hosting 2 workshops this year so stay tuned!

+

Why did you decide to contribute to Kiwi TCMS

+

I had recently switched Java for Ruby and I was feeling nostalgic. +Also, I had spent my entire career so far in QA and I wanted to slip on +the developer shoes for at least a little bit.

+

Was there something which was hard for you during the contribution process

+

I'm used to working in a team and when I started working on this project +I was the only active Java developer. Luckily for me, I live in the time of StackOverflow, +so I managed to get most of my questions answered by strangers on the Internet.

+
+

I learned tons of stuff, but mostly I learned I can build software, not just test it!

+
+

Which is the best part of contributing to Kiwi TCMS

+

Doing something that has the potential to help others and that could be improved upon.

+

What is next for you in professional and open source plan

+

My current focus is moving slightly into DevOps direction and I am really overwhelmed +by the amount of things to learn. I feel there is so much I want to experiment with. +I am not really planning anything related to open source - it has never been a goal for me - +but when I come across a project I feel strongly about, I'd probably be tempted to contribute.

+

Thank you, Aneta! Happy testing!

+
+
+
+
+ +

Contributor profile: Primož Klemen

+
+ + +
+ +
+

In this new series we are going to introduce the contributors behind Kiwi TCMS. +This is our community and these are their stories.

+
+ + Primož Klemen - + QA tester, full time dad, Manchester United F.C. supporter + +

+ Primož is an early adopter and our Slovenian translator. He's been actively engaging + in GitHub issues, posted pull requests for improving documentation and follows us on + StackOverflow as well. +

+ + + + + + + + +
+ +

What is your professional background

+

I've started working in IT as tech support for the 2nd largest Slovenian ISP at the time. +Then I've been at leading software provider for fintech in the Balkans region in the same +role and gradually transitioned into QA role. Currently, I'm working as a QA tester for +Better (by Marand) and ensure, with help of my colleagues of course, +proper quality of administration application for health care sector.

+

When did you use open source for the first time

+

If I recall correctly that would be some 14 years ago when I ditched dreaded +Internet Explorer in favor of Mozilla Firefox browser. The whole Internet got better in +a matter of seconds.

+

What are your contributions to Kiwi TCMS

+

I mainly contribute via translating the application into my native language, Slovenian. +Currently there are +7 languages available for Kiwi TCMS so you are +more than welcome to join and add another one. +Translating via Crowdin +is very simple and requires no additional technical skills. I've also dabbled into project +documentation and proposed a few updates to it. I'm also the culprit for some +32 issues and counting, +the majority of them being proposals for future application enhancements and few UX/UI bugs +(déformation professionnelle :-)).

+

Why did you decide to contribute to Kiwi TCMS

+
+

The guys and gals from the Kiwi TCMS team provided us with an application which solved +our pain about building, maintaining and running manual regression tests.

+
+

They did all of that for free in their spare time! So I've decided to give something back to +the whole community. This was indeed my first +contribution to the open source world but not the last. Since then I've also +contributed to other projects which I use on a regular basis.

+
+

In hindsight, Kiwi TCMS converted me from an open source user to open source contributor!

+
+

Was there something which was hard for you during the contribution process

+

Contributing to the project, as a non-developer, is very easy and intuitive by +either opening issues on GitHub or translating via Crowdin or even committing +updated documentation to git repository through GitHub Desktop client. +All of the aforementioned was new to me and I've learned in depth how to use +these tools. I've also had the pleasure to familiarize myself with project documentation +- Sphinx and reStructuredText are my two new best friends.

+

Which is the best part of contributing to Kiwi TCMS

+

Being able to actively improve an application that we use on a daily basis in our +development process. Getting to know more people from all around the globe and see their +insights about software quality assurance thus learning something new every day.

+

What is next for you in professional and open source plan

+

Professionally I'm 100% committed to Better (by Marand) and helping us achieve +the best standard of quality for health care applications which also incorporates +using the knowledge gathered by following and/or contributing to open source. +I'm going to continue contributing to Kiwi TCMS and +Captura and if time allows maybe involve myself with some other interesting projects.

+

Thank you, Primož! Happy testing!

+
+
+
+
+ +

Mid-year roadmap status report

+
+ + +
+ +
+

Hello everyone, in this article I will outline the progress that the Kiwi TCMS +team has made towards achieving the goals on our +2019 mission and roadmap. +TL,DR: Kiwi TCMS has made progress since January, it's been tough and may not have been +very visible. I feel like we've been behind schedule till now! The greatest +positive thing has been community and team development!

+

Complete the internal refactoring

+

Status: minimal progress, needs help

+

CodeClimate progress is:

+
    +
  • -30 code smells
  • +
  • -40 duplications
  • +
  • -30 other issues
  • +
  • 4% technical debt improvement
  • +
  • -200 hrs remaining until issues are fixed
  • +
+

This is mostly the result of code reviews and minor fixes, not targeted work.

+

We have not done any targeted work to resolve other issues reported by Scrutinizer, +Pylint, remove vendored-in JavaScript libraries, JavaScript refactoring or +classification of issues in 3rd party dependencies.

+

There are new people onboarding in the team right now and our plan is for +them to start grinding at these issues very soon!

+

Redesign the UI templates with the help of Patternfly

+

Status: 50% done, needs help

+

There are 27 HTML templates remaining to be redesigned (from 59). That's mostly +due to internal cleanup than targeted refactoring. More work on this item +will probably follow towards the end of the year after we get more priority items out of +the way and get more of the new team members rolling!

+

Modernize reporting aka Telemetry

+

Status: in progress, a bit behind schedule

+

The specs for the new Telemetry system +have been defined after taking into account feedback on GitHub issues. Anton Sankov is +the leading developer for this feature. So far we have 2 telemetry reports merged: +testing break-down and status matrix. The next one will be execution trends.

+

There are lots of minor issues or missing functionality in these first iterations +(compared to specification). Our plan is to have the major use-cases satisfied first +and then work to refine all of the existing telemetry pages.

+

Plugins for 3rd party test automation frameworks

+

Status: good, needs help

+

Until now we have released TAP, junit.xml and native JUnit 5 plugins. There's also +a PHPUnit plugin which is more or less complete but unreleased yet. Both JUnit 5 +and PHPUnit plugins are developed by external contributors!

+

We often get asked for plugins for languages and frameworks we don't use or don't +even know! Given that our expertise is mostly in Python we will gladly accept your +pull requests if you decide to maintain or contribute to one of the plugins. This +will also help us get insight into what automation frameworks people are using +and how exactly you structure a test automation workflow around Kiwi TCMS.

+

Checkout the +documentation for links +and more info.

+

Redefine bug-tracker integration

+

Status: no progress

+

Last week, right after OpenExpo, we did a check-up session and this was one of the +areas identified with zero amount of progress. I have a strong preference to work +on this feature myself but have not been able to due to various other items that +need my attention.

+

The short version is that I'd prefer to remove all issue tracker specific code +and allow the tester to add arbitrary URLs to link to existing bugs. How to do +integration (even as simple as publishing a comment in the bug tracker) over +a generic interface still eludes me. In the next few weeks I will kick-off this +topic with a separate blog post/issue for everyone to comment on.

+

GitHub flow integration

+

Status: no progress

+

Our team spent some time making Kiwi TCMS the first open source TCMS available +on the GitHub Marketplace. We will +continue this integration effort and flow integration will emerge from that. +There's also many things that need to be done to satisfy GitHub's .

+

Agile integration with Trello

+

Status: no progress

+

Improve engineering productivity

+

Status: no progress

+

Our mission is to transform testing in your organization by providing +the tools for that via Kiwi TCMS. It is astonishing that so far nobody has provided +any kind of feedback in Issue #703 +wrt improving productivity in their teams!

+

We have some ideas which have been blocked by lack of resources on the team and +refactoring tasks. Because we've adopted this as our mission this is an important +item for us and we'll continue working on it as resources allow. +Progress is to be expected towards the end of the year.

+

Community

+

Status: great, on track, needs work

+

This is our strongest area during the year so far. We have a strong presence in +several communities, our event schedule is busy enough and we are gaining more +recognition every day!

+
    +
  • Hosted project stand at 3/5 conferences with 2 more on-track
  • +
  • Won the OpenAward for Best Tech Community
  • +
  • Hosted several presentations and workshops with few more on track
  • +
  • Found new talent to join the core team: 2 just ready to start contributing, 5 more in training
  • +
  • 1 more senior engineer as a mentor. We also have a few independent wanna-be contributors + and will be hosting qualification interviews for marketing assistant very soon
  • +
  • There are contributions and pull requests coming from users of Kiwi TCMS as well. + We'd like to see more of course.
  • +
  • There are a couple of open source projects and companies using Kiwi TCMS who + are friendly towards the project. We are working with them to get a public + endorsement on the website and engage in more technical work together. Of course + everyone has limited resources and is very busy :-(
  • +
  • Sponsors on OpenCollect are just + a few but we didn't have any previously so this is a good sign.
  • +
+

This is the moment to mention that not all is honey and roses in open source land. +Kiwi TCMS suffers from the problem that many of our users can't be contributors +or simply don't want to!

+

Manual testers can't program. This is a fact and a good sized chunk of our user base +actually performs manual testing. Those that can write automation and probably +code decently well may not be familiar with Python and Django. At least in Bulgaria +these two aren't very popular, definitely not among testers. That is to say this part +of the user-base simply doesn't have the necessary skills to contribute and the majority +of what we need is code contribution!

+

Another (fairly big IMO) group of users are coming from proprietary companies who +view open source and Kiwi TCMS as a zero cost option. Something that they take free +of charge and use it without ever contributing back. They don't understand nor really +care about the open source culture.

+

To make things worse we receive requests every single day via +our private email addresses or questions via IM despite our website clearly stating +community engagement rules. On a few occasions we have received very rude comments +of the sort "our company demands you fix this", "is this going to be ready this year" +(context implying entitlement), etc. To make things more ridiculous we've even received +support requests (via contact form) from companies and start-up +who get their return address wrong so we can't get in touch directly!

+

In short: don't demand anything from us unless you are ready to pay for it, work for it +yourself or propose a mutually beneficial scenario. We do try to keep the community +happy but more importantly follow our mission and develop our core team!

+

Happy testing!

+
+
+
+ + +
+

Image of the award

+

Kiwi TCMS is the winner at OpenAwards'19 category Best Tech Community! +Big thanks to the jury, our contributors and core-team and the larger +open source and quality assurance communities who voted for us and supported +the project during all of those years.

+

This award is the best present we could get to mark the 10th anniversary +of the project. More news of how we are progressing with current roadmap will +follow soon in a separate blog post.

+

Thank you & happy testing!

+
+
+
+
+ +

Kiwi TCMS 6.10

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 6.10! +This is a small security and improvement update. +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  bbb581d60ed1    1.005 GB
+kiwitcms/kiwi       6.2     7870085ad415    957.6 MB
+kiwitcms/kiwi       6.1.1   49fa42ddfe4d    955.7 MB
+kiwitcms/kiwi       6.1     b559123d25b0    970.2 MB
+kiwitcms/kiwi       6.0.1   87b24d94197d    970.1 MB
+kiwitcms/kiwi       5.3.1   a420465852be    976.8 MB
+
+
+

Changes since Kiwi TCMS 6.9

+
+

Security

+
    +
  • Update Django from 2.2.1 to 2.2.2 for medium severity +CVE-2019-12308 (XSS), CVE-2019-11358 (jQuery). +More info
  • +
  • Add missing permission checks for menus in Test run page UI template. +Permission check added for TestExecution status and comment menu. +References Issue #716
  • +
  • Re-enable static analysis with bandit and Coverity Scan in +Travis CI (Svetlomir Balevski)
  • +
+
+
+

Improvements

+
    +
  • Update psycopg2 from 2.8.2 to 2.8.3
  • +
  • Update markdown from 3.1 to 3.1.1
  • +
  • Update patternfly to version 3.59.2
  • +
  • Override PasswordResetForm because Site.objects.get_current() +didn't produce correct results when working with kiwitcms-tenants
  • +
  • Show column is_active in user admin page
  • +
+
+
+

Refactoring

+
    +
  • Add test for email_case_deletion() (Rik)
  • +
  • New linter to warn about usage of AutoField. Fixes +Issue #737 (Ivo Donchev, HackSoft)
  • +
  • New linter to discover empty classed. Fixes +Issue #739 (Daniel Goshev)
  • +
  • New linter to warn about usage of OneToOneField. Fixes +Issue #735 (George Goranov)
  • +
  • New linter to warn about usage of function based views. Fixes +Issue #734 (Yavor Lulchev, Uber)
  • +
  • New linter to discover Python files in directories without __init__.py. Fixes +Issue #790
  • +
+
+
+
+

Join us at OpenExpo in Madrid

+

Kiwi TCMS is exhibitor at OpenExpo Europe +on June 20th in Madrid. We will be hosting an info booth and 2 technical +presentations delivered by +Anton Sankov and +Alex Todorov.

+

Kiwi TCMS is also the leading finalist in the +Best Tech Community +category at Open Awards 2019!

+

Use OE19SPEAKERINVITE 100% discount code! Get your ticket +here!

+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+

WARNING: kiwitcms/kiwi:latest and docker-compose.yml will +always point to the latest available version! If you have to upgrade in steps, +e.g. between several intermediate releases, you have to modify the above workflow:

+
+# starting from an older Kiwi TCMS version
+docker-compose down
+docker pull kiwitcms/kiwi:<next_upgrade_version>
+edit docker-compose.yml to use kiwitcms/kiwi:<next_upgrade_version>
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+# repeat until you have reached latest
+
+

Happy testing!

+
+ +
+
+
+ + +
+

Vote for Kiwi TCMS at OpenAwards 2019

+

Thanks to you, our community supporters, Anton Sankov and Alex Todorov +took the lead at OpenExpo 2019 CfP votes. +We need your help one more time. Our team has submitted participation in +'Best Tech Community' and 'Best Success Story' categories.

+

Unfortunately our submission into 'Best Success Story' has been pulled down! +We used that category to share the story from a dead open source project into +a thriving open source community with lots of users and contributors and to +highlight some of our milestones. Here's the short version:

+
    +
  • lots of technical updates and refactoring, latest everything, modern UI
  • +
  • the only open source test case management system on GitHub Marketplace
  • +
  • nearly 60000 downloads on Docker Hub
  • +
  • growing and active core team
  • +
  • active OSS contributors
  • +
+

Please help us gain more recognition:

+ +

Thanks you & happy testing!

+
+
+
+ + +
+

On Tuesday I hosted my pylint workshop during the regular +Django Bulgaria meetup. +This edition was the first which was practice based.

+

Attendance numbers were low but participation was very good. We managed to +create 4 new checkers for Kiwi TCMS:

+ +

Many thanks to all contributors. These new checkers have discovered quite a +few new issues with Kiwi TCMS so this is an area which our team is going to improve.

+

Those who missed the workshop will be able to catch up one of the next editions:

+
    +
  • 26-29 August, GUADEC, Thessaloniki - TBC (presentation)
  • +
  • end of September, Python meetup, Zagreb - TBA
  • +
  • 03-05 October, PyCon Balkan, Belgrade - TBC
  • +
  • 11-13 October, HackConf, Sofia
  • +
  • 15-17 October, TestCon Europe, Vilnius - TBC (backup presentation)
  • +
  • 23-25 October, Testwarez, Ossa, Poland - TBC (presentation)
  • +
  • 14-15 November, Software Engineering Conference Russia, Saint-Petersburg - TBC
  • +
  • 20-22 November, ConTEST, New York - TBC (workshop and/or presentation)
  • +
+

Happy testing!

+
+
+
+
+ +

Kiwi TCMS 6.9

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 6.9! +This is a small improvement and bug-fix update which introduces +our first telemetry report: testing breakdown. 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  a01eaeddf213    1.001 GB
+kiwitcms/kiwi       6.2     7870085ad415    957.6 MB
+kiwitcms/kiwi       6.1.1   49fa42ddfe4d    955.7 MB
+kiwitcms/kiwi       6.1     b559123d25b0    970.2 MB
+kiwitcms/kiwi       6.0.1   87b24d94197d    970.1 MB
+kiwitcms/kiwi       5.3.1   a420465852be    976.8 MB
+
+
+

Changes since Kiwi TCMS 6.8

+
+

Improvements

+
    +
  • Update mysqlclient from 1.4.2 to 1.4.2.post1
  • +
  • Ship with prism.js so it can be used for syntax highlighting
  • +
  • Add Testing Breakdown telemetry
  • +
  • Mark more strings for translations
  • +
  • Add delete_user() function which can delete data across +Postgre schemas (if kiwitcms-tenants add-on is installed)
  • +
+
+
+

API

+
    +
  • Remove deprecated TestCaseRun. API methods. Use the new +TestExecution. methods introduced in v6.7. Fixes +Issue #889
  • +
+
+
+

Bug fixes

+
    +
  • Fix typos in documentation (@Prome88)
  • +
  • Fix TemplateParseError in email templates when removing test cases. +On-delete email notification is now sent properly
  • +
+
+
+

Refactoring

+
    +
  • Add more tests around TestRun/TestExecution menu permissions
  • +
  • Minor pylint fixes
  • +
+
+
+

Translations

+ +
+
+
+

Join us at OpenExpo in Madrid

+

Kiwi TCMS is exhibitor at OpenExpo Europe +on June 20th in Madrid. We will be hosting an info booth and 2 technical +presentations delivered by Anton Sankov and Alex Todorov.

+

Next week we are going to announce 100% discount tickets +for our guests at the conference. If you are interested in coming +subscribe to our newsletter +and don't miss the announcement!

+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+

WARNING: kiwitcms/kiwi:latest and docker-compose.yml will +always point to the latest available version! If you have to upgrade in steps, +e.g. between several intermediate releases, you have to modify the above workflow:

+
+# starting from an older Kiwi TCMS version
+docker-compose down
+docker pull kiwitcms/kiwi:<next_upgrade_version>
+edit docker-compose.yml to use kiwitcms/kiwi:<next_upgrade_version>
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+# repeat until you have reached latest
+
+

Happy testing!

+
+ +
+
+
+
+ +

Kiwi TCMS 6.8

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 6.8! +This is a small improvement and bug-fix update. +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  fca095f95475    994.8 MB
+kiwitcms/kiwi       6.2     7870085ad415    957.6 MB
+kiwitcms/kiwi       6.1.1   49fa42ddfe4d    955.7 MB
+kiwitcms/kiwi       6.1     b559123d25b0    970.2 MB
+kiwitcms/kiwi       6.0.1   87b24d94197d    970.1 MB
+kiwitcms/kiwi       5.3.1   a420465852be    976.8 MB
+
+
+

Changes since Kiwi TCMS 6.7

+
+

Improvements

+
    +
  • Update Django from 2.2 to 2.2.1
  • +
  • Update django-simple-history from 2.7.0 to 2.7.2
  • +
  • Update django-grappelli from 2.12.2 to 2.12.3
  • +
  • Update psycopg2 from 2.8 to 2.8.2
  • +
  • Update pygithub from 1.43.6 to 1.43.7
  • +
  • Upgrade pip and setuptools inside Docker image
  • +
  • Update documentation with newer screenshots and updated Tutotial. Fixes +Issue #837 (@Prome88)
  • +
  • Document how to enable public read-only views
  • +
  • Remove deprecated documentation section about Bugzilla authentication
  • +
  • Install PostgreSQL libraries in Docker image which makes it easier to +switch the DB backend without rebuilding the entire image
  • +
  • Remove npm, libxml2-devel and libxslt-devel from Docker image
  • +
  • Database engine configuration now respects the KIWI_DB_ENGINE environment +variable which defaults to django.db.backends.mysql. This will make it +easier for admins to change DB engine by updating their docker-compose.yml
  • +
+
+
+

Bug fixes

+
    +
  • Pin bootstrap-switch to version 3.3.4 in package.json. Fixes +Issue #916
  • +
+
+
+

Translations

+ +
+
+

Refactoring

+
    +
  • Don't use Site.objects.get_current() because it has an internal cache +and causes email notifications from tenants to use the wrong URL
  • +
  • More changes around renaming of TestCaseRun to TestExecution
  • +
+
+
+
+

GitHub Marketplace

+

During the past week we have silently launched Kiwi TCMS on +GitHub Marketplace. Free plans +will be redirected to +public.tenant.kiwitcms.org +while paid plans will be hosted under *.tenant.kiwitcms.org sub-domains!

+

Our team is still working on all requirements for GitHub integration and we will +issue a formal statement when ready!

+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+

WARNING: kiwitcms/kiwi:latest and docker-compose.yml will +always point to the latest available version! If you have to upgrade in steps, +e.g. between several intermediate releases, you have to modify the above workflow:

+
+# starting from an older Kiwi TCMS version
+docker-compose down
+docker pull kiwitcms/kiwi:<next_upgrade_version>
+edit docker-compose.yml to use kiwitcms/kiwi:<next_upgrade_version>
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+# repeat until you have reached latest
+
+

Happy testing!

+
+ +
+
+
+
+ +

Kiwi TCMS 6.7

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 6.7! +This is a small improvement and bug-fix update. +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  702a78976de7    993.5 MB
+kiwitcms/kiwi       6.2     7870085ad415    957.6 MB
+kiwitcms/kiwi       6.1.1   49fa42ddfe4d    955.7 MB
+kiwitcms/kiwi       6.1     b559123d25b0    970.2 MB
+kiwitcms/kiwi       6.0.1   87b24d94197d    970.1 MB
+kiwitcms/kiwi       5.3.1   a420465852be    976.8 MB
+
+
+

Changes since Kiwi TCMS 6.6

+
+

Improvements

+
    +
  • Update Django from 2.1.7 to 2.2
  • +
  • Update markdown from 3.0.1 to 3.1
  • +
  • Update psycopg2 from 2.7.7 to 2.8
  • +
  • Update pygithub from 1.43.5 to 1.43.6
  • +
  • Update bleach-whitelist from 0.0.9 to 0.0.10
  • +
  • Update marked(.js) to version 0.6.2
  • +
  • Support arbitrary depth for MENU_ITEMS setting
  • +
  • Support auto-discovery of 3rd party Telemetry plugins, see +documentation
  • +
+
+
+

Database migrations

+
    +
  • Rename TestCaseRun to TestExecution including renaming existing +permissions
  • +
  • Rename TestCaseRunStatus to TestExecutionStatus
  • +
+
+
+

API

+
    +
  • Rename TestCaseRun.* to TestExecution.*
  • +
  • Rename TestCaseRunStatus.* to TestExecution.*
  • +
  • This version keeps the old names for backwards compatibility reasons but they +will be removed in +Issue #889
  • +
+
+
+

Bug fixes

+
    +
  • Prompt user before deleting attachments. Fixes +Issue #867 (Martin Jordanov)
  • +
  • email_case_deletion() format error fixed so notifications when +test cases are deleted are not sent (Rik)
  • +
+
+
+

Refactoring

+
    +
  • Remove unused images
  • +
  • Install node_modules/ under tcms/ and include it inside PyPI tarball
  • +
+
+
+

Translations

+ +
+
+
+

Native JUnit 5 plugin

+

Our team is happy to announce the availability of +kiwitcms-junit-plugin. +This is a native JUnit 5 plugin which will read the results from your +automated test suite and send them back to Kiwi TCMS.

+

Version 1.0.3 and the latest changes in master branch are still to be considered +Beta quality. They are available for early preview and feedback.

+

Many thanks to Aneta Petkova who is the +main contributor behind this plugin!

+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+

WARNING: kiwitcms/kiwi:latest and docker-compose.yml will +always point to the latest available version! If you have to upgrade in steps, +e.g. between several intermediate releases, you have to modify the above workflow:

+
+# starting from an older Kiwi TCMS version
+docker-compose down
+docker pull kiwitcms/kiwi:<next_upgrade_version>
+edit docker-compose.yml to use kiwitcms/kiwi:<next_upgrade_version>
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+# repeat until you have reached latest
+
+

Happy testing!

+
+ +
+
+
+
+ +

Kiwi TCMS 6.6

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 6.6! This is a +medium severity security update, improvement and bug-fix update. +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  c4734f98ca37    971.3 MB
+kiwitcms/kiwi       6.2     7870085ad415    957.6 MB
+kiwitcms/kiwi       6.1.1   49fa42ddfe4d    955.7 MB
+kiwitcms/kiwi       6.1     b559123d25b0    970.2 MB
+kiwitcms/kiwi       6.0.1   87b24d94197d    970.1 MB
+kiwitcms/kiwi       5.3.1   a420465852be    976.8 MB
+
+
+

Changes since Kiwi TCMS 6.5.3

+
+

Security

+
    +
  • Explicitly require marked v0.6.1 to fix medium severity ReDoS vulnerability. See +SNYK-JS-MARKED-73637
  • +
+
+
+

Improvements

+
    +
  • Update python-gitlab from 1.7.0 to 1.8.0
  • +
  • Update django-contrib-comments from 1.9.0 to 1.9.1
  • +
  • More strings marked as translatable (Christophe CHAUVET)
  • +
  • When creating new TestCase you can now change notification settings. +Previously this was only possible during editing
  • +
  • Document import-export approaches. Closes +Issue #795
  • +
  • Document available test automation plugins
  • +
  • Improve documentation around Docker customization and SSL termination
  • +
  • Add documentation example of reverse rroxy configuration for HAProxy (Nicolas Auvray)
  • +
  • TestPlan.add_case() will now set the sortkey to highest in plan + 10 (Rik)
  • +
  • Add LinkOnly issue tracker. Fixes +Issue #289
  • +
  • Use the same HTML template for both TestCase new & edit
  • +
  • New API methods for adding, removing and listing attachments. Fixes +Issue #446:
      +
    • TestPlan.add_attachment()
    • +
    • TestCase.add_attachment()
    • +
    • TestPlan.list_attachments()
    • +
    • TestCase.list_attachments()
    • +
    • Attachments.remove_attachment()
    • +
    +
  • +
+
+
+

Database migrations

+
    +
  • Populate missing TestCase.text history. +In version 6.5 the TestCase model was updated to store the text +into a single field called text instead of 4 separate fields. +During that migration historical records were updated to have +the new text field but values were not properly assigned.

    +

    The "effect" of this is that in TestCaseRun records you were not +able to see the actual text b/c it was None.

    +

    This change ammends 0006_merge_text_field_into_testcase_model for +installations which have not yet migrated to 6.5 or later. We also +provide the data-only migration 0009_populate_missing_text_history +which will inspect the current state of the DB and copy the text to +the last historical record.

    +
  • +
+
+
+

Removed functionality

+
    +
  • Remove legacy reports. Closes +Issue #657

    +
  • +
  • Remove "Save & Continue" functionality from TestCase edit page

    +
  • +
  • Renamed API methods:

    +
      +
    • TestCaseRun.add_log() -> TestCaseRun.add_link()
    • +
    • TestCaseRun.remove_log() -> TestCaseRun.remove_link()
    • +
    • TestCaseRun.get_logs() -> TestCaseRun.get_links()
    • +
    +

    These methods work with URL links, which can be added or removed to +test case runs.

    +
  • +
+
+
+

Bug fixes

+
    +
  • Remove hard-coded timestamp in TestCase page template, References +Issue #765
  • +
  • Fix handling of ?from_plan URL parameter in TestCase page
  • +
  • Make TestCase.text occupy 100% width when rendered. Fixes +Issue #798
  • +
  • Enable markdown.extensions.tables. Fixes +Issue #816
  • +
  • Handle form erros and default values for TestPlan new/edit. Fixes +Issue #864
  • +
  • Tests + fix for failing TestCase rendering in French
  • +
  • Show color-coded statuses on dashboard page when seen with non-English +language
  • +
  • Refactor check for confirmed test cases when editting to work with +translations
  • +
  • Fix form values when filtering test cases inside TestPlan. Fixes +Issue #674 (@marion2016)
  • +
  • Show delete icon for attachments. Fixes +Issue #847
  • +
+
+
+

Refactoring

+
    +
  • Remove unused .current_user instance attribute
  • +
  • Remove EditCaseForm and use NewCaseForm instead, References +Issue #708, +Issue #812
  • +
  • Fix "Select All" checkbox. Fixes +Issue #828 (Rady)
  • +
+
+
+

Translations

+ +
+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+

WARNING: kiwitcms/kiwi:latest and docker-compose.yml will +always point to the latest available version! If you have to upgrade in steps, +e.g. between several intermediate releases, you have to modify the above workflow:

+
+# starting from an older Kiwi TCMS version
+docker-compose down
+docker pull kiwitcms/kiwi:<next_upgrade_version>
+edit docker-compose.yml to use kiwitcms/kiwi:<next_upgrade_version>
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+# repeat until you have reached latest
+
+

Happy testing!

+
+ +
+
+
+
+ +

Taking the lead at OpenExpo Europe CfP votes

+
+ + +
+ +
+

Vote for Kiwi TCMS at OpenExpo

+

We are happy to announce that Anton Sankov and Alex Todorov are currently taking +the lead at OpenExpo Europe's CfP votes!

+

Going to OpenExpo will be huge boost for Kiwi TCMS so please help us make this happen! +Voting is open until March 17th 2019! You can cast your vote via Facebook login +but remember to confirm your email address!

+ +

Thank you & happy testing!

+
+
+
+
+ +

Legacy reports become Telemetry

+
+ + +
+ +
+

As we've promised Kiwi TCMS is +starting work on improving the legacy reports functionality. +After analyzing your feedback in +Issue #657 here's what we came up +with. Note: screenshots below are mockups.

+

General tech specs

+
    +
  • Once a self-contained tarball is installed inside the Docker image (or inside local virtualenv) + Kiwi TCMS will be able to find it automatically and update the menu options. Aka plugins. + No further configuration should be necessary other than providing the source code implementing + the new functionality
  • +
  • Navigation menu will be able to support several layers of menus
  • +
  • Where possible Telemetry pages will reuse existing HTML templates
  • +
  • Telemetry data will be implemented as an RPC method that can be consumed by the front-end + via JSON-RPC
  • +
  • Charts will be rendered in the browser with c3/d3, + see Data Visualization
  • +
+

Feature: Rename TestCaseRun to TestExecution

+

Inside Kiwi TCMS the term "test case" is used to refer to specific scenario of +testing steps. A "test run" is the collection of multiple "test cases" which +will be executed against a particular product build and environment.

+

The specific results are kept into what is now called "test case run". This will +be renamed to "test execution" (internally TestExecution class) to make it more +clear and easier to distinguish among other artifacts.

+

Feature: Better color coding for test execution status

+

As a webUI user I want to easily distinguish between PASSED, FAILED and other statuses +when looking at charts and graphical visualizations.

+

TestRun progress

+

This feature request comes from the TestRun progress bar. +Other charts should use the same 4 status categories and color coding standards:

+
    +
  • IDLE - pf-black-600
  • +
  • PASSED - pf-green-400
  • +
  • FAILED - pf-red-100
  • +
  • OTHER - pf-orange-400. This includes other statuses which are not PASSED, FAILED and IDLE.
  • +
+

Here the percent value will continue to mean percent completed, aka non-IDLE.

+

Implementation wise the TestCaseRunStatus class defines methods for the actual icons to be used. +The same can be done for colors and this can be used directly in the HTML templates. +For color definitions see Status Palette.

+

Feature: Printable Test Execution Report

+

As a tester I want to have a nice looking TestRun execution report which I can present to +my managers, stakeholders and/or customers. The page needs to be printer friendly for +“Print to PDF” or print on paper!

+

Kiwi TCMS already has this feature. Clicking the [Report] button +in the progress widget at TR-625 presents +TestRun execution information in a simplified format found at +TR-625/Report. +In order to improve the current implementation:

+
    +
  • Convert TestRun page to Patternfly which generally prints better
  • +
  • Add bug list at the bottom of the page, below all test execution rows
  • +
  • Keep “View all in Issue Tracker” link (supported only for some bug trackers)
  • +
  • The widget for TestRun progress must be kept
  • +
  • Tweak CSS classes to disable printing for visual elements that we don't need. + This will be decided after the entire page has been converted to Patternfly
  • +
  • Remove the existing testruns.views.TestRunReportView and associated templates, + JavaScript and CSS because they will not be needed anymore
  • +
+

Feature: Individual or team performance telemetry

+

As a manager I want to know what the work-load/performance of individual teams and +engineers is. I can use this information either for performance review or for +capacity planning of future work.

+

Individual/team performance

+

A new page will be available under TELEMETRY -> Management -> Performance which will:

+
    +
  • Allow filtering by
      +
    • Group (multi-select)
    • +
    • User (multi select, depends on Group)
    • +
    • Start / Stop dates
    • +
    • Product
    • +
    +
  • +
  • Show results per User or per Group (if no users are selected)
  • +
  • Allow grouping per TestRun ID or calendar week number
  • +
+

The backend will query TestExecution.objects and apply the selected +filters and grouping logic! +The returned data is the count of how many tests this person/team was able to execute.

+

Further refinement: +Aggregate count by statuses (executed vs. non-executed or PASSED vs. FAILED vs. OTHER). +May be represented as a stacked bar chart if grouping of series is supported.

+

Feature: Time-tracking telemetry

+

As a manager I want to know how much time it took to complete previous testing activities. +I can use this information for predicting future capacity.

+

New page under TELEMETRY -> Management -> Time tracking.

+
    +
  • Filtering will be the same as performance telemetry
  • +
  • Grouping will be the same as performance telemetry
  • +
  • Unknown: total execution time is calculated as
      +
    • the sum of duration for each TestExecution (not available ATM, + automation plugins not sending this info) or
    • +
    • the total time for the entire TestRrun (not supported by automation plugins)
    • +
    +
  • +
+

Visually this will be a line chart with one line for each user/group which have +been selected. It will be very good if the existing chart libraries allow for a +stacked line chart or a stacked area chart here!

+

Feature: Estimate TestRun completion time

+

As a test lead I want to know approximately when testing is expected to complete.

+

This feature will utilize time-tracking data from previous executions and +display the approximated calculation in the web UI. The most obvious place for this +is the TestRun progress widget (under the progress bar) or the Test Run page +(near the Started at/Finished at fields).

+

Example text:

+
Started at: YYYY-MM-DD 10:38
+Status: Running
+Duration: 1.2 / 3 hrs
+Estimated completion at: 13:30
+
+ + +

Unknown: where does baseline duration come from? Either from the most recent TestRun +or an average from all of the previous Test Runs. Note that cumulative TestRun duration +is calculated between Start/Finish events while individual TestExecution records may +sum up to a different value! This needs to be clarified.

+

Feature: TestCase health telemetry

+

As a tester and/or manager I want to be able to discover which TestCase(s) are the most +common source of problems, that is they fail all the time or from time to time. +This may indicate poor test design or bad practices when developing the product. +This is also known as test stability or flaky tests!

+

Flaky tests

+

New page under TELEMETRY -> Testing -> Flaky tests

+
    +
  • Allow filtering by
      +
    • Product
    • +
    • Test plan (refined by product)
    • +
    • Start / Stop dates
    • +
    +
  • +
  • Show results in table form as shown in the image above
  • +
  • PASS/non-PASS stats will be calculated based on TestExecution.objects
  • +
  • 100% failing rate will be reported in the first table as ALWAYS FAILING
  • +
  • Executions where failing rate is >0% and <100% will be reported as FLAKY TESTS
  • +
+

Feature: TestCase breakdown telemetry

+

As a tester and/or manager I want to see a breakdown of tests so that I have an +idea how the existing tests for the product are distributed!

+

Test case breakdown

+

New page under TELEMETRY -> Testing -> Breakdown

+
    +
  • Allow filtering by
      +
    • Product
    • +
    • Test plan (refined by product)
    • +
    • Start / Stop dates
    • +
    +
  • +
+

Shows combined bar/line charts with information about test case priorities, categories, +automation status and confirmed status.

+

Feature: Individual TestCase health widget

+

As a test engineer I want to be able to quickly see health information about individual +test case. This can help me visually locate TCs that need improvement so I can edit them +or will help me visually judge the past history of the TC I am looking at.

+

Individual TestCase health

+

This depends on the previous feature. Possible places where health status can be shown:

+
    +
  • Test Case page, Executions card: info per TP
  • +
  • Test Run page, Test Executions table - visual icon + % to hint the user + about expected TC stability
  • +
+

Feature: Execution trends telemetry

+

As a test manager I want to see information if Product builds are getting better or worse. +In other words what is the trend in TestExecution number and status!

+

Build status

+

This is going to be a new page at TELEMETRY -> Testing -> Execution trends

+
    +
  • Filter by
      +
    • Product
    • +
    • Version (refined by Product)
    • +
    • Build (refined by Version)
    • +
    • Test Plan (refined by Product)
    • +
    • Start / Stop dates
    • +
    +
  • +
  • Shows total count of TestExecution.objects (stacked area chart) with color codes for status
  • +
  • Group by TestRun ID or calendar week
  • +
+

You will be able to select TestRuns and/or weeks for detailed comparison.

+

Feature: TestRun status matrix telemetry

+

As a test manager I want to see detailed information about testing status for +specific test run(s) or a calendar period. I also want to be able to compare +the results between various weeks and/or test runs.

+

Compare TestRuns

+

This is a continuation of Execution trends telemetry but can be used on its own as well. +It will be accessible from TELEMETRY -> Testing -> Status matrix

+

Filtering options are the same. Results are displayed in a table format where +columns are the filtered (or previously selected) TestRun objects or calendar weeks. +The rows are the names of individual test cases that have been executed. If a case +is missing the cell will be empty.

+

Cells contain color coded information about status, timestamp of execution, +execution duration, links to the TestExecution object, latest comment in case +of failure.

+

Links to bugs will be shown in each cell with a summarized bug table below the +charts.

+

Feature: Search and compare TestRuns

+

This is complimentary to the TestRun status matrix feature! While searching +for TestRuns in SEARCH -> Test Runs the user will be able to select several +rows and proceed to compare them as described above.

+

Happy testing!

+
+
+
+
+ +

Want to hack open source ?

+
+ + +
+ +
+

+

Have you ever wanted to be part of an open source team? +Have you ever wanted to contribute back the open source community ? +Have you ever wanted to see your code used by thousands of people ?

+

If yes now you have the opportunity! Read on to learn how you can help +Kiwi TCMS and how our team can help you.

+

Inexperienced Python developer(s)

+

It is fine not to have any experience at all! You will compensate with +commitment and hard work. Initially you are going to work on refactoring, +cleaning up pylint errors, removing duplicate code and other issues +reported by CodeClimate.

+

By doing this you will have the opportunity to learn git, Python, Django, +some CSS, JavaScript and Patternfly HTML of course. We are going to provide +you with all the learning materials plus help and guidance from existing team members.

+

Everyone on the team has gone though the same training procedure and grueling tasks +and so will you! Once you can demonstrate progress and learn the ropes you +will continue working on more complicated tasks.

+

Experienced Python developer(s)

+

So you have some experience already, you've probably contributed code before and are +now looking for more green stripes on your GitHub profile. We've got you covered!

+

There are many areas to choose from: issue tracker integration, GitHub integration, +GitLab integration, external API library, Kiwi TCMS plugins written in Python and +customized pylint linters! This is going to be where you get your hands dirty and +show your strengths. Our team is here to help if necessary but we expect you to +show progress by yourself.

+

A challenge for you will be to review pull requests from other contributors and +be patient with less experienced contributors and team members. This is an excellent +opportunity to work on your people skills as well.

+

Experienced non-Python developer(s) (with Java)

+

Kiwi TCMS is primarily looking for Java developers who will own our test automation +plugins. Currently we have a plugin for JUnit 5 and TestNG is in planning. Maybe +there will be a plugin for Jenkins as well. You are going to own these components +and work solely on them. Unless you decide to learn Python and Django that would +be a very easy job!

+

.NET, PHP, Ruby, JavaScript ? We don't have a lot of code written in these languages +but you can help change this. The main thing we'd like you to know +(or become familiar with) are the internals of popular test automation frameworks +for these languages and how to create plugins for them.

+

QA engineer with Python

+

You are going to test a lot! You are going to write test automation a lot! Ideally you +already have a medium level of experience in the software testing field and +want to improve your coding skills and/or get more experience into a different +application domain. We also have Linux and Docker in the mix, just for fun!

+

Your responsibility will be to design test scenarios for various features (new or existing), +write test automation scripts and help improve overall test coverage and quality +of Kiwi TCMS. You will also check-in on non-Python developers and +help them with test design when necessary.

+

There are other things that can be tested as well, for example Kiwi TCMS +performance and scalability. Here you will have to get down to the nitty-gritty +stuff and do some profiling to pin-point where the root cause of the problem is.

+

Security freak

+

We've got Coverity scan and +Snyk automatically inspecting our +code base. We do have some other tools as well and we know they can never be enough.

+

You will be responsible for triaging the numerous issues being reported by these +tools and help us decide if they are a real threat or a false positive. For example +Coverity reports hundreds of issues mostly coming from our Python and Node.js dependency +stack. We haven't had the time to classify them and work with upstream communities +to fix them thus the majority of your contributions will be outside of the +Kiwi TCMS code base.

+

Graphics designer

+

Your main job is going to be creating beautiful images for our website, +blog posts and promotional material. All the images we use are licensed under +Creative Commons which we then modify with the specific Kiwi TCMS look and +feel. This is not going to change, your work will remain under a permissive +license!

+

Marketing specialist

+

You will be directly responsible for driving more traffic to our website, +interpreting Google Analytics metrics and coming up with creative ideas +how to boost Kiwi TCMS popularity. This means, but not limited to blog posts, +collaborations with other projects and/or bloggers, professional magazines, etc. +You will also be in charge of events and conferences that we go to! Whenever +possible you will be coming with us as well!

+

A challenge for you will be to learn some technical jargon and learn more +about the software testing profession and software testers in general!

+

What's in it for you ?

+

You will sharpen your skills! You will use Kiwi TCMS as a platform to +improve your career. You will experience the gratification of our community of users.

+

This blog is the medium where you can share tips +and tricks and technical articles about interesting features in Kiwi TCMS. +If you'd rather have your personal blog working on Kiwi TCMS will give you lots +of topics to write about.

+

We go to conferences and meetups too. If public speaking is your thing +you will have plenty of topics to talk about. We can also help you +deliver your first presentation! Everyone on the team has done it!

+

Our existing team will help you learn and we will help you grow. Our personal time +is the most expensive item we can offer to you! In return we expect you to +fulfill your commitments and when you promise something will be done you will +make sure it is done!

+

How to apply ?

+

You can figure this out yourself.

+

Happy testing!

+
+
+ +
+ Newer Posts +

+ Page 5 / 7 +

+ Older Posts +
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/index6.html b/blog/index6.html new file mode 100644 index 00000000..e935e287 --- /dev/null +++ b/blog/index6.html @@ -0,0 +1,2825 @@ + + + + + Kiwi TCMS - Blog + + + + + + + + + + + + + + + +
+

Blog

+ +
+
+ +

How to use Kiwi TCMS plugins, Pt. 1

+
+ + +
+ +
+

In +release notes for v6.5 +we announced several plugins which will fetch test names and execution results +from your automated test suite.

+

Plugins can be controlled via environment variables which will affect how +test results are recorded in the Kiwi TCMS database! This blog post is an introduction +how that works and what you can do with it! For this purpose I will be using the +plugin-demo repository, which simulates +real development work.

+

Full documentation and list of available plugins is available in chapter +Automation Frameworks Plugins!

+

Always create new TestRun by default

+

The default behavior is always to create a new TestRun if controlling variables +are not overridden! Product name, version and build will receive default values +if tests are running in Travis CI or Jenkins. For example +Travis Build #2 for +commit d455fb4 +creates TR-12 and +TP-10!

+
Product=kiwitcms/plugin-demo
+Version=d455fb42fb7c2aedadfd5f66de7d131109c03350
+Build=2
+
+ + +

Next we convert the README file from Markdown to reStructuredText which triggers +Travis Build #3 for +commit 418b80b. +This build again creates a new TestRun and new TestPlan for it. Respectively +TR-14 and +TP-12!

+
Product=kiwitcms/plugin-demo
+Version=418b80b3bbb65a799f695dc59d488c76f560fa2b
+Build=3
+
+ + +

Important: we can see that version is different which will affect how artifacts +are organized in Kiwi TCMS, possibly affect how you will report status to stakeholders!

+

Override ENV variables for more control

+

Let's say the QA team has decided that all test results must be reported under the +same TestPlan. This means version must be the same between various builds in Travis CI! +To control this we export TCMS_PRODUCT_VERSION=master in CI before executing +the TAP plugin! Checkout the commit on GitHub to see how it is done!

+

This triggers +Travis Build #4 for +commit e484e59. +Because this is the first time where Version == master the plugin creates +TP-14 and reports the results under +TR-16.

+
Product=kiwitcms/plugin-demo
+Version=master
+Build=4
+
+ + +

Right after that I realized we can make this configuration a bit more generic +because our team is planning to support multiple versions of the product and +development will be done in separate branches! +Travis Build #5 for +commit f1f2878 +still ends up with Version == master because we are still working on the master +branch! That is to say, the product is in active mode of development.

+

Results are reported in +TR-18 which is again part of +TP-14.

+
Product=kiwitcms/plugin-demo
+Version=master
+Build=5
+
+ + +

Travis Build #6 for +commit df6153b +adds the new functionality README badges and reports test results in +TR-20 which is again part of +TP-14.

+

More ENV overrides

+

While giving status reports back to stakeholders and developers the information that +we have in the TestRun is Build number! This follows the numbering scheme in Travis CI +(or Jenkins job number) and isn't very useful.

+

Let's define TCMS_BUILD to be the first 7 characters of the commit hash! When QA +tells devel that something isn't working and redirects them to the TestRun they can +immediately use the Build information and git checkout the offending variant of the product +for investigation.

+

This results in +Travis Build #7 for +commit bf75d0a, +TR-22, +TP-14.

+
Product=kiwitcms/plugin-demo
+Version=master
+Build=bf75d0a
+
+ + +

Report results in pre-existing TestRun

+

There are many reasons you may want to do this:

+
    +
  • include both manual and automation tests for the same build;
  • +
  • mix results from multiple test suites for the same build, + e.g. unit, functional, performance
  • +
  • mix results from multiple but similar platforms in the same build, + e.g. cross-platform application for iOS and Android
  • +
+

To do so I've created TR-24 beforehand and +configured TCMS_RUN_ID=24 in my CI environment. TR-24 also contains +TC-57: Verify we can report results from several plugins into the same TR. +this was created and added via the web interface.

+

Note: mixing additional test cases can be done either before or after +automation results are reported with the plugin!

+

Important: when reporting results to an existing TestRun Kiwi TCMS plugins +don't care in which TestPlan this TR is! In theory it is possible to report +the results for Product=kiwitcms/plugin-demo into any TP/TR pair! However we +don't want to do this crazy thing and instead I've created TR-24 inside the already +existing TP-14!

+

Note: because I don't know what is the git commit beforehand I've configured +TR-24 with Build=unspecified. If I wanted I could update this with the correct value +once I know the commit hash for the related changes I am testing.

+

Important: the plugin-demo repository uses both kiwitcms-tap-plugin and +kiwitcms-junit.xml-plugin at the same time! They differ in the way test names +are compiled! Both are reported in TR-24. See TC-57 text for information how to +distinguish between the two.

+

See +Travis Build #8 for +commit 85ad939, +TR-24, +TP-14.

+
Product=kiwitcms/plugin-demo
+Version=master
+Build=unspecified
+
+ + +

Also check-out comments in TR executions to see when and who had executed the test case.

+

So far there have been some tests which were failing (although Travis reports PASS) so +I decided to fix them. +Travis Build #9 for +commit a25b384 +is still configured with TCMS_RUN_ID=24. This means results will be reported in +TR-24, effectively overwriting previous results.

+

Check-out Change Log under each individual execution and you will see several +time stamps when status was updated! In other words, as long as TCMS_RUN_ID is +pointing to an existing TestRun this TR will keep the results of the last test suite execution!

+

Continue development, restore ENV configuration

+

Travis Build #10 for +commit c4f1ae5 +removes TCMS_RUN_ID! Results are reported in +TR-25, +TP-14.

+
Product=kiwitcms/plugin-demo
+Version=master
+Build=c4f1ae5
+
+ + +

Branch out for an LTS version

+

Our team has decided to make the first LTS release of the product. We branch out into +lts-v0 branch in git and cut the first NVR. This results in +Travis Build #11 for +commit 9f1ef71 +TR-27, +TP-16.

+
Product=kiwitcms/plugin-demo
+Version=lts-v0
+Build=9f1ef71
+
+ + +

Because this is the first time we are running tests for this product version +we end up with the newly created TP-16!

+

Note: see how version was populated with the correct value for the git branch! +This is because my CI config uses TCMS_PRODUCT_VERSION=$TRAVIS_BRANCH and no further +changes were required! I made this change back in Travis Build #5 anticipating what +will come in the future!

+

The product is now live and customers have reported critical bugs for it: +URLs for the badges in README are wrong! I fix those and add more tests of course, see: +Travis Build #12 for +commit 2d72754, +TR-29 for +TP-16.

+
Product=kiwitcms/plugin-demo
+Version=lts-v0
+Build=2d72754
+
+ + +

TR-29 contains the new TC-58!

+

cherry-pick between branches

+

In the lts-v0 branch customers have identified a serious issue. It doesn't exist on master +but the test is still valid so I cherry-pick it! In git you can backport or forwardport very +easily. Regardless of the direction Kiwi TCMS plugins will record the test results for you.

+

See +Travis Build #13 for +commit 31ae5b3, +TR-31 for +TP-14.

+

We can see that TC-58, which was originally implemented on the lts-v0 branch +is now present!

+

Summary

+

This is a very basic example of how you can organize collection and reporting for +your automation test suite results with Kiwi TCMS. The links here only refer to +artifacts created by kiwitcms-tap-plugin while in the DB we keep others as well.

+

There are feature requests for more ENV variables which will allow you to control +TestPlan creation and child/parent relationship between test plans. See +https://github.com/kiwitcms/tap-plugin/issues and vote with a :+1: reaction +to help us plan for these features.

+

Kiwi TCMS automation framework plugins are nothing more than result parsers +which talk back to a database. It is up to you to decide how to organize the +collection of test results and how to report on them later, when the need arises.

+

Future installments in this post series will take a look at workflows with +feature branches and pull requests and discuss possible organization scenarios. +You are welcome to share your ideas in the comments below.

+

Happy testing!

+
+
+
+
+ +

Kiwi TCMS 6.5.3

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 6.5.3! This is a +security, improvement and bug-fix update that includes new +versions of Django, includes several database migrations and fixes several bugs. +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  b9355cf85833    1.039 GB
+kiwitcms/kiwi       6.2     7870085ad415    957.6 MB
+kiwitcms/kiwi       6.1.1   49fa42ddfe4d    955.7 MB
+kiwitcms/kiwi       6.1     b559123d25b0    970.2 MB
+kiwitcms/kiwi       6.0.1   87b24d94197d    970.1 MB
+kiwitcms/kiwi       5.3.1   a420465852be    976.8 MB
+
+
+

Changes since Kiwi TCMS 6.5

+
+

Security

+
    +
  • Update Django from 2.1.5 to 2.1.7. Fixes CVE-2019-6975: +Memory exhaustion in django.utils.numberformat.format()
  • +
+
+
+

Improvements

+
    +
  • Update mysqlclient from 1.4.1 to 1.4.2
  • +
  • Multiple template strings marked as translatable (Christophe CHAUVET)
  • +
+
+
+

Database migrations

+
    +
  • Email notifications for TestPlan and TestCase now default to True
  • +
  • Remove TestPlanEmailSettings.is_active field
  • +
+
+
+

API

+
    +
  • New method Bug.report(), References +Issue #18
  • +
  • Method Bug.create() now accepts parameter auto_report=False
  • +
+
+
+

Translations

+ +
+
+

Bug fixes

+
    +
  • Show the user who actually tested a TestCase instead of hard-coded value. Fixes +Issue #765
  • +
  • Properly handle pagination button states and page numbers. Fixes +Issue #767
  • +
  • Add TestCase to TestPlan if creating from inside a TestPlan. Fixes +Issue #777
  • +
  • Made TestCase text more readable. Fixes +Issue #764
  • +
  • Include missing templates and static files from PyPI tarball
  • +
+
+
+

Refactoring

+
    +
  • Use find_packages() when building PyPI tarball
  • +
  • Install Kiwi TCMS as tarball package inside Docker image instead of copying +from the source directory
  • +
  • Pylint fixes
  • +
  • Remove testcases.views.ReturnActions() which is now unused
  • +
  • Refactor New TestCase to class-based view and add tests
  • +
+
+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+

WARNING: kiwitcms/kiwi:latest and docker-compose.yml will +always point to the latest available version! If you have to upgrade in steps, +e.g. between several intermediate releases, you have to modify the above workflow:

+
+# starting from an older Kiwi TCMS version
+docker-compose down
+docker pull kiwitcms/kiwi:<next_upgrade_version>
+edit docker-compose.yml to use kiwitcms/kiwi:<next_upgrade_version>
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+# repeat until you have reached latest
+
+

Happy testing!

+
+ +
+
+
+
+ +

Kiwi TCMS 6.5

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 6.5! This is a minor security, +improvement and bug-fix update that includes new +versions of Django and other dependencies, removes some database fields, +includes backend API updates and fixes several bugs. +You can explore everything at +https://public.tenant.kiwitcms.org!

+

Together with this release we announce:

+ +

Both of these are implemented in Python and should work on standard TAP and +junit.xml files generated by various tools!

+

Additionally 3 more plugins are currently under development by contributors:

+ +

Supported upgrade paths:

+
+5.3   (or older) -> 5.3.1
+5.3.1 (or newer) -> 6.0.1
+6.0.1            -> 6.1
+6.1              -> 6.1.1
+6.1.1            -> 6.2 (or newer)
+
+

Docker images:

+
+kiwitcms/kiwi       latest  7ca4fda602fc    1.002 GB
+kiwitcms/kiwi       6.2     7870085ad415    957.6 MB
+kiwitcms/kiwi       6.1.1   49fa42ddfe4d    955.7 MB
+kiwitcms/kiwi       6.1     b559123d25b0    970.2 MB
+kiwitcms/kiwi       6.0.1   87b24d94197d    970.1 MB
+kiwitcms/kiwi       5.3.1   a420465852be    976.8 MB
+
+
+

Changes since Kiwi TCMS 6.4

+
+

Security

+
    +
  • Better override of SimpleMDE markdown rendering to prevent XSS vulnerabilities +in SimpleMDE
  • +
+
+
+

Improvements

+
    +
  • Update patternfly to version 3.59.1
  • +
  • Update bleach from 3.0.2 to 3.1.0
  • +
  • Update django-vinaigrette from 1.1.1 to 1.2.0
  • +
  • Update django-simple-history from 2.6.0 to 2.7.0
  • +
  • Update django-grappelli from 2.12.1 to 2.12.2
  • +
  • Update mysqlclient from 1.3.14 to 1.4.1
  • +
  • Update psycopg2 from 2.7.6.1 to 2.7.7
  • +
  • Update pygithub from 1.43.4 to 1.43.5
  • +
  • Convert TestCase page to Patternfly
      +
    • page menu is under ... in navigation bar
    • +
    • Test plans card is missing the old 'add plan' functionality b/c we are not +at all sure if adding plans to test cases is used at all. Can bring it back +upon user request!
    • +
    • Bugs card is missing the add/remove functionality for b/c we are not +quite sure how that functionality is used outside test runs!
    • +
    +
  • +
  • Convert new TestCase page to Patternfly and provide Given-When-Then text +template. This prompts the author to use a BDD style definition for their +scenarios. We believe this puts the tester into a frame of mind more +suitable for expressing what needs to be tested
  • +
  • Add a favicon. Fixes +Issue #532
  • +
  • Sort Component, Product and Version objects alphabetically. Fixes +Issue #633
  • +
  • Search test case page now shows Components and Tags
  • +
  • Search test case page now allows filtering by date. Fixes +Issue #715
  • +
  • Search test case page now uses radio buttons to filter by automation status
  • +
  • Small performance improvement when searching test plans and test cases
  • +
  • Search test run page now allows to filter by Product but still continue to +display all Builds in the selected Product
  • +
  • Updated doc-string formatting for some tcms modules
  • +
+
+
+

Database migrations

+

Known issues: on our demo installation we have observed that permission +labels were skewed after applying migrations. The symptom is that labels for +removed models are still available, labels for some models may have been removed +from groups/users or there could be permission labels appearing twice in the +database.

+

This may affect only existing installations, new installations do not have +this problem!

+

We are not certain what caused this but a quick fix is to remove all permissions +from the default Tester group and re-add them again!

+
    +
  • Remove TestCase.alias
  • +
  • Remove TestCaseRun.running_date
  • +
  • Remove TestCaseRun.notes
  • +
  • Remove TestCase.is_automated_proposed
  • +
  • Remove TestCaseText model, merge into TestCase.text field. Closes +Issue #198
  • +
  • Remove Priority.sortkey
  • +
  • Remove Build.description
  • +
  • Remove Classification.sortkey and Classification.description
  • +
  • Convert TestCase.is_automated from int to bool
  • +
  • Rename TestCaseRun.case_run_status to status
  • +
+
+
+

API

+
    +
  • New method TestCaseRunStatus.filter()
  • +
  • New method Product.create()
  • +
  • New method Classification.filter()
  • +
  • New method BugSystem.filter()
  • +
  • Changes to TestCase.add_component():
      +
    • now accepts component name instead of id
    • +
    • now fails if trying to add components linked to another Product.
    • +
    • now returns serialized TestCase object
    • +
    +
  • +
+
+
+

Translations

+ +
+
+

Bug fixes

+
    +
  • Fix for missing migrations from django-simple-history, see +DSH #512 and +StackOverflow #54177838
  • +
  • Fix cloning of test cases by surrounding bootstrap-selectpicker call with +try-catch. Fixes +Issue #695
  • +
  • Fix a traceback with TestRun report page when the RPC connection to Bugzilla +can't be established
  • +
+
+
+

Refactoring

+
    +
  • Remove unused form classes, methods, fields and label attributes
  • +
  • Remove unused or duplicate methods from TestCase model
  • +
  • Remove useless methods from BaseCaseForm()
  • +
  • Add test for discovering missing migrations
  • +
  • Add test for sanity checking PyPI packages which will always +build tarball and wheel packages
  • +
+
+
+
+

tcms-api 5.2 (30 Jan 2019)

+
    +
  • Add plugin_helpers.Backend which implements our test runner plugin +specification +in Python
  • +
  • Add dependency to kerberos (Aniello Barletta)
  • +
+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+

WARNING: kiwitcms/kiwi:latest and docker-compose.yml will +always point to the latest available version! If you have to upgrade in steps, +e.g. between several intermediate releases, you have to modify the above workflow:

+
+# starting from an older Kiwi TCMS version
+docker-compose down
+docker pull kiwitcms/kiwi:<next_upgrade_version>
+edit docker-compose.yml to use kiwitcms/kiwi:<next_upgrade_version>
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+# repeat until you have reached latest
+
+

Happy testing!

+
+ +
+
+
+
+ +

Kiwi TCMS is going to FOSDEM 2019

+
+ + +
+ +
+

Hello testers, Kiwi TCMS is going to FOSDEM this year. +This is where you can find us:

+

Kiwi TCMS sticker

+ +

We would like to meet with all of you and talk about test management and +test process organization. In case you are stuck for crazy ideas checkout +our project mission for inspiration.

+

Be part of the community

+

We are turning 10 years old and we have presents for you! You will have to perform +a small challenge and you can get your hands(errr, feet) on a pair of these:

+

Kiwi TCMS socks

+

Here's what else you can do to help us:

+ +

Happy testing!

+
+
+
+
+ +

Project mission and goals for 2019

+
+ + +
+ +
+

Hello testers, Kiwi TCMS has taken on a brave new +mission! We would like to transform the testing process by making it more +organized, transparent & accountable for everyone on your team. Our goal +is to improve engineering productivity and participation in +testing. The following blog post outlines how we would like to achieve +this and what goals we put before ourselves for this year.

+

Complete the internal refactoring

+

Last year we took on the challenge to bring a legacy code base up to modern +coding standard. We did not complete that effort but made very good progress +along the way. This is not a small task and that's why our team will continue +with it this year.

+

CodeClimate report

+
    +
  • CodeClimate: + 0 issues, 0% technical debt, health score A
  • +
  • Scrutinizer: + only A and B type issues
  • +
  • Pylint: 0 issues
  • +
  • Remove vendored-in Handlebars, jQuery, jQuery-UI and TableDnD JavaScript + libraries in favor of existing npm dependencies
  • +
  • Front-end uses the existing JSON-RPC instead of backend views that + are only used for AJAX requests. Tip: these are usually accessed via + postToURL() and jQ.ajax() on the front-end
  • +
  • Inspect and classify all 3rd party issues reported from + Coverity and + Bandit. Report and fix + what we can, ignore the rest that do not affect Kiwi TCMS.
  • +
+

Redesign the UI templates with the help of Patternfly

+

There are 59 templates remaining to be converted to a modern look and feel. +Along with them comes more refactoring and even redesign of the existing pages +and the workflow around them. Together with refactoring this will make Kiwi TCMS +easier to use and also to maintain.

+

Modernize reporting

+

We are planning to remove the existing reports feature because they are not well +designed. We will re-implement existing functionality that our community finds useful, +add new types of reports (incl. nicer graphics and UI) and make it possible for the +reporting sub-system to be more easily extendable.

+

Phase out is planned to begin after 1st March 2019! Until then we are looking for your +feedback. Please comment in +Issue #657!

+

Plugins for 3rd party test automation frameworks

+

These will make it easier to collect results from automated test suites into +Kiwi TCMS for later analysis. Instead of creating scripts that parse the +results and talk to our API you will only have to install an additional package +in your test environment and configure the test runner to use it! Automation +test results will then appear inside Kiwi TCMS.

+ +

If you would like to use such functionality leave your vote inside GitHub +issues! In case you would like to write a test-runner plugin you can find the +specification +here.

+

Redefine bug-tracker integration

+
+

Question: Does Kiwi TCMS integrate with JIRA?

+

Answer: Well, it does. How exactly do you want to integrate?

+

... silence ...

+
+

The following dialog happens every time someone asks me about bug-tracker +integration, especially with JIRA. The thing is integration is a specified +set of behavior which may or may not be desired in a particular team. As of now +Kiwi TCMS is able to open a URL to your bug-tracker with predefined field +values, add comments to bug reports and report a simple summary of bugs +inside a TestRun.

+

We recognize this may not be enough and together with the community we +really need to define what bug tracker integration means! The broader domain +of application lifecycle management tools (of which TCMS is a sub-set) have an +integrated bug tracking system. We can add something like this and save you +the trouble of using JIRA, however many teams have already invested in +integrating their infrastructure or just like other tools. For example we love +GitHub issues and our team regularly makes public reports about issues that +we find internally!

+ +

GitHub flow integration

+

Developers have their +GitHub PR flow and if they +have done the job of having unit tests then they will merge only when things +are green! This leaves additional testing efforts kind of to the side and +doesn't really help with transparency and visibility. I'm not going to mention +having an automatically deployed staging environment for every change +because very few teams actually have managed to do this effectively.

+

Kiwi TCMS statuses on GitHub PR

+
    +
  • Goal: Figure out how Kiwi TCMS can integrate with GitHub flow and bridge the gap. + Please share and +1 your wildest ideas in + Issue #700.
  • +
  • Follow up: depending on the results in #700 we will follow with other goals and + sub-tasks
  • +
+

Agile integration with Trello

+

Speaking of modern engineering flow is your team truly agile? When and how +do you plan your testing activities ? Before the devel sprint or afterwards? +How many testers take part in refining product backlog and working on user stories?

+

Similar to GitHub flow lots of teams and open source projects are using Trello +to effectively organize their development process. Testing should not be left +behind and Kiwi TCMS may be able to help.

+
    +
  • Goal: Figure out how Kiwi TCMS fits into the overall devel-test-planning + process for agile teams and what we can do to make this easier for testers. + Please share and +1 your wildest ideas in + Issue #701
  • +
  • Follow up: depending on the results in #701 we will follow with other goals and + sub-tasks
  • +
+

Improve engineering productivity

+

What makes a test engineer productive when they need to assess product risk and +new features, when mapping product requirements documents (PRD) to test plans and +test cases, when collaborating on user stories and behavior specification ? +What makes developers, product owners, designers and other professionals productive +when it comes to dealing with testing ?

+

For example consider the following workflow:

+
    +
  • Company has idea for a new product
  • +
  • In case this is a big product it may have its own mission, i.e. what kind + of problem is it trying to solve and for which group of customers
  • +
  • Product backlog is then created which outlines features that map + to the product mission
  • +
  • Then the team, together with test engineers perform example mapping + and discuss and refine the initial feature requirements. User stories + are created
  • +
  • Behavior specification may also be created
  • +
  • Test plans and test cases are the immediate product of BDD specs and + desired user stories
  • +
+

Later we iterate through the sprints and for each sprint something like +this happens:

+
    +
  • Desired product features are planned for development. They must be complete + at least in terms of requirements, specs and tests
  • +
  • Devel writes code, maybe some unit tests, testers can also write automated tests + and/or manually verify the current state of the feature being developed
  • +
  • Testing, including exploratory is performed before feature is merged
  • +
  • Rinse and repeat
  • +
+

Devel is also part of testing, right? Product owners, UX and interaction +designers as well. Producing quality software product is a team effort!

+

In every step of the way Kiwi TCMS can provide notification wizards, guidelines +and/or documentation for best practices, facilitate tooling, e.g. to write user stories +and assess them or map out an exploratory testing session, etc. The list +of ideas is virtually endless. We can even go into deep learning, AI and +blockchain but honestly who knows how to use them in testing ?

+

Our team is not quite sure how this goal will look like 3 months from now +but we are certain that testing needs to happen first, last and all the time +during the entire software development lifecycle. By providing the necessary +functionality and tools in Kiwi TCMS we can boost engineering productivity +and steer the testing process in your organization into a better, more productive +direction which welcomes participation from all engineering groups.

+

Let's consider another point of view: testing is a creative activity +which is benefited by putting your brain into a specific state of mind! +For example Gherkin (the Given-When-Then language) has the benefit of +forcing you to think about behavior and while doing so you are vocalizing +the various roles in the system, what kind of actions are accepted and +what sort of result is expected! Many times this will help you remember or +discover missing scenarios, edge cases and raise even more questions!

+

Crazy ideas, brain dumps and +1 as always are welcome in +Issue #703.

+

Community

+

Coding alone is not fun! Here's what you can do to help us:

+ +

We are also looking to expand our core team and the list of occasional +contributors. The following are mostly organizational goals:

+
    +
  • Goal: participate in 5 conferences with a project stand
  • +
  • Goal: define how we find, recruit and onboard new team members. The + foundation is already set in + TP-3
  • +
  • Goal: clearly mark GitHub issues which are suitable for external contributors + which don’t want to spend lots of time learning how Kiwi TCMS works under the hood. + We're going to tag all such issues with the + + GitHub help wanted + label
  • +
+

Development policy

+

Our team will be working on areas related to the goals above. A +1 +reaction on GitHub issues will help us prioritize what we work on!

+

GitHub +1

+

Bug fixes and other +issues will be occasionally slipped into the stream and pull requests from +non-team contributors will be reviewed and merged in a timely fashion.

+

There is at least 1 full day of work that goes behind the scenes when +a new version is officially released: compile changelog, build images and +upload them, create blog post and newsletter announcement, share on social +media, etc. We also deploy on our own Kiwi TCMS instance as a stop-gap +measure before making everything public!

+

New PyPI tarballs and Docker images will be released every few weeks as +we see fit, this has been our standard process. We try to align releases +with Django's release schedule and try to cut a new version when there are known +security vulnerabilities fixed. However we can't guarantee this will always +be the case!

+

If you are in a hurry and need something quickly the best option is to +send a pull request, build your own Docker image from source and +maybe consider +sponsoring us via Open Collective!

+

Happy testing!

+
+
+
+
+ +

Kiwi TCMS 6.4

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 6.4! This is a security, +improvement and bug-fix update that includes new versions of Django, +Patternfly and other dependencies. 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  39fcb88182bb    963.4 MB
+kiwitcms/kiwi       6.2     7870085ad415    957.6 MB
+kiwitcms/kiwi       6.1.1   49fa42ddfe4d    955.7 MB
+kiwitcms/kiwi       6.1     b559123d25b0    970.2 MB
+kiwitcms/kiwi       6.0.1   87b24d94197d    970.1 MB
+kiwitcms/kiwi       5.3.1   a420465852be    976.8 MB
+
+
+

Changes since Kiwi TCMS 6.3

+
+

Security

+
    +
  • Update Django from 2.1.4 to 2.1.5, which deals with CVE-2019-3498: +Content spoofing possibility in the default 404 page
  • +
  • Update Patternfly to version 3.59.0, which deals with XSS issue in bootstrap. +See CVE-2018-14041
  • +
  • By default session cookies will expire after 24 hours. This can be controlled +via the SESSION_COOKIE_AGE setting. Fixes +Issue #556
  • +
+
+
+

Improvements

+
    +
  • Update mysqlclient from 1.3.13 to 1.3.14
  • +
  • Update python-gitlab from 1.6.0 to 1.7.0
  • +
  • Update django-simple-history from 2.5.1 to 2.6.0
  • +
  • Update pygithub from 1.43.3 to 1.43.4
  • +
  • New API method TestCase.remove(). Initially requested as +SO #53844380
  • +
  • Drop down select widges in Patternfly pages are now styled with +bootstrap-select giving them more consistent look and feel with +the rest of the page (Anton Sankov)
  • +
  • Create new TestPlan page now includes toggles to control notifications +and whether or not the test plan is active. This was previously available +only in edit page (Anton Sankov)
  • +
  • By default TestPlan notification toggles are turned on. Previously they +were off (Anton Sankov)
  • +
  • Create and Edit TestPlan pages now look the same (Anton Sankov)
  • +
  • Kiwi TCMS is now accepting donations via +Open Collective
  • +
+
+
+

Removed functionality

+
    +
  • Remove TestPlan page -> Run menu -> Add cases to run action. +This is the same as TestRun page -> Cases menu -> Add action
  • +
  • Legacy reports will be removed after 1st March 2019. Provide your +feedback in +Issue #657
  • +
  • The /run/ URL path has been merged with /runs/ due to configuration +refactoring. This may break your bookmarks or permalinks!
  • +
+
+
+

Bug fixes

+
    +
  • Don't traceback if markdown text is None. Originally reported as +SO #53662887
  • +
  • Show loading spinner when searching. Fixes +Issue #653
  • +
  • Quick fix: when viewing TestPlan cases make TC summary link to the test case. +Previously the summary column was a link to nowhere.
  • +
+
+
+

Translations

+ +
+
+

Refactoring

+
    +
  • Pylint fixes
  • +
  • New and updated internal linters
  • +
  • Refactor testplans.views.new to class based view (Anton Sankov)
  • +
  • Refactor TestCase -> Bugs tab -> Remove to JSON-RPC. References +Issue #18
  • +
  • Refactor removeCaseRunBug() to JSON-RPC, References +Issue #18
  • +
  • Remove unused render_form() methods
  • +
  • Remove unnecessary string-to-int conversion (Ivaylo Ivanov)
  • +
  • Remove obsolete label fields. References +Issue #652 (Anton Sankov)
  • +
  • Remove JavaScript that duplicates requestOperationUponFilteredCases()
  • +
  • Remove QuerySetIterationProxy class - not used anymore
  • +
+
+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+

WARNING: kiwitcms/kiwi:latest and docker-compose.yml will +always point to the latest available version! If you have to upgrade in steps, +e.g. between several intermediate releases, you have to modify the above workflow:

+
+# starting from an older Kiwi TCMS version
+docker-compose down
+docker pull kiwitcms/kiwi:<next_upgrade_version>
+edit docker-compose.yml to use kiwitcms/kiwi:<next_upgrade_version>
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+# repeat until you have reached latest
+
+

Happy testing!

+
+ +
+
+
+
+ +

Roadmap status report for 2018

+
+ + +
+ +
+

Hello everyone, in this article I will outline the progress that the Kiwi TCMS +team has made towards achieving the goals in our 2018 +roadmap +(mid-year update here). +TLDR; goals are completed at 62%. Refactoring legacy code is showing good results, +less so on the front-end side and there are items still in progress!

+

Make code easier to maintain

+

Status: good progress

+

Initially CodeClimate reported +a "D" rating with 600+ code smells and 600+ duplications and a 1 year estimation +to resolve these. We're now down to "C" rating with 171 smells and 203 duplications.

+

The level of technical debt has dropped from 32.5% down to 17.7% and we have removed +around 14000 lines of Python code and 8000 lines of JavaScript code without +losing significant functionality.

+

Checkout +the stats +for more info!

+

Use pylint and pylint-django

+

Status: almost finished

+

Both pylint and pylint-django have been integrated into our CI workflow. There are even +some custom built plugins that we use. The number of issues reported is down to 100 +from 4000+ initially. These are predominantly fixme comments which are also in parts +of the code that are scheduled for removal and refactoring.

+

Render HTML, return JSON

+

Status: moderate progress

+

Several views were modified to return pure JSON but we've not +done any targeted work to resolve this issue. A number of other views have been +removed in favor of using the existing JSON-RPC layer.

+

This is an internal refactoring effort which isn't very visible from the outside. +This is also one of the factors contributing to the high number of removed +source code.

+

Submit forms, post JSON, GET clean URLs

+

Status: no progress

+

Not much has been done in this area except the occasional refactoring to +JSON-RPC.

+

API layer

+

Status: complete

+

Documentation

+

Status: moderate progress, dropped

+

All RPC methods have been documented! The rest of the internals will be documented +as we go along.

+

No vendored JavaScript libraries

+

Status: good progress

+

We still carry around jQuery, jQuery-UI and Handlebars.js. They will be +removed once the pages using them are converted to use the Patternfly widgets +library.

+

Less HTML templates with better organization

+

Status: moderate progress

+

There are still over 50 HTML templates in tcms/templates/ that need to be +refactored into Patternfly. We've been working on them one at a time and will +focus more on this effort in the next couple of months.

+

Modern interface with Patternfly

+

Status: moderate progress

+

Some of the pages have been converted to use Patternfly. The most important pages +that still have a different look and feel are TestPlan view, TestCase view and +TestRun view. These are also the hardest to convert because they have lots of +tabs/components which pull information from various places. Our goal is to create +reusable widgets for the various components (e.g. a list of TestCases) and then +include these components into several different templates to minimize code +duplication.

+

JavaScript updates and front-end testing

+

Status: moderate progress

+

A number of JavaScript functions have been refactored and removed during the +past few releases but there are still thousands of lines of code left to deal with. +This effort is mostly happening in parallel with the Patternfly redesign. +We still don't have anything to test front-end JavaScript functionality!

+

Community efforts

+

Status: good progress

+

We are seeing a steady stream of new users registered on +https://public.tenant.kiwitcms.org and +there are several active contributors on GitHub. Most of our translators are +very active and keep their respective languages fresh and up to date!

+

Kiwi TCMS was represented at OSCAL Tirana, DjangoCon Heidelberg, PyCon Prague, +HackConf Sofia, PiterPy St. Petersburg and OpenFest Sofia. We've also been +approved for a project stand at FOSDEM 2019 so watch this blog for more news.

+

Happy testing!

+
+
+
+
+ +

Kiwi TCMS 6.3

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 6.3! This is a medium severity +security update that includes new versions of Django and Patternfly, +new database migrations, lots of improvements, bug fixes and internal +refactoring. This version also introduces integration with GitLab issue +tracker! 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  8135624fdca2    960.3 MB
+kiwitcms/kiwi       6.2     7870085ad415    957.6 MB
+kiwitcms/kiwi       6.1.1   49fa42ddfe4d    955.7 MB
+kiwitcms/kiwi       6.1     b559123d25b0    970.2 MB
+kiwitcms/kiwi       6.0.1   87b24d94197d    970.1 MB
+kiwitcms/kiwi       5.3.1   a420465852be    976.8 MB
+
+
+

Changes since Kiwi TCMS 6.2.1

+
+

Security

+
    +
  • Resolve medium severity XSS vulnerability which can be exploited when +previewing malicious text in Simple MDE editor. See +CVE-2018-19057, +SNYK-JS-SIMPLEMDE-72570
  • +
  • Use mozilla/bleach before rendering Markdown to the user as a second layer +of protection against the previously mentioned XSS vulnerability
  • +
+
+
+

Improvements

+
    +
  • Update to Django 2.1.4
  • +
  • Update to Patternfly 3.58.0
  • +
  • Make docker container restartable (Maik Opitz, Adam Hall)
  • +
  • Add GitLab issue tracker integration. Fixes +Issue #176 +(Filipe Arruda, Federal Institute of Pernambuco)
  • +
  • Convert Create new TestPlan page to Patternfly (Anton Sankov)
  • +
  • Upon successful registration show the list of super-users in case new +accounts must be activated manually. This can be the same or expanded +version of the addresses in the ADMIN setting. Include super-users +in email notifications sent via tcms.signals.notify_admins().
  • +
  • Don't include admin/js/*.js files in templates when not +necessary. Results in faster page load. Fixes +Issue #209
  • +
  • Enable nl2br Markdown extension which allows newline characters +to be rendered as <br> tags in HTML. Visually the rendered +text will look closer to what you seen in the text editor. Fixes +Issue #623
  • +
  • Use auto-complete for adding components to TestCase
  • +
+
+
+

Removed functionality

+
    +
  • Bulk-update of Category for selected TestCase(s) inside of +TestPlan
  • +
  • Bulk-update of Components for selected TestCase(s) inside of +TestPlan
  • +
  • Bulk-update of automated status for selected TestCase(s) inside of +TestPlan
  • +
  • Bulk-remove for TestCase Component tab
  • +
+

These actions have always been a bit broken and didn't check the +correct permission labels. You can still update items individually!

+
    +
  • Selection of Components when creating new TestCase. Closes +Issue #565. +Everywhere else Kiwi TCMS doesn't allow selection of many-to-many +relationships when creating or editing objects. Tags, Bugs, Components, +TestPlans can be added via dedicated tabs once the object has been saved.
  • +
+
+
+

Bug fixes

+
    +
  • Hide KiwiUserAdmin.password field from super-user. Fixes +Issue #610
  • +
  • Don't show inactive Priority. Fixes +Issue #637
  • +
  • Don't traceback when adding new users via Admin. Fixes +Issue #642
  • +
  • Teach TestRun.update() API method to process the stop_date +field. Fixes +Issue #554 (Anton Sankov)
  • +
  • Previously when reporting issues to Bugzilla, directly from a TestRun, +Kiwi TCMS displayed the error Enable reporting to this Issue Tracker by +configuring its base_url although that has already been configured. +This is now fixed. See +Stack Overflow #53434949
  • +
+
+
+

Database

+
    +
  • Remove TestPlan.owner field, duplicates TestPlan.author
  • +
+
+
+

Translations

+ +
+
+

Refactoring

+
    +
  • Remove fmt_queries(). Fixes +Issue #330 (Anton Sankov)
  • +
  • Remove unused parameter from plan_from_request_or_none(). Refers to +Issue #303 (Anton Sankov)
  • +
  • Remove ComponentActions() class. Fixes +Issue #20
  • +
  • Convert lots of AJAX calls to JSON-RPC
  • +
  • Remove lots of unused Python, JavaScript and templates. Both after migration +to JSON RPC and other leftovers
  • +
  • Pylint fixes (Alexander Todorov, Anton Sankov)
  • +
+
+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+

WARNING: kiwitcms/kiwi:latest and docker-compose.yml will +always point to the latest available version! If you have to upgrade in steps, +e.g. between several intermediate releases, you have to modify the above workflow:

+
+# starting from an older Kiwi TCMS version
+docker-compose down
+docker pull kiwitcms/kiwi:<next_upgrade_version>
+edit docker-compose.yml to use kiwitcms/kiwi:<next_upgrade_version>
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+# repeat until you have reached latest
+
+

Happy testing!

+
+ +
+
+
+
+ +

Kiwi TCMS 6.2.1

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 6.2.1! This is a small release +that includes some improvements 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  24338088bf46    956.8 MB
+kiwitcms/kiwi       6.2     7870085ad415    957.6 MB
+kiwitcms/kiwi       6.1.1   49fa42ddfe4d    955.7 MB
+kiwitcms/kiwi       6.1     b559123d25b0    970.2 MB
+kiwitcms/kiwi       6.0.1   87b24d94197d    970.1 MB
+kiwitcms/kiwi       5.3.1   a420465852be    976.8 MB
+
+
+

Changes since Kiwi TCMS 6.2

+
+

Improvements

+ +
+
+

Bug fixes

+
    +
  • Fix InvalidQuery, field TestCase.default_tester cannot be both deferred and +traversed using select_related at the same time. References +Issue #346
  • +
+
+
+

Refactoring

+
    +
  • Pylint fixes (Ivaylo Ivanov)
  • +
  • Remove JavaScript and Python functions in favor of existing JSON-RPC
  • +
  • Remove vendored-in js/lib/jquery.dataTables.js which is now replaced by +the npm package datatables.net (required by Patternfly)
  • +
+
+
+

Translations

+ +
+
+

Misc

+
    +
  • https://public.tenant.kiwitcms.org is +using a new SSL certificate with serial number +46:78:80:EA:80:A4:FC:65:17:E4:59:EC:1D:C2:27:47
  • +
  • Version 6.2.1 has been published to +PyPI to facilitate people who want +to deploy Kiwi TCMS on Heroku. Important: PyPI package will be provided +as a convenience for those who know what they are doing. Valid bugs and +issues will be dealth with accordingly. As we do not deploy from a PyPI +tarball we ask you to provide all the necessary +details when reporting issues! If you have no idea what all of this means +then stick to the official Docker images!
  • +
+
+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+

WARNING: kiwitcms/kiwi:latest and docker-compose.yml will +always point to the latest available version! If you have to upgrade in steps, +e.g. between several intermediate releases, you have to modify the above workflow:

+
+# starting from an older Kiwi TCMS version
+docker-compose down
+docker pull kiwitcms/kiwi:<next_upgrade_version>
+edit docker-compose.yml to use kiwitcms/kiwi:<next_upgrade_version>
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+# repeat until you have reached latest
+
+

Happy testing!

+
+ +
+
+
+
+ +

Test runner plugin specification

+
+ + +
+ +
+

Happy Monday testers! Kiwi TCMS needs your help! We are looking for developers who +wish to create plugins for popular test runners that will record test results +in Kiwi TCMS! Initially we are looking for plugins for Python's unittest, +Django +and JUnit!

+

What is a test runner?

+

When working with automated testing you have several components:

+
    +
  • A test module (or test script), e.g. test_models.py which contains + tests for your software;
  • +
  • A test framework, e.g. Python nose, which provides the structure + for test classes and methods and assert methods to use;
  • +
  • A test runner, which knows how to discover your test scripts, load them, + execute the testing scenarios inside of them and report the results.
  • +
+

Very often all of the components above live together inside the testing framework +but don't need to. For example the standard unittest module in Python +provides a test runner but there are also nose and py.test and Django provides +its own test runner that knows how to work with the database.

+

Workflow organization

+

Once you agree to writing a plugin we are going to create a separate GitHub +repository where you will be granted write privileges making you an independent +contributor to the Kiwi TCMS project!

+

Design and architecture of the plugin is up to you, following the practices +established by the testing framework in question. You will also have to create +a test suite for your plugin based on the specification below.

+

You are expected to use +public.tenant.kiwitcms.org while working on the +plugin and afterwards. This is known as eating your own dog food!

+

For Python we provide the tcms-api module which already takes care of the +communications layer. For other languages you will have to create this layer or +depend on other open source libraries that provide a XML-RPC or JSON-RPC +client!

+

You can use +this gist +for inspiration!

+

Behavior Specification

+

Please use the comments section to discuss unclear behavior and missing scenarios!

+
    SUMMARY: Will use configuration file if it exists
+    GIVEN: the file ~/.tcms.conf exists
+    WHEN: plugin initializes
+    THEN: the plugin will log an info message, read the file and
+    THEN: configure TCMS_API_URL, TCMS_USERNAME, TCMS_PASSWORD
+          variables with the respective values
+
+
+    SUMMARY: Will use ENVIRONMENT if configuration file doesn't exist
+    GIVEN: the file ~/.tcms.conf does not exists
+    WHEN: plugin initializes
+    THEN: the plugin will read configuration from environment and configure
+          the following variables/class members:
+          TCMS_API_URL, TCMS_USERNAME and TCMS_PASSWORD
+
+
+    SUMMARY: Will exit if TCMS_API_URL not configured
+    GIVEN: TCMS_API_URL variable is empty
+    WHEN: plugin initializes
+    THEN: log a warning message and exit
+    AND: depending on the test runner framework set exist status 1
+
+
+    SUMMARY: Will exit if TCMS_USERNAME not configured
+    GIVEN: TCMS_USERNAME is empty
+    WHEN: plugin initializes
+    THEN: log a warning message and exit
+    AND: depending on the test runner framework set exist status 1
+
+
+    SUMMARY: Will exit if TCMS_PASSWORD not configured
+    GIVEN: TCMS_PASSWORD is empty
+    WHEN: plugin initializes
+    THEN: log a warning message and exit
+    AND: depending on the test runner framework set exist status 1
+
+
+    SUMMARY: Will re-use existing TestPlan if configured
+    GIVEN: TCMS_RUN_ID environment variable is not empty
+    WHEN: plugin initializes
+    THEN:  this will be the Current_TestRun record to which the plugin is
+           going to add test execution results
+    AND: Current_TestPlan document in which the plugin will
+           search for test cases becomes Current_TestRun.plan
+
+
+    SUMMARY: Will create new TestPlan & TestRun if TCMS_RUN_ID not configured
+    GIVEN: TCMS_RUN_ID environment variable is empty
+    THEN: plugin will create a new TestPlan in Kiwi TCMS with attributes:
+        name='Automated test plan for %(product)'
+        product='%(product)'
+        product_version='%(version)'
+        type='Unit'
+    WHERE: %(product) is a placeholder for TCMS_PRODUCT==TRAVIS_REPO_SLUG==JOB_NAME
+           %(version) is a placeholder for TCMS_PRODUCT_VERSION==TRAVIS_COMMIT==TRAVIS_PULL_REQUEST_SHA==GIT_COMMIT
+    THEN: plugin will crate a new TestRun in Kiwi TCMS with attributes:
+        summary='Automated test run ....'
+        plan=Current TestPlan
+        build='%(build)'
+        manager=TCMS_USERNAME
+    WHERE: %(build) is a placeholder for TCMS_BUILD==TRAVIS_BUILD_NUMBER==BUILD_NUMBER
+    Environment variables are specified in:
+    https://docs.travis-ci.com/user/environment-variables#default-environment-variables
+    https://wiki.jenkins.io/display/JENKINS/Building+a+software+project#Buildingasoftwareproject-belowJenkinsSetEnvironmentVariables
+
+    SUMMARY: Will not create duplicate Product, Version & Build if they already exist
+    GIVEN: TCMS_RUN_ID is not configured
+    AND: %(product) exists
+    AND: %(version) exists
+    AND: %(build) exists
+    WHEN: plugin tries to auto-create TestPlan and TestRun
+    THEN: plugin will re-use %(product), %(version) and %(build) from the database
+    AND: not try to auto-create them
+
+
+    SUMMARY: Will auto-create Product, Version & Build if they don't exist
+    GIVEN: TCMS_RUN_ID is not configured
+    AND: %(product) doesn't exist
+    AND: %(version) doesn't exist
+    AND: %(build) doesn't exist
+    WHEN: plugin tries to auto-create TestPlan and TestRun
+    THEN: %(product), %(version) and %(build) be created automatically
+
+
+    SUMMARY: Unit test names are added to TestPlan
+    GIVEN: we have good plugin configuration
+    WHEN: plugin loops over unit tests emitted by the test runner
+    THEN: plugin will check Current_TestPlan for a TestCase with the same name
+    AND: if test case doesn't exist in Current_TestPlan
+    THEN: it will be added to Current_TestPlan
+    hint: it is probably best to process all unit test results at the end!
+
+
+    SUMMARY: Unit test names are added to TestRun
+    GIVEN: we have good plugin configuration
+    WHEN: plugin loops over unit tests emitted by the test runner
+    THEN: plugin will check Current_TestRun for a TestCaseRun object which matches
+          the current unit test name
+    hint: (or Current_TestCase object from previous scenario, depending on implementation)
+    AND: if such TestCaseRun doesn't exist in Current_TestRun
+    THEN: it will be added to Current_TestRun
+    hint: it is probably best to process all unit test results at the end!
+
+
+    SUMMARY: Current_TestRun is updated with unit test results
+    GIVEN: we have good plugin configuration
+    WHEN: plugin loops over unit tests emitted by the test runner
+    THEN: plugin will check Current_TestRun for a TestCaseRun object which matches
+          the current unit test name
+    hint: (or Current_TestCase object from previous scenario, depending on implementation)
+    AND: if TestCaseRun object exists in Current_TestRun
+    THEN: its status will be updated with the execution result coming from the test runner
+    hint: it is probably best to process all unit test results at the end!
+
+ + +

Happy testing!

+
+
+
+
+ +

Kiwi TCMS 6.2

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 6.2! This is a small release +that removes squashed migrations from previous releases and includes a few +improvements. You can explore everything at +https://public.tenant.kiwitcms.org or +find our info booth at OpenFest in Sofia during +the weekend and do a live demo with the team!

+

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 (latest)
+
+

Docker images:

+
+kiwitcms/kiwi       latest  7870085ad415    957.6 MB
+kiwitcms/kiwi       6.2     7870085ad415    957.6 MB
+kiwitcms/kiwi       6.1.1   49fa42ddfe4d    955.7 MB
+kiwitcms/kiwi       6.1     b559123d25b0    970.2 MB
+kiwitcms/kiwi       6.0.1   87b24d94197d    970.1 MB
+kiwitcms/kiwi       5.3.1   a420465852be    976.8 MB
+
+
+

Changes since Kiwi TCMS 6.1.1

+
+

Improvements

+
    +
  • Update to Django 2.1.3
  • +
  • Update Apache config to print logs on the console. Fixes +Issue #549
  • +
  • https://public.tenant.kiwitcms.org now +allows email associations when logging via GitHub. If you have an existing +account which shares the same email address with your GitHub profile you +will be redirected to that account upon logging in via GitHub! +This also resolves a problem where existing users trying to login via GitHub +were presented with error message that their email exists in the database! +Fixes +Issue #573
  • +
+
+
+

Database

+
    +
  • Remove old variants of squashed migrations from earlier releases
  • +
+
+
+

Translations

+ +
+
+

Refactoring

+
    +
  • Update tcms.tests.factories.BugFactory (Ivaylo Ivanov)
  • +
  • Add test for tcms.testcases.views.group_case_bugs (Ivaylo Ivanov)
  • +
  • Pylint fixes (Ivaylo Ivanov)
  • +
  • Remove unused JavaScript and re-use the existing JSON RPC methods
  • +
+
+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+

WARNING: kiwitcms/kiwi:latest and docker-compose.yml will +always point to the latest available version! If you have to upgrade in steps, +e.g. between several intermediate releases, you have to modify the above workflow:

+
+# starting from an older Kiwi TCMS version
+docker-compose down
+docker pull kiwitcms/kiwi:<next_upgrade_version>
+edit docker-compose.yml to use kiwitcms/kiwi:<next_upgrade_version>
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+# repeat until you have reached latest
+
+
+
+

Subscription based online service

+

We are planning to convert +https://public.tenant.kiwitcms.org into +a subscription based service for people who don't want to bother installing +Kiwi TCMS on their own systems and just want to use it for test collaboration +with their team.

+

The income from this service will go towards covering operating costs and +supporting the +development team. Watch this +blog for further announcements about this. Meanwhile you may share your +thoughts via +Issue #515.

+
+
+

Plans to remove deprecated functionality

+

TestRun.product_version will be removed from the database schema in favor of +TestRun.plan.product_version! With the latest web interface it is not possible +to select a product version different than the one selected in the Test Plan. +Test runs should only be able to select product builds (after +Issue #246 is fixed).

+
+ +
+
+
+
+ +

Kiwi TCMS 6.1.1

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 6.1.1! This release +squashes database migrations and removes +older migrations that have been squashed in previous releases, a few +improvements 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
+
+

Docker images:

+
+kiwitcms/kiwi       latest  49fa42ddfe4d    955.7 MB
+kiwitcms/kiwi       6.1.1   49fa42ddfe4d    955.7 MB
+kiwitcms/kiwi       6.1     b559123d25b0    970.2 MB
+kiwitcms/kiwi       6.0.1   87b24d94197d    970.1 MB
+kiwitcms/kiwi       5.3.1   a420465852be    976.8 MB
+
+
+

Changes since Kiwi TCMS 6.1

+
+

Improvements

+
    +
  • Dashboard will now show TestRuns which have test cases assigned to current +user. Fixes +Issue #520
  • +
  • API method TestRun.add_case() now returns a serialized TestCaseRun object. +Previously this method returned None
  • +
+
+
+

Bug fixes

+
    +
  • Don't show disabled Priority records in UI. Fixes +Issue #334
  • +
+
+
+

Translations

+ +
+
+

Refactoring

+
    +
  • Fix some pylint errors (Ivaylo Ivanov)
  • +
+
+
+

Database

+
    +
  • Remove old squashed migrations for management, testplans, +testcases and testruns apps
  • +
  • Squash the remaining migrations for management, testplans, +testcases and testruns apps
  • +
+
+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+
+
+

Subscription based online service

+

We are planning to convert +https://public.tenant.kiwitcms.org into +a subscription based service for people who don't want to bother installing +Kiwi TCMS on their own systems and just want to use it for test collaboration +with their team.

+

The income from this service will go towards covering operating costs and +supporting the +development team. Watch this +blog for further announcements about this. Meanwhile you may share your +thoughts via +Issue #515.

+
+
+

Plans to remove deprecated functionality

+

TestRun.product_version will be removed from the database schema in favor of +TestRun.plan.product_version! With the latest web interface it is not possible +to select a product version different than the one selected in the Test Plan. +Test runs should only be able to select product builds (after +Issue #246 is fixed).

+
+ +
+
+
+
+ +

Kiwi TCMS API performance baseline

+
+ + +
+ +
+

A friend from Red Hat sent me an email asking about Kiwi TCMS performance so I did +an experiment to establish a baseline. +For API requests I got 7.5 req/sec or 130 msec/req which is +1.5x slower than GitHub!

+

I used perf-script +(see here) +to measure that. The script takes the first 250 test cases from our test suite +and on every execution creates a new TestPlan (1 API request), then creates +new test cases (250 requests), adds cases to test plan (250 requests), +creates new product build (1 API request), creates new TestRun (1 API request), +adds test cases to test run (250 requests) and finally updates the statuses +(250 requests).

+

A total of 1003 API requests are sent to Kiwi TCMS every time you start this script! +An example is available at TR #567!

+

On localhost, running the development server (./manage.py runserver) with an +SQLite database I got:

+
$ time python perf-script
+
+real    2m6.450s
+user    0m1.069s
+sys     0m0.331s
+
+$ time python perf-script
+
+real    2m7.472s
+user    0m1.057s
+sys     0m0.342s
+
+$ time python perf-script
+
+real    2m9.368s
+user    0m1.072s
+sys     0m0.351s
+
+$ time python perf-script
+
+real    2m9.197s
+user    0m1.050s
+sys     0m0.353s
+
+ + +

This measures at 120 msec/req or 7.85 req/sec!

+

public.tenant.kiwitcms.org is running on an +AWS t2.micro +instance (via docker-compose) with the default centos/mariadb image! +No extra settings or changes. I used the same computer over a WiFi +connection and a pretty standard home-speed Internet connection. Times are:

+
$ time python perf-script
+
+real    2m18.983s
+user    0m1.175s
+sys     0m0.095s
+
+$ time python perf-script
+
+real    2m25.937s
+user    0m1.156s
+sys     0m0.108s
+
+$ time python perf-script
+
+real    2m24.120s
+user    0m1.102s
+sys     0m0.098s
+
+$ time python perf-script
+
+real    2m21.521s
+user    0m1.154s
+sys     0m0.091s
+
+ + +

This measures at 140 sec/req or 7.05 req/sec!

+

Note: since I am using Python 3.6 I had to modify the file +/opt/rh/rh-python36/root/lib64/python3.6/ssl.py to read:

+
# Used by http.client if no context is explicitly passed.
+_create_default_https_context = _create_unverified_context # this disables HTTPS cert validation
+
+ + +

The issue has been reported in +RHBZ #1643454

+

Happy testing!

+
+
+
+
+ +

Kiwi TCMS 6.1

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 6.1! This release +introduces new database migrations, +internal updates and bug fixes. It is a small release designed +to minimize the number of database migrations by squashing them together. +You can explore everything at +https://public.tenant.kiwitcms.org.

+

NOTE: there is the 6.0.1 release which resolves an upgrade problem +caused by non-applied migrations which have been later squashed and +released in the same release! It is best to jump through the intermediate +releases to ensure a smooth upgrade!

+

Supported upgrade paths:

+
+5.3   (or older) -> 5.3.1
+5.3.1 (or newer) -> 6.0.1
+6.0.1            -> 6.1
+
+

Docker images:

+
+kiwitcms/kiwi       latest  b559123d25b0    970.2 MB
+kiwitcms/kiwi       6.1     b559123d25b0    970.2 MB
+kiwitcms/kiwi       6.0.1   87b24d94197d    970.1 MB
+kiwitcms/kiwi       5.3.1   a420465852be    976.8 MB
+
+
+

Changes since Kiwi TCMS 6.0

+
+

Improvements

+
    +
  • Update Jira from 1.0.10 to 2.0.0
  • +
  • Update to Patternfly 3.55.0
  • +
  • Use button instead of HTML link for deleting test plan (Oleg Kainov)
  • +
  • New middleware that will check missing settings. At the moment will only +check Base URL configuration which often gets forgotten!
  • +
+
+
+

Bug fixes

+
    +
  • Hot-fix for error caused by the API method TestRun.update. Error was +initially reported on +StackOverflow. +This patch makes it possible to use the API without crashing however the +TestRun.update method doesn't handle the stop_date field at the moment!
  • +
+
+
+

Translations

+ +
+
+

Refactoring

+
    +
  • Fix pylint errors (Ivaylo Ivanov)
  • +
  • Remove unused TestRun.list and TestCase.list_confirmed methods
  • +
  • Remove unused plan_by_id_or_name() and is_int(). Fixes +Issue #269
  • +
+
+
+

Database

+
    +
  • Rename tcms.core.contrib.auth to tcms.kiwi_auth
  • +
  • Remove field user from TestCaseTag, TestRunTag and TestPlanTag +models
  • +
  • Squash migrations for management app
  • +
  • Squash migrations for testcases app
  • +
  • Squash migrations for testplans app
  • +
  • Squash migrations for testruns app
  • +
+
+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+
+
+

Subscription based online service

+

We are planning to convert +https://public.tenant.kiwitcms.org into +a subscription based service for people who don't want to bother installing +Kiwi TCMS on their own systems and just want to use it for test collaboration +with their team.

+

The income from this service will go towards covering operating costs and +supporting the +development team. Watch this +blog for further announcements about this. Meanwhile you may share your +thoughts via +Issue #515.

+
+
+

Plans to remove deprecated functionality

+

TestRun.product_version will be removed from the database schema in favor of +TestRun.plan.product_version! With the latest web interface it is not possible +to select a product version different than the one selected in the Test Plan. +Test runs should only be able to select product builds (after +Issue #246 is fixed).

+
+ +
+
+
+
+ +

Kiwi TCMS team updates

+
+ + +
+ +
+

I am happy to announce that our team is steadily growing! +As we work through our roadmap, +status update here, and +on-board new team members I start to feel the need for a bit more structure +and organization behind the scenes. I also wish for consistent contributions +to the project (commit early, commit often) so I can better estimate the resources +that we have!

+

I am also actively discussing Kiwi TCMS with lots of people at various conferences +and generate many ideas for the future. The latest SEETEST in Belgrade was particularly +fruitful. Some of these ideas are pulling into different directions and I need help +to keep them under control!

+

Development-wise sometimes I lose track of what's going on and who's doing what between +working on Kiwi TCMS, preparing for conferences and venues to promote the project, +doing code review of other team members, trying not to forget to check-in on +progress (especially by interns), recruiting fresh blood and thinking about +the overall future of the project. Our user base is growing and there are days +where I feel like everything is happening at once or that something +needs to be implemented ASAP (which is usually true anyway)!

+

+

Meet Rayna Stankova in the role of our team coach! +Reny is a director for Women Who Code Sofia, senior QA engineer at VMware, +mentor with CoderDojo Bulgaria and a long-time friend of mine. +Although she is an experienced QA in her own right she will be contributing +to the people side of Kiwi TCMS and less so technically!

+

Her working areas will be planning and organization:

+
    +
  • help us (re)define the project vision and goals
  • +
  • work with us on roadmaps and action plans so we can meet + the project goals faster
  • +
  • help us (self) organize so that we are more efficient, + including checking progress and blockers (aka enforcer) and + meet the aforementioned consistency point
  • +
  • serve as our professional coach, motivator and somebody who will + take care of team health (yes I really suck at motivating others)
  • +
+

and generally serving as another very experienced member of the team!

+

We did a quick brainstorming yesterday and started to produce results +(#smileyface)! We do have a team docs space to share information +(non-public for now, will open it gradually as we grow) and came up +with the idea to use Kiwi TCMS as a check-list for our on-boarding/internship +process!

+

I don't know how it will play out but I do expect from the +team to self-improve, be inspired, become more focused and more productive! +All of this also applies to myself, even more so!

+

Existing team members progress

+

Last year we started with 2 existing team members (Tony and myself) and 3 +new interns (Ivo, Kaloyan and Tseko) who built this website!

+

Tony is the #4 contributor to Kiwi TCMS in +terms of number of commits +and is on track to surpass one of the original authors (before Kiwi TCMS was forked)! +He's been working mostly on internal refactoring and resolving the thousands +of pylint errors that we had (down to around 500 I think). This summer Tony and I +visited the OSCAL conference in Tirana and hosted an info booth for the project.

+

Ivo is the #5 contributor in terms of numbers of commits. He did learn very +quickly and is working on getting rid of the remaining pylint errors. His ability +to adapt and learn is quite impressive actually. Last month he co-hosted a +git workshop at HackConf, a 1000+ people IT event in Sofia.

+

Kaloyan did most of the work on our website initially (IIRC). +Now he is studying in the Netherlands +and not active on the project. We are working to reboot his on-boarding +and I'm hoping he will find the time to contribute to Kiwi TCMS regularly.

+

From the starting team only Tseko decided to move on to other ventures after +he contributed to the website.

+

Internship program

+

At Kiwi TCMS we have a set of training +programs that teach all the necessary technical skills before we let anyone +actively work on the project, let alone become a team member.

+

Our new interns are Denitsa Uzunova and Desislava Koleva. Both of them are +coming from Vratsa Software Community and were mentors at the recently held +CodeWeek hackathon in their home city! I wish them fast learning and good luck!

+

Happy testing!

+
+
+
+
+ +

Kiwi TCMS winter conference presence

+
+ + +
+ +
+

We are happy to announce that OpenFest - the biggest +open source conference in Bulgaria has provided an info booth for our project. +This year the event will be held on 3rd and 4th of November at Sofia Tech Park!

+

Last time the team went to a conference together we had a lot of fun! Join us +at OpenFest to learn more about Kiwi TCMS and have fun with us!

+ + + + + + +

In case you are unable to visit Sofia, which you totally should, you can catch up with +us in Russia until the end of the year:

+ +

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

+
+
+
+
+ +

Kiwi TCMS 6.0

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 6.0! This release +introduces new database migrations, removal of +environment properties in favor of tags, internal updates and bug fixes. +You can explore everything at +https://public.tenant.kiwitcms.org.

+

This release removes squashed migrations. Direct upgrades from versions +< 5.3.1 to 6.0 will break without an intermediate upgrade to 5.3.1!

+

Docker images:

+
+kiwitcms/kiwi       latest  cd087297f349    991.3 MB
+
+
+

Changes since Kiwi TCMS 5.3.1

+
+

Improvements

+
    +
  • Update to Django 2.1.2 +due to high severity security issue
  • +
  • Update to Patternfly 3.54.8
  • +
  • Tag objects are now shown in Admin panel
  • +
  • Add autocomplete when adding tags to TestRun via UI
  • +
+
+
+

Removed functionality

+
    +
  • TestCase new and edit views no longer allow editing of tags. Tags can be +added/removed from the Tags tab which also makes sure to properly account +for permissions
  • +
  • Remove EnvGroup, EnvProperty and EnvValue models in favor of tags. +Existing values and properties are converted into tags and automatically added +to test runs!
  • +
  • Convert squashed database migrations to regular ones and remove older migrations. +WARNING: upgrade from versions <= 5.3.1 to 6.0 will break without an intermediate +upgrade to kiwitcms/kiwi:5.3.1 a420465852be.
  • +
  • Remove deprecated TestCase.estimated_time and TestRun.estimated_time. Fixes +Issue #514
  • +
+
+
+
+

Backend API

+
    +
  • No longer use product_version for TestRun.create. Fixes +Issue #522
      +
    • 'product' is no longer required
    • +
    • 'product_version' is no longer required
    • +
    • 'manager' and 'default_tester' can be usernames or IDs
    • +
    +
  • +
  • TestCase.create no longer accepts 'tag' values
  • +
  • TestRun.add_tag and TestRun.remove_tag now return list of tags. +Previously these methods returned None! +This is the list of tags assigned to the TestRun that is being modified!
  • +
+
+

Bug fixes

+
    +
  • Fix mismatched HTML tag in plan/get.html template (Oleg Kainov)
  • +
  • Don't use |slugify filter in templates which breaks HTML links with non-ASCII +TestPlan names. Fixes +Sentry KIWI-TCMS-38
  • +
+
+
+

Refactoring

+
    +
  • Fix pylint errors (Ivaylo Ivanov, Anton Sankov)
  • +
  • Use existing JSON-RPC methods to add/remove tags via webUI and remove specialized +backend methods that handled these requests. Also make sure to obey respective +permissions
  • +
+
+
+

Translations

+ +
+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+
+
+

Subscription based online service

+

We are planning to convert +https://public.tenant.kiwitcms.org into +a subscription based service for people who don't want to bother installing +Kiwi TCMS on their own systems and just want to use it for test collaboration +with their team.

+

The income from this service will go towards covering operating costs and +supporting the +development team. Watch this +blog for further announcements about this. Meanwhile you may share your +thoughts via +Issue #515.

+
+
+

Plans to remove deprecated functionality

+

TestRun.product_version will be removed from the database schema in favor of +TestRun.plan.product_version! With the latest web interface it is not possible +to select a product version different than the one selected in the Test Plan. +Test runs should only be able to select product builds (after +Issue #246 is fixed).

+
+ +
+
+ +
+
+ +

How to add API logging for Kiwi TCMS

+
+ + +
+ +
+

In this blog post I will show more ways to customize Kiwi TCMS by adding +logging capabilities to the API backend. Indeed this is a feature that +our team deemed not required for upstream and was removed in +PR #436.

+

Start by creating the following directory structure:

+
    api_logging/
+        __init__.py
+        handlers.py
+        models.py
+
+ + +

This is a small Django application that will log every call to the API backend. +Each file looks like this:

+
    # models.py contains DB schema for your new table
+    from django.db import models
+    from django.conf import settings
+
+    class ApiCallLog(models.Model):
+        executed_at = models.DateTimeField(auto_now_add=True)
+        user = models.ForeignKey(settings.AUTH_USER_MODEL, null=True, blank=True,
+                                 on_delete=models.CASCADE)
+        method = models.CharField(max_length=255)
+        args = models.TextField(blank=True)
+
+        def __str__(self):
+            return "%s: %s" % (self.user, self.method)
+
+ + +

Then

+
    # handlers.py overrides the RPC handlers coming from django-modernrpc
+    from modernrpc import handlers
+
+    from django.conf import settings
+    from django.contrib.auth import get_user_model
+
+    from .models import ApiCallLog
+
+    def log_call(request, method_name, args):
+        """ Log an RPC call to the database or stdout in DEBUG mode. """
+        request_user = request.user
+        if not request_user.is_authenticated:
+            # create an anonymous user object for logging purposes
+            request_user, _ = get_user_model().objects.get_or_create(
+                username='Anonymous',
+                is_active=False)
+
+        if method_name is None:
+            method_name = '--- method_name missing ---'
+
+        if settings.DEBUG:
+            print('API call:: user: {0}, method: {1}, args: {2}'.format(
+                request_user,
+                method_name,
+                args))
+        else:
+            ApiCallLog.objects.create(
+                user=request_user,
+                method=method_name,
+                args=str(args))
+
+    class XMLRPCHandler(handlers.XMLRPCHandler):
+        def process_request(self):
+            encoding = self.request.encoding or 'utf-8'
+            data = self.request.body.decode(encoding)
+            params, method_name = self.loads(data)
+
+            log_call(self.request, method_name, params)
+            return super().process_request()
+
+    class JSONRPCHandler(handlers.JSONRPCHandler):
+        def process_single_request(self, payload):
+            method_name = payload.get('method', None)
+            params = payload.get('params')
+
+            log_call(self.request, method_name, params)
+            return super().process_single_request(payload)
+
+ + +

NOTE: +You will have to execute ./manage.py makemigrations api_logging to create the +initial migration for Django. This could be easier if you place the above directory +into existing Django application or craft the migration file by hand!

+

The last thing you want to do is create a local_settings.py file which will override +Kiwi TCMS defaults:

+
    # local_settings.py
+    from django.conf import settings
+
+    settings.INSTALLED_APPS += [
+        'api_logging',
+    ]
+
+    MODERNRPC_HANDLERS = ['api_logging.handlers.XMLRPCHandler',
+                          'api_logging.handlers.JSONRPCHandler']
+
+ + +

Then place everything in Dockerfile like so:

+
    FROM kiwitcms/kiwi
+
+    COPY ./api_logging/ /venv/lib64/python3.6/site-packages/api_logging/
+    COPY local_settings.py /venv/lib64/python3.6/site-packages/tcms/settings/
+
+ + +

Kiwi TCMS will import your local_settings.py and enable the logging application. +Now build your customized Docker image and use it for deployment!

+

Happy testing!

+
+
+
+
+ +

Kiwi TCMS 5.3.1

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 5.3.1! This release +brings lots of UI updates and removal of unused +and/or duplicated functionality and source code. Many pages have been redesigned +with the Patternfly library to have a modern look and feel which you can +experience at https://public.tenant.kiwitcms.org.

+

This will be the last release to carry around squashed migrations. In version +6.0 older migrations will be deleted and replaced with their squashed equivalents. +Upgrades from versions < 5.3 to 6.0 will break without an intermediate upgrade to 5.3.1!

+

Use kiwitcms/kiwi:5.3.1 from Docker Hub when upgrading at some point in the future!

+

Docker images:

+
+kiwitcms/kiwi        5.3.1               a420465852be        976.8 MB
+kiwitcms/kiwi        latest              a420465852be        976.8 MB
+
+
+

Changes since Kiwi TCMS 5.2

+
+

Improvements

+
    +
  • Update to Django 2.1.1
  • +
  • Update Patternfly version. Fixes +Issue #381
  • +
  • Replace TinyMCE with SimpleMDE markdown editor. Used for TestPlan text and +TestCase action, setup, breakdown, effect fields
  • +
  • Allow downstream builds to customize the login templates by +providing registration/custom_login.html template. It can either +override the entire login page or provide additional information inside +the custom_login block!
  • +
+
+
+

Known issues

+
    +
  • You may need to strip existing texts from HTML tags that were generated by +TinyMCE. Either do this manually as you go along and use/edit records or in bulk via +the API and tools like html2text. +We strongly advise you to backup +your database before attempting to automatically edit text fields!
  • +
+
+
+

Visual changes

+
    +
  • Remove breadcrumbs at the top of pages. Only admin pages still have them
  • +
  • Convert login and registration templates to Patternfly. Fixes +Issue #211
  • +
  • Convert 404 and 500 templates to Patternfly
  • +
  • Convert dashboard page to Patternfly
  • +
  • Convert TestRun new, edit and clone pages to Patternfly. Fixes +Issue #17
  • +
  • Convert Search Test Plans page to Patternfly
  • +
  • Convert Search Test Runs page to Patternfly
  • +
  • Convert Search Test Cases page to Patternfly
  • +
  • TestPlan view page, Runs tab now re-uses the search form for test runs +which is built using Patternfly
  • +
  • Added pagination controls to pages with search results
  • +
+
+
+

Removed functionality

+
    +
  • When creating or editing TestRun
      +
    • field estimated_time is scheduled for removal and is not shown
    • +
    • product_version is scheduled for removal in favor of +TR.plan.product_version
    • +
    • Product & Version can't be edited anymore. Must be set on the parent +TestPlan instead. Still allows to specify builds
    • +
    +
  • +
  • Remove the ability to clone multiple TestPlans from search results
  • +
  • Remove the ability to upload TestPlan document files in favor of +the existing API
  • +
  • Remove TestCase export to XML in favor of existing API
  • +
  • Remove Advanced Search functionality. Fixes +Issue #448, +Issue #108
  • +
  • Remove tech preview feature: Django Report Builder
  • +
+
+
+

Translations

+ +
+
+

Bug fixes

+
    +
  • Don't use get_full_url() where not needed. Closes +Issue #380
  • +
  • Remove unused templates. Fixes +Issue #114
  • +
  • Submit filter form when clicking on tag value. Fixes +Issue #426
  • +
  • Update TestCaseRun.tested_by when setting status. Fixes +Issue #459
  • +
  • Add tests for KiwiUserAdmin. Closes +Issue #489
  • +
+
+
+

Settings

+
    +
  • The following settings have been removed MOTD_LOGIN, WELCOME_MESSAGE +and TINYMCE_DEFAULT_CONFIG
  • +
+
+
+

Refactoring

+
    +
  • Fix pylint errors (Anton Sankov, Ivaylo Ivanov)
  • +
  • Remove lots of unused functions and classes
  • +
  • Remove old or unnecessary templates
  • +
  • Remove html2text dependency
  • +
  • Remove unused CSS and vendored-in JavaScript libraries
  • +
  • Add JavaScript JSON-RPC client which is now used by the front-end to +communicate with the existing JSON-RPC API on the back-end. This +replaces many 'ajax' views which are only used to render the UI and were +duplicating functionality with existing API
  • +
  • Non dist/ files are no longer removed from node_modules/ when building +a docker image because packages like moment.js and bootstrap-datetimepicker.js +don't ship their files in dist/
  • +
  • Convert TestPlans.TreeView to JSON RPC
  • +
+
+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+
+
+

Ask your questions on StackOverflow

+

Kiwi TCMS is now using the +'kiwi-tcms' +tag on StackOverflow to track questions. Please submit your support requests +and general questions to +StackOverflow tagged +with the 'kiwi-tcms' tag! Support requests via GitHub or email will not be answered +anymore (GitHub issues are for bugs or feature discussions only)!

+
+
+

Subscription based online service

+

We are planning to convert +https://public.tenant.kiwitcms.org into +a subscription based service for people who don't want to bother installing +Kiwi TCMS on their own systems and just want to use it for test collaboration +with their team.

+

The income from this service will go towards covering operating costs and +supporting the +development team. Watch this +blog for further announcements about this. Meanwhile you may share your +thoughts via +Issue #515.

+
+
+

Plans to remove deprecated functionality

+

TestRun.product_version will be removed from the database schema in favor of +TestRun.plan.product_version! With the latest web interface it is not possible +to select a product version different than the one selected in the Test Plan. +Test runs should only be able to select product builds (after +Issue #246 is fixed).

+

TestRun.estimated_time is scheduled for removal if not used. Objections +and use-cases must be shared via +Issue #514.

+

EnvGroup and EnvProperty models are scheduled for removal in favor +of Tag. Internally tags are referenced in more places inside Kiwi TCMS' +source code and they appear to be more fully developed. On the other hand +while environment appears very similar to tags it is not exactly the same. +Ongoing discussion is happening via +Issue #484.

+
+ +
+
+ +
+ Newer Posts +

+ Page 6 / 7 +

+ Older Posts +
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/index7.html b/blog/index7.html new file mode 100644 index 00000000..3e247cac --- /dev/null +++ b/blog/index7.html @@ -0,0 +1,1939 @@ + + + + + Kiwi TCMS - Blog + + + + + + + + + + + + + + + +
+

Blog

+ +
+
+ +

Kiwi TCMS 5.2

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 5.2! This release +introduces new database migrations and converts +the Docker image to a non-root user with uid 1001. You may have to adjust +ownership/permissions on the kiwi_uploads Docker volume!

+

The new kiwitcms/kiwi:latest docker image has Image ID 6bc4e3124fd4. +https://public.tenant.kiwitcms.org +has also been updated!

+
+

Changes since Kiwi TCMS 5.1

+
+

Enhancements

+
    +
  • Upgrade to Django 2.1
  • +
  • Upgrade to django-report-builder 6.2.2, compatible with Django 2.1
  • +
  • Docker image now executes with uid 1001 instead of root
      +
    • image based on centos7 image instead of centos/httpd
    • +
    • image now exposes ports 8080 and 8443
    • +
    • Apache logs now printed on Docker console
    • +
    • SSL certificates copied to /Kiwi/ssl inside Docker image instead of being bind-mounted
    • +
    • uploads dir changed to /Kiwi/uploads
    • +
    • static dir changed to /Kiwi/static
    • +
    • /Kiwi is now owned by uid 1001
    • +
    • /venv is now owned by uid 1001
    • +
    • docker-compose.yml is updated to match
    • +
    +
  • +
  • Fix pylint errors (Ivaylo Ivanov)
  • +
  • Allow users to see other profiles via Admin
  • +
  • Use password change form from Admin instead of custom one
  • +
  • product.py will try to import local_settings.py if available in the +same directory. This can be used to customize settings in downstream +distributions
  • +
  • Updated Slovenian translation
  • +
+
+
+

Bug fixes

+
    +
  • Make password reset views public
  • +
  • Don't crash when adding new users via Admin
  • +
+
+
+

Refactoring

+
    +
  • Remove UserProfile model. Kiwi TCMS doesn't needs extra information +about users so we remove this part of the application. Custom installations +may choose to define their own profiles if they wish
  • +
  • Remove custom DBModelBackend authentication backend
  • +
  • Remove unused tcms.core.context_processors.auth_backend_processor
  • +
  • Remove unused get_using_backend(). Fixes +Issue #261
  • +
  • Remove dj_pagination. Fixes +Issue #110
  • +
+
+
+

Settings

+
    +
  • AUTHENTICATION_BACKENDS is removed
  • +
  • PAGINATION_DEFAULT_PAGINATION is removed
  • +
  • Navigation menu links are now defined in MENU_ITEMS and can be redefined
  • +
+
+
+

Signals

+
    +
  • USER_REGISTERED_SIGNAL now doesn't receive the backend parameter
  • +
+
+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+
+ +
+
+
+
+ +

How to override templates for Kiwi TCMS

+
+ + +
+ +
+

This is the first publication in our customization series. It will show you +how to override any template used by Kiwi TCMS. As an example we will override +the email template that is used when registering new account. By default the +email text looks like this:

+
    Welcome {{ user }},
+    thank you for signing up for an {{ site_domain }} account!
+
+    To activate your account, click this link:
+    {{ confirm_url }}
+
+ + +

https://public.tenant.kiwitcms.org +runs a custom Docker image based on +kiwitcms/kiwi. For this image the confirmation email looks like this

+
    Welcome {{ user }},
+    thank you for signing up for our Kiwi TCMS demo!
+
+    To activate your account, click this link:
+    {{ confirm_url }}
+
+    GDPR no longer allows us to automatically subscribe you to
+    our newsletter. If you wish to keep in touch and receive emails
+    with news and updates around Kiwi TCMS please subscribe at:
+    https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&id=c970a37581
+
+    --
+    Happy testing!
+    The Kiwi TCMS team
+    http://kiwitcms.org
+
+ + +

The file that we want to override is tcms/templates/email/confirm_registration.txt.

+

Create a local directory (git repository) which will hold customization configuration +and create a file named templates.d/email/confirm_registration.txt with your text!

+

Next you want to make this file available inside your docker image so your Dockerfile +should look like this:

+
    FROM kiwitcms/kiwi
+
+    COPY ./templates.d/ /venv/lib64/python3.6/site-packages/tcms/overridden_templates/
+    COPY local_settings.py /venv/lib64/python3.6/site-packages/tcms/settings/
+
+ + +

where local_settings.py contains

+
    import os
+    from django.conf import settings
+
+    settings.TEMPLATES[0]['DIRS'].insert(0, os.path.join(settings.TCMS_ROOT_PATH, 'overridden_templates'))
+
+ + +

The following code states instruct Django to look into overridden_templates first and +use any templates it finds there; also make my files available in that specific location +inside the docker image.

+

This approach can be used for all templates that you wish to override. Take into +account that file names must match (Django searches templates by directory path). +Now build your customized Docker image and use that for deployment!

+

Happy testing!

+
+
+
+
+ +

Kiwi TCMS 5.1

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 5.1! This release +introduces new database migrations, an experimental reporting feature, +deprecated functionality and bug fixes.

+

The new kiwitcms/kiwi:latest docker image has Image ID cc9b55aa664d. +https://public.tenant.kiwitcms.org +has also been updated!

+
+

Changes since Kiwi TCMS 5.0

+
+

Enhancements

+
    +
  • Integrate with Django Report Builder as tech-preview. This makes it possible +for power users and administrators to generate +tabular reports. +You will have to know the existing DB schema if you want to create your own reports. +See http://kiwitcms.readthedocs.io/en/latest/db.html. This feature is in +tech-preview and it may be removed if it doesn't work out. Please comment at: +Issue #452.
  • +
  • Allow using manage.py dumpdata|loaddata|sqlflush|dbshell for backups, see +blog post
  • +
  • In TestCase view page add a link to delete the current test case
  • +
  • In TestCase Admin page the + Add TestCase button now allows to create new +test case
  • +
  • The version menu item in the helper menu now links to +Changelog
  • +
+
+
+

Deprecated functionality

+
    +
  • Start showing deprecation warning for Advanced search, see +Issue #448
  • +
+
+
+

Bug fixes

+
    +
  • Allows Product/Version/Build to be shown in Testing Report. Fixes +Sentry KIWI-TCMS-2C
  • +
  • Default to https:// links if not running locally. Fixes +Issue #450
  • +
  • Apply missing CSS class for object history table so it can be displayed nicely
  • +
+
+
+

Refactoring

+
    +
  • Squash some database migrations
  • +
  • Fix a number of pylint issues
  • +
  • Remove unused testruns.views::view_caseruns(). References +Issue #316
  • +
  • Remove unused template report/caserun.html
  • +
  • Handle TestRun deletion via admin not home grown code
  • +
+
+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+
+
+

Help us make Kiwi TCMS better

+

According to our 2018 roadmap update +the Kiwi TCMS team is investing a great deal of our time to make the code base more +maintainable! For the past few releases we've been balancing code refactoring +with bug-fixing and enhancements and we have lots of ideas down the line.

+

We want to hear your voice! Tell us how you use Kiwi TCMS inside your organization. +We want to know what works for you and what doesn't so we can make it better. Feel +free to comment below, file GitHub issues or send us an email.

+

Happy testing!

+
+ +
+
+
+
+ +

How to backup Docker volumes for Kiwi TCMS

+
+ + +
+ +
+

When you start Kiwi TCMS by running docker-compose up +(see here) +it will automatically create 2 volumes: kiwi_db_data and kiwi_uploads. +This blog post will outline how to backup these docker volumes.

+

Note: in the instructions below kiwi_db is the container name and kiwi is the +database name used inside the docker-compose.yml file!

+

MariaDB/MySQL database

+

To export all contents from the docker container execute the command:

+
docker exec -u 0 -i kiwi_db mysqldump kiwi > backup.sql
+
+ + +

This will create a file named backup.sql in the current directory, outside of the running container!

+

You can restore the database contents by using the following command:

+
cat backup.sql | docker exec -u 0 -i kiwi_db mysql -v kiwi
+
+ + +

Notes:

+
    +
  1. The commands above using -u 0 are executed with root privileges inside the + container. In this way you don't need to type-in the database password!
  2. +
  3. Depending on your scenario you may want to remove the existing volume + (docker-compose down && docker volume rm kiwi_db_data) before restoring the database!
  4. +
+

Postgres database

+

To export all contents from the docker container execute the command:

+
docker exec -i kiwi_db pg_dump --dbname=kiwi -F c > backup.bak
+
+ + +

This will create a file named backup.bak in the current directory, outside of the running container. +This is a PostgreSQL custom database dump format which contains all data and schema definitions. +That is a binary file which can be read with the pg_restore command!

+

To drop and restore the entire database execute:

+
docker exec -i kiwi_db psql -c "DROP DATABASE IF EXISTS kiwi;"
+cat backup.bak | docker exec -i kiwi_db pg_restore --dbname=template1 -vcC
+
+ + +

Multi-tenant database

+

The kiwitcms-tenant add-on and/or +Kiwi TCMS Enterprise work only on +Postgres! Each tenant (aka name-space) uses a separate database schema. +The first schema name is public.

+

The backup and restore instructions shown above operate on all tenants together! +If you want to [drop and] restore an individual tenant then use the commands:

+
docker exec -it kiwi_db psql --dbname=kiwi
+
+kiwi=> DROP SCHEMA $tenant_name CASCADE;
+....
+DROP SCHEMA
+kiwi=> CREATE SCHEMA $tenant_name;
+CREATE SCHEMA
+kiwi=>Ctrl+D
+
+cat backup.bak | docker exec -i kiwi_db pg_restore --dbname=kiwi -v --schema $tenant_name
+
+ + +

Backing up file uploads

+

Uploaded files can easily be backed up with:

+
docker exec -i kiwi_web /bin/tar -cP /Kiwi/uploads > uploads.tar
+
+ + +

and then restored with:

+
cat uploads.tar | docker exec -i kiwi_web /bin/tar -x
+
+ + +

You may also try the rsync command but be aware that it is not installed +by default!

+

Note: +the same approach may be used to backup /var/lib/mysql/ or /var/lib/pgsql/data +from the kiwi_db container.

+

Backing up multi-tenant uploads

+

By default multi-tenant file uploads are stored under /Kiwi/uploads/tenant/$tenant_name. +You can archive all contents with the same procedure above. If you wish to restore +files per tenant you will have to upload the $tenant_name directory into the +docker volume.

+

Alternatives

+

By default both docker volumes created for Kiwi TCMS use the local driver +and are available under /var/lib/docker/volumes/<volume_name> on the host +running your containers. You can try backing them up from there as well.

+

Another alternative is to use the +docker-lvm-plugin +and create these volumes as LVM2 block devices. Then use +lvcreate -s command to create a snapshot volume. For more information see +chapter 2.3.5. Snapshot Volumes +from the LVM Administrator Guide for Red Hat Enterprise Linux 7.

+

Happy testing!

+
+
+
+
+ +

Mid-year roadmap status report

+
+ + +
+ +
+

Hello everyone, in this article I will outline the progress that the Kiwi TCMS +team has made towards achieving the goals on our +roadmap.

+

Make code easier to maintain

+

Status: moderate progress

+

Initially CodeClimate reported +a "D" rating with a 1 year estimated effort. Now it is still on "D" rating with +a 7 months estimated effort to bring the project back in shape. +Code smells have dropped from 600+ to 418, duplications have been reduced from 600+ to 359! +At the same time technical debt ratio has been decreased from 32,5% to 21,6% and +little over 10000 lines of code have been removed from the source code. +Checkout +the stats +for more info!

+

Use pylint and pylint-django

+

Status: good progress

+

Both pylint and pylint-django have been integrated into our CI workflow. There are even +a few custom built plugins that we use. The number of issues reported is down to around 900 +from 4000+ initially. The cleanup has been lead by Anton Sankov +with help from Ivaylo Ivanov and myself.

+

Render HTML, return JSON

+

Status: no progress

+

Several views were probably modified to return pure JSON in the meantime but we've not +done any targeted work to resolve this issue.

+

Submit forms, post JSON, GET clean URLs

+

Status: no progress

+

Same as above, not much has been done in this area.

+

API layer

+

Status: complete

+

After Kiwi TCMS v4.0 the server side API has been reorganized and updated +to follow the model/method names used internally.

+

After the recent version 5.0 the client side API library has been stripped +to its most basic form so that you can work directly with the responses from +the server.

+

There is no more duplication and ambiguity in names because there isn't +a lot of code left!

+

Documentation

+

Status: moderate progress, dropped

+

All RPC methods have been documented! The rest of the internals will be documented +as we go along.

+

No vendored JavaScript libraries

+

Status: moderate progress

+

Several JavaScript libraries have been removed but we still carry around jQuery +and Handlebars.js. No work has been done to convert Kiwi TCMS to use the jQuery +version provided with Django.

+

Less HTML templates with better organization

+

Status: minimal progress

+

There are still over 100 HTML templates in Kiwi TCMS. Some of the HTML templates +have been merged together, some email templates have been refactored and marked +as translatable but the majority of them have not been updated for a long time.

+

Modern interface with Patternfly

+

Status: no progress

+

JavaScript updates and front-end testing

+

Status: small progress

+

A number of JavaScript functions have been refactored and removed during the +past few releases but there are still thousands of lines of code left to deal with.

+

Community efforts

+

Status: moderate progress

+

We are seeing a steady stream of new users registered on +https://public.tenant.kiwitcms.org and +there are several active contributors (issues, translations).

+

Kiwi TCMS was represented at OSCAL Tirana, DjangoCon Heidelberg and PyCon Prague! +We're planning to attend HackConf and OpenFest in Sofia by the end of the year.

+

Happy testing!

+
+
+
+
+ +

Kiwi TCMS 5.0

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS and tcms-api version 5.0! This release +introduces object history tracking, removal of old functionality and unused code, +lots of internal updates and bug fixes.

+

The new kiwitcms/kiwi:latest docker image has Image ID 468de0abe8a8. +https://public.tenant.kiwitcms.org has also been updated!

+
+

Changes since Kiwi TCMS 4.2

+
+

Settings

+
    +
  • Remove CACHE because not used
  • +
  • Remove PLAN_EMAIL_TEMPLATE, CASE_EMAIL_TEMPLATE and +CASE_DELETE_EMAIL_TEMPLATE. Templates can still be overridden if desired
  • +
+
+
+

Enhancements

+
    +
  • Upgrade to Django 2.0.7
  • +
  • Allow to delete TestPlan. Fixes +Issue #273
  • +
  • Don't include username in dashboard URL
  • +
  • Copy latest TestPlan text when cloning
  • +
  • Always require users to be logged in. Anonymous users will not be allowed +access by default. Read-only access to some views (e.g. get TestPlan or TestRun) +can be enabled by disabling GlobalLoginRequiredMiddleware! Fixes +Issue #230
  • +
  • Start tracking change history for TestPlan, TestCase, TestRun and TestCaseRun. +Fixes Issue #294
  • +
  • History changes are recorded as unified diff which is a universally recognized format
  • +
  • Show the actual changes in email notifications. Fixes +Issue #199
  • +
+
+
+

Bug fixes

+
    +
  • Fix UnboundLocalError local variable 'message' referenced before assignment. Fixes +Sentry KIWI-TCMS-1S
  • +
  • Make email address unique when adding users via admin panel. Fixes +Issue #352 and +Issue #68
  • +
  • Fix unsupported operand type(s) for +=: 'int' and 'datetime.timedelta' by +initializing timedelta variable properly. Fixes +Sentry KIWI-TCMS-1Y
  • +
  • Remove core.models.fields with MySQL time conversions. Fixes +Issue #390
  • +
  • Fix bad JavaScript comparison. Fixes Coverity #289956
  • +
  • Remove expression with no effect. Fixes Coverity #289974
  • +
  • Rewrite request_host_link() to fix Coverity #289987
  • +
  • Fix Coverity #289923 - Typo in identifier
  • +
  • Don't send emails for changes performed by myself. Fixes +Issue #216
  • +
+
+
+

Refactoring

+
    +
  • Fix pylint issues in several modules (Anton Sankov & Ivaylo Ivanov)
  • +
  • Fix wrong Plan Type template variable in advanced search form
  • +
  • Do not use Model.objects.update() because it doesn't respect history
  • +
  • Use the standard ModelChoiceField instead of custom one
  • +
  • Use updateRunStatus() instead of deprecated updateObject()
  • +
  • Simplify JavaScript function getInfo() and use it multiple times
  • +
  • Simplify previewPlan() by removing unused parameters
  • +
  • Unify addChildPlan() and removeChildPlan()
  • +
  • Unify getInfoAndUpdateObject() with changeCaseRunAssignee()
  • +
  • Unify onTestCaseStatusChange() with changeTestCaseStatus()
  • +
  • Convert TestCaseEmailSettings.cc_list to string field
  • +
  • Merge report/caseruns_table.html with reports/caseruns.html
  • +
  • Rename model UserActivateKey to UserActivationKey. Fixes +Issue #276
  • +
  • Remove cached_entities(). Fixes +Issue #307
  • +
  • Remove TestPlanText.checksum field
  • +
  • Remove checksum fields for TestCaseText model
  • +
  • Remove unused and home-grown template tags
  • +
  • Remove unused fields auto_blinddown, description, sortkey from +TestCaseRunStatus model. Fixes +Issue #186
  • +
  • Remove Meta.db_name effectively renaming all tables. New names will use +Django's default naming scheme
  • +
  • Remove RawSQL queries. We are now 100% ORM based. Fixes +Issue #36
  • +
  • Remove duplicate MultipleEmailField definition
  • +
  • Remove TCMSLog view, TCMSLogManager, TCMSLogModel
  • +
  • Remove TestPlanText model, use TestPlan.text instead
  • +
  • Remove unused JavaScript files +- lib/detetmine_type.js +- lib/hole.js +- lib/scriptaculous-controls.js.patch +- lib/validations.js +- static/js/index.js
  • +
  • Remove constructPlanParentPreviewDialog()
  • +
  • Remove changeCasePriority()
  • +
  • Remove changeCaseRunOrder()
  • +
  • Remove debug_output() from JavaScript files
  • +
  • Remove deprecated /ajax/update/ end-point
  • +
  • Remove taggleSortCaseRun()
  • +
  • Remove strip_parameters()
  • +
  • Remove _InfoObjects.users()
  • +
  • Remove get_value_by_type()
  • +
  • Remove testcases.views.get_log()
  • +
  • Remove mail_scene() methods and related templates
  • +
+
+
+

Removed functionality

+
    +
  • TestRun completion status is no longer updated automatically. You can still +update the status manually via the 'Set Finished' or 'Set Running' links! +Fixes Issue #367
  • +
  • Remove bookmarks functionality. There are many great bookmark manager apps +and if the user is keen on bookmarks they should use one of them. Closes +Issue #67 and +Issue #210
  • +
  • Don't track & display history of changes for EnvGroup model
  • +
  • Remove Disable/Enable buttons from TestPlan page. Enabling and disabling +can still be done via the edit page
  • +
  • Remove changeParentPlan() and the ability to change TestPlan parents +from the 'Tree View' tab. This can be done via the edit page
  • +
  • When viewing a TestPlan the user is no longer able to specify a sorkey for a +particular TestCase. Instead they can use the Re-order cases button and +move around the entire row of cases to adjust the sort order
  • +
  • When working with test case results, inside a TestRun you will not be allowed +to change the order of execution. Order should be defined inside the TestPlan +instead
  • +
  • Remove XmlRpcLog() model. Kiwi TCMS will no longer log RPC calls to the +database. This leads to a small performance boost and can be overridden on +individual basis if you need to do so.
  • +
+
+
+

Translations

+
    +
  • More source strings marked as translatable
  • +
  • New translations for Chinese Simplified, Chinese Traditional, German and Slovenian
  • +
  • Stop keeping compiled translations under git. Fixes +Issue #387
  • +
+
+
+
+

tcms-api changes since 4.2

+
    +
  • Requires Python 3.6 or newer because it fixes bugs related to Django's +disabling of keep-alive connections. See https://bugs.python.org/issue26402
  • +
  • The rpc client is now accessed via TCMS().exec.<Server-Method>
  • +
  • Leave only XML-RPC transport classes! This removes the top-level interface +behind the API client and the consuming side is left to work with Python +dictionaries instead of objects.
  • +
  • Remove the interactive tcms script
  • +
  • Remove tcms_api.config module
  • +
  • Remove logging class
  • +
  • Remove script_examples/ directory. These were never tested and maintained
  • +
+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+docker exec -it kiwi_web /Kiwi/manage.py populate_history --auto
+
+
+
+

Help us make Kiwi TCMS better

+

According to our 2018 roadmap the +Kiwi TCMS team is investing a great deal of our time to make the code base more +maintainable! For the past few releases we've been balancing code refactoring +with bug-fixing and minor enhancements and we have lots of ideas down the line.

+

We want to hear your voice! Tell us how you use Kiwi TCMS inside your organization. +We want to know what works for you and what doesn't so we can make it better. Feel +free to comment below, file GitHub issues or send us an email.

+

Happy testing!

+
+ +
+
+
+
+ +

Kiwi TCMS 4.2

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS and tcms-api version 4.2! +This is a security, bug-fix and enhancement update which upgrades to the latest +Django version under Python 3.6. +We've pushed new kiwitcms/kiwi:latest docker image to Docker Hub and updated the +demo instance at https://public.tenant.kiwitcms.org!

+

This version also includes GDPR related changes which affect our project. Read below +for the details.

+

Changes since Kiwi TCMS 4.1.4

+

IMPORTANT: this release introduces new database migrations

+

Security

+ +

Settings

+
    +
  • BUGZILLA_AUTH_CACHE_DIR is a new setting that may be specified to control + where Bugzilla auth cookies are saved! It is not specified by default and + Kiwi TCMS uses a temporary directory each time we try to login into Bugzilla!
  • +
+

Enhancements

+
    +
  • Upgrade to Python 3.6. Fixes + Issue #91
  • +
  • Upgrade to Django 2.0.6
  • +
  • Fix around 100 pylint issues (Anton Sankov)
  • +
  • Update email confirmation template for newly registered users and make the + text translatable
  • +
  • Display Last login column in User admin page
  • +
  • Add tests for tcms.management.views (Anton Sankov)
  • +
  • Remove unused CSS selectors
  • +
  • Remove unnecessary templates/comments/comments.html
  • +
+

Bug fixes

+
    +
  • Remove unused deferred field product_version. Fixes + Sentry KIWI-TCMS-1C
  • +
  • Rename left-over get_url() to get_full_url(). Fixes + Sentry KIWI-TCMS-1B
  • +
  • Fix empty TestPlan url and Product fields in TestRun email notification. Fixes + Issue #353 (Matt Porter, Konsulko Group)
  • +
+

Translations

+
    +
  • Updated translations for Chinese Simplified
  • +
  • Updated translations for Chinese Traditional
  • +
  • New language and translations for Slovenian
  • +
+

Documentation

+
    +
  • Added git clone command to documentation. Fixes + Issue #344 (Anton Sankov)
  • +
+

Models and database migrations

+
    +
  • Increase checksum fields size to hold the new checksum values
  • +
  • Increase activation_key field size to 64 chars
  • +
+

GDPR related

+
    +
  • Allow users to delete their accounts. Link is present on My profile page. + This will also delete any related objects using cascade delete
  • +
  • Try not to be so obvious when it comes to displaying email addresses across + the web interface. Instead show username and link to profile
  • +
+

In addition the following changes were deployed to our infrastructure:

+
    +
  • On our website the Subscribe to our newsletter is now a link, instead of + embedded form because embedded forms can't display GDPR compliance fields. + If you wish to receive email from Kiwi TCMS you need to select the Email + checkbox when signing up for the newsletter.
  • +
  • Double opt-in is now enabled when subscribing to our newsletter
  • +
  • All newsletter addresses that have been unsubscribed have been deleted
  • +
  • Upon registration for https://public.tenant.kiwitcms.org + you are no longer subscribed + to the newsletter. Now we send a welcome email with a link to the newsletter + so you can subscribe if you want
  • +
  • https://public.tenant.kiwitcms.org + now runs a cron job which deletes inactive accounts + and all of their related data. The cron job runs weekly
  • +
+

We're trying to be respectful to your private data and not expose that to any +3rd parties or use it for means other than making Kiwi TCMS better open source +software. If you spot areas for improvement please +report an issue so we can take +a look at it!

+

tcms-api changes since 4.0.0

+
    +
  • Remove coloring. Fixes + Issue #185
  • +
  • Fix using the API client against https:// URLs (Adam Łoszyn, Samsung)
  • +
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then

+
cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+ + +

Help us make Kiwi TCMS better

+

According to our 2018 roadmap the +Kiwi TCMS team is investing a great deal of our time to make the code base more +maintainable! For the past few releases we've been balancing code refactoring +with bug-fixing and minor enhancements and we have lots of ideas down the line.

+

We want to hear your voice! Tell us how you use Kiwi TCMS inside your organization. +We want to know what works for you and what doesn't so we can make it better. Feel +free to comment below, file GitHub issues or send us an email.

+

Happy testing!

+
+
+
+
+ +

Kiwi TCMS conference presence

+
+ + +
+ +
+

Kiwi TCMS is going on a small conference tour. This is where you can find us +in the next couple of months:

+ +

For all of the 3 conferences we're going to have a project presence. In addition +to that you can catch-up with Alex Todorov, Kiwi's project lead at: +TestCon Moscow(17-19 April, Moscow), +Romanian Testing Conference(9-11 May, Cluj-Napoca), +PyCon CZ(1-3 June, Prague) and +DEVit(10-11 June, Thessaloniki).

+

If you can ping us at @KiwiTCMS or look for the +kiwi bird logo and come to say hi!

+
+
+
+
+ +

Kiwi TCMS 4.1.4

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 4.1.4! +This is a bug-fix and enhancement update which upgrades to the latest Django +version, resolves several issues and includes lots of internal code updates.

+

We've pushed new kiwitcms/kiwi docker image to Docker Hub and updated the +demo instance at +https://public.tenant.kiwitcms.org!

+

Changes since Kiwi TCMS 4.1.3

+

Enhancements

+
    +
  • Upgrade to Django 2.0.4
  • +
  • Enable pylint and fix around 700 issues (Anton Sankov)
  • +
  • Add pylint plugin to check docstrings for triple double quotes. Fixes + Issue #296
  • +
  • Add pylint plugin to check for list comprehensions. Fixes + Issue #270
  • +
  • Add pylint plugin to check for class attributes enclosed with double underscores. + These are dunders and are reserved for Python!
  • +
+

Signals

+

BREAKING CHANGES:

+
    +
  • Renamed user_registered to USER_REGISTERED_SIGNAL and + post_update to POST_UPDATE_SIGNAL!
  • +
+

Bug fixes

+ +

Refactoring

+
    +
  • Move Bugzilla and Kerberos backends code into their own repositories. Fixes + Issue #239
  • +
  • Remove cache from TestCaseRunStatus. Fixes + Issue #279
  • +
  • Rewrite UrlMixin. Fixes + Issue #157 (Chenxiong Qi)
  • +
  • Remove unused split_as_option template tag
  • +
  • Internal refactoring and more tests in tcms/core/ajax.py
  • +
  • Delete unused file tcms/core/forms/widgets.py
  • +
  • Merge case/form/filter.html into plan/get_cases.html
  • +
  • Remove unused TestCaseStatus.id_to_string()
  • +
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then

+
cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+ + +

Help us make Kiwi TCMS better

+

According to our 2018 roadmap the +Kiwi TCMS team is investing a great deal of our time to make the code base more +maintainable! For the past few releases we've been balancing code refactoring +with bug-fixing and minor enhancements and we have lots of ideas down the line.

+

We want to hear your voice! Tell us how you use Kiwi TCMS inside your organization. +We want to know what works for you and what doesn't so we can make it better. Feel +free to comment below, file GitHub issues or send us an email.

+

Happy testing!

+
+
+
+
+ +

Kiwi TCMS 4.1.3

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 4.1.3! +This is a bug-fix and enhancement update which upgrades to the latest Django +version, provides easier way for Docker administrators to override SSL certificates +and access httpd log files and resolves several issues. This release also includes +lots of internal code refactoring which removes code duplication and brings down +CodeClimate metrics +to 26.9% of technical debt or 10 months to fix.

+

We've pushed the new kiwitcms/kiwi docker image to Docker Hub and updated the +demo instance at +https://public.tenant.kiwitcms.org. +Starting forward the demo will use +the info-at-kiwitcms.org email address for all communication sent. There are real +people behind this address so if you write to us we will reply!

+

Changes since Kiwi TCMS 4.1.0

+

Enhancements

+
    +
  • Upgrade to Django 2.0.3
  • +
  • Show date_joined column for user admin
  • +
  • Expose httpd logs to the host running docker. Fixes + Issue #191
  • +
+

Bug fixes

+
    +
  • Move SSL keys under common directory in the container. Fixes + Issue #231
  • +
  • Always select active builds for TestRun. Fixes + Issue #245
  • +
  • Swap escape and escapejs filters. Fixes + Issue #234
  • +
  • Globally disable delete_selected action in Admin, this removes the + drop down selection widget! Fixes + Issue #221
  • +
  • Fix error in TestCase view when from_plan is empty string. Fixes + Sentry KIWI-TCMS-Z
  • +
  • Fix sorting issue when None is compared to int. Fixes + Sentry KIWI-TCMS-V
  • +
  • Validate form field as integer, not char. Fixes + Sentry KIWI-TCMS-W
  • +
  • [docs] Remove information about importing test cases via XML. This functionality + was removed in version 3.49
  • +
+

Refactoring

+
    +
  • Refactor inner class CaseActions. Fixes + Issue #21 (Chenxiong Qi)
  • +
  • Only use get_cases.html template. Fixes + Issue #176
  • +
  • Unify get_details_review.html and get_details.html templates
  • +
  • Remove internal Prompt.render class and replace with Django messages
  • +
  • Remove mail/delete_plan.txt template
  • +
  • Remove handle_emails_pre_plan_delete signal handler
  • +
  • Remove the Export button from TestPlan view, use Case->Export sub-menu + item in the Cases tab. Also remove the export buttons from search and advanced + search result templates. If you'd like to export the cases from a given + plan you have to open it in a new browser window and use the menu
  • +
  • Remove the Print button from plan search form
  • +
  • Remove TestRun cloning from search results and plan details, use sub-menu
  • +
  • Remove unnecessary JavaScript handling for EnvGroup edit view
  • +
+

Settings

+
    +
  • Remove PLAN_DELELE_EMAIL_TEMPLATE setting (not used)
  • +
+

Models and database migrations

+
    +
  • Use Django's own DurationField, instead of custom one. Fixes + Issue #183
  • +
+

API clients must now send values for estimated_time which must be in a +format that parse_duration() understands, for example 'DD HH:MM:SS'! See +https://docs.djangoproject.com/en/2.0/ref/utils/#django.utils.dateparse.parse_duration

+

IMPORTANT: this release introduces new database migrations!

+

Translations

+

There are new translatable strings introduced with this release! At this moment +translating Kiwi TCMS in languages other than English is purely a +community effort. If you'd like to help consult our +translations contribution page.

+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then

+
cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+ + +

Help us make Kiwi TCMS better

+

According to our 2018 roadmap the +Kiwi TCMS team is investing a great deal of our time to make the code base more +maintainable! For the past few releases we've been balancing code refactoring +with bug-fixing and minor enhancements and we have lots of ideas down the line.

+

We want to hear your voice! Tell us how you use Kiwi TCMS inside your organization. +We want to know what works for you and what doesn't so we can make it better. Feel +free to comment below, file GitHub issues or send us an email.

+

Happy testing!

+
+
+
+
+ +

Kiwi TCMS 4.1.0

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 4.1.0! +This is a bug-fix and enhancement update centered around providing more +flexibility for administrators to configure the user approval process. +Refer to the documentation for more information about +signals handling +in Kiwi TCMS.

+

Changes since Kiwi TCMS 4.0.0

+

Enhancements and bug fixes

+
    +
  • Add tests for tcms.core.ajax.tag (Anton Sankov)
  • +
  • Remove unused code from tcms.core.ajax.tag (Anton Sankov)
  • +
  • Refactor tcms.core.ajax.tag to work with only one object. Fixes + Issue #135 (Anton Sankov)
  • +
  • Add test for tcms_api.TestRun. Closes + Issue #194
  • +
  • Send the user_registered signal when new users are registered
  • +
  • Add signal handler to notify admins on new users. Fixes + Issue #205
  • +
  • Add is_superuser column to User admin. Fixes + Issue #206
  • +
  • Properly pass variables to blocktrans tag. Fixes + Issue #225
  • +
  • Minor documentation updates
  • +
+

Refactoring

+
    +
  • Remove double thread when sending email on post_save signal
  • +
  • Remove unused EmailBackend authentication backend
  • +
  • Remove unused tcms.core.models.signals module
  • +
  • Consolidate all signals and handlers in tcms.signals
  • +
  • Make use of django_messages during account registration
  • +
+

Settings

+
    +
  • Remove LISTENING_MODEL_SIGNAL (internal setting)
  • +
  • New setting AUTO_APPROVE_NEW_USERS. Fixes + Issue #203
  • +
+

Models and database migrations

+
    +
  • Remove unused fields from Product model: + disallow_new, max_vote_super_bug, vote_super_user, + field votes_to_confirm, default_milestone, milestone_url
  • +
  • Remove unused Milestone model
  • +
+

IMPORTANT: this release introduces new database migrations!

+

Translations

+

There are new translatable strings introduced with this release, +including translations of a few email templates! At this moment +translating Kiwi TCMS in languages other than English is purely a +community effort. If you'd like to help consult our +translations contribution page.

+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then

+
cd Kiwi/
+docker-compose down
+docker pull kiwitcms/kiwi
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+ + +

Happy testing!

+
+
+
+
+ +

Kiwi TCMS & tcms-api version 4.0.0

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 4.0.0 +and the corresponding tcms-api version 4.0.0! This is a very big release +which introduces tons of backwards incompatible changes to the RPC layer +as well as several bug-fixes and enhancements!

+

With this release Kiwi TCMS meets one of our +milestones for 2018! All XML-RPC +namespaces now match DB model names and the API client class names. Lots of +similar and duplicate methods were removed and existing ones were simplified. +We've also reduced code duplication and technical debth by 1 month +according to stats by CodeClimate.

+

IMPORTANT: this is also the first release to officially publish the +kiwitcms/kiwi image on Docker Hub!

+

WARNING: upgrading to Kiwi TCMS 4.0.0 means you will have to upgrade +the tcms-api client as well. None of the 4.x releases is compatible with +older releases due to the massive ammount of changes in the RPC layer.

+

Changes since Kiwi TCMS 3.50

+

Enhancements and bug fixes

+
    +
  • Upgrade to Django 2.0.2 which patches a security issue
  • +
  • Pin JIRA client version to 1.0.10. Fixes + Issue #195
  • +
  • Generate api-docs for model classes
  • +
  • Updated documentation for all RPC methods
  • +
  • Use Grappelli jQuery initialization, fixes popup windows
  • +
  • Unify RPC namespaces, API client class names and server-side model names. + Fixes Issue #153
  • +
+

Settings

+
    +
  • Remove ADMIN_PREFIX setting
  • +
+

RPC methods refactoring

+
    +
  • Remove Build.check_build, use Build.filter
  • +
  • Remove Build.get, use Build.filter
  • +
  • Remove Build.get_caseruns, use TestCaseRun.filter
  • +
  • +

    Remove Build.get_runs, use TestRun.filter

    +
  • +
  • +

    Rename Env.filter_groups, use Env.Group.filter

    +
  • +
  • Rename Env.filter_properties, use Env.Property.filter
  • +
  • +

    Rename Env.filter_values, use Env.Value.filter

    +
  • +
  • +

    Remove Product.add_component, use Component.create

    +
  • +
  • Remove Product.add_version, use Version.create
  • +
  • Remove Product.check_category, use Category.filter
  • +
  • Remove Product.check_component, use Component.filter
  • +
  • Remove Product.check_product, use Product.filter
  • +
  • Remove Product.filter_categories, use Category.filter
  • +
  • Remove Product.filter_components, use Component.filter
  • +
  • Remove Product.filter_versions, use Version.filter
  • +
  • Remove Product.get, use Product.filter
  • +
  • Remove Product.get_builds, use Build.filter
  • +
  • Remove Product.get_cases, use TestCase.filter
  • +
  • Remove Product.get_categories, use Category.filter
  • +
  • Remove Product.get_category, use Category.filter
  • +
  • Remove Product.get_component, use Component.filter
  • +
  • +

    Remove Product.update_component, use Component.update

    +
  • +
  • +

    Rename Tag.get_tags to Tag.filter

    +
  • +
  • +

    Remove TestCase.add_comment

    +
  • +
  • Update signature for TestCase.add_component
  • +
  • Update signature for TestCase.add_tag
  • +
  • Remove TestCase.add_to_run, use TestRun.add_case
  • +
  • Remove TestCase.attach_bug, use Bug.create
  • +
  • Remove TestCase.calculate_average_estimated_time
  • +
  • Remove TestCase.calculate_total_estimated_time
  • +
  • Remove TestCase.check_case_status, use TestCaseStatus.filter
  • +
  • Remove TestCase.check_priority, use Priority.filter
  • +
  • Update signature for TestCase.create, no longer accepts plan, + component and bug dict attributes. Instead use + TestPlan.add_case, TestCase.add_component and Bug.create
  • +
  • Remove TestCase.detach_bug, use Bug.remove
  • +
  • Remove TestCase.filter_count
  • +
  • Remove TestCase.get, use TestCase.filter
  • +
  • Remove TestCase.get_bugs, use Bug.filter({'case': ?})
  • +
  • Remove TestCase.get_bug_systems
  • +
  • Remove TestCase.get_case_status, use TestCaseStatus.filter
  • +
  • Update signature for TestCase.get_components
  • +
  • Remove TestCase.get_plans, use TestPlan.filter({'case': ?})
  • +
  • Remove TestCase.get_priority, use Priority.filter
  • +
  • Remove TestCase.get_tags, use Tag.filter({'case': ?})
  • +
  • Remove TestCase.get_text, use TestCase.filter
  • +
  • Remove TestCase.link_plan, use TestPlan.add_case
  • +
  • Rename TestCase.notification_add_cc to TestCase.add_notification_cc + and update signature
  • +
  • Rename TestCase.notification_get_cc_list to TestCase.get_notification_cc + and update signature
  • +
  • Rename TestCase.notification_remove_cc to TestCase.remove_notification_cc + and update signature
  • +
  • Update signature for TestCase.remove_component
  • +
  • Update signature for TestCase.remove_tag
  • +
  • Remove TestCase.store_text, use TestCase.update with + setup, breakdown, action and effect attributes in the parameter dict
  • +
  • +

    Remove TestCase.unlink_plan, use TestPlan.remove_case

    +
  • +
  • +

    Remove TestCasePlan.get

    +
  • +
  • +

    Remove TestCasePlan.update

    +
  • +
  • +

    Update TestCaseRun.add_comment to accept a single ID as first parameter

    +
  • +
  • Remove TestCaseRun.attach_bug, use Bug.create
  • +
  • Rename TestCaseRun.attach_log to TestCaseRun.add_log
  • +
  • Remove TestCaseRun.detach_bug, use Bug.remove
  • +
  • Rename TestCaseRun.detach_log to TestCaseRun.remove_log
  • +
  • Remove TestCaseRun.get, use TestCaseRun.filter
  • +
  • Remove TestCaseRun.get_bugs, use Bug.filter({'case_run': ?})
  • +
  • Remove TestCaseRun.get_case_run_status_by_name
  • +
  • +

    Update signature for TestCaseRun.update

    +
  • +
  • +

    Remove TestPlan.add_component

    +
  • +
  • Update signature for TestPlan.add_tag
  • +
  • Remove TestPlan.check_plan_type, use PlanType.filter
  • +
  • Remove TestPlan.filter_count
  • +
  • Remove TestPlan.get, use TestPlan.filter
  • +
  • Remove TestPlan.get_all_cases_tags
  • +
  • Remove TestPlan.get_components
  • +
  • Remove TestPlan.get_env_groups, use Env.Group.filter({'testplan': ?})
  • +
  • Remove TestPlan.get_plan_type, use PlanType.filter
  • +
  • Remove TestPlan.get_product, use Product.filter({'plan': ?})
  • +
  • Remove TestPlan.get_tags, use Tag.filter({'plan': ?})
  • +
  • Remove TestPlan.get_test_cases, use TestCase.filter({'plan': ?})
  • +
  • Remove TestPlan.get_test_runs, use TestRun.filter({'plan': ?})
  • +
  • Remove TestPlan.get_text, use TestPlan.filter
  • +
  • Rename TestPlan.link_env_value to TestPlan.add_env_value + and update signature
  • +
  • Remove TestPlan.remove_component
  • +
  • Update signature for TestPlan.remove_tag
  • +
  • Remove TestPlan.store_text, use TestPlan.update with + a text attribute in the parameter values
  • +
  • +

    Rename TestPlan.unlink_env_value to TestPlan.remove_env_value + and update signature

    +
  • +
  • +

    Rename TestRun.add_cases to TestRun.add_case and update signature

    +
  • +
  • Update signature for TestRun.add_tag
  • +
  • Update signature for TestRun.create, no longer accepts case + dict attribute. Instead use TestRun.add_case
  • +
  • Remove TestRun.filter_count
  • +
  • Remove TestRun.get, use TestRun.filter
  • +
  • Remove TestRun.get_bugs
  • +
  • Remove TestRun.get_env_values, use Env.Value.filter({'testrun': ?})
  • +
  • Remove TestRun.get_tags, use Tag.filter({'run': ?})
  • +
  • Rename TestRun.get_test_cases to TestRun.get_cases
  • +
  • Remove TestRun.get_test_case_runs, use TestCaseRun.filter({'run': ?})
  • +
  • Remove TestRun.get_test_plan, use TestPlan.filter({'run': ?})[0]
  • +
  • Rename TestRun.remove_cases to TestRun.remove_case and update signature
  • +
  • Update signature for TestRun.remove_tag
  • +
  • +

    Update signature for TestRun.update

    +
  • +
  • +

    Rename User.get to User.filter

    +
  • +
  • Rename User.join to User.join_group
  • +
  • Update signature for User.update
  • +
+

Models and database migrations

+
    +
  • Remove model TestEnvironment
  • +
  • Remove model TestEnvironmentCategory
  • +
  • Remove model TestEnvironmentElement
  • +
  • Remove model TestEnvironmentMap
  • +
  • Remove model TestEnvironmentProperty
  • +
  • Remove model TestPlanComponent
  • +
  • Remove TestPlan.get_text_with_version()
  • +
  • Remove TestRun.get_previous_or_next()
  • +
+

IMPORTANT: this release introduces new database migrations!

+

tcms-api changes since 1.5.1

+
    +
  • Make the code compatible with Kiwi TCMS XML-RPC v4.0.0
  • +
  • Rename Status to TestCaseRunStatus
  • +
  • Rename CaseRun to TestCaseRun
  • +
  • Remove PlanStatus, use TestPlan.is_active
  • +
  • Remove RunStatus, use TestRun.finished
  • +
  • Remove TestPlan.components container
  • +
  • Update signature for TestPlan. Now accept text kwarg in constructor + instead of document.
  • +
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then

+
cd Kiwi/
+docker-compose down
+docker pull kiwitcms/kiwi
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+ + +

Happy testing!

+
+
+
+
+ +

Kiwi TCMS version 3.50

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 3.50 +and the corresponding tcms-api version 1.5.1! This is a bug-fix and +enhancement release and we advise you to upgrade as soon as possible!

+

Changes since Kiwi TCMS 3.49

+

Enhancements and bug fixes

+
    +
  • Update documentation for XML-RPC and positional arguments, translations, + environment groups
  • +
  • Enable translations. Fixes + Issue #129
  • +
  • Register models for DB translations. Fixes + Issue #182
  • +
  • New German translations (@xbln)
  • +
  • Require django-attachments>=1.3 and restore attachments count in tabs
  • +
  • Fix missing tag names in TestPlan page
  • +
  • Hide admin forms for some models not supposed to be edited by users. Fixes + Issue #174
  • +
  • Use django-grappelli for the admin templates: modern look and feel and + less template files overridden by Kiwi TCMS
  • +
  • Load values for default property in TestRun 'Add Property' dialog. Fixes + Issue #142
  • +
  • Correctly find property ID when renaming environment properties. Fixes + Issue #167
  • +
  • Convert request body to string. Fixes + Issue #177
  • +
+

Refactoring

+
    +
  • Remove batch tag Add/Remove sub-menu in TestPlan view (Anton Sankov)
  • +
  • Remove Edit tag button in Tag tab (Anton Sankov)
  • +
  • Remove template functions. Fixes + Issue #107
  • +
  • Remove custom HttpJSONResponse classes
  • +
  • Remove unused and duplicate code
  • +
+

tcms-api changes since 1.5.0

+
    +
  • Fix order of TestCaseRun statuses. Fixes + Issue #184
  • +
+

IMPORTANT: this release introduces new database migrations!

+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then

+
cd Kiwi/
+docker-compose down
+make docker-image
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+ + +

Happy testing!

+
+
+
+
+ +

Kiwi TCMS roadmap for 2018

+
+ + +
+ +
+

Hello everyone. As you know Kiwi TCMS has been around for a while and it has +gone through some big changes in the last year! It started as an abandoned +Django 1.6 project with broken test suite and is now currently running on the +latest Django 2.0.1 with Python 3.5! It is clearly a legacy code base!

+

We, the Kiwi TCMS team, have learned a lot more about the project and this +blog post describes our roadmap for 2018 in terms of technical work and community +engagement. The general technical direction is cleaner/simpler code, +improved UI/UX and more tests!

+

Make code easier to maintain

+

The current code is a bunch of very large modules and functions and classes +bundled together. It is also old and sometimes looks like spaghetti code. +CodeClimate gives us a "D" rating +for maintainability with a 1 year estimated effort to fix that. There are 600+ +code smells and 600+ duplications detected by CodeClimate. Our goal is to get this +number down to zero!

+

Use pylint and pylint-django

+

pylint is the standard static analyzer for Python and currently it reports over +4000 errors and warnings when executed against Kiwi TCMS. This is a huge number and +it needs to become zero! We've also identified interesting patterns that will +make it into pylint and pylint-django plugins!

+

Render HTML, return JSON

+

The current state of affairs is a mix and match of everything. There are views that +render HTML, others which return pure JSON, other which return HTML encoded as JSON string +and probably everything in between. Views that render pages need to do just that +and views that are used with AJAX calls from the UI need to return pure JSON! +A lot of these are hiding in plain sight and will come to light when we start +overhauling the user interface.

+

Submit forms, post JSON, GET clean URLs

+

There are lots of forms in Kiwi TCMS. Sometimes they are submitted by the user and +other times they are serialized and POSTed by some JavaScript code. This isn't +very easy to understand plus this entire home-grown utility code doesn't bring +anything useful to the project. All of these need to be identified and cleaned up. +JavaScript code needs to send or consume JSON, nothing else!

+

There are also lots of places where Kiwi issues GET requests with a number of +query parameters. Our goal is to minimize these and where possible have the +parameters as part of the Django urls scheme, not as query strings.

+

API layer

+

The current API module is a bit disorganized. API namespaces don't match the +names of the underlying DB models and the API client classes don't match any +of the other two! The way we pass parameters and what these parameters are +named should match between the client, the RPC method and the underlying model!

+

In earlier releases we've removed duplicate or similar RPC methods and we +think there are more of these that need our love.

+

Documentation

+

We've started producing documentation from doc-strings and most of the RPC +methods have such. However it is unformatted and barely readable, sometimes +even inaccurate. Previous releases made progress on this but there's a lot +more to cover.

+

All RPC methods should be documented first and then the rest of Kiwi's +internals to make development easier!

+

No vendored JavaScript libraries

+

There are 11 vendored-in JavaScript files that we carry around in Kiwi TCMS. +Most notable are jQuery plus a few addons and Handlebars.js. To the extent possible +our goal is to use jQuery provided by Django or installed via NPM dependencies!

+

Less HTML templates with better organization

+

There are over 100 HTML templates in Kiwi TCMS. There are also email and even +JavaScript templates. For example there are get_cases.html and get_review_cases.html +which are essentially the same. This is kind of also true for templates used in +new and edit views! Such templates should be unified!

+

Those JavaScript templates need to be totally gone!

+

All templates are stuffed together in a single directory and their names +are not very predictable. They need to be split per application and follow +some kind of naming convention.

+

Modern interface with Patternfly

+

The UI already uses the Patternfly library for some of its widgets. Most notably +the main navigation header. Our goal is for the entire UI to be ported to Patternfly +by updating widgets HTML and CSS where needed. +This will also help clean things up a lot. At the same time we'll be rethinking how +information is organized on screen and how the person interacts with it! Usability +suggestions are very welcome!

+

This move will also help us get rid of the Handlebars dependency which is now +used for pop-up dialogs.

+

JavaScript updates and front-end testing

+

There's lots of JavaScript code on the front-end and honestly we don't quite know +what it does or how it is organized. There are also no tests on the front-end +whatsoever!

+

It is our goal for this to change with the intention to not overdo the JavaScript +part and keep things very minimal. At the moment we're thinking about vanilla jQuery +that will act as a proxy between the browser and the back-end!

+

Community efforts

+

A year ago hardly anybody knew what Kiwi TCMS was, the project didn't even have +this name, there was 1 active contributor and hardly any users! Now the community +has started to slowly revitalize, we're seeing some contributions from our +junior team members (more on this in another blog post) and also seeing +folks installing and using Kiwi TCMS and reporting interesting bugs and feature +requests around it!

+

For the upcoming year our goal is to seek active engagement with other open source +projects that could make use of Kiwi TCMS and work with them. Kudos to +openSUSE for being the first +to propose such integration! +We're also planning couple of appearances at a few conferences but there's +nothing confirmed yet.

+

Every other contribution in terms of bug reports, new users and feature requests +is of course welcome but we're very conscious of the fact that there's tons +of work to be done and the team is still very small!

+

Team wise we'd like to get the existing team members up to speed and tackle +the above tasks with priority. This will also help us introduce bug fixes +and new features more quickly!

+

Happy testing!

+
+
+
+
+ +

Kiwi TCMS version 3.49

+
+ + +
+ +
+

Happy New Year to everyone. We're happy to announce Kiwi TCMS version 3.49 +and the corresponding tcms-api version 1.5.0! This release includes a fair +amount of bug fixes and many changes related to Kiwi's RPC layer!

+

Most importantly Kiwi is updated to Django 2.0.1, the API client no longer +supports Python 2 and many RPC methods have been removed or updated. +https://public.tenant.kiwitcms.org +has also been updated so you can explore the new version.

+

Changes since Kiwi TCMS 3.48

+

Enhancements and bug fixes

+
    +
  • Upgrade to Django 2.0.1
  • +
  • Don't log passwords sent via RPC
  • +
  • Log XML-RPC requests from anonymous users. Fixes + Issue #126
  • +
  • Order TCMSEnvValue records by property name and value. Fixes + Issue #155
  • +
  • flake8 fixes (Anton Sankov)
  • +
  • Start building source code documentation from Python doc strings
  • +
  • Properly urlencode emails in personal menu links
  • +
  • Remove test case import via XML files
  • +
  • Use django-attachments for user uploaded files. Fixes + Issue #160 + As part of this change we no longer copy Plan and Case attachments when + cloning these objects.
  • +
+

NOTE: Since django-attachments introduces new permission objects + you will have to adjust default permissions for existing users! + In order for them to be able to upload/delete their own files they + need to have attachments.add_attachment and atachments.delete_attachment + permissions.

+

These same permissions are added by default to the 'Tester' group. + If you are running an existing installation registering a new user + with Kiwi TCMS will update the default permissions for this group!

+

Refactoring

+
    +
  • Remove unused class EditCaseNotifyThread (Chenxiong Qi)
  • +
  • Remove model TestPlanActivity (Chenxiong Qi)
  • +
  • Remove many unused models and classes
  • +
  • Execute tests via manage.py test and drop py.test dependency
  • +
  • Remove useless TestTag.string_to_list method. Fixes + Issue #106
  • +
  • Use settings.AUTH_USER_MODEL in ForeignKey definitions. Fixes + Issue #143
  • +
+

Settings

+
    +
  • Rename EMAIL_FROM to DEFAULT_FROM_EMAIL. Fixes + Issue #128
  • +
  • Rename FILE_UPLOAD_DIR to MEDIA_ROOT
  • +
  • Rename MAX_UPLOAD_SIZE to FILE_UPLOAD_MAX_SIZE
  • +
  • New setting DELETE_ATTACHMENTS_FROM_DISK
  • +
  • Remove unused XMLRPC_TEMPLATE and TESTOPIA_XML_VERSION
  • +
+

Server side API

+
    +
  • Migrate to django-modern-rpc and remove home-grown XML-RPC handling code. + As part of this change the XML-RPC endpoint has been changed to /xml-rpc/. + There's also a new JSON-RPC endpoint at /json-rpc/!
  • +
  • Auth.login method now accepts positional parameters username, password + instead of dict
  • +
  • TestCaseRun.get method now accepts a query dict as parameter
  • +
  • TestCaseRun.get_bugs method now accepts a query dict as parameter
  • +
  • Remove Build.lookup_id_by_name, Build.lookup_name_by_id RPC methods
  • +
  • Remove Product.lookup_name_by_id, Product.lookup_id_by_name RPC methods
  • +
  • Remove Product.get_components, use Product.filter_components instead
  • +
  • Remove Product.get_plans, use TestPlan.filter instead
  • +
  • Remove Product.get_runs, use TestRun.filter instead
  • +
  • Remove Product.get_tag, use Tag.get_tags instead
  • +
  • Remove Product.get_versions, use Product.filter_versions instead
  • +
  • Remove TestCaseRun.filter_count, use TestCaseRun.filter instead
  • +
  • Remove TestCaseRun.get_s, use TestCaseRun.get instead
  • +
  • Remove TestCaseRun.get_bugs_s, use TestCaseRun.get_bugs instead
  • +
  • Remove TestCaseRun.get_case_run_status, use + TestCaseRun.get_case_run_status_by_name instead
  • +
  • Remove TestCaseRun.get_completion_time, TestCaseRun.get_completion_time_s + RPC methods. Instead calculate them on the client side
  • +
  • Rename TestCaseRun.check_case_run_status to TestCaseRun.get_case_run_status_by_name
  • +
  • TestCaseRun.detach_log will not raise exceptions when deleting logs from + non-existing TestCaseRun objects.
  • +
  • Remove User.get_me, instead use User.get without parameters
  • +
  • Remove Version. and Testopia. RPC modules
  • +
  • Update documentation for RPC methods in Auth, Build and Env namespaces. + Unformatted documentation is also available for the rest of the RPC methods
  • +
+

tcms-api changes since 1.4.0

+
    +
  • Update endpoint configuration, compatible with Kiwi TCMS 3.49
  • +
  • Drop support for Python 2
  • +
  • Remove the internal do_command method which eliminates use of eval()
  • +
  • Remove TCMSXmlrpc.get_me() and TCMSXmlrpc.build_get() methods
  • +
+

IMPORTANT: this release introduces new database migrations!

+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then

+
cd Kiwi/
+docker-compose down
+make docker-image
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+ + +

Happy testing!

+
+
+
+
+ +

Kiwi TCMS Python API client

+
+ + +
+ +
+

We are happy to announce the first official release of the +tcms-api package! +This is a Python client for Kiwi TCMS.

+

There are couple of main distinctions in this module:

+
    +
  • mutable vs. immutable types of objects
  • +
  • high-level class interface vs. low-level XML-RPC interface
  • +
+

For more information you should check-out the documentation +and the script_examples/ directory.

+

At the moment the API client is both Python2 and Python3 compatible, +however it is tested only under Python3!

+

A bit of history

+

The original API client, like Kiwi TCMS itself began its origin under a +different name and was created primarily by Petr Splichal. Since then +Kiwi TCMS has evolved and we've decided that the API module needs to evolve +as well. At the moment the tcms-api module is a bit rough around the edges, +its documentation is not really the best one and it's currently advisable +to spend some time reading the code to figure out how everything works.

+

We're going to improve on all of these areas and we need help from the community +to do so! Please download the tcms-api module, check it out, write and contribute +example scripts (you can use the demo site for this), send us bug reports, suggestions +and pull requests!

+

Happy testing!

+
+
+
+
+ +

Kiwi TCMS version 3.48

+
+ + +
+ +
+

We're proud to announce Kiwi TCMS version 3.48! +This is the first release to be announced on our blog and it is also an +important one!

+

Kiwi TCMS 3.48 introduces new versions of Django and Patternfly, +a Python API client library, many bug-fixes and updated documentation.

+

Changes since KiwiTCMS 3.44

+
    +
  • Update to Django 1.11.7 (Mr. Senko)
  • +
  • Update documentation including high level information + about how data is organized within Kiwi TCMS and how to work + with the system. (Mr. Senko)
  • +
  • Stop caching report views. (Mr. Senko)
  • +
  • Make test execution comments optional. Fixes + Issue #77. (Mr. Senko)
  • +
  • Escape special symbols when exporting JSON. + Fixes Issue #78. (Mr. Senko)
  • +
  • Remove Test Run export to XML functionality in favor of API. + Fixes Issue #79. (Mr. Senko)
  • +
  • Make it possible to search Test Runs via Env properties. + Fixes Issue #82. (Mr. Senko)
  • +
  • Display Environment properties in Test Run search results. (Mr. Senko)
  • +
  • Allow bulk update TestCase.default_tester via email. + Fixes Issue #85. (Mr. Senko)
  • +
  • Don't crash reports when there are untested TestCaseRuns. + Fixes Issue #88. (Mr. Senko)
  • +
  • Bind localhost:80 to container:80. + Fixes Issue #99. (Mr. Senko)
  • +
  • Enable testing with Python 3.6 in preparation for migration. (Mr. Senko)
  • +
  • If JIRA isn't fully configured then don't connect. Fixes + Fixes Issue #100. (Mr. Senko)
  • +
  • Pin patternfly version to 3.30 and update templates. + Fixes Issue #120. (Mr. Senko)
  • +
  • Show status name rather than status id in TestCaseRun change log. (Chenxiong Qi)
  • +
  • [api] Adds a Python API client with changes that make it possible to + execute on both Python 2 and Python 3. For now take a look at + tcms_api/script_examples/ for examples how to use it.
  • +
  • [api] Remove experimental support for Teiid. (Mr. Senko)
  • +
  • [api] Cache level defaults to CACHE_NONE if not set. (Mr. Senko)
  • +
  • [api] Remove persistent cache, in-memory caching is still available. (Mr. Senko)
  • +
  • [api] Remove multicall support. (Mr. Senko)
  • +
+

IMPORTANT: this release introduces new database migrations!

+

NOTE: the API client has been initially developed as the python-nitrate +project by Petr Splichal and other contributors! We've decided to fork their +code base into Kiwi's repository and continue further development in a central +place. This makes it easier testing the API server and client together and +allows us to move more rapidly!

+

As of now there isn't a lot of documentation +and examples on how to use the API client but we are looking to improve this. +Additional documentation and examples will be published in the project's +repository or on this blog!

+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then

+
cd Kiwi/
+docker-compose down
+make docker-image
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+ + +

Happy testing!

+
+
+
+
+ +

Testing, testing. It works!

+
+ + +
+ +
+

Welcome to the official website and blog of Kiwi TCMS. +We are happy to finally be online!

+

This website was built with the help of +Kaloyan Krastev, +Tsvetoslav Garkov and +Ivaylo Ivanov +who will be joining the project a bit later as well.

+

In this blog you can expect various news and progress reports around the project, +announcement of new releases and future plans. We would love to hear your +feedback so please use the comments form below.

+

Happy testing!

+
+
+ +
+ Newer Posts +

+ Page 7 / 7 +

+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2017/11/03/testing-testing-it-works/index.html b/blog/kiwi-tcms-team/2017/11/03/testing-testing-it-works/index.html new file mode 100644 index 00000000..e201f832 --- /dev/null +++ b/blog/kiwi-tcms-team/2017/11/03/testing-testing-it-works/index.html @@ -0,0 +1,215 @@ + + + + + Kiwi TCMS - Testing, testing. It works! + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Testing, testing. It works!

+ + + +
+

Welcome to the official website and blog of Kiwi TCMS. +We are happy to finally be online!

+

This website was built with the help of +Kaloyan Krastev, +Tsvetoslav Garkov and +Ivaylo Ivanov +who will be joining the project a bit later as well.

+

In this blog you can expect various news and progress reports around the project, +announcement of new releases and future plans. We would love to hear your +feedback so please use the comments form below.

+

Happy testing!

+
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2017/11/28/kiwi-tcms-version-348/index.html b/blog/kiwi-tcms-team/2017/11/28/kiwi-tcms-version-348/index.html new file mode 100644 index 00000000..df78c4a7 --- /dev/null +++ b/blog/kiwi-tcms-team/2017/11/28/kiwi-tcms-version-348/index.html @@ -0,0 +1,270 @@ + + + + + Kiwi TCMS - Kiwi TCMS version 3.48 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS version 3.48

+

API client and bug fixes

+ + + +
+

We're proud to announce Kiwi TCMS version 3.48! +This is the first release to be announced on our blog and it is also an +important one!

+

Kiwi TCMS 3.48 introduces new versions of Django and Patternfly, +a Python API client library, many bug-fixes and updated documentation.

+

Changes since KiwiTCMS 3.44

+
    +
  • Update to Django 1.11.7 (Mr. Senko)
  • +
  • Update documentation including high level information + about how data is organized within Kiwi TCMS and how to work + with the system. (Mr. Senko)
  • +
  • Stop caching report views. (Mr. Senko)
  • +
  • Make test execution comments optional. Fixes + Issue #77. (Mr. Senko)
  • +
  • Escape special symbols when exporting JSON. + Fixes Issue #78. (Mr. Senko)
  • +
  • Remove Test Run export to XML functionality in favor of API. + Fixes Issue #79. (Mr. Senko)
  • +
  • Make it possible to search Test Runs via Env properties. + Fixes Issue #82. (Mr. Senko)
  • +
  • Display Environment properties in Test Run search results. (Mr. Senko)
  • +
  • Allow bulk update TestCase.default_tester via email. + Fixes Issue #85. (Mr. Senko)
  • +
  • Don't crash reports when there are untested TestCaseRuns. + Fixes Issue #88. (Mr. Senko)
  • +
  • Bind localhost:80 to container:80. + Fixes Issue #99. (Mr. Senko)
  • +
  • Enable testing with Python 3.6 in preparation for migration. (Mr. Senko)
  • +
  • If JIRA isn't fully configured then don't connect. Fixes + Fixes Issue #100. (Mr. Senko)
  • +
  • Pin patternfly version to 3.30 and update templates. + Fixes Issue #120. (Mr. Senko)
  • +
  • Show status name rather than status id in TestCaseRun change log. (Chenxiong Qi)
  • +
  • [api] Adds a Python API client with changes that make it possible to + execute on both Python 2 and Python 3. For now take a look at + tcms_api/script_examples/ for examples how to use it.
  • +
  • [api] Remove experimental support for Teiid. (Mr. Senko)
  • +
  • [api] Cache level defaults to CACHE_NONE if not set. (Mr. Senko)
  • +
  • [api] Remove persistent cache, in-memory caching is still available. (Mr. Senko)
  • +
  • [api] Remove multicall support. (Mr. Senko)
  • +
+

IMPORTANT: this release introduces new database migrations!

+

NOTE: the API client has been initially developed as the python-nitrate +project by Petr Splichal and other contributors! We've decided to fork their +code base into Kiwi's repository and continue further development in a central +place. This makes it easier testing the API server and client together and +allows us to move more rapidly!

+

As of now there isn't a lot of documentation +and examples on how to use the API client but we are looking to improve this. +Additional documentation and examples will be published in the project's +repository or on this blog!

+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then

+
cd Kiwi/
+docker-compose down
+make docker-image
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+ + +

Happy testing!

+
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2017/12/08/kiwi-tcms-python-api-client/index.html b/blog/kiwi-tcms-team/2017/12/08/kiwi-tcms-python-api-client/index.html new file mode 100644 index 00000000..ecc15fd5 --- /dev/null +++ b/blog/kiwi-tcms-team/2017/12/08/kiwi-tcms-python-api-client/index.html @@ -0,0 +1,232 @@ + + + + + Kiwi TCMS - Kiwi TCMS Python API client + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS Python API client

+

version 1.4.0

+ + + +
+

We are happy to announce the first official release of the +tcms-api package! +This is a Python client for Kiwi TCMS.

+

There are couple of main distinctions in this module:

+
    +
  • mutable vs. immutable types of objects
  • +
  • high-level class interface vs. low-level XML-RPC interface
  • +
+

For more information you should check-out the documentation +and the script_examples/ directory.

+

At the moment the API client is both Python2 and Python3 compatible, +however it is tested only under Python3!

+

A bit of history

+

The original API client, like Kiwi TCMS itself began its origin under a +different name and was created primarily by Petr Splichal. Since then +Kiwi TCMS has evolved and we've decided that the API module needs to evolve +as well. At the moment the tcms-api module is a bit rough around the edges, +its documentation is not really the best one and it's currently advisable +to spend some time reading the code to figure out how everything works.

+

We're going to improve on all of these areas and we need help from the community +to do so! Please download the tcms-api module, check it out, write and contribute +example scripts (you can use the demo site for this), send us bug reports, suggestions +and pull requests!

+

Happy testing!

+
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2018/01/02/kiwi-tcms-version-349/index.html b/blog/kiwi-tcms-team/2018/01/02/kiwi-tcms-version-349/index.html new file mode 100644 index 00000000..61192981 --- /dev/null +++ b/blog/kiwi-tcms-team/2018/01/02/kiwi-tcms-version-349/index.html @@ -0,0 +1,311 @@ + + + + + Kiwi TCMS - Kiwi TCMS version 3.49 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS version 3.49

+

Django 2.0.1 and many XML-RPC updates

+ + + +
+

Happy New Year to everyone. We're happy to announce Kiwi TCMS version 3.49 +and the corresponding tcms-api version 1.5.0! This release includes a fair +amount of bug fixes and many changes related to Kiwi's RPC layer!

+

Most importantly Kiwi is updated to Django 2.0.1, the API client no longer +supports Python 2 and many RPC methods have been removed or updated. +https://public.tenant.kiwitcms.org +has also been updated so you can explore the new version.

+

Changes since Kiwi TCMS 3.48

+

Enhancements and bug fixes

+
    +
  • Upgrade to Django 2.0.1
  • +
  • Don't log passwords sent via RPC
  • +
  • Log XML-RPC requests from anonymous users. Fixes + Issue #126
  • +
  • Order TCMSEnvValue records by property name and value. Fixes + Issue #155
  • +
  • flake8 fixes (Anton Sankov)
  • +
  • Start building source code documentation from Python doc strings
  • +
  • Properly urlencode emails in personal menu links
  • +
  • Remove test case import via XML files
  • +
  • Use django-attachments for user uploaded files. Fixes + Issue #160 + As part of this change we no longer copy Plan and Case attachments when + cloning these objects.
  • +
+

NOTE: Since django-attachments introduces new permission objects + you will have to adjust default permissions for existing users! + In order for them to be able to upload/delete their own files they + need to have attachments.add_attachment and atachments.delete_attachment + permissions.

+

These same permissions are added by default to the 'Tester' group. + If you are running an existing installation registering a new user + with Kiwi TCMS will update the default permissions for this group!

+

Refactoring

+
    +
  • Remove unused class EditCaseNotifyThread (Chenxiong Qi)
  • +
  • Remove model TestPlanActivity (Chenxiong Qi)
  • +
  • Remove many unused models and classes
  • +
  • Execute tests via manage.py test and drop py.test dependency
  • +
  • Remove useless TestTag.string_to_list method. Fixes + Issue #106
  • +
  • Use settings.AUTH_USER_MODEL in ForeignKey definitions. Fixes + Issue #143
  • +
+

Settings

+
    +
  • Rename EMAIL_FROM to DEFAULT_FROM_EMAIL. Fixes + Issue #128
  • +
  • Rename FILE_UPLOAD_DIR to MEDIA_ROOT
  • +
  • Rename MAX_UPLOAD_SIZE to FILE_UPLOAD_MAX_SIZE
  • +
  • New setting DELETE_ATTACHMENTS_FROM_DISK
  • +
  • Remove unused XMLRPC_TEMPLATE and TESTOPIA_XML_VERSION
  • +
+

Server side API

+
    +
  • Migrate to django-modern-rpc and remove home-grown XML-RPC handling code. + As part of this change the XML-RPC endpoint has been changed to /xml-rpc/. + There's also a new JSON-RPC endpoint at /json-rpc/!
  • +
  • Auth.login method now accepts positional parameters username, password + instead of dict
  • +
  • TestCaseRun.get method now accepts a query dict as parameter
  • +
  • TestCaseRun.get_bugs method now accepts a query dict as parameter
  • +
  • Remove Build.lookup_id_by_name, Build.lookup_name_by_id RPC methods
  • +
  • Remove Product.lookup_name_by_id, Product.lookup_id_by_name RPC methods
  • +
  • Remove Product.get_components, use Product.filter_components instead
  • +
  • Remove Product.get_plans, use TestPlan.filter instead
  • +
  • Remove Product.get_runs, use TestRun.filter instead
  • +
  • Remove Product.get_tag, use Tag.get_tags instead
  • +
  • Remove Product.get_versions, use Product.filter_versions instead
  • +
  • Remove TestCaseRun.filter_count, use TestCaseRun.filter instead
  • +
  • Remove TestCaseRun.get_s, use TestCaseRun.get instead
  • +
  • Remove TestCaseRun.get_bugs_s, use TestCaseRun.get_bugs instead
  • +
  • Remove TestCaseRun.get_case_run_status, use + TestCaseRun.get_case_run_status_by_name instead
  • +
  • Remove TestCaseRun.get_completion_time, TestCaseRun.get_completion_time_s + RPC methods. Instead calculate them on the client side
  • +
  • Rename TestCaseRun.check_case_run_status to TestCaseRun.get_case_run_status_by_name
  • +
  • TestCaseRun.detach_log will not raise exceptions when deleting logs from + non-existing TestCaseRun objects.
  • +
  • Remove User.get_me, instead use User.get without parameters
  • +
  • Remove Version. and Testopia. RPC modules
  • +
  • Update documentation for RPC methods in Auth, Build and Env namespaces. + Unformatted documentation is also available for the rest of the RPC methods
  • +
+

tcms-api changes since 1.4.0

+
    +
  • Update endpoint configuration, compatible with Kiwi TCMS 3.49
  • +
  • Drop support for Python 2
  • +
  • Remove the internal do_command method which eliminates use of eval()
  • +
  • Remove TCMSXmlrpc.get_me() and TCMSXmlrpc.build_get() methods
  • +
+

IMPORTANT: this release introduces new database migrations!

+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then

+
cd Kiwi/
+docker-compose down
+make docker-image
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+ + +

Happy testing!

+
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2018/01/22/kiwi-tcms-roadmap-for-2018/index.html b/blog/kiwi-tcms-team/2018/01/22/kiwi-tcms-roadmap-for-2018/index.html new file mode 100644 index 00000000..792bd9e4 --- /dev/null +++ b/blog/kiwi-tcms-team/2018/01/22/kiwi-tcms-roadmap-for-2018/index.html @@ -0,0 +1,309 @@ + + + + + Kiwi TCMS - Kiwi TCMS roadmap for 2018 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS roadmap for 2018

+

cleaner code, improved UI/UX and more tests

+ + + +
+

Hello everyone. As you know Kiwi TCMS has been around for a while and it has +gone through some big changes in the last year! It started as an abandoned +Django 1.6 project with broken test suite and is now currently running on the +latest Django 2.0.1 with Python 3.5! It is clearly a legacy code base!

+

We, the Kiwi TCMS team, have learned a lot more about the project and this +blog post describes our roadmap for 2018 in terms of technical work and community +engagement. The general technical direction is cleaner/simpler code, +improved UI/UX and more tests!

+

Make code easier to maintain

+

The current code is a bunch of very large modules and functions and classes +bundled together. It is also old and sometimes looks like spaghetti code. +CodeClimate gives us a "D" rating +for maintainability with a 1 year estimated effort to fix that. There are 600+ +code smells and 600+ duplications detected by CodeClimate. Our goal is to get this +number down to zero!

+

Use pylint and pylint-django

+

pylint is the standard static analyzer for Python and currently it reports over +4000 errors and warnings when executed against Kiwi TCMS. This is a huge number and +it needs to become zero! We've also identified interesting patterns that will +make it into pylint and pylint-django plugins!

+

Render HTML, return JSON

+

The current state of affairs is a mix and match of everything. There are views that +render HTML, others which return pure JSON, other which return HTML encoded as JSON string +and probably everything in between. Views that render pages need to do just that +and views that are used with AJAX calls from the UI need to return pure JSON! +A lot of these are hiding in plain sight and will come to light when we start +overhauling the user interface.

+

Submit forms, post JSON, GET clean URLs

+

There are lots of forms in Kiwi TCMS. Sometimes they are submitted by the user and +other times they are serialized and POSTed by some JavaScript code. This isn't +very easy to understand plus this entire home-grown utility code doesn't bring +anything useful to the project. All of these need to be identified and cleaned up. +JavaScript code needs to send or consume JSON, nothing else!

+

There are also lots of places where Kiwi issues GET requests with a number of +query parameters. Our goal is to minimize these and where possible have the +parameters as part of the Django urls scheme, not as query strings.

+

API layer

+

The current API module is a bit disorganized. API namespaces don't match the +names of the underlying DB models and the API client classes don't match any +of the other two! The way we pass parameters and what these parameters are +named should match between the client, the RPC method and the underlying model!

+

In earlier releases we've removed duplicate or similar RPC methods and we +think there are more of these that need our love.

+

Documentation

+

We've started producing documentation from doc-strings and most of the RPC +methods have such. However it is unformatted and barely readable, sometimes +even inaccurate. Previous releases made progress on this but there's a lot +more to cover.

+

All RPC methods should be documented first and then the rest of Kiwi's +internals to make development easier!

+

No vendored JavaScript libraries

+

There are 11 vendored-in JavaScript files that we carry around in Kiwi TCMS. +Most notable are jQuery plus a few addons and Handlebars.js. To the extent possible +our goal is to use jQuery provided by Django or installed via NPM dependencies!

+

Less HTML templates with better organization

+

There are over 100 HTML templates in Kiwi TCMS. There are also email and even +JavaScript templates. For example there are get_cases.html and get_review_cases.html +which are essentially the same. This is kind of also true for templates used in +new and edit views! Such templates should be unified!

+

Those JavaScript templates need to be totally gone!

+

All templates are stuffed together in a single directory and their names +are not very predictable. They need to be split per application and follow +some kind of naming convention.

+

Modern interface with Patternfly

+

The UI already uses the Patternfly library for some of its widgets. Most notably +the main navigation header. Our goal is for the entire UI to be ported to Patternfly +by updating widgets HTML and CSS where needed. +This will also help clean things up a lot. At the same time we'll be rethinking how +information is organized on screen and how the person interacts with it! Usability +suggestions are very welcome!

+

This move will also help us get rid of the Handlebars dependency which is now +used for pop-up dialogs.

+

JavaScript updates and front-end testing

+

There's lots of JavaScript code on the front-end and honestly we don't quite know +what it does or how it is organized. There are also no tests on the front-end +whatsoever!

+

It is our goal for this to change with the intention to not overdo the JavaScript +part and keep things very minimal. At the moment we're thinking about vanilla jQuery +that will act as a proxy between the browser and the back-end!

+

Community efforts

+

A year ago hardly anybody knew what Kiwi TCMS was, the project didn't even have +this name, there was 1 active contributor and hardly any users! Now the community +has started to slowly revitalize, we're seeing some contributions from our +junior team members (more on this in another blog post) and also seeing +folks installing and using Kiwi TCMS and reporting interesting bugs and feature +requests around it!

+

For the upcoming year our goal is to seek active engagement with other open source +projects that could make use of Kiwi TCMS and work with them. Kudos to +openSUSE for being the first +to propose such integration! +We're also planning couple of appearances at a few conferences but there's +nothing confirmed yet.

+

Every other contribution in terms of bug reports, new users and feature requests +is of course welcome but we're very conscious of the fact that there's tons +of work to be done and the team is still very small!

+

Team wise we'd like to get the existing team members up to speed and tackle +the above tasks with priority. This will also help us introduce bug fixes +and new features more quickly!

+

Happy testing!

+
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2018/01/25/kiwi-tcms-version-350/index.html b/blog/kiwi-tcms-team/2018/01/25/kiwi-tcms-version-350/index.html new file mode 100644 index 00000000..8d6624aa --- /dev/null +++ b/blog/kiwi-tcms-team/2018/01/25/kiwi-tcms-version-350/index.html @@ -0,0 +1,260 @@ + + + + + Kiwi TCMS - Kiwi TCMS version 3.50 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS version 3.50

+

and tcms-api version 1.5.1

+ + + +
+

We're happy to announce Kiwi TCMS version 3.50 +and the corresponding tcms-api version 1.5.1! This is a bug-fix and +enhancement release and we advise you to upgrade as soon as possible!

+

Changes since Kiwi TCMS 3.49

+

Enhancements and bug fixes

+
    +
  • Update documentation for XML-RPC and positional arguments, translations, + environment groups
  • +
  • Enable translations. Fixes + Issue #129
  • +
  • Register models for DB translations. Fixes + Issue #182
  • +
  • New German translations (@xbln)
  • +
  • Require django-attachments>=1.3 and restore attachments count in tabs
  • +
  • Fix missing tag names in TestPlan page
  • +
  • Hide admin forms for some models not supposed to be edited by users. Fixes + Issue #174
  • +
  • Use django-grappelli for the admin templates: modern look and feel and + less template files overridden by Kiwi TCMS
  • +
  • Load values for default property in TestRun 'Add Property' dialog. Fixes + Issue #142
  • +
  • Correctly find property ID when renaming environment properties. Fixes + Issue #167
  • +
  • Convert request body to string. Fixes + Issue #177
  • +
+

Refactoring

+
    +
  • Remove batch tag Add/Remove sub-menu in TestPlan view (Anton Sankov)
  • +
  • Remove Edit tag button in Tag tab (Anton Sankov)
  • +
  • Remove template functions. Fixes + Issue #107
  • +
  • Remove custom HttpJSONResponse classes
  • +
  • Remove unused and duplicate code
  • +
+

tcms-api changes since 1.5.0

+
    +
  • Fix order of TestCaseRun statuses. Fixes + Issue #184
  • +
+

IMPORTANT: this release introduces new database migrations!

+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then

+
cd Kiwi/
+docker-compose down
+make docker-image
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+ + +

Happy testing!

+
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2018/02/10/kiwi-tcms-tcms-api-version-400/index.html b/blog/kiwi-tcms-team/2018/02/10/kiwi-tcms-tcms-api-version-400/index.html new file mode 100644 index 00000000..cfb72402 --- /dev/null +++ b/blog/kiwi-tcms-team/2018/02/10/kiwi-tcms-tcms-api-version-400/index.html @@ -0,0 +1,419 @@ + + + + + Kiwi TCMS - Kiwi TCMS & tcms-api version 4.0.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS & tcms-api version 4.0.0

+

updated XML-RPC interface and API client

+ + + +
+

We're happy to announce Kiwi TCMS version 4.0.0 +and the corresponding tcms-api version 4.0.0! This is a very big release +which introduces tons of backwards incompatible changes to the RPC layer +as well as several bug-fixes and enhancements!

+

With this release Kiwi TCMS meets one of our +milestones for 2018! All XML-RPC +namespaces now match DB model names and the API client class names. Lots of +similar and duplicate methods were removed and existing ones were simplified. +We've also reduced code duplication and technical debth by 1 month +according to stats by CodeClimate.

+

IMPORTANT: this is also the first release to officially publish the +kiwitcms/kiwi image on Docker Hub!

+

WARNING: upgrading to Kiwi TCMS 4.0.0 means you will have to upgrade +the tcms-api client as well. None of the 4.x releases is compatible with +older releases due to the massive ammount of changes in the RPC layer.

+

Changes since Kiwi TCMS 3.50

+

Enhancements and bug fixes

+
    +
  • Upgrade to Django 2.0.2 which patches a security issue
  • +
  • Pin JIRA client version to 1.0.10. Fixes + Issue #195
  • +
  • Generate api-docs for model classes
  • +
  • Updated documentation for all RPC methods
  • +
  • Use Grappelli jQuery initialization, fixes popup windows
  • +
  • Unify RPC namespaces, API client class names and server-side model names. + Fixes Issue #153
  • +
+

Settings

+
    +
  • Remove ADMIN_PREFIX setting
  • +
+

RPC methods refactoring

+
    +
  • Remove Build.check_build, use Build.filter
  • +
  • Remove Build.get, use Build.filter
  • +
  • Remove Build.get_caseruns, use TestCaseRun.filter
  • +
  • +

    Remove Build.get_runs, use TestRun.filter

    +
  • +
  • +

    Rename Env.filter_groups, use Env.Group.filter

    +
  • +
  • Rename Env.filter_properties, use Env.Property.filter
  • +
  • +

    Rename Env.filter_values, use Env.Value.filter

    +
  • +
  • +

    Remove Product.add_component, use Component.create

    +
  • +
  • Remove Product.add_version, use Version.create
  • +
  • Remove Product.check_category, use Category.filter
  • +
  • Remove Product.check_component, use Component.filter
  • +
  • Remove Product.check_product, use Product.filter
  • +
  • Remove Product.filter_categories, use Category.filter
  • +
  • Remove Product.filter_components, use Component.filter
  • +
  • Remove Product.filter_versions, use Version.filter
  • +
  • Remove Product.get, use Product.filter
  • +
  • Remove Product.get_builds, use Build.filter
  • +
  • Remove Product.get_cases, use TestCase.filter
  • +
  • Remove Product.get_categories, use Category.filter
  • +
  • Remove Product.get_category, use Category.filter
  • +
  • Remove Product.get_component, use Component.filter
  • +
  • +

    Remove Product.update_component, use Component.update

    +
  • +
  • +

    Rename Tag.get_tags to Tag.filter

    +
  • +
  • +

    Remove TestCase.add_comment

    +
  • +
  • Update signature for TestCase.add_component
  • +
  • Update signature for TestCase.add_tag
  • +
  • Remove TestCase.add_to_run, use TestRun.add_case
  • +
  • Remove TestCase.attach_bug, use Bug.create
  • +
  • Remove TestCase.calculate_average_estimated_time
  • +
  • Remove TestCase.calculate_total_estimated_time
  • +
  • Remove TestCase.check_case_status, use TestCaseStatus.filter
  • +
  • Remove TestCase.check_priority, use Priority.filter
  • +
  • Update signature for TestCase.create, no longer accepts plan, + component and bug dict attributes. Instead use + TestPlan.add_case, TestCase.add_component and Bug.create
  • +
  • Remove TestCase.detach_bug, use Bug.remove
  • +
  • Remove TestCase.filter_count
  • +
  • Remove TestCase.get, use TestCase.filter
  • +
  • Remove TestCase.get_bugs, use Bug.filter({'case': ?})
  • +
  • Remove TestCase.get_bug_systems
  • +
  • Remove TestCase.get_case_status, use TestCaseStatus.filter
  • +
  • Update signature for TestCase.get_components
  • +
  • Remove TestCase.get_plans, use TestPlan.filter({'case': ?})
  • +
  • Remove TestCase.get_priority, use Priority.filter
  • +
  • Remove TestCase.get_tags, use Tag.filter({'case': ?})
  • +
  • Remove TestCase.get_text, use TestCase.filter
  • +
  • Remove TestCase.link_plan, use TestPlan.add_case
  • +
  • Rename TestCase.notification_add_cc to TestCase.add_notification_cc + and update signature
  • +
  • Rename TestCase.notification_get_cc_list to TestCase.get_notification_cc + and update signature
  • +
  • Rename TestCase.notification_remove_cc to TestCase.remove_notification_cc + and update signature
  • +
  • Update signature for TestCase.remove_component
  • +
  • Update signature for TestCase.remove_tag
  • +
  • Remove TestCase.store_text, use TestCase.update with + setup, breakdown, action and effect attributes in the parameter dict
  • +
  • +

    Remove TestCase.unlink_plan, use TestPlan.remove_case

    +
  • +
  • +

    Remove TestCasePlan.get

    +
  • +
  • +

    Remove TestCasePlan.update

    +
  • +
  • +

    Update TestCaseRun.add_comment to accept a single ID as first parameter

    +
  • +
  • Remove TestCaseRun.attach_bug, use Bug.create
  • +
  • Rename TestCaseRun.attach_log to TestCaseRun.add_log
  • +
  • Remove TestCaseRun.detach_bug, use Bug.remove
  • +
  • Rename TestCaseRun.detach_log to TestCaseRun.remove_log
  • +
  • Remove TestCaseRun.get, use TestCaseRun.filter
  • +
  • Remove TestCaseRun.get_bugs, use Bug.filter({'case_run': ?})
  • +
  • Remove TestCaseRun.get_case_run_status_by_name
  • +
  • +

    Update signature for TestCaseRun.update

    +
  • +
  • +

    Remove TestPlan.add_component

    +
  • +
  • Update signature for TestPlan.add_tag
  • +
  • Remove TestPlan.check_plan_type, use PlanType.filter
  • +
  • Remove TestPlan.filter_count
  • +
  • Remove TestPlan.get, use TestPlan.filter
  • +
  • Remove TestPlan.get_all_cases_tags
  • +
  • Remove TestPlan.get_components
  • +
  • Remove TestPlan.get_env_groups, use Env.Group.filter({'testplan': ?})
  • +
  • Remove TestPlan.get_plan_type, use PlanType.filter
  • +
  • Remove TestPlan.get_product, use Product.filter({'plan': ?})
  • +
  • Remove TestPlan.get_tags, use Tag.filter({'plan': ?})
  • +
  • Remove TestPlan.get_test_cases, use TestCase.filter({'plan': ?})
  • +
  • Remove TestPlan.get_test_runs, use TestRun.filter({'plan': ?})
  • +
  • Remove TestPlan.get_text, use TestPlan.filter
  • +
  • Rename TestPlan.link_env_value to TestPlan.add_env_value + and update signature
  • +
  • Remove TestPlan.remove_component
  • +
  • Update signature for TestPlan.remove_tag
  • +
  • Remove TestPlan.store_text, use TestPlan.update with + a text attribute in the parameter values
  • +
  • +

    Rename TestPlan.unlink_env_value to TestPlan.remove_env_value + and update signature

    +
  • +
  • +

    Rename TestRun.add_cases to TestRun.add_case and update signature

    +
  • +
  • Update signature for TestRun.add_tag
  • +
  • Update signature for TestRun.create, no longer accepts case + dict attribute. Instead use TestRun.add_case
  • +
  • Remove TestRun.filter_count
  • +
  • Remove TestRun.get, use TestRun.filter
  • +
  • Remove TestRun.get_bugs
  • +
  • Remove TestRun.get_env_values, use Env.Value.filter({'testrun': ?})
  • +
  • Remove TestRun.get_tags, use Tag.filter({'run': ?})
  • +
  • Rename TestRun.get_test_cases to TestRun.get_cases
  • +
  • Remove TestRun.get_test_case_runs, use TestCaseRun.filter({'run': ?})
  • +
  • Remove TestRun.get_test_plan, use TestPlan.filter({'run': ?})[0]
  • +
  • Rename TestRun.remove_cases to TestRun.remove_case and update signature
  • +
  • Update signature for TestRun.remove_tag
  • +
  • +

    Update signature for TestRun.update

    +
  • +
  • +

    Rename User.get to User.filter

    +
  • +
  • Rename User.join to User.join_group
  • +
  • Update signature for User.update
  • +
+

Models and database migrations

+
    +
  • Remove model TestEnvironment
  • +
  • Remove model TestEnvironmentCategory
  • +
  • Remove model TestEnvironmentElement
  • +
  • Remove model TestEnvironmentMap
  • +
  • Remove model TestEnvironmentProperty
  • +
  • Remove model TestPlanComponent
  • +
  • Remove TestPlan.get_text_with_version()
  • +
  • Remove TestRun.get_previous_or_next()
  • +
+

IMPORTANT: this release introduces new database migrations!

+

tcms-api changes since 1.5.1

+
    +
  • Make the code compatible with Kiwi TCMS XML-RPC v4.0.0
  • +
  • Rename Status to TestCaseRunStatus
  • +
  • Rename CaseRun to TestCaseRun
  • +
  • Remove PlanStatus, use TestPlan.is_active
  • +
  • Remove RunStatus, use TestRun.finished
  • +
  • Remove TestPlan.components container
  • +
  • Update signature for TestPlan. Now accept text kwarg in constructor + instead of document.
  • +
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then

+
cd Kiwi/
+docker-compose down
+docker pull kiwitcms/kiwi
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+ + +

Happy testing!

+
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2018/02/21/kiwi-tcms-410/index.html b/blog/kiwi-tcms-team/2018/02/21/kiwi-tcms-410/index.html new file mode 100644 index 00000000..df9fbff4 --- /dev/null +++ b/blog/kiwi-tcms-team/2018/02/21/kiwi-tcms-410/index.html @@ -0,0 +1,271 @@ + + + + + Kiwi TCMS - Kiwi TCMS 4.1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS 4.1.0

+

bug-fix and enhancement update

+ + + +
+

We're happy to announce Kiwi TCMS version 4.1.0! +This is a bug-fix and enhancement update centered around providing more +flexibility for administrators to configure the user approval process. +Refer to the documentation for more information about +signals handling +in Kiwi TCMS.

+

Changes since Kiwi TCMS 4.0.0

+

Enhancements and bug fixes

+
    +
  • Add tests for tcms.core.ajax.tag (Anton Sankov)
  • +
  • Remove unused code from tcms.core.ajax.tag (Anton Sankov)
  • +
  • Refactor tcms.core.ajax.tag to work with only one object. Fixes + Issue #135 (Anton Sankov)
  • +
  • Add test for tcms_api.TestRun. Closes + Issue #194
  • +
  • Send the user_registered signal when new users are registered
  • +
  • Add signal handler to notify admins on new users. Fixes + Issue #205
  • +
  • Add is_superuser column to User admin. Fixes + Issue #206
  • +
  • Properly pass variables to blocktrans tag. Fixes + Issue #225
  • +
  • Minor documentation updates
  • +
+

Refactoring

+
    +
  • Remove double thread when sending email on post_save signal
  • +
  • Remove unused EmailBackend authentication backend
  • +
  • Remove unused tcms.core.models.signals module
  • +
  • Consolidate all signals and handlers in tcms.signals
  • +
  • Make use of django_messages during account registration
  • +
+

Settings

+
    +
  • Remove LISTENING_MODEL_SIGNAL (internal setting)
  • +
  • New setting AUTO_APPROVE_NEW_USERS. Fixes + Issue #203
  • +
+

Models and database migrations

+
    +
  • Remove unused fields from Product model: + disallow_new, max_vote_super_bug, vote_super_user, + field votes_to_confirm, default_milestone, milestone_url
  • +
  • Remove unused Milestone model
  • +
+

IMPORTANT: this release introduces new database migrations!

+

Translations

+

There are new translatable strings introduced with this release, +including translations of a few email templates! At this moment +translating Kiwi TCMS in languages other than English is purely a +community effort. If you'd like to help consult our +translations contribution page.

+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then

+
cd Kiwi/
+docker-compose down
+docker pull kiwitcms/kiwi
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+ + +

Happy testing!

+
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2018/03/16/kiwi-tcms-413/index.html b/blog/kiwi-tcms-team/2018/03/16/kiwi-tcms-413/index.html new file mode 100644 index 00000000..ac235077 --- /dev/null +++ b/blog/kiwi-tcms-team/2018/03/16/kiwi-tcms-413/index.html @@ -0,0 +1,306 @@ + + + + + Kiwi TCMS - Kiwi TCMS 4.1.3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS 4.1.3

+

Django 2.0.3, bug-fix and enhancement update

+ + + +
+

We're happy to announce Kiwi TCMS version 4.1.3! +This is a bug-fix and enhancement update which upgrades to the latest Django +version, provides easier way for Docker administrators to override SSL certificates +and access httpd log files and resolves several issues. This release also includes +lots of internal code refactoring which removes code duplication and brings down +CodeClimate metrics +to 26.9% of technical debt or 10 months to fix.

+

We've pushed the new kiwitcms/kiwi docker image to Docker Hub and updated the +demo instance at +https://public.tenant.kiwitcms.org. +Starting forward the demo will use +the info-at-kiwitcms.org email address for all communication sent. There are real +people behind this address so if you write to us we will reply!

+

Changes since Kiwi TCMS 4.1.0

+

Enhancements

+
    +
  • Upgrade to Django 2.0.3
  • +
  • Show date_joined column for user admin
  • +
  • Expose httpd logs to the host running docker. Fixes + Issue #191
  • +
+

Bug fixes

+
    +
  • Move SSL keys under common directory in the container. Fixes + Issue #231
  • +
  • Always select active builds for TestRun. Fixes + Issue #245
  • +
  • Swap escape and escapejs filters. Fixes + Issue #234
  • +
  • Globally disable delete_selected action in Admin, this removes the + drop down selection widget! Fixes + Issue #221
  • +
  • Fix error in TestCase view when from_plan is empty string. Fixes + Sentry KIWI-TCMS-Z
  • +
  • Fix sorting issue when None is compared to int. Fixes + Sentry KIWI-TCMS-V
  • +
  • Validate form field as integer, not char. Fixes + Sentry KIWI-TCMS-W
  • +
  • [docs] Remove information about importing test cases via XML. This functionality + was removed in version 3.49
  • +
+

Refactoring

+
    +
  • Refactor inner class CaseActions. Fixes + Issue #21 (Chenxiong Qi)
  • +
  • Only use get_cases.html template. Fixes + Issue #176
  • +
  • Unify get_details_review.html and get_details.html templates
  • +
  • Remove internal Prompt.render class and replace with Django messages
  • +
  • Remove mail/delete_plan.txt template
  • +
  • Remove handle_emails_pre_plan_delete signal handler
  • +
  • Remove the Export button from TestPlan view, use Case->Export sub-menu + item in the Cases tab. Also remove the export buttons from search and advanced + search result templates. If you'd like to export the cases from a given + plan you have to open it in a new browser window and use the menu
  • +
  • Remove the Print button from plan search form
  • +
  • Remove TestRun cloning from search results and plan details, use sub-menu
  • +
  • Remove unnecessary JavaScript handling for EnvGroup edit view
  • +
+

Settings

+
    +
  • Remove PLAN_DELELE_EMAIL_TEMPLATE setting (not used)
  • +
+

Models and database migrations

+
    +
  • Use Django's own DurationField, instead of custom one. Fixes + Issue #183
  • +
+

API clients must now send values for estimated_time which must be in a +format that parse_duration() understands, for example 'DD HH:MM:SS'! See +https://docs.djangoproject.com/en/2.0/ref/utils/#django.utils.dateparse.parse_duration

+

IMPORTANT: this release introduces new database migrations!

+

Translations

+

There are new translatable strings introduced with this release! At this moment +translating Kiwi TCMS in languages other than English is purely a +community effort. If you'd like to help consult our +translations contribution page.

+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then

+
cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+ + +

Help us make Kiwi TCMS better

+

According to our 2018 roadmap the +Kiwi TCMS team is investing a great deal of our time to make the code base more +maintainable! For the past few releases we've been balancing code refactoring +with bug-fixing and minor enhancements and we have lots of ideas down the line.

+

We want to hear your voice! Tell us how you use Kiwi TCMS inside your organization. +We want to know what works for you and what doesn't so we can make it better. Feel +free to comment below, file GitHub issues or send us an email.

+

Happy testing!

+
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2018/04/10/kiwi-tcms-414/index.html b/blog/kiwi-tcms-team/2018/04/10/kiwi-tcms-414/index.html new file mode 100644 index 00000000..00058be1 --- /dev/null +++ b/blog/kiwi-tcms-team/2018/04/10/kiwi-tcms-414/index.html @@ -0,0 +1,282 @@ + + + + + Kiwi TCMS - Kiwi TCMS 4.1.4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS 4.1.4

+

Django 2.0.4, bug-fix and enhancement update

+ + + +
+

We're happy to announce Kiwi TCMS version 4.1.4! +This is a bug-fix and enhancement update which upgrades to the latest Django +version, resolves several issues and includes lots of internal code updates.

+

We've pushed new kiwitcms/kiwi docker image to Docker Hub and updated the +demo instance at +https://public.tenant.kiwitcms.org!

+

Changes since Kiwi TCMS 4.1.3

+

Enhancements

+
    +
  • Upgrade to Django 2.0.4
  • +
  • Enable pylint and fix around 700 issues (Anton Sankov)
  • +
  • Add pylint plugin to check docstrings for triple double quotes. Fixes + Issue #296
  • +
  • Add pylint plugin to check for list comprehensions. Fixes + Issue #270
  • +
  • Add pylint plugin to check for class attributes enclosed with double underscores. + These are dunders and are reserved for Python!
  • +
+

Signals

+

BREAKING CHANGES:

+
    +
  • Renamed user_registered to USER_REGISTERED_SIGNAL and + post_update to POST_UPDATE_SIGNAL!
  • +
+

Bug fixes

+ +

Refactoring

+
    +
  • Move Bugzilla and Kerberos backends code into their own repositories. Fixes + Issue #239
  • +
  • Remove cache from TestCaseRunStatus. Fixes + Issue #279
  • +
  • Rewrite UrlMixin. Fixes + Issue #157 (Chenxiong Qi)
  • +
  • Remove unused split_as_option template tag
  • +
  • Internal refactoring and more tests in tcms/core/ajax.py
  • +
  • Delete unused file tcms/core/forms/widgets.py
  • +
  • Merge case/form/filter.html into plan/get_cases.html
  • +
  • Remove unused TestCaseStatus.id_to_string()
  • +
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then

+
cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+ + +

Help us make Kiwi TCMS better

+

According to our 2018 roadmap the +Kiwi TCMS team is investing a great deal of our time to make the code base more +maintainable! For the past few releases we've been balancing code refactoring +with bug-fixing and minor enhancements and we have lots of ideas down the line.

+

We want to hear your voice! Tell us how you use Kiwi TCMS inside your organization. +We want to know what works for you and what doesn't so we can make it better. Feel +free to comment below, file GitHub issues or send us an email.

+

Happy testing!

+
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2018/04/11/kiwi-tcms-conference-presence/index.html b/blog/kiwi-tcms-team/2018/04/11/kiwi-tcms-conference-presence/index.html new file mode 100644 index 00000000..8513fe85 --- /dev/null +++ b/blog/kiwi-tcms-team/2018/04/11/kiwi-tcms-conference-presence/index.html @@ -0,0 +1,225 @@ + + + + + Kiwi TCMS - Kiwi TCMS conference presence + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS conference presence

+

Bulgaria Web Summit, OSCAL, DjangoCon Europe

+ + + +
+

Kiwi TCMS is going on a small conference tour. This is where you can find us +in the next couple of months:

+ +

For all of the 3 conferences we're going to have a project presence. In addition +to that you can catch-up with Alex Todorov, Kiwi's project lead at: +TestCon Moscow(17-19 April, Moscow), +Romanian Testing Conference(9-11 May, Cluj-Napoca), +PyCon CZ(1-3 June, Prague) and +DEVit(10-11 June, Thessaloniki).

+

If you can ping us at @KiwiTCMS or look for the +kiwi bird logo and come to say hi!

+
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2018/06/24/kiwi-tcms-42/index.html b/blog/kiwi-tcms-team/2018/06/24/kiwi-tcms-42/index.html new file mode 100644 index 00000000..02bb9075 --- /dev/null +++ b/blog/kiwi-tcms-team/2018/06/24/kiwi-tcms-42/index.html @@ -0,0 +1,338 @@ + + + + + Kiwi TCMS - Kiwi TCMS 4.2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS 4.2

+

Python 3.6, Django 2.0.6 and security updates

+ + + +
+

We're happy to announce Kiwi TCMS and tcms-api version 4.2! +This is a security, bug-fix and enhancement update which upgrades to the latest +Django version under Python 3.6. +We've pushed new kiwitcms/kiwi:latest docker image to Docker Hub and updated the +demo instance at https://public.tenant.kiwitcms.org!

+

This version also includes GDPR related changes which affect our project. Read below +for the details.

+

Changes since Kiwi TCMS 4.1.4

+

IMPORTANT: this release introduces new database migrations

+

Security

+ +

Settings

+
    +
  • BUGZILLA_AUTH_CACHE_DIR is a new setting that may be specified to control + where Bugzilla auth cookies are saved! It is not specified by default and + Kiwi TCMS uses a temporary directory each time we try to login into Bugzilla!
  • +
+

Enhancements

+
    +
  • Upgrade to Python 3.6. Fixes + Issue #91
  • +
  • Upgrade to Django 2.0.6
  • +
  • Fix around 100 pylint issues (Anton Sankov)
  • +
  • Update email confirmation template for newly registered users and make the + text translatable
  • +
  • Display Last login column in User admin page
  • +
  • Add tests for tcms.management.views (Anton Sankov)
  • +
  • Remove unused CSS selectors
  • +
  • Remove unnecessary templates/comments/comments.html
  • +
+

Bug fixes

+
    +
  • Remove unused deferred field product_version. Fixes + Sentry KIWI-TCMS-1C
  • +
  • Rename left-over get_url() to get_full_url(). Fixes + Sentry KIWI-TCMS-1B
  • +
  • Fix empty TestPlan url and Product fields in TestRun email notification. Fixes + Issue #353 (Matt Porter, Konsulko Group)
  • +
+

Translations

+
    +
  • Updated translations for Chinese Simplified
  • +
  • Updated translations for Chinese Traditional
  • +
  • New language and translations for Slovenian
  • +
+

Documentation

+
    +
  • Added git clone command to documentation. Fixes + Issue #344 (Anton Sankov)
  • +
+

Models and database migrations

+
    +
  • Increase checksum fields size to hold the new checksum values
  • +
  • Increase activation_key field size to 64 chars
  • +
+

GDPR related

+
    +
  • Allow users to delete their accounts. Link is present on My profile page. + This will also delete any related objects using cascade delete
  • +
  • Try not to be so obvious when it comes to displaying email addresses across + the web interface. Instead show username and link to profile
  • +
+

In addition the following changes were deployed to our infrastructure:

+
    +
  • On our website the Subscribe to our newsletter is now a link, instead of + embedded form because embedded forms can't display GDPR compliance fields. + If you wish to receive email from Kiwi TCMS you need to select the Email + checkbox when signing up for the newsletter.
  • +
  • Double opt-in is now enabled when subscribing to our newsletter
  • +
  • All newsletter addresses that have been unsubscribed have been deleted
  • +
  • Upon registration for https://public.tenant.kiwitcms.org + you are no longer subscribed + to the newsletter. Now we send a welcome email with a link to the newsletter + so you can subscribe if you want
  • +
  • https://public.tenant.kiwitcms.org + now runs a cron job which deletes inactive accounts + and all of their related data. The cron job runs weekly
  • +
+

We're trying to be respectful to your private data and not expose that to any +3rd parties or use it for means other than making Kiwi TCMS better open source +software. If you spot areas for improvement please +report an issue so we can take +a look at it!

+

tcms-api changes since 4.0.0

+
    +
  • Remove coloring. Fixes + Issue #185
  • +
  • Fix using the API client against https:// URLs (Adam Łoszyn, Samsung)
  • +
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then

+
cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+ + +

Help us make Kiwi TCMS better

+

According to our 2018 roadmap the +Kiwi TCMS team is investing a great deal of our time to make the code base more +maintainable! For the past few releases we've been balancing code refactoring +with bug-fixing and minor enhancements and we have lots of ideas down the line.

+

We want to hear your voice! Tell us how you use Kiwi TCMS inside your organization. +We want to know what works for you and what doesn't so we can make it better. Feel +free to comment below, file GitHub issues or send us an email.

+

Happy testing!

+
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2018/07/24/kiwi-tcms-50/index.html b/blog/kiwi-tcms-team/2018/07/24/kiwi-tcms-50/index.html new file mode 100644 index 00000000..f3d534a5 --- /dev/null +++ b/blog/kiwi-tcms-team/2018/07/24/kiwi-tcms-50/index.html @@ -0,0 +1,391 @@ + + + + + Kiwi TCMS - Kiwi TCMS 5.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS 5.0

+

object history tracking and lots of updates

+ + + +
+

We're happy to announce Kiwi TCMS and tcms-api version 5.0! This release +introduces object history tracking, removal of old functionality and unused code, +lots of internal updates and bug fixes.

+

The new kiwitcms/kiwi:latest docker image has Image ID 468de0abe8a8. +https://public.tenant.kiwitcms.org has also been updated!

+
+

Changes since Kiwi TCMS 4.2

+
+

Settings

+
    +
  • Remove CACHE because not used
  • +
  • Remove PLAN_EMAIL_TEMPLATE, CASE_EMAIL_TEMPLATE and +CASE_DELETE_EMAIL_TEMPLATE. Templates can still be overridden if desired
  • +
+
+
+

Enhancements

+
    +
  • Upgrade to Django 2.0.7
  • +
  • Allow to delete TestPlan. Fixes +Issue #273
  • +
  • Don't include username in dashboard URL
  • +
  • Copy latest TestPlan text when cloning
  • +
  • Always require users to be logged in. Anonymous users will not be allowed +access by default. Read-only access to some views (e.g. get TestPlan or TestRun) +can be enabled by disabling GlobalLoginRequiredMiddleware! Fixes +Issue #230
  • +
  • Start tracking change history for TestPlan, TestCase, TestRun and TestCaseRun. +Fixes Issue #294
  • +
  • History changes are recorded as unified diff which is a universally recognized format
  • +
  • Show the actual changes in email notifications. Fixes +Issue #199
  • +
+
+
+

Bug fixes

+
    +
  • Fix UnboundLocalError local variable 'message' referenced before assignment. Fixes +Sentry KIWI-TCMS-1S
  • +
  • Make email address unique when adding users via admin panel. Fixes +Issue #352 and +Issue #68
  • +
  • Fix unsupported operand type(s) for +=: 'int' and 'datetime.timedelta' by +initializing timedelta variable properly. Fixes +Sentry KIWI-TCMS-1Y
  • +
  • Remove core.models.fields with MySQL time conversions. Fixes +Issue #390
  • +
  • Fix bad JavaScript comparison. Fixes Coverity #289956
  • +
  • Remove expression with no effect. Fixes Coverity #289974
  • +
  • Rewrite request_host_link() to fix Coverity #289987
  • +
  • Fix Coverity #289923 - Typo in identifier
  • +
  • Don't send emails for changes performed by myself. Fixes +Issue #216
  • +
+
+
+

Refactoring

+
    +
  • Fix pylint issues in several modules (Anton Sankov & Ivaylo Ivanov)
  • +
  • Fix wrong Plan Type template variable in advanced search form
  • +
  • Do not use Model.objects.update() because it doesn't respect history
  • +
  • Use the standard ModelChoiceField instead of custom one
  • +
  • Use updateRunStatus() instead of deprecated updateObject()
  • +
  • Simplify JavaScript function getInfo() and use it multiple times
  • +
  • Simplify previewPlan() by removing unused parameters
  • +
  • Unify addChildPlan() and removeChildPlan()
  • +
  • Unify getInfoAndUpdateObject() with changeCaseRunAssignee()
  • +
  • Unify onTestCaseStatusChange() with changeTestCaseStatus()
  • +
  • Convert TestCaseEmailSettings.cc_list to string field
  • +
  • Merge report/caseruns_table.html with reports/caseruns.html
  • +
  • Rename model UserActivateKey to UserActivationKey. Fixes +Issue #276
  • +
  • Remove cached_entities(). Fixes +Issue #307
  • +
  • Remove TestPlanText.checksum field
  • +
  • Remove checksum fields for TestCaseText model
  • +
  • Remove unused and home-grown template tags
  • +
  • Remove unused fields auto_blinddown, description, sortkey from +TestCaseRunStatus model. Fixes +Issue #186
  • +
  • Remove Meta.db_name effectively renaming all tables. New names will use +Django's default naming scheme
  • +
  • Remove RawSQL queries. We are now 100% ORM based. Fixes +Issue #36
  • +
  • Remove duplicate MultipleEmailField definition
  • +
  • Remove TCMSLog view, TCMSLogManager, TCMSLogModel
  • +
  • Remove TestPlanText model, use TestPlan.text instead
  • +
  • Remove unused JavaScript files +- lib/detetmine_type.js +- lib/hole.js +- lib/scriptaculous-controls.js.patch +- lib/validations.js +- static/js/index.js
  • +
  • Remove constructPlanParentPreviewDialog()
  • +
  • Remove changeCasePriority()
  • +
  • Remove changeCaseRunOrder()
  • +
  • Remove debug_output() from JavaScript files
  • +
  • Remove deprecated /ajax/update/ end-point
  • +
  • Remove taggleSortCaseRun()
  • +
  • Remove strip_parameters()
  • +
  • Remove _InfoObjects.users()
  • +
  • Remove get_value_by_type()
  • +
  • Remove testcases.views.get_log()
  • +
  • Remove mail_scene() methods and related templates
  • +
+
+
+

Removed functionality

+
    +
  • TestRun completion status is no longer updated automatically. You can still +update the status manually via the 'Set Finished' or 'Set Running' links! +Fixes Issue #367
  • +
  • Remove bookmarks functionality. There are many great bookmark manager apps +and if the user is keen on bookmarks they should use one of them. Closes +Issue #67 and +Issue #210
  • +
  • Don't track & display history of changes for EnvGroup model
  • +
  • Remove Disable/Enable buttons from TestPlan page. Enabling and disabling +can still be done via the edit page
  • +
  • Remove changeParentPlan() and the ability to change TestPlan parents +from the 'Tree View' tab. This can be done via the edit page
  • +
  • When viewing a TestPlan the user is no longer able to specify a sorkey for a +particular TestCase. Instead they can use the Re-order cases button and +move around the entire row of cases to adjust the sort order
  • +
  • When working with test case results, inside a TestRun you will not be allowed +to change the order of execution. Order should be defined inside the TestPlan +instead
  • +
  • Remove XmlRpcLog() model. Kiwi TCMS will no longer log RPC calls to the +database. This leads to a small performance boost and can be overridden on +individual basis if you need to do so.
  • +
+
+
+

Translations

+
    +
  • More source strings marked as translatable
  • +
  • New translations for Chinese Simplified, Chinese Traditional, German and Slovenian
  • +
  • Stop keeping compiled translations under git. Fixes +Issue #387
  • +
+
+
+
+

tcms-api changes since 4.2

+
    +
  • Requires Python 3.6 or newer because it fixes bugs related to Django's +disabling of keep-alive connections. See https://bugs.python.org/issue26402
  • +
  • The rpc client is now accessed via TCMS().exec.<Server-Method>
  • +
  • Leave only XML-RPC transport classes! This removes the top-level interface +behind the API client and the consuming side is left to work with Python +dictionaries instead of objects.
  • +
  • Remove the interactive tcms script
  • +
  • Remove tcms_api.config module
  • +
  • Remove logging class
  • +
  • Remove script_examples/ directory. These were never tested and maintained
  • +
+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+docker exec -it kiwi_web /Kiwi/manage.py populate_history --auto
+
+
+
+

Help us make Kiwi TCMS better

+

According to our 2018 roadmap the +Kiwi TCMS team is investing a great deal of our time to make the code base more +maintainable! For the past few releases we've been balancing code refactoring +with bug-fixing and minor enhancements and we have lots of ideas down the line.

+

We want to hear your voice! Tell us how you use Kiwi TCMS inside your organization. +We want to know what works for you and what doesn't so we can make it better. Feel +free to comment below, file GitHub issues or send us an email.

+

Happy testing!

+
+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2018/07/31/kiwi-tcms-51/index.html b/blog/kiwi-tcms-team/2018/07/31/kiwi-tcms-51/index.html new file mode 100644 index 00000000..0ed6ffb3 --- /dev/null +++ b/blog/kiwi-tcms-team/2018/07/31/kiwi-tcms-51/index.html @@ -0,0 +1,291 @@ + + + + + Kiwi TCMS - Kiwi TCMS 5.1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS 5.1

+

tech-preview: Django Report Builder

+ + + +
+

We're happy to announce Kiwi TCMS version 5.1! This release +introduces new database migrations, an experimental reporting feature, +deprecated functionality and bug fixes.

+

The new kiwitcms/kiwi:latest docker image has Image ID cc9b55aa664d. +https://public.tenant.kiwitcms.org +has also been updated!

+
+

Changes since Kiwi TCMS 5.0

+
+

Enhancements

+
    +
  • Integrate with Django Report Builder as tech-preview. This makes it possible +for power users and administrators to generate +tabular reports. +You will have to know the existing DB schema if you want to create your own reports. +See http://kiwitcms.readthedocs.io/en/latest/db.html. This feature is in +tech-preview and it may be removed if it doesn't work out. Please comment at: +Issue #452.
  • +
  • Allow using manage.py dumpdata|loaddata|sqlflush|dbshell for backups, see +blog post
  • +
  • In TestCase view page add a link to delete the current test case
  • +
  • In TestCase Admin page the + Add TestCase button now allows to create new +test case
  • +
  • The version menu item in the helper menu now links to +Changelog
  • +
+
+
+

Deprecated functionality

+
    +
  • Start showing deprecation warning for Advanced search, see +Issue #448
  • +
+
+
+

Bug fixes

+
    +
  • Allows Product/Version/Build to be shown in Testing Report. Fixes +Sentry KIWI-TCMS-2C
  • +
  • Default to https:// links if not running locally. Fixes +Issue #450
  • +
  • Apply missing CSS class for object history table so it can be displayed nicely
  • +
+
+
+

Refactoring

+
    +
  • Squash some database migrations
  • +
  • Fix a number of pylint issues
  • +
  • Remove unused testruns.views::view_caseruns(). References +Issue #316
  • +
  • Remove unused template report/caserun.html
  • +
  • Handle TestRun deletion via admin not home grown code
  • +
+
+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+
+
+

Help us make Kiwi TCMS better

+

According to our 2018 roadmap update +the Kiwi TCMS team is investing a great deal of our time to make the code base more +maintainable! For the past few releases we've been balancing code refactoring +with bug-fixing and enhancements and we have lots of ideas down the line.

+

We want to hear your voice! Tell us how you use Kiwi TCMS inside your organization. +We want to know what works for you and what doesn't so we can make it better. Feel +free to comment below, file GitHub issues or send us an email.

+

Happy testing!

+
+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2018/08/07/kiwi-tcms-52/index.html b/blog/kiwi-tcms-team/2018/08/07/kiwi-tcms-52/index.html new file mode 100644 index 00000000..08b52187 --- /dev/null +++ b/blog/kiwi-tcms-team/2018/08/07/kiwi-tcms-52/index.html @@ -0,0 +1,295 @@ + + + + + Kiwi TCMS - Kiwi TCMS 5.2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS 5.2

+

non-root Docker image

+ + + +
+

We're happy to announce Kiwi TCMS version 5.2! This release +introduces new database migrations and converts +the Docker image to a non-root user with uid 1001. You may have to adjust +ownership/permissions on the kiwi_uploads Docker volume!

+

The new kiwitcms/kiwi:latest docker image has Image ID 6bc4e3124fd4. +https://public.tenant.kiwitcms.org +has also been updated!

+
+

Changes since Kiwi TCMS 5.1

+
+

Enhancements

+
    +
  • Upgrade to Django 2.1
  • +
  • Upgrade to django-report-builder 6.2.2, compatible with Django 2.1
  • +
  • Docker image now executes with uid 1001 instead of root
      +
    • image based on centos7 image instead of centos/httpd
    • +
    • image now exposes ports 8080 and 8443
    • +
    • Apache logs now printed on Docker console
    • +
    • SSL certificates copied to /Kiwi/ssl inside Docker image instead of being bind-mounted
    • +
    • uploads dir changed to /Kiwi/uploads
    • +
    • static dir changed to /Kiwi/static
    • +
    • /Kiwi is now owned by uid 1001
    • +
    • /venv is now owned by uid 1001
    • +
    • docker-compose.yml is updated to match
    • +
    +
  • +
  • Fix pylint errors (Ivaylo Ivanov)
  • +
  • Allow users to see other profiles via Admin
  • +
  • Use password change form from Admin instead of custom one
  • +
  • product.py will try to import local_settings.py if available in the +same directory. This can be used to customize settings in downstream +distributions
  • +
  • Updated Slovenian translation
  • +
+
+
+

Bug fixes

+
    +
  • Make password reset views public
  • +
  • Don't crash when adding new users via Admin
  • +
+
+
+

Refactoring

+
    +
  • Remove UserProfile model. Kiwi TCMS doesn't needs extra information +about users so we remove this part of the application. Custom installations +may choose to define their own profiles if they wish
  • +
  • Remove custom DBModelBackend authentication backend
  • +
  • Remove unused tcms.core.context_processors.auth_backend_processor
  • +
  • Remove unused get_using_backend(). Fixes +Issue #261
  • +
  • Remove dj_pagination. Fixes +Issue #110
  • +
+
+
+

Settings

+
    +
  • AUTHENTICATION_BACKENDS is removed
  • +
  • PAGINATION_DEFAULT_PAGINATION is removed
  • +
  • Navigation menu links are now defined in MENU_ITEMS and can be redefined
  • +
+
+
+

Signals

+
    +
  • USER_REGISTERED_SIGNAL now doesn't receive the backend parameter
  • +
+
+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+
+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2018/09/04/kiwi-tcms-531/index.html b/blog/kiwi-tcms-team/2018/09/04/kiwi-tcms-531/index.html new file mode 100644 index 00000000..48ef4ee8 --- /dev/null +++ b/blog/kiwi-tcms-team/2018/09/04/kiwi-tcms-531/index.html @@ -0,0 +1,393 @@ + + + + + Kiwi TCMS - Kiwi TCMS 5.3.1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS 5.3.1

+

UI updates, subscriptions and deprecations

+ + + +
+

We're happy to announce Kiwi TCMS version 5.3.1! This release +brings lots of UI updates and removal of unused +and/or duplicated functionality and source code. Many pages have been redesigned +with the Patternfly library to have a modern look and feel which you can +experience at https://public.tenant.kiwitcms.org.

+

This will be the last release to carry around squashed migrations. In version +6.0 older migrations will be deleted and replaced with their squashed equivalents. +Upgrades from versions < 5.3 to 6.0 will break without an intermediate upgrade to 5.3.1!

+

Use kiwitcms/kiwi:5.3.1 from Docker Hub when upgrading at some point in the future!

+

Docker images:

+
+kiwitcms/kiwi        5.3.1               a420465852be        976.8 MB
+kiwitcms/kiwi        latest              a420465852be        976.8 MB
+
+
+

Changes since Kiwi TCMS 5.2

+
+

Improvements

+
    +
  • Update to Django 2.1.1
  • +
  • Update Patternfly version. Fixes +Issue #381
  • +
  • Replace TinyMCE with SimpleMDE markdown editor. Used for TestPlan text and +TestCase action, setup, breakdown, effect fields
  • +
  • Allow downstream builds to customize the login templates by +providing registration/custom_login.html template. It can either +override the entire login page or provide additional information inside +the custom_login block!
  • +
+
+
+

Known issues

+
    +
  • You may need to strip existing texts from HTML tags that were generated by +TinyMCE. Either do this manually as you go along and use/edit records or in bulk via +the API and tools like html2text. +We strongly advise you to backup +your database before attempting to automatically edit text fields!
  • +
+
+
+

Visual changes

+
    +
  • Remove breadcrumbs at the top of pages. Only admin pages still have them
  • +
  • Convert login and registration templates to Patternfly. Fixes +Issue #211
  • +
  • Convert 404 and 500 templates to Patternfly
  • +
  • Convert dashboard page to Patternfly
  • +
  • Convert TestRun new, edit and clone pages to Patternfly. Fixes +Issue #17
  • +
  • Convert Search Test Plans page to Patternfly
  • +
  • Convert Search Test Runs page to Patternfly
  • +
  • Convert Search Test Cases page to Patternfly
  • +
  • TestPlan view page, Runs tab now re-uses the search form for test runs +which is built using Patternfly
  • +
  • Added pagination controls to pages with search results
  • +
+
+
+

Removed functionality

+
    +
  • When creating or editing TestRun
      +
    • field estimated_time is scheduled for removal and is not shown
    • +
    • product_version is scheduled for removal in favor of +TR.plan.product_version
    • +
    • Product & Version can't be edited anymore. Must be set on the parent +TestPlan instead. Still allows to specify builds
    • +
    +
  • +
  • Remove the ability to clone multiple TestPlans from search results
  • +
  • Remove the ability to upload TestPlan document files in favor of +the existing API
  • +
  • Remove TestCase export to XML in favor of existing API
  • +
  • Remove Advanced Search functionality. Fixes +Issue #448, +Issue #108
  • +
  • Remove tech preview feature: Django Report Builder
  • +
+
+
+

Translations

+ +
+
+

Bug fixes

+
    +
  • Don't use get_full_url() where not needed. Closes +Issue #380
  • +
  • Remove unused templates. Fixes +Issue #114
  • +
  • Submit filter form when clicking on tag value. Fixes +Issue #426
  • +
  • Update TestCaseRun.tested_by when setting status. Fixes +Issue #459
  • +
  • Add tests for KiwiUserAdmin. Closes +Issue #489
  • +
+
+
+

Settings

+
    +
  • The following settings have been removed MOTD_LOGIN, WELCOME_MESSAGE +and TINYMCE_DEFAULT_CONFIG
  • +
+
+
+

Refactoring

+
    +
  • Fix pylint errors (Anton Sankov, Ivaylo Ivanov)
  • +
  • Remove lots of unused functions and classes
  • +
  • Remove old or unnecessary templates
  • +
  • Remove html2text dependency
  • +
  • Remove unused CSS and vendored-in JavaScript libraries
  • +
  • Add JavaScript JSON-RPC client which is now used by the front-end to +communicate with the existing JSON-RPC API on the back-end. This +replaces many 'ajax' views which are only used to render the UI and were +duplicating functionality with existing API
  • +
  • Non dist/ files are no longer removed from node_modules/ when building +a docker image because packages like moment.js and bootstrap-datetimepicker.js +don't ship their files in dist/
  • +
  • Convert TestPlans.TreeView to JSON RPC
  • +
+
+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+
+
+

Ask your questions on StackOverflow

+

Kiwi TCMS is now using the +'kiwi-tcms' +tag on StackOverflow to track questions. Please submit your support requests +and general questions to +StackOverflow tagged +with the 'kiwi-tcms' tag! Support requests via GitHub or email will not be answered +anymore (GitHub issues are for bugs or feature discussions only)!

+
+
+

Subscription based online service

+

We are planning to convert +https://public.tenant.kiwitcms.org into +a subscription based service for people who don't want to bother installing +Kiwi TCMS on their own systems and just want to use it for test collaboration +with their team.

+

The income from this service will go towards covering operating costs and +supporting the +development team. Watch this +blog for further announcements about this. Meanwhile you may share your +thoughts via +Issue #515.

+
+
+

Plans to remove deprecated functionality

+

TestRun.product_version will be removed from the database schema in favor of +TestRun.plan.product_version! With the latest web interface it is not possible +to select a product version different than the one selected in the Test Plan. +Test runs should only be able to select product builds (after +Issue #246 is fixed).

+

TestRun.estimated_time is scheduled for removal if not used. Objections +and use-cases must be shared via +Issue #514.

+

EnvGroup and EnvProperty models are scheduled for removal in favor +of Tag. Internally tags are referenced in more places inside Kiwi TCMS' +source code and they appear to be more fully developed. On the other hand +while environment appears very similar to tags it is not exactly the same. +Ongoing discussion is happening via +Issue #484.

+
+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2018/09/13/happy-birthday-kiwi-tcms/index.html b/blog/kiwi-tcms-team/2018/09/13/happy-birthday-kiwi-tcms/index.html new file mode 100644 index 00000000..a9ca30b0 --- /dev/null +++ b/blog/kiwi-tcms-team/2018/09/13/happy-birthday-kiwi-tcms/index.html @@ -0,0 +1,208 @@ + + + + + Kiwi TCMS - Happy birthday Kiwi TCMS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Happy birthday Kiwi TCMS

+ + + +
+

1 year infographic

+
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2018/10/04/kiwi-tcms-60/index.html b/blog/kiwi-tcms-team/2018/10/04/kiwi-tcms-60/index.html new file mode 100644 index 00000000..f3dec74e --- /dev/null +++ b/blog/kiwi-tcms-team/2018/10/04/kiwi-tcms-60/index.html @@ -0,0 +1,326 @@ + + + + + Kiwi TCMS - Kiwi TCMS 6.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS 6.0

+

security upgrade and removal of environment properties

+ + + +
+

We're happy to announce Kiwi TCMS version 6.0! This release +introduces new database migrations, removal of +environment properties in favor of tags, internal updates and bug fixes. +You can explore everything at +https://public.tenant.kiwitcms.org.

+

This release removes squashed migrations. Direct upgrades from versions +< 5.3.1 to 6.0 will break without an intermediate upgrade to 5.3.1!

+

Docker images:

+
+kiwitcms/kiwi       latest  cd087297f349    991.3 MB
+
+
+

Changes since Kiwi TCMS 5.3.1

+
+

Improvements

+
    +
  • Update to Django 2.1.2 +due to high severity security issue
  • +
  • Update to Patternfly 3.54.8
  • +
  • Tag objects are now shown in Admin panel
  • +
  • Add autocomplete when adding tags to TestRun via UI
  • +
+
+
+

Removed functionality

+
    +
  • TestCase new and edit views no longer allow editing of tags. Tags can be +added/removed from the Tags tab which also makes sure to properly account +for permissions
  • +
  • Remove EnvGroup, EnvProperty and EnvValue models in favor of tags. +Existing values and properties are converted into tags and automatically added +to test runs!
  • +
  • Convert squashed database migrations to regular ones and remove older migrations. +WARNING: upgrade from versions <= 5.3.1 to 6.0 will break without an intermediate +upgrade to kiwitcms/kiwi:5.3.1 a420465852be.
  • +
  • Remove deprecated TestCase.estimated_time and TestRun.estimated_time. Fixes +Issue #514
  • +
+
+
+
+

Backend API

+
    +
  • No longer use product_version for TestRun.create. Fixes +Issue #522
      +
    • 'product' is no longer required
    • +
    • 'product_version' is no longer required
    • +
    • 'manager' and 'default_tester' can be usernames or IDs
    • +
    +
  • +
  • TestCase.create no longer accepts 'tag' values
  • +
  • TestRun.add_tag and TestRun.remove_tag now return list of tags. +Previously these methods returned None! +This is the list of tags assigned to the TestRun that is being modified!
  • +
+
+

Bug fixes

+
    +
  • Fix mismatched HTML tag in plan/get.html template (Oleg Kainov)
  • +
  • Don't use |slugify filter in templates which breaks HTML links with non-ASCII +TestPlan names. Fixes +Sentry KIWI-TCMS-38
  • +
+
+
+

Refactoring

+
    +
  • Fix pylint errors (Ivaylo Ivanov, Anton Sankov)
  • +
  • Use existing JSON-RPC methods to add/remove tags via webUI and remove specialized +backend methods that handled these requests. Also make sure to obey respective +permissions
  • +
+
+
+

Translations

+ +
+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+
+
+

Subscription based online service

+

We are planning to convert +https://public.tenant.kiwitcms.org into +a subscription based service for people who don't want to bother installing +Kiwi TCMS on their own systems and just want to use it for test collaboration +with their team.

+

The income from this service will go towards covering operating costs and +supporting the +development team. Watch this +blog for further announcements about this. Meanwhile you may share your +thoughts via +Issue #515.

+
+
+

Plans to remove deprecated functionality

+

TestRun.product_version will be removed from the database schema in favor of +TestRun.plan.product_version! With the latest web interface it is not possible +to select a product version different than the one selected in the Test Plan. +Test runs should only be able to select product builds (after +Issue #246 is fixed).

+
+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2018/10/11/kiwi-tcms-winter-conference-presence/index.html b/blog/kiwi-tcms-team/2018/10/11/kiwi-tcms-winter-conference-presence/index.html new file mode 100644 index 00000000..c13446c2 --- /dev/null +++ b/blog/kiwi-tcms-team/2018/10/11/kiwi-tcms-winter-conference-presence/index.html @@ -0,0 +1,257 @@ + + + + + Kiwi TCMS - Kiwi TCMS winter conference presence + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS winter conference presence

+

OpenFest, PiterPy and Heisenbug

+ + + +
+

We are happy to announce that OpenFest - the biggest +open source conference in Bulgaria has provided an info booth for our project. +This year the event will be held on 3rd and 4th of November at Sofia Tech Park!

+

Last time the team went to a conference together we had a lot of fun! Join us +at OpenFest to learn more about Kiwi TCMS and have fun with us!

+ + + + + + +

In case you are unable to visit Sofia, which you totally should, you can catch up with +us in Russia until the end of the year:

+ +

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

+
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2018/10/20/kiwi-tcms-61/index.html b/blog/kiwi-tcms-team/2018/10/20/kiwi-tcms-61/index.html new file mode 100644 index 00000000..a298c6be --- /dev/null +++ b/blog/kiwi-tcms-team/2018/10/20/kiwi-tcms-61/index.html @@ -0,0 +1,321 @@ + + + + + Kiwi TCMS - Kiwi TCMS 6.1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS 6.1

+

updates and database migrations

+ + + +
+

We're happy to announce Kiwi TCMS version 6.1! This release +introduces new database migrations, +internal updates and bug fixes. It is a small release designed +to minimize the number of database migrations by squashing them together. +You can explore everything at +https://public.tenant.kiwitcms.org.

+

NOTE: there is the 6.0.1 release which resolves an upgrade problem +caused by non-applied migrations which have been later squashed and +released in the same release! It is best to jump through the intermediate +releases to ensure a smooth upgrade!

+

Supported upgrade paths:

+
+5.3   (or older) -> 5.3.1
+5.3.1 (or newer) -> 6.0.1
+6.0.1            -> 6.1
+
+

Docker images:

+
+kiwitcms/kiwi       latest  b559123d25b0    970.2 MB
+kiwitcms/kiwi       6.1     b559123d25b0    970.2 MB
+kiwitcms/kiwi       6.0.1   87b24d94197d    970.1 MB
+kiwitcms/kiwi       5.3.1   a420465852be    976.8 MB
+
+
+

Changes since Kiwi TCMS 6.0

+
+

Improvements

+
    +
  • Update Jira from 1.0.10 to 2.0.0
  • +
  • Update to Patternfly 3.55.0
  • +
  • Use button instead of HTML link for deleting test plan (Oleg Kainov)
  • +
  • New middleware that will check missing settings. At the moment will only +check Base URL configuration which often gets forgotten!
  • +
+
+
+

Bug fixes

+
    +
  • Hot-fix for error caused by the API method TestRun.update. Error was +initially reported on +StackOverflow. +This patch makes it possible to use the API without crashing however the +TestRun.update method doesn't handle the stop_date field at the moment!
  • +
+
+
+

Translations

+ +
+
+

Refactoring

+
    +
  • Fix pylint errors (Ivaylo Ivanov)
  • +
  • Remove unused TestRun.list and TestCase.list_confirmed methods
  • +
  • Remove unused plan_by_id_or_name() and is_int(). Fixes +Issue #269
  • +
+
+
+

Database

+
    +
  • Rename tcms.core.contrib.auth to tcms.kiwi_auth
  • +
  • Remove field user from TestCaseTag, TestRunTag and TestPlanTag +models
  • +
  • Squash migrations for management app
  • +
  • Squash migrations for testcases app
  • +
  • Squash migrations for testplans app
  • +
  • Squash migrations for testruns app
  • +
+
+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+
+
+

Subscription based online service

+

We are planning to convert +https://public.tenant.kiwitcms.org into +a subscription based service for people who don't want to bother installing +Kiwi TCMS on their own systems and just want to use it for test collaboration +with their team.

+

The income from this service will go towards covering operating costs and +supporting the +development team. Watch this +blog for further announcements about this. Meanwhile you may share your +thoughts via +Issue #515.

+
+
+

Plans to remove deprecated functionality

+

TestRun.product_version will be removed from the database schema in favor of +TestRun.plan.product_version! With the latest web interface it is not possible +to select a product version different than the one selected in the Test Plan. +Test runs should only be able to select product builds (after +Issue #246 is fixed).

+
+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2018/10/29/kiwi-tcms-611/index.html b/blog/kiwi-tcms-team/2018/10/29/kiwi-tcms-611/index.html new file mode 100644 index 00000000..0f843b35 --- /dev/null +++ b/blog/kiwi-tcms-team/2018/10/29/kiwi-tcms-611/index.html @@ -0,0 +1,308 @@ + + + + + Kiwi TCMS - Kiwi TCMS 6.1.1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS 6.1.1

+

few updates and database migrations

+ + + +
+

We're happy to announce Kiwi TCMS version 6.1.1! This release +squashes database migrations and removes +older migrations that have been squashed in previous releases, a few +improvements 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
+
+

Docker images:

+
+kiwitcms/kiwi       latest  49fa42ddfe4d    955.7 MB
+kiwitcms/kiwi       6.1.1   49fa42ddfe4d    955.7 MB
+kiwitcms/kiwi       6.1     b559123d25b0    970.2 MB
+kiwitcms/kiwi       6.0.1   87b24d94197d    970.1 MB
+kiwitcms/kiwi       5.3.1   a420465852be    976.8 MB
+
+
+

Changes since Kiwi TCMS 6.1

+
+

Improvements

+
    +
  • Dashboard will now show TestRuns which have test cases assigned to current +user. Fixes +Issue #520
  • +
  • API method TestRun.add_case() now returns a serialized TestCaseRun object. +Previously this method returned None
  • +
+
+
+

Bug fixes

+
    +
  • Don't show disabled Priority records in UI. Fixes +Issue #334
  • +
+
+
+

Translations

+ +
+
+

Refactoring

+
    +
  • Fix some pylint errors (Ivaylo Ivanov)
  • +
+
+
+

Database

+
    +
  • Remove old squashed migrations for management, testplans, +testcases and testruns apps
  • +
  • Squash the remaining migrations for management, testplans, +testcases and testruns apps
  • +
+
+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+
+
+

Subscription based online service

+

We are planning to convert +https://public.tenant.kiwitcms.org into +a subscription based service for people who don't want to bother installing +Kiwi TCMS on their own systems and just want to use it for test collaboration +with their team.

+

The income from this service will go towards covering operating costs and +supporting the +development team. Watch this +blog for further announcements about this. Meanwhile you may share your +thoughts via +Issue #515.

+
+
+

Plans to remove deprecated functionality

+

TestRun.product_version will be removed from the database schema in favor of +TestRun.plan.product_version! With the latest web interface it is not possible +to select a product version different than the one selected in the Test Plan. +Test runs should only be able to select product builds (after +Issue #246 is fixed).

+
+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2018/11/02/kiwi-tcms-62/index.html b/blog/kiwi-tcms-team/2018/11/02/kiwi-tcms-62/index.html new file mode 100644 index 00000000..54332d61 --- /dev/null +++ b/blog/kiwi-tcms-team/2018/11/02/kiwi-tcms-62/index.html @@ -0,0 +1,321 @@ + + + + + Kiwi TCMS - Kiwi TCMS 6.2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS 6.2

+

new Django, database migrations and few improvements

+ + + +
+

We're happy to announce Kiwi TCMS version 6.2! This is a small release +that removes squashed migrations from previous releases and includes a few +improvements. You can explore everything at +https://public.tenant.kiwitcms.org or +find our info booth at OpenFest in Sofia during +the weekend and do a live demo with the team!

+

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 (latest)
+
+

Docker images:

+
+kiwitcms/kiwi       latest  7870085ad415    957.6 MB
+kiwitcms/kiwi       6.2     7870085ad415    957.6 MB
+kiwitcms/kiwi       6.1.1   49fa42ddfe4d    955.7 MB
+kiwitcms/kiwi       6.1     b559123d25b0    970.2 MB
+kiwitcms/kiwi       6.0.1   87b24d94197d    970.1 MB
+kiwitcms/kiwi       5.3.1   a420465852be    976.8 MB
+
+
+

Changes since Kiwi TCMS 6.1.1

+
+

Improvements

+
    +
  • Update to Django 2.1.3
  • +
  • Update Apache config to print logs on the console. Fixes +Issue #549
  • +
  • https://public.tenant.kiwitcms.org now +allows email associations when logging via GitHub. If you have an existing +account which shares the same email address with your GitHub profile you +will be redirected to that account upon logging in via GitHub! +This also resolves a problem where existing users trying to login via GitHub +were presented with error message that their email exists in the database! +Fixes +Issue #573
  • +
+
+
+

Database

+
    +
  • Remove old variants of squashed migrations from earlier releases
  • +
+
+
+

Translations

+ +
+
+

Refactoring

+
    +
  • Update tcms.tests.factories.BugFactory (Ivaylo Ivanov)
  • +
  • Add test for tcms.testcases.views.group_case_bugs (Ivaylo Ivanov)
  • +
  • Pylint fixes (Ivaylo Ivanov)
  • +
  • Remove unused JavaScript and re-use the existing JSON RPC methods
  • +
+
+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+

WARNING: kiwitcms/kiwi:latest and docker-compose.yml will +always point to the latest available version! If you have to upgrade in steps, +e.g. between several intermediate releases, you have to modify the above workflow:

+
+# starting from an older Kiwi TCMS version
+docker-compose down
+docker pull kiwitcms/kiwi:<next_upgrade_version>
+edit docker-compose.yml to use kiwitcms/kiwi:<next_upgrade_version>
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+# repeat until you have reached latest
+
+
+
+

Subscription based online service

+

We are planning to convert +https://public.tenant.kiwitcms.org into +a subscription based service for people who don't want to bother installing +Kiwi TCMS on their own systems and just want to use it for test collaboration +with their team.

+

The income from this service will go towards covering operating costs and +supporting the +development team. Watch this +blog for further announcements about this. Meanwhile you may share your +thoughts via +Issue #515.

+
+
+

Plans to remove deprecated functionality

+

TestRun.product_version will be removed from the database schema in favor of +TestRun.plan.product_version! With the latest web interface it is not possible +to select a product version different than the one selected in the Test Plan. +Test runs should only be able to select product builds (after +Issue #246 is fixed).

+
+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2018/11/12/kiwi-tcms-621/index.html b/blog/kiwi-tcms-team/2018/11/12/kiwi-tcms-621/index.html new file mode 100644 index 00000000..405b7fca --- /dev/null +++ b/blog/kiwi-tcms-team/2018/11/12/kiwi-tcms-621/index.html @@ -0,0 +1,307 @@ + + + + + Kiwi TCMS - Kiwi TCMS 6.2.1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS 6.2.1

+

some improvements, bug-fixes and French translation

+ + + +
+

We're happy to announce Kiwi TCMS version 6.2.1! This is a small release +that includes some improvements 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  24338088bf46    956.8 MB
+kiwitcms/kiwi       6.2     7870085ad415    957.6 MB
+kiwitcms/kiwi       6.1.1   49fa42ddfe4d    955.7 MB
+kiwitcms/kiwi       6.1     b559123d25b0    970.2 MB
+kiwitcms/kiwi       6.0.1   87b24d94197d    970.1 MB
+kiwitcms/kiwi       5.3.1   a420465852be    976.8 MB
+
+
+

Changes since Kiwi TCMS 6.2

+
+

Improvements

+ +
+
+

Bug fixes

+
    +
  • Fix InvalidQuery, field TestCase.default_tester cannot be both deferred and +traversed using select_related at the same time. References +Issue #346
  • +
+
+
+

Refactoring

+
    +
  • Pylint fixes (Ivaylo Ivanov)
  • +
  • Remove JavaScript and Python functions in favor of existing JSON-RPC
  • +
  • Remove vendored-in js/lib/jquery.dataTables.js which is now replaced by +the npm package datatables.net (required by Patternfly)
  • +
+
+
+

Translations

+ +
+
+

Misc

+
    +
  • https://public.tenant.kiwitcms.org is +using a new SSL certificate with serial number +46:78:80:EA:80:A4:FC:65:17:E4:59:EC:1D:C2:27:47
  • +
  • Version 6.2.1 has been published to +PyPI to facilitate people who want +to deploy Kiwi TCMS on Heroku. Important: PyPI package will be provided +as a convenience for those who know what they are doing. Valid bugs and +issues will be dealth with accordingly. As we do not deploy from a PyPI +tarball we ask you to provide all the necessary +details when reporting issues! If you have no idea what all of this means +then stick to the official Docker images!
  • +
+
+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+

WARNING: kiwitcms/kiwi:latest and docker-compose.yml will +always point to the latest available version! If you have to upgrade in steps, +e.g. between several intermediate releases, you have to modify the above workflow:

+
+# starting from an older Kiwi TCMS version
+docker-compose down
+docker pull kiwitcms/kiwi:<next_upgrade_version>
+edit docker-compose.yml to use kiwitcms/kiwi:<next_upgrade_version>
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+# repeat until you have reached latest
+
+

Happy testing!

+
+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2018/12/04/kiwi-tcms-63/index.html b/blog/kiwi-tcms-team/2018/12/04/kiwi-tcms-63/index.html new file mode 100644 index 00000000..40fc6cc2 --- /dev/null +++ b/blog/kiwi-tcms-team/2018/12/04/kiwi-tcms-63/index.html @@ -0,0 +1,366 @@ + + + + + Kiwi TCMS - Kiwi TCMS 6.3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS 6.3

+

fixes XSS vulnerability, GitLab integration

+ + + +
+

We're happy to announce Kiwi TCMS version 6.3! This is a medium severity +security update that includes new versions of Django and Patternfly, +new database migrations, lots of improvements, bug fixes and internal +refactoring. This version also introduces integration with GitLab issue +tracker! 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  8135624fdca2    960.3 MB
+kiwitcms/kiwi       6.2     7870085ad415    957.6 MB
+kiwitcms/kiwi       6.1.1   49fa42ddfe4d    955.7 MB
+kiwitcms/kiwi       6.1     b559123d25b0    970.2 MB
+kiwitcms/kiwi       6.0.1   87b24d94197d    970.1 MB
+kiwitcms/kiwi       5.3.1   a420465852be    976.8 MB
+
+
+

Changes since Kiwi TCMS 6.2.1

+
+

Security

+
    +
  • Resolve medium severity XSS vulnerability which can be exploited when +previewing malicious text in Simple MDE editor. See +CVE-2018-19057, +SNYK-JS-SIMPLEMDE-72570
  • +
  • Use mozilla/bleach before rendering Markdown to the user as a second layer +of protection against the previously mentioned XSS vulnerability
  • +
+
+
+

Improvements

+
    +
  • Update to Django 2.1.4
  • +
  • Update to Patternfly 3.58.0
  • +
  • Make docker container restartable (Maik Opitz, Adam Hall)
  • +
  • Add GitLab issue tracker integration. Fixes +Issue #176 +(Filipe Arruda, Federal Institute of Pernambuco)
  • +
  • Convert Create new TestPlan page to Patternfly (Anton Sankov)
  • +
  • Upon successful registration show the list of super-users in case new +accounts must be activated manually. This can be the same or expanded +version of the addresses in the ADMIN setting. Include super-users +in email notifications sent via tcms.signals.notify_admins().
  • +
  • Don't include admin/js/*.js files in templates when not +necessary. Results in faster page load. Fixes +Issue #209
  • +
  • Enable nl2br Markdown extension which allows newline characters +to be rendered as <br> tags in HTML. Visually the rendered +text will look closer to what you seen in the text editor. Fixes +Issue #623
  • +
  • Use auto-complete for adding components to TestCase
  • +
+
+
+

Removed functionality

+
    +
  • Bulk-update of Category for selected TestCase(s) inside of +TestPlan
  • +
  • Bulk-update of Components for selected TestCase(s) inside of +TestPlan
  • +
  • Bulk-update of automated status for selected TestCase(s) inside of +TestPlan
  • +
  • Bulk-remove for TestCase Component tab
  • +
+

These actions have always been a bit broken and didn't check the +correct permission labels. You can still update items individually!

+
    +
  • Selection of Components when creating new TestCase. Closes +Issue #565. +Everywhere else Kiwi TCMS doesn't allow selection of many-to-many +relationships when creating or editing objects. Tags, Bugs, Components, +TestPlans can be added via dedicated tabs once the object has been saved.
  • +
+
+
+

Bug fixes

+
    +
  • Hide KiwiUserAdmin.password field from super-user. Fixes +Issue #610
  • +
  • Don't show inactive Priority. Fixes +Issue #637
  • +
  • Don't traceback when adding new users via Admin. Fixes +Issue #642
  • +
  • Teach TestRun.update() API method to process the stop_date +field. Fixes +Issue #554 (Anton Sankov)
  • +
  • Previously when reporting issues to Bugzilla, directly from a TestRun, +Kiwi TCMS displayed the error Enable reporting to this Issue Tracker by +configuring its base_url although that has already been configured. +This is now fixed. See +Stack Overflow #53434949
  • +
+
+
+

Database

+
    +
  • Remove TestPlan.owner field, duplicates TestPlan.author
  • +
+
+
+

Translations

+ +
+
+

Refactoring

+
    +
  • Remove fmt_queries(). Fixes +Issue #330 (Anton Sankov)
  • +
  • Remove unused parameter from plan_from_request_or_none(). Refers to +Issue #303 (Anton Sankov)
  • +
  • Remove ComponentActions() class. Fixes +Issue #20
  • +
  • Convert lots of AJAX calls to JSON-RPC
  • +
  • Remove lots of unused Python, JavaScript and templates. Both after migration +to JSON RPC and other leftovers
  • +
  • Pylint fixes (Alexander Todorov, Anton Sankov)
  • +
+
+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+

WARNING: kiwitcms/kiwi:latest and docker-compose.yml will +always point to the latest available version! If you have to upgrade in steps, +e.g. between several intermediate releases, you have to modify the above workflow:

+
+# starting from an older Kiwi TCMS version
+docker-compose down
+docker pull kiwitcms/kiwi:<next_upgrade_version>
+edit docker-compose.yml to use kiwitcms/kiwi:<next_upgrade_version>
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+# repeat until you have reached latest
+
+

Happy testing!

+
+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2019/01/07/kiwi-tcms-64/index.html b/blog/kiwi-tcms-team/2019/01/07/kiwi-tcms-64/index.html new file mode 100644 index 00000000..24031c47 --- /dev/null +++ b/blog/kiwi-tcms-team/2019/01/07/kiwi-tcms-64/index.html @@ -0,0 +1,344 @@ + + + + + Kiwi TCMS - Kiwi TCMS 6.4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS 6.4

+

security updates, improvements and bug fixes

+ + + +
+

We're happy to announce Kiwi TCMS version 6.4! This is a security, +improvement and bug-fix update that includes new versions of Django, +Patternfly and other dependencies. 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  39fcb88182bb    963.4 MB
+kiwitcms/kiwi       6.2     7870085ad415    957.6 MB
+kiwitcms/kiwi       6.1.1   49fa42ddfe4d    955.7 MB
+kiwitcms/kiwi       6.1     b559123d25b0    970.2 MB
+kiwitcms/kiwi       6.0.1   87b24d94197d    970.1 MB
+kiwitcms/kiwi       5.3.1   a420465852be    976.8 MB
+
+
+

Changes since Kiwi TCMS 6.3

+
+

Security

+
    +
  • Update Django from 2.1.4 to 2.1.5, which deals with CVE-2019-3498: +Content spoofing possibility in the default 404 page
  • +
  • Update Patternfly to version 3.59.0, which deals with XSS issue in bootstrap. +See CVE-2018-14041
  • +
  • By default session cookies will expire after 24 hours. This can be controlled +via the SESSION_COOKIE_AGE setting. Fixes +Issue #556
  • +
+
+
+

Improvements

+
    +
  • Update mysqlclient from 1.3.13 to 1.3.14
  • +
  • Update python-gitlab from 1.6.0 to 1.7.0
  • +
  • Update django-simple-history from 2.5.1 to 2.6.0
  • +
  • Update pygithub from 1.43.3 to 1.43.4
  • +
  • New API method TestCase.remove(). Initially requested as +SO #53844380
  • +
  • Drop down select widges in Patternfly pages are now styled with +bootstrap-select giving them more consistent look and feel with +the rest of the page (Anton Sankov)
  • +
  • Create new TestPlan page now includes toggles to control notifications +and whether or not the test plan is active. This was previously available +only in edit page (Anton Sankov)
  • +
  • By default TestPlan notification toggles are turned on. Previously they +were off (Anton Sankov)
  • +
  • Create and Edit TestPlan pages now look the same (Anton Sankov)
  • +
  • Kiwi TCMS is now accepting donations via +Open Collective
  • +
+
+
+

Removed functionality

+
    +
  • Remove TestPlan page -> Run menu -> Add cases to run action. +This is the same as TestRun page -> Cases menu -> Add action
  • +
  • Legacy reports will be removed after 1st March 2019. Provide your +feedback in +Issue #657
  • +
  • The /run/ URL path has been merged with /runs/ due to configuration +refactoring. This may break your bookmarks or permalinks!
  • +
+
+
+

Bug fixes

+
    +
  • Don't traceback if markdown text is None. Originally reported as +SO #53662887
  • +
  • Show loading spinner when searching. Fixes +Issue #653
  • +
  • Quick fix: when viewing TestPlan cases make TC summary link to the test case. +Previously the summary column was a link to nowhere.
  • +
+
+
+

Translations

+ +
+
+

Refactoring

+
    +
  • Pylint fixes
  • +
  • New and updated internal linters
  • +
  • Refactor testplans.views.new to class based view (Anton Sankov)
  • +
  • Refactor TestCase -> Bugs tab -> Remove to JSON-RPC. References +Issue #18
  • +
  • Refactor removeCaseRunBug() to JSON-RPC, References +Issue #18
  • +
  • Remove unused render_form() methods
  • +
  • Remove unnecessary string-to-int conversion (Ivaylo Ivanov)
  • +
  • Remove obsolete label fields. References +Issue #652 (Anton Sankov)
  • +
  • Remove JavaScript that duplicates requestOperationUponFilteredCases()
  • +
  • Remove QuerySetIterationProxy class - not used anymore
  • +
+
+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+

WARNING: kiwitcms/kiwi:latest and docker-compose.yml will +always point to the latest available version! If you have to upgrade in steps, +e.g. between several intermediate releases, you have to modify the above workflow:

+
+# starting from an older Kiwi TCMS version
+docker-compose down
+docker pull kiwitcms/kiwi:<next_upgrade_version>
+edit docker-compose.yml to use kiwitcms/kiwi:<next_upgrade_version>
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+# repeat until you have reached latest
+
+

Happy testing!

+
+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2019/01/17/kiwi-tcms-is-going-to-fosdem-2019/index.html b/blog/kiwi-tcms-team/2019/01/17/kiwi-tcms-is-going-to-fosdem-2019/index.html new file mode 100644 index 00000000..9be517f2 --- /dev/null +++ b/blog/kiwi-tcms-team/2019/01/17/kiwi-tcms-is-going-to-fosdem-2019/index.html @@ -0,0 +1,249 @@ + + + + + Kiwi TCMS - Kiwi TCMS is going to FOSDEM 2019 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS is going to FOSDEM 2019

+ + + +
+

Hello testers, Kiwi TCMS is going to FOSDEM this year. +This is where you can find us:

+

Kiwi TCMS sticker

+ +

We would like to meet with all of you and talk about test management and +test process organization. In case you are stuck for crazy ideas checkout +our project mission for inspiration.

+

Be part of the community

+

We are turning 10 years old and we have presents for you! You will have to perform +a small challenge and you can get your hands(errr, feet) on a pair of these:

+

Kiwi TCMS socks

+

Here's what else you can do to help us:

+ +

Happy testing!

+
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2019/02/01/kiwi-tcms-65/index.html b/blog/kiwi-tcms-team/2019/02/01/kiwi-tcms-65/index.html new file mode 100644 index 00000000..90c8e35e --- /dev/null +++ b/blog/kiwi-tcms-team/2019/02/01/kiwi-tcms-65/index.html @@ -0,0 +1,405 @@ + + + + + Kiwi TCMS - Kiwi TCMS 6.5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS 6.5

+

improvements and bug fixes, automation plugins

+ + + +
+

We're happy to announce Kiwi TCMS version 6.5! This is a minor security, +improvement and bug-fix update that includes new +versions of Django and other dependencies, removes some database fields, +includes backend API updates and fixes several bugs. +You can explore everything at +https://public.tenant.kiwitcms.org!

+

Together with this release we announce:

+ +

Both of these are implemented in Python and should work on standard TAP and +junit.xml files generated by various tools!

+

Additionally 3 more plugins are currently under development by contributors:

+ +

Supported upgrade paths:

+
+5.3   (or older) -> 5.3.1
+5.3.1 (or newer) -> 6.0.1
+6.0.1            -> 6.1
+6.1              -> 6.1.1
+6.1.1            -> 6.2 (or newer)
+
+

Docker images:

+
+kiwitcms/kiwi       latest  7ca4fda602fc    1.002 GB
+kiwitcms/kiwi       6.2     7870085ad415    957.6 MB
+kiwitcms/kiwi       6.1.1   49fa42ddfe4d    955.7 MB
+kiwitcms/kiwi       6.1     b559123d25b0    970.2 MB
+kiwitcms/kiwi       6.0.1   87b24d94197d    970.1 MB
+kiwitcms/kiwi       5.3.1   a420465852be    976.8 MB
+
+
+

Changes since Kiwi TCMS 6.4

+
+

Security

+
    +
  • Better override of SimpleMDE markdown rendering to prevent XSS vulnerabilities +in SimpleMDE
  • +
+
+
+

Improvements

+
    +
  • Update patternfly to version 3.59.1
  • +
  • Update bleach from 3.0.2 to 3.1.0
  • +
  • Update django-vinaigrette from 1.1.1 to 1.2.0
  • +
  • Update django-simple-history from 2.6.0 to 2.7.0
  • +
  • Update django-grappelli from 2.12.1 to 2.12.2
  • +
  • Update mysqlclient from 1.3.14 to 1.4.1
  • +
  • Update psycopg2 from 2.7.6.1 to 2.7.7
  • +
  • Update pygithub from 1.43.4 to 1.43.5
  • +
  • Convert TestCase page to Patternfly
      +
    • page menu is under ... in navigation bar
    • +
    • Test plans card is missing the old 'add plan' functionality b/c we are not +at all sure if adding plans to test cases is used at all. Can bring it back +upon user request!
    • +
    • Bugs card is missing the add/remove functionality for b/c we are not +quite sure how that functionality is used outside test runs!
    • +
    +
  • +
  • Convert new TestCase page to Patternfly and provide Given-When-Then text +template. This prompts the author to use a BDD style definition for their +scenarios. We believe this puts the tester into a frame of mind more +suitable for expressing what needs to be tested
  • +
  • Add a favicon. Fixes +Issue #532
  • +
  • Sort Component, Product and Version objects alphabetically. Fixes +Issue #633
  • +
  • Search test case page now shows Components and Tags
  • +
  • Search test case page now allows filtering by date. Fixes +Issue #715
  • +
  • Search test case page now uses radio buttons to filter by automation status
  • +
  • Small performance improvement when searching test plans and test cases
  • +
  • Search test run page now allows to filter by Product but still continue to +display all Builds in the selected Product
  • +
  • Updated doc-string formatting for some tcms modules
  • +
+
+
+

Database migrations

+

Known issues: on our demo installation we have observed that permission +labels were skewed after applying migrations. The symptom is that labels for +removed models are still available, labels for some models may have been removed +from groups/users or there could be permission labels appearing twice in the +database.

+

This may affect only existing installations, new installations do not have +this problem!

+

We are not certain what caused this but a quick fix is to remove all permissions +from the default Tester group and re-add them again!

+
    +
  • Remove TestCase.alias
  • +
  • Remove TestCaseRun.running_date
  • +
  • Remove TestCaseRun.notes
  • +
  • Remove TestCase.is_automated_proposed
  • +
  • Remove TestCaseText model, merge into TestCase.text field. Closes +Issue #198
  • +
  • Remove Priority.sortkey
  • +
  • Remove Build.description
  • +
  • Remove Classification.sortkey and Classification.description
  • +
  • Convert TestCase.is_automated from int to bool
  • +
  • Rename TestCaseRun.case_run_status to status
  • +
+
+
+

API

+
    +
  • New method TestCaseRunStatus.filter()
  • +
  • New method Product.create()
  • +
  • New method Classification.filter()
  • +
  • New method BugSystem.filter()
  • +
  • Changes to TestCase.add_component():
      +
    • now accepts component name instead of id
    • +
    • now fails if trying to add components linked to another Product.
    • +
    • now returns serialized TestCase object
    • +
    +
  • +
+
+
+

Translations

+ +
+
+

Bug fixes

+
    +
  • Fix for missing migrations from django-simple-history, see +DSH #512 and +StackOverflow #54177838
  • +
  • Fix cloning of test cases by surrounding bootstrap-selectpicker call with +try-catch. Fixes +Issue #695
  • +
  • Fix a traceback with TestRun report page when the RPC connection to Bugzilla +can't be established
  • +
+
+
+

Refactoring

+
    +
  • Remove unused form classes, methods, fields and label attributes
  • +
  • Remove unused or duplicate methods from TestCase model
  • +
  • Remove useless methods from BaseCaseForm()
  • +
  • Add test for discovering missing migrations
  • +
  • Add test for sanity checking PyPI packages which will always +build tarball and wheel packages
  • +
+
+
+
+

tcms-api 5.2 (30 Jan 2019)

+
    +
  • Add plugin_helpers.Backend which implements our test runner plugin +specification +in Python
  • +
  • Add dependency to kerberos (Aniello Barletta)
  • +
+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+

WARNING: kiwitcms/kiwi:latest and docker-compose.yml will +always point to the latest available version! If you have to upgrade in steps, +e.g. between several intermediate releases, you have to modify the above workflow:

+
+# starting from an older Kiwi TCMS version
+docker-compose down
+docker pull kiwitcms/kiwi:<next_upgrade_version>
+edit docker-compose.yml to use kiwitcms/kiwi:<next_upgrade_version>
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+# repeat until you have reached latest
+
+

Happy testing!

+
+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2019/02/12/kiwi-tcms-653/index.html b/blog/kiwi-tcms-team/2019/02/12/kiwi-tcms-653/index.html new file mode 100644 index 00000000..5141a1cd --- /dev/null +++ b/blog/kiwi-tcms-team/2019/02/12/kiwi-tcms-653/index.html @@ -0,0 +1,324 @@ + + + + + Kiwi TCMS - Kiwi TCMS 6.5.3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS 6.5.3

+

security, improvements and bug fixes

+ + + +
+

We're happy to announce Kiwi TCMS version 6.5.3! This is a +security, improvement and bug-fix update that includes new +versions of Django, includes several database migrations and fixes several bugs. +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  b9355cf85833    1.039 GB
+kiwitcms/kiwi       6.2     7870085ad415    957.6 MB
+kiwitcms/kiwi       6.1.1   49fa42ddfe4d    955.7 MB
+kiwitcms/kiwi       6.1     b559123d25b0    970.2 MB
+kiwitcms/kiwi       6.0.1   87b24d94197d    970.1 MB
+kiwitcms/kiwi       5.3.1   a420465852be    976.8 MB
+
+
+

Changes since Kiwi TCMS 6.5

+
+

Security

+
    +
  • Update Django from 2.1.5 to 2.1.7. Fixes CVE-2019-6975: +Memory exhaustion in django.utils.numberformat.format()
  • +
+
+
+

Improvements

+
    +
  • Update mysqlclient from 1.4.1 to 1.4.2
  • +
  • Multiple template strings marked as translatable (Christophe CHAUVET)
  • +
+
+
+

Database migrations

+
    +
  • Email notifications for TestPlan and TestCase now default to True
  • +
  • Remove TestPlanEmailSettings.is_active field
  • +
+
+
+

API

+
    +
  • New method Bug.report(), References +Issue #18
  • +
  • Method Bug.create() now accepts parameter auto_report=False
  • +
+
+
+

Translations

+ +
+
+

Bug fixes

+
    +
  • Show the user who actually tested a TestCase instead of hard-coded value. Fixes +Issue #765
  • +
  • Properly handle pagination button states and page numbers. Fixes +Issue #767
  • +
  • Add TestCase to TestPlan if creating from inside a TestPlan. Fixes +Issue #777
  • +
  • Made TestCase text more readable. Fixes +Issue #764
  • +
  • Include missing templates and static files from PyPI tarball
  • +
+
+
+

Refactoring

+
    +
  • Use find_packages() when building PyPI tarball
  • +
  • Install Kiwi TCMS as tarball package inside Docker image instead of copying +from the source directory
  • +
  • Pylint fixes
  • +
  • Remove testcases.views.ReturnActions() which is now unused
  • +
  • Refactor New TestCase to class-based view and add tests
  • +
+
+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+

WARNING: kiwitcms/kiwi:latest and docker-compose.yml will +always point to the latest available version! If you have to upgrade in steps, +e.g. between several intermediate releases, you have to modify the above workflow:

+
+# starting from an older Kiwi TCMS version
+docker-compose down
+docker pull kiwitcms/kiwi:<next_upgrade_version>
+edit docker-compose.yml to use kiwitcms/kiwi:<next_upgrade_version>
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+# repeat until you have reached latest
+
+

Happy testing!

+
+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2019/03/02/want-to-hack-open-source/index.html b/blog/kiwi-tcms-team/2019/03/02/want-to-hack-open-source/index.html new file mode 100644 index 00000000..bb63994d --- /dev/null +++ b/blog/kiwi-tcms-team/2019/03/02/want-to-hack-open-source/index.html @@ -0,0 +1,302 @@ + + + + + Kiwi TCMS - Want to hack open source ? + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Want to hack open source ?

+

Kiwi TCMS is looking for contributors

+ + + +
+

+

Have you ever wanted to be part of an open source team? +Have you ever wanted to contribute back the open source community ? +Have you ever wanted to see your code used by thousands of people ?

+

If yes now you have the opportunity! Read on to learn how you can help +Kiwi TCMS and how our team can help you.

+

Inexperienced Python developer(s)

+

It is fine not to have any experience at all! You will compensate with +commitment and hard work. Initially you are going to work on refactoring, +cleaning up pylint errors, removing duplicate code and other issues +reported by CodeClimate.

+

By doing this you will have the opportunity to learn git, Python, Django, +some CSS, JavaScript and Patternfly HTML of course. We are going to provide +you with all the learning materials plus help and guidance from existing team members.

+

Everyone on the team has gone though the same training procedure and grueling tasks +and so will you! Once you can demonstrate progress and learn the ropes you +will continue working on more complicated tasks.

+

Experienced Python developer(s)

+

So you have some experience already, you've probably contributed code before and are +now looking for more green stripes on your GitHub profile. We've got you covered!

+

There are many areas to choose from: issue tracker integration, GitHub integration, +GitLab integration, external API library, Kiwi TCMS plugins written in Python and +customized pylint linters! This is going to be where you get your hands dirty and +show your strengths. Our team is here to help if necessary but we expect you to +show progress by yourself.

+

A challenge for you will be to review pull requests from other contributors and +be patient with less experienced contributors and team members. This is an excellent +opportunity to work on your people skills as well.

+

Experienced non-Python developer(s) (with Java)

+

Kiwi TCMS is primarily looking for Java developers who will own our test automation +plugins. Currently we have a plugin for JUnit 5 and TestNG is in planning. Maybe +there will be a plugin for Jenkins as well. You are going to own these components +and work solely on them. Unless you decide to learn Python and Django that would +be a very easy job!

+

.NET, PHP, Ruby, JavaScript ? We don't have a lot of code written in these languages +but you can help change this. The main thing we'd like you to know +(or become familiar with) are the internals of popular test automation frameworks +for these languages and how to create plugins for them.

+

QA engineer with Python

+

You are going to test a lot! You are going to write test automation a lot! Ideally you +already have a medium level of experience in the software testing field and +want to improve your coding skills and/or get more experience into a different +application domain. We also have Linux and Docker in the mix, just for fun!

+

Your responsibility will be to design test scenarios for various features (new or existing), +write test automation scripts and help improve overall test coverage and quality +of Kiwi TCMS. You will also check-in on non-Python developers and +help them with test design when necessary.

+

There are other things that can be tested as well, for example Kiwi TCMS +performance and scalability. Here you will have to get down to the nitty-gritty +stuff and do some profiling to pin-point where the root cause of the problem is.

+

Security freak

+

We've got Coverity scan and +Snyk automatically inspecting our +code base. We do have some other tools as well and we know they can never be enough.

+

You will be responsible for triaging the numerous issues being reported by these +tools and help us decide if they are a real threat or a false positive. For example +Coverity reports hundreds of issues mostly coming from our Python and Node.js dependency +stack. We haven't had the time to classify them and work with upstream communities +to fix them thus the majority of your contributions will be outside of the +Kiwi TCMS code base.

+

Graphics designer

+

Your main job is going to be creating beautiful images for our website, +blog posts and promotional material. All the images we use are licensed under +Creative Commons which we then modify with the specific Kiwi TCMS look and +feel. This is not going to change, your work will remain under a permissive +license!

+

Marketing specialist

+

You will be directly responsible for driving more traffic to our website, +interpreting Google Analytics metrics and coming up with creative ideas +how to boost Kiwi TCMS popularity. This means, but not limited to blog posts, +collaborations with other projects and/or bloggers, professional magazines, etc. +You will also be in charge of events and conferences that we go to! Whenever +possible you will be coming with us as well!

+

A challenge for you will be to learn some technical jargon and learn more +about the software testing profession and software testers in general!

+

What's in it for you ?

+

You will sharpen your skills! You will use Kiwi TCMS as a platform to +improve your career. You will experience the gratification of our community of users.

+

This blog is the medium where you can share tips +and tricks and technical articles about interesting features in Kiwi TCMS. +If you'd rather have your personal blog working on Kiwi TCMS will give you lots +of topics to write about.

+

We go to conferences and meetups too. If public speaking is your thing +you will have plenty of topics to talk about. We can also help you +deliver your first presentation! Everyone on the team has done it!

+

Our existing team will help you learn and we will help you grow. Our personal time +is the most expensive item we can offer to you! In return we expect you to +fulfill your commitments and when you promise something will be done you will +make sure it is done!

+

How to apply ?

+

You can figure this out yourself.

+

Happy testing!

+
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2019/03/03/legacy-reports-become-telemetry/index.html b/blog/kiwi-tcms-team/2019/03/03/legacy-reports-become-telemetry/index.html new file mode 100644 index 00000000..0e919b5a --- /dev/null +++ b/blog/kiwi-tcms-team/2019/03/03/legacy-reports-become-telemetry/index.html @@ -0,0 +1,407 @@ + + + + + Kiwi TCMS - Legacy reports become Telemetry + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Legacy reports become Telemetry

+

here's what is going to change

+ + + +
+

As we've promised Kiwi TCMS is +starting work on improving the legacy reports functionality. +After analyzing your feedback in +Issue #657 here's what we came up +with. Note: screenshots below are mockups.

+

General tech specs

+
    +
  • Once a self-contained tarball is installed inside the Docker image (or inside local virtualenv) + Kiwi TCMS will be able to find it automatically and update the menu options. Aka plugins. + No further configuration should be necessary other than providing the source code implementing + the new functionality
  • +
  • Navigation menu will be able to support several layers of menus
  • +
  • Where possible Telemetry pages will reuse existing HTML templates
  • +
  • Telemetry data will be implemented as an RPC method that can be consumed by the front-end + via JSON-RPC
  • +
  • Charts will be rendered in the browser with c3/d3, + see Data Visualization
  • +
+

Feature: Rename TestCaseRun to TestExecution

+

Inside Kiwi TCMS the term "test case" is used to refer to specific scenario of +testing steps. A "test run" is the collection of multiple "test cases" which +will be executed against a particular product build and environment.

+

The specific results are kept into what is now called "test case run". This will +be renamed to "test execution" (internally TestExecution class) to make it more +clear and easier to distinguish among other artifacts.

+

Feature: Better color coding for test execution status

+

As a webUI user I want to easily distinguish between PASSED, FAILED and other statuses +when looking at charts and graphical visualizations.

+

TestRun progress

+

This feature request comes from the TestRun progress bar. +Other charts should use the same 4 status categories and color coding standards:

+
    +
  • IDLE - pf-black-600
  • +
  • PASSED - pf-green-400
  • +
  • FAILED - pf-red-100
  • +
  • OTHER - pf-orange-400. This includes other statuses which are not PASSED, FAILED and IDLE.
  • +
+

Here the percent value will continue to mean percent completed, aka non-IDLE.

+

Implementation wise the TestCaseRunStatus class defines methods for the actual icons to be used. +The same can be done for colors and this can be used directly in the HTML templates. +For color definitions see Status Palette.

+

Feature: Printable Test Execution Report

+

As a tester I want to have a nice looking TestRun execution report which I can present to +my managers, stakeholders and/or customers. The page needs to be printer friendly for +“Print to PDF” or print on paper!

+

Kiwi TCMS already has this feature. Clicking the [Report] button +in the progress widget at TR-625 presents +TestRun execution information in a simplified format found at +TR-625/Report. +In order to improve the current implementation:

+
    +
  • Convert TestRun page to Patternfly which generally prints better
  • +
  • Add bug list at the bottom of the page, below all test execution rows
  • +
  • Keep “View all in Issue Tracker” link (supported only for some bug trackers)
  • +
  • The widget for TestRun progress must be kept
  • +
  • Tweak CSS classes to disable printing for visual elements that we don't need. + This will be decided after the entire page has been converted to Patternfly
  • +
  • Remove the existing testruns.views.TestRunReportView and associated templates, + JavaScript and CSS because they will not be needed anymore
  • +
+

Feature: Individual or team performance telemetry

+

As a manager I want to know what the work-load/performance of individual teams and +engineers is. I can use this information either for performance review or for +capacity planning of future work.

+

Individual/team performance

+

A new page will be available under TELEMETRY -> Management -> Performance which will:

+
    +
  • Allow filtering by
      +
    • Group (multi-select)
    • +
    • User (multi select, depends on Group)
    • +
    • Start / Stop dates
    • +
    • Product
    • +
    +
  • +
  • Show results per User or per Group (if no users are selected)
  • +
  • Allow grouping per TestRun ID or calendar week number
  • +
+

The backend will query TestExecution.objects and apply the selected +filters and grouping logic! +The returned data is the count of how many tests this person/team was able to execute.

+

Further refinement: +Aggregate count by statuses (executed vs. non-executed or PASSED vs. FAILED vs. OTHER). +May be represented as a stacked bar chart if grouping of series is supported.

+

Feature: Time-tracking telemetry

+

As a manager I want to know how much time it took to complete previous testing activities. +I can use this information for predicting future capacity.

+

New page under TELEMETRY -> Management -> Time tracking.

+
    +
  • Filtering will be the same as performance telemetry
  • +
  • Grouping will be the same as performance telemetry
  • +
  • Unknown: total execution time is calculated as
      +
    • the sum of duration for each TestExecution (not available ATM, + automation plugins not sending this info) or
    • +
    • the total time for the entire TestRrun (not supported by automation plugins)
    • +
    +
  • +
+

Visually this will be a line chart with one line for each user/group which have +been selected. It will be very good if the existing chart libraries allow for a +stacked line chart or a stacked area chart here!

+

Feature: Estimate TestRun completion time

+

As a test lead I want to know approximately when testing is expected to complete.

+

This feature will utilize time-tracking data from previous executions and +display the approximated calculation in the web UI. The most obvious place for this +is the TestRun progress widget (under the progress bar) or the Test Run page +(near the Started at/Finished at fields).

+

Example text:

+
Started at: YYYY-MM-DD 10:38
+Status: Running
+Duration: 1.2 / 3 hrs
+Estimated completion at: 13:30
+
+ + +

Unknown: where does baseline duration come from? Either from the most recent TestRun +or an average from all of the previous Test Runs. Note that cumulative TestRun duration +is calculated between Start/Finish events while individual TestExecution records may +sum up to a different value! This needs to be clarified.

+

Feature: TestCase health telemetry

+

As a tester and/or manager I want to be able to discover which TestCase(s) are the most +common source of problems, that is they fail all the time or from time to time. +This may indicate poor test design or bad practices when developing the product. +This is also known as test stability or flaky tests!

+

Flaky tests

+

New page under TELEMETRY -> Testing -> Flaky tests

+
    +
  • Allow filtering by
      +
    • Product
    • +
    • Test plan (refined by product)
    • +
    • Start / Stop dates
    • +
    +
  • +
  • Show results in table form as shown in the image above
  • +
  • PASS/non-PASS stats will be calculated based on TestExecution.objects
  • +
  • 100% failing rate will be reported in the first table as ALWAYS FAILING
  • +
  • Executions where failing rate is >0% and <100% will be reported as FLAKY TESTS
  • +
+

Feature: TestCase breakdown telemetry

+

As a tester and/or manager I want to see a breakdown of tests so that I have an +idea how the existing tests for the product are distributed!

+

Test case breakdown

+

New page under TELEMETRY -> Testing -> Breakdown

+
    +
  • Allow filtering by
      +
    • Product
    • +
    • Test plan (refined by product)
    • +
    • Start / Stop dates
    • +
    +
  • +
+

Shows combined bar/line charts with information about test case priorities, categories, +automation status and confirmed status.

+

Feature: Individual TestCase health widget

+

As a test engineer I want to be able to quickly see health information about individual +test case. This can help me visually locate TCs that need improvement so I can edit them +or will help me visually judge the past history of the TC I am looking at.

+

Individual TestCase health

+

This depends on the previous feature. Possible places where health status can be shown:

+
    +
  • Test Case page, Executions card: info per TP
  • +
  • Test Run page, Test Executions table - visual icon + % to hint the user + about expected TC stability
  • +
+

Feature: Execution trends telemetry

+

As a test manager I want to see information if Product builds are getting better or worse. +In other words what is the trend in TestExecution number and status!

+

Build status

+

This is going to be a new page at TELEMETRY -> Testing -> Execution trends

+
    +
  • Filter by
      +
    • Product
    • +
    • Version (refined by Product)
    • +
    • Build (refined by Version)
    • +
    • Test Plan (refined by Product)
    • +
    • Start / Stop dates
    • +
    +
  • +
  • Shows total count of TestExecution.objects (stacked area chart) with color codes for status
  • +
  • Group by TestRun ID or calendar week
  • +
+

You will be able to select TestRuns and/or weeks for detailed comparison.

+

Feature: TestRun status matrix telemetry

+

As a test manager I want to see detailed information about testing status for +specific test run(s) or a calendar period. I also want to be able to compare +the results between various weeks and/or test runs.

+

Compare TestRuns

+

This is a continuation of Execution trends telemetry but can be used on its own as well. +It will be accessible from TELEMETRY -> Testing -> Status matrix

+

Filtering options are the same. Results are displayed in a table format where +columns are the filtered (or previously selected) TestRun objects or calendar weeks. +The rows are the names of individual test cases that have been executed. If a case +is missing the cell will be empty.

+

Cells contain color coded information about status, timestamp of execution, +execution duration, links to the TestExecution object, latest comment in case +of failure.

+

Links to bugs will be shown in each cell with a summarized bug table below the +charts.

+

Feature: Search and compare TestRuns

+

This is complimentary to the TestRun status matrix feature! While searching +for TestRuns in SEARCH -> Test Runs the user will be able to select several +rows and proceed to compare them as described above.

+

Happy testing!

+
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2019/03/13/taking-the-lead-at-openexpo-europe-cfp-votes/index.html b/blog/kiwi-tcms-team/2019/03/13/taking-the-lead-at-openexpo-europe-cfp-votes/index.html new file mode 100644 index 00000000..04385509 --- /dev/null +++ b/blog/kiwi-tcms-team/2019/03/13/taking-the-lead-at-openexpo-europe-cfp-votes/index.html @@ -0,0 +1,228 @@ + + + + + Kiwi TCMS - Taking the lead at OpenExpo Europe CfP votes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Taking the lead at OpenExpo Europe CfP votes

+

please vote for our presentations

+ + + +
+

Vote for Kiwi TCMS at OpenExpo

+

We are happy to announce that Anton Sankov and Alex Todorov are currently taking +the lead at OpenExpo Europe's CfP votes!

+

Going to OpenExpo will be huge boost for Kiwi TCMS so please help us make this happen! +Voting is open until March 17th 2019! You can cast your vote via Facebook login +but remember to confirm your email address!

+ +

Thank you & happy testing!

+
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2019/03/19/kiwi-tcms-66/index.html b/blog/kiwi-tcms-team/2019/03/19/kiwi-tcms-66/index.html new file mode 100644 index 00000000..ec27a8e9 --- /dev/null +++ b/blog/kiwi-tcms-team/2019/03/19/kiwi-tcms-66/index.html @@ -0,0 +1,378 @@ + + + + + Kiwi TCMS - Kiwi TCMS 6.6 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS 6.6

+

medium security, improvements and bug fixes

+ + + +
+

We're happy to announce Kiwi TCMS version 6.6! This is a +medium severity security update, improvement and bug-fix update. +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  c4734f98ca37    971.3 MB
+kiwitcms/kiwi       6.2     7870085ad415    957.6 MB
+kiwitcms/kiwi       6.1.1   49fa42ddfe4d    955.7 MB
+kiwitcms/kiwi       6.1     b559123d25b0    970.2 MB
+kiwitcms/kiwi       6.0.1   87b24d94197d    970.1 MB
+kiwitcms/kiwi       5.3.1   a420465852be    976.8 MB
+
+
+

Changes since Kiwi TCMS 6.5.3

+
+

Security

+
    +
  • Explicitly require marked v0.6.1 to fix medium severity ReDoS vulnerability. See +SNYK-JS-MARKED-73637
  • +
+
+
+

Improvements

+
    +
  • Update python-gitlab from 1.7.0 to 1.8.0
  • +
  • Update django-contrib-comments from 1.9.0 to 1.9.1
  • +
  • More strings marked as translatable (Christophe CHAUVET)
  • +
  • When creating new TestCase you can now change notification settings. +Previously this was only possible during editing
  • +
  • Document import-export approaches. Closes +Issue #795
  • +
  • Document available test automation plugins
  • +
  • Improve documentation around Docker customization and SSL termination
  • +
  • Add documentation example of reverse rroxy configuration for HAProxy (Nicolas Auvray)
  • +
  • TestPlan.add_case() will now set the sortkey to highest in plan + 10 (Rik)
  • +
  • Add LinkOnly issue tracker. Fixes +Issue #289
  • +
  • Use the same HTML template for both TestCase new & edit
  • +
  • New API methods for adding, removing and listing attachments. Fixes +Issue #446:
      +
    • TestPlan.add_attachment()
    • +
    • TestCase.add_attachment()
    • +
    • TestPlan.list_attachments()
    • +
    • TestCase.list_attachments()
    • +
    • Attachments.remove_attachment()
    • +
    +
  • +
+
+
+

Database migrations

+
    +
  • Populate missing TestCase.text history. +In version 6.5 the TestCase model was updated to store the text +into a single field called text instead of 4 separate fields. +During that migration historical records were updated to have +the new text field but values were not properly assigned.

    +

    The "effect" of this is that in TestCaseRun records you were not +able to see the actual text b/c it was None.

    +

    This change ammends 0006_merge_text_field_into_testcase_model for +installations which have not yet migrated to 6.5 or later. We also +provide the data-only migration 0009_populate_missing_text_history +which will inspect the current state of the DB and copy the text to +the last historical record.

    +
  • +
+
+
+

Removed functionality

+
    +
  • Remove legacy reports. Closes +Issue #657

    +
  • +
  • Remove "Save & Continue" functionality from TestCase edit page

    +
  • +
  • Renamed API methods:

    +
      +
    • TestCaseRun.add_log() -> TestCaseRun.add_link()
    • +
    • TestCaseRun.remove_log() -> TestCaseRun.remove_link()
    • +
    • TestCaseRun.get_logs() -> TestCaseRun.get_links()
    • +
    +

    These methods work with URL links, which can be added or removed to +test case runs.

    +
  • +
+
+
+

Bug fixes

+
    +
  • Remove hard-coded timestamp in TestCase page template, References +Issue #765
  • +
  • Fix handling of ?from_plan URL parameter in TestCase page
  • +
  • Make TestCase.text occupy 100% width when rendered. Fixes +Issue #798
  • +
  • Enable markdown.extensions.tables. Fixes +Issue #816
  • +
  • Handle form erros and default values for TestPlan new/edit. Fixes +Issue #864
  • +
  • Tests + fix for failing TestCase rendering in French
  • +
  • Show color-coded statuses on dashboard page when seen with non-English +language
  • +
  • Refactor check for confirmed test cases when editting to work with +translations
  • +
  • Fix form values when filtering test cases inside TestPlan. Fixes +Issue #674 (@marion2016)
  • +
  • Show delete icon for attachments. Fixes +Issue #847
  • +
+
+
+

Refactoring

+
    +
  • Remove unused .current_user instance attribute
  • +
  • Remove EditCaseForm and use NewCaseForm instead, References +Issue #708, +Issue #812
  • +
  • Fix "Select All" checkbox. Fixes +Issue #828 (Rady)
  • +
+
+
+

Translations

+ +
+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+

WARNING: kiwitcms/kiwi:latest and docker-compose.yml will +always point to the latest available version! If you have to upgrade in steps, +e.g. between several intermediate releases, you have to modify the above workflow:

+
+# starting from an older Kiwi TCMS version
+docker-compose down
+docker pull kiwitcms/kiwi:<next_upgrade_version>
+edit docker-compose.yml to use kiwitcms/kiwi:<next_upgrade_version>
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+# repeat until you have reached latest
+
+

Happy testing!

+
+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2019/04/06/kiwi-tcms-67/index.html b/blog/kiwi-tcms-team/2019/04/06/kiwi-tcms-67/index.html new file mode 100644 index 00000000..a827a043 --- /dev/null +++ b/blog/kiwi-tcms-team/2019/04/06/kiwi-tcms-67/index.html @@ -0,0 +1,326 @@ + + + + + Kiwi TCMS - Kiwi TCMS 6.7 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS 6.7

+

improvements and bug fixes

+ + + +
+

We're happy to announce Kiwi TCMS version 6.7! +This is a small improvement and bug-fix update. +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  702a78976de7    993.5 MB
+kiwitcms/kiwi       6.2     7870085ad415    957.6 MB
+kiwitcms/kiwi       6.1.1   49fa42ddfe4d    955.7 MB
+kiwitcms/kiwi       6.1     b559123d25b0    970.2 MB
+kiwitcms/kiwi       6.0.1   87b24d94197d    970.1 MB
+kiwitcms/kiwi       5.3.1   a420465852be    976.8 MB
+
+
+

Changes since Kiwi TCMS 6.6

+
+

Improvements

+
    +
  • Update Django from 2.1.7 to 2.2
  • +
  • Update markdown from 3.0.1 to 3.1
  • +
  • Update psycopg2 from 2.7.7 to 2.8
  • +
  • Update pygithub from 1.43.5 to 1.43.6
  • +
  • Update bleach-whitelist from 0.0.9 to 0.0.10
  • +
  • Update marked(.js) to version 0.6.2
  • +
  • Support arbitrary depth for MENU_ITEMS setting
  • +
  • Support auto-discovery of 3rd party Telemetry plugins, see +documentation
  • +
+
+
+

Database migrations

+
    +
  • Rename TestCaseRun to TestExecution including renaming existing +permissions
  • +
  • Rename TestCaseRunStatus to TestExecutionStatus
  • +
+
+
+

API

+
    +
  • Rename TestCaseRun.* to TestExecution.*
  • +
  • Rename TestCaseRunStatus.* to TestExecution.*
  • +
  • This version keeps the old names for backwards compatibility reasons but they +will be removed in +Issue #889
  • +
+
+
+

Bug fixes

+
    +
  • Prompt user before deleting attachments. Fixes +Issue #867 (Martin Jordanov)
  • +
  • email_case_deletion() format error fixed so notifications when +test cases are deleted are not sent (Rik)
  • +
+
+
+

Refactoring

+
    +
  • Remove unused images
  • +
  • Install node_modules/ under tcms/ and include it inside PyPI tarball
  • +
+
+
+

Translations

+ +
+
+
+

Native JUnit 5 plugin

+

Our team is happy to announce the availability of +kiwitcms-junit-plugin. +This is a native JUnit 5 plugin which will read the results from your +automated test suite and send them back to Kiwi TCMS.

+

Version 1.0.3 and the latest changes in master branch are still to be considered +Beta quality. They are available for early preview and feedback.

+

Many thanks to Aneta Petkova who is the +main contributor behind this plugin!

+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+

WARNING: kiwitcms/kiwi:latest and docker-compose.yml will +always point to the latest available version! If you have to upgrade in steps, +e.g. between several intermediate releases, you have to modify the above workflow:

+
+# starting from an older Kiwi TCMS version
+docker-compose down
+docker pull kiwitcms/kiwi:<next_upgrade_version>
+edit docker-compose.yml to use kiwitcms/kiwi:<next_upgrade_version>
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+# repeat until you have reached latest
+
+

Happy testing!

+
+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2019/05/03/kiwi-tcms-68/index.html b/blog/kiwi-tcms-team/2019/05/03/kiwi-tcms-68/index.html new file mode 100644 index 00000000..5ee1e213 --- /dev/null +++ b/blog/kiwi-tcms-team/2019/05/03/kiwi-tcms-68/index.html @@ -0,0 +1,316 @@ + + + + + Kiwi TCMS - Kiwi TCMS 6.8 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS 6.8

+

GitHub Marketplace, improvements and bug fixes

+ + + +
+

We're happy to announce Kiwi TCMS version 6.8! +This is a small improvement and bug-fix update. +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  fca095f95475    994.8 MB
+kiwitcms/kiwi       6.2     7870085ad415    957.6 MB
+kiwitcms/kiwi       6.1.1   49fa42ddfe4d    955.7 MB
+kiwitcms/kiwi       6.1     b559123d25b0    970.2 MB
+kiwitcms/kiwi       6.0.1   87b24d94197d    970.1 MB
+kiwitcms/kiwi       5.3.1   a420465852be    976.8 MB
+
+
+

Changes since Kiwi TCMS 6.7

+
+

Improvements

+
    +
  • Update Django from 2.2 to 2.2.1
  • +
  • Update django-simple-history from 2.7.0 to 2.7.2
  • +
  • Update django-grappelli from 2.12.2 to 2.12.3
  • +
  • Update psycopg2 from 2.8 to 2.8.2
  • +
  • Update pygithub from 1.43.6 to 1.43.7
  • +
  • Upgrade pip and setuptools inside Docker image
  • +
  • Update documentation with newer screenshots and updated Tutotial. Fixes +Issue #837 (@Prome88)
  • +
  • Document how to enable public read-only views
  • +
  • Remove deprecated documentation section about Bugzilla authentication
  • +
  • Install PostgreSQL libraries in Docker image which makes it easier to +switch the DB backend without rebuilding the entire image
  • +
  • Remove npm, libxml2-devel and libxslt-devel from Docker image
  • +
  • Database engine configuration now respects the KIWI_DB_ENGINE environment +variable which defaults to django.db.backends.mysql. This will make it +easier for admins to change DB engine by updating their docker-compose.yml
  • +
+
+
+

Bug fixes

+
    +
  • Pin bootstrap-switch to version 3.3.4 in package.json. Fixes +Issue #916
  • +
+
+
+

Translations

+ +
+
+

Refactoring

+
    +
  • Don't use Site.objects.get_current() because it has an internal cache +and causes email notifications from tenants to use the wrong URL
  • +
  • More changes around renaming of TestCaseRun to TestExecution
  • +
+
+
+
+

GitHub Marketplace

+

During the past week we have silently launched Kiwi TCMS on +GitHub Marketplace. Free plans +will be redirected to +public.tenant.kiwitcms.org +while paid plans will be hosted under *.tenant.kiwitcms.org sub-domains!

+

Our team is still working on all requirements for GitHub integration and we will +issue a formal statement when ready!

+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+

WARNING: kiwitcms/kiwi:latest and docker-compose.yml will +always point to the latest available version! If you have to upgrade in steps, +e.g. between several intermediate releases, you have to modify the above workflow:

+
+# starting from an older Kiwi TCMS version
+docker-compose down
+docker pull kiwitcms/kiwi:<next_upgrade_version>
+edit docker-compose.yml to use kiwitcms/kiwi:<next_upgrade_version>
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+# repeat until you have reached latest
+
+

Happy testing!

+
+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2019/05/16/kiwi-tcms-69/index.html b/blog/kiwi-tcms-team/2019/05/16/kiwi-tcms-69/index.html new file mode 100644 index 00000000..c7190cfe --- /dev/null +++ b/blog/kiwi-tcms-team/2019/05/16/kiwi-tcms-69/index.html @@ -0,0 +1,312 @@ + + + + + Kiwi TCMS - Kiwi TCMS 6.9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS 6.9

+

testing breakdown telemetry, improvements and bug fixes

+ + + +
+

We're happy to announce Kiwi TCMS version 6.9! +This is a small improvement and bug-fix update which introduces +our first telemetry report: testing breakdown. 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  a01eaeddf213    1.001 GB
+kiwitcms/kiwi       6.2     7870085ad415    957.6 MB
+kiwitcms/kiwi       6.1.1   49fa42ddfe4d    955.7 MB
+kiwitcms/kiwi       6.1     b559123d25b0    970.2 MB
+kiwitcms/kiwi       6.0.1   87b24d94197d    970.1 MB
+kiwitcms/kiwi       5.3.1   a420465852be    976.8 MB
+
+
+

Changes since Kiwi TCMS 6.8

+
+

Improvements

+
    +
  • Update mysqlclient from 1.4.2 to 1.4.2.post1
  • +
  • Ship with prism.js so it can be used for syntax highlighting
  • +
  • Add Testing Breakdown telemetry
  • +
  • Mark more strings for translations
  • +
  • Add delete_user() function which can delete data across +Postgre schemas (if kiwitcms-tenants add-on is installed)
  • +
+
+
+

API

+
    +
  • Remove deprecated TestCaseRun. API methods. Use the new +TestExecution. methods introduced in v6.7. Fixes +Issue #889
  • +
+
+
+

Bug fixes

+
    +
  • Fix typos in documentation (@Prome88)
  • +
  • Fix TemplateParseError in email templates when removing test cases. +On-delete email notification is now sent properly
  • +
+
+
+

Refactoring

+
    +
  • Add more tests around TestRun/TestExecution menu permissions
  • +
  • Minor pylint fixes
  • +
+
+
+

Translations

+ +
+
+
+

Join us at OpenExpo in Madrid

+

Kiwi TCMS is exhibitor at OpenExpo Europe +on June 20th in Madrid. We will be hosting an info booth and 2 technical +presentations delivered by Anton Sankov and Alex Todorov.

+

Next week we are going to announce 100% discount tickets +for our guests at the conference. If you are interested in coming +subscribe to our newsletter +and don't miss the announcement!

+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+

WARNING: kiwitcms/kiwi:latest and docker-compose.yml will +always point to the latest available version! If you have to upgrade in steps, +e.g. between several intermediate releases, you have to modify the above workflow:

+
+# starting from an older Kiwi TCMS version
+docker-compose down
+docker pull kiwitcms/kiwi:<next_upgrade_version>
+edit docker-compose.yml to use kiwitcms/kiwi:<next_upgrade_version>
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+# repeat until you have reached latest
+
+

Happy testing!

+
+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2019/05/27/kiwi-tcms-needs-your-help-winning-openawards-2019/index.html b/blog/kiwi-tcms-team/2019/05/27/kiwi-tcms-needs-your-help-winning-openawards-2019/index.html new file mode 100644 index 00000000..58578997 --- /dev/null +++ b/blog/kiwi-tcms-team/2019/05/27/kiwi-tcms-needs-your-help-winning-openawards-2019/index.html @@ -0,0 +1,234 @@ + + + + + Kiwi TCMS - Kiwi TCMS needs your help winning OpenAwards 2019 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS needs your help winning OpenAwards 2019

+

please vote for us

+ + + +
+

Vote for Kiwi TCMS at OpenAwards 2019

+

Thanks to you, our community supporters, Anton Sankov and Alex Todorov +took the lead at OpenExpo 2019 CfP votes. +We need your help one more time. Our team has submitted participation in +'Best Tech Community' and 'Best Success Story' categories.

+

Unfortunately our submission into 'Best Success Story' has been pulled down! +We used that category to share the story from a dead open source project into +a thriving open source community with lots of users and contributors and to +highlight some of our milestones. Here's the short version:

+
    +
  • lots of technical updates and refactoring, latest everything, modern UI
  • +
  • the only open source test case management system on GitHub Marketplace
  • +
  • nearly 60000 downloads on Docker Hub
  • +
  • growing and active core team
  • +
  • active OSS contributors
  • +
+

Please help us gain more recognition:

+ +

Thanks you & happy testing!

+
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2019/06/18/kiwi-tcms-610/index.html b/blog/kiwi-tcms-team/2019/06/18/kiwi-tcms-610/index.html new file mode 100644 index 00000000..9393a554 --- /dev/null +++ b/blog/kiwi-tcms-team/2019/06/18/kiwi-tcms-610/index.html @@ -0,0 +1,314 @@ + + + + + Kiwi TCMS - Kiwi TCMS 6.10 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS 6.10

+

medium security updates and few improvements

+ + + +
+

We're happy to announce Kiwi TCMS version 6.10! +This is a small security and improvement update. +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  bbb581d60ed1    1.005 GB
+kiwitcms/kiwi       6.2     7870085ad415    957.6 MB
+kiwitcms/kiwi       6.1.1   49fa42ddfe4d    955.7 MB
+kiwitcms/kiwi       6.1     b559123d25b0    970.2 MB
+kiwitcms/kiwi       6.0.1   87b24d94197d    970.1 MB
+kiwitcms/kiwi       5.3.1   a420465852be    976.8 MB
+
+
+

Changes since Kiwi TCMS 6.9

+
+

Security

+
    +
  • Update Django from 2.2.1 to 2.2.2 for medium severity +CVE-2019-12308 (XSS), CVE-2019-11358 (jQuery). +More info
  • +
  • Add missing permission checks for menus in Test run page UI template. +Permission check added for TestExecution status and comment menu. +References Issue #716
  • +
  • Re-enable static analysis with bandit and Coverity Scan in +Travis CI (Svetlomir Balevski)
  • +
+
+
+

Improvements

+
    +
  • Update psycopg2 from 2.8.2 to 2.8.3
  • +
  • Update markdown from 3.1 to 3.1.1
  • +
  • Update patternfly to version 3.59.2
  • +
  • Override PasswordResetForm because Site.objects.get_current() +didn't produce correct results when working with kiwitcms-tenants
  • +
  • Show column is_active in user admin page
  • +
+
+
+

Refactoring

+
    +
  • Add test for email_case_deletion() (Rik)
  • +
  • New linter to warn about usage of AutoField. Fixes +Issue #737 (Ivo Donchev, HackSoft)
  • +
  • New linter to discover empty classed. Fixes +Issue #739 (Daniel Goshev)
  • +
  • New linter to warn about usage of OneToOneField. Fixes +Issue #735 (George Goranov)
  • +
  • New linter to warn about usage of function based views. Fixes +Issue #734 (Yavor Lulchev, Uber)
  • +
  • New linter to discover Python files in directories without __init__.py. Fixes +Issue #790
  • +
+
+
+
+

Join us at OpenExpo in Madrid

+

Kiwi TCMS is exhibitor at OpenExpo Europe +on June 20th in Madrid. We will be hosting an info booth and 2 technical +presentations delivered by +Anton Sankov and +Alex Todorov.

+

Kiwi TCMS is also the leading finalist in the +Best Tech Community +category at Open Awards 2019!

+

Use OE19SPEAKERINVITE 100% discount code! Get your ticket +here!

+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+

WARNING: kiwitcms/kiwi:latest and docker-compose.yml will +always point to the latest available version! If you have to upgrade in steps, +e.g. between several intermediate releases, you have to modify the above workflow:

+
+# starting from an older Kiwi TCMS version
+docker-compose down
+docker pull kiwitcms/kiwi:<next_upgrade_version>
+edit docker-compose.yml to use kiwitcms/kiwi:<next_upgrade_version>
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+# repeat until you have reached latest
+
+

Happy testing!

+
+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2019/07/05/contributor-profile-primoz-klemen/index.html b/blog/kiwi-tcms-team/2019/07/05/contributor-profile-primoz-klemen/index.html new file mode 100644 index 00000000..98c494be --- /dev/null +++ b/blog/kiwi-tcms-team/2019/07/05/contributor-profile-primoz-klemen/index.html @@ -0,0 +1,281 @@ + + + + + Kiwi TCMS - Contributor profile: Primož Klemen + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Contributor profile: Primož Klemen

+

Kiwi TCMS converted me from an open source user to open source contributor

+ + + +
+

In this new series we are going to introduce the contributors behind Kiwi TCMS. +This is our community and these are their stories.

+
+ + Primož Klemen - + QA tester, full time dad, Manchester United F.C. supporter + +

+ Primož is an early adopter and our Slovenian translator. He's been actively engaging + in GitHub issues, posted pull requests for improving documentation and follows us on + StackOverflow as well. +

+ + + + + + + + +
+ +

What is your professional background

+

I've started working in IT as tech support for the 2nd largest Slovenian ISP at the time. +Then I've been at leading software provider for fintech in the Balkans region in the same +role and gradually transitioned into QA role. Currently, I'm working as a QA tester for +Better (by Marand) and ensure, with help of my colleagues of course, +proper quality of administration application for health care sector.

+

When did you use open source for the first time

+

If I recall correctly that would be some 14 years ago when I ditched dreaded +Internet Explorer in favor of Mozilla Firefox browser. The whole Internet got better in +a matter of seconds.

+

What are your contributions to Kiwi TCMS

+

I mainly contribute via translating the application into my native language, Slovenian. +Currently there are +7 languages available for Kiwi TCMS so you are +more than welcome to join and add another one. +Translating via Crowdin +is very simple and requires no additional technical skills. I've also dabbled into project +documentation and proposed a few updates to it. I'm also the culprit for some +32 issues and counting, +the majority of them being proposals for future application enhancements and few UX/UI bugs +(déformation professionnelle :-)).

+

Why did you decide to contribute to Kiwi TCMS

+
+

The guys and gals from the Kiwi TCMS team provided us with an application which solved +our pain about building, maintaining and running manual regression tests.

+
+

They did all of that for free in their spare time! So I've decided to give something back to +the whole community. This was indeed my first +contribution to the open source world but not the last. Since then I've also +contributed to other projects which I use on a regular basis.

+
+

In hindsight, Kiwi TCMS converted me from an open source user to open source contributor!

+
+

Was there something which was hard for you during the contribution process

+

Contributing to the project, as a non-developer, is very easy and intuitive by +either opening issues on GitHub or translating via Crowdin or even committing +updated documentation to git repository through GitHub Desktop client. +All of the aforementioned was new to me and I've learned in depth how to use +these tools. I've also had the pleasure to familiarize myself with project documentation +- Sphinx and reStructuredText are my two new best friends.

+

Which is the best part of contributing to Kiwi TCMS

+

Being able to actively improve an application that we use on a daily basis in our +development process. Getting to know more people from all around the globe and see their +insights about software quality assurance thus learning something new every day.

+

What is next for you in professional and open source plan

+

Professionally I'm 100% committed to Better (by Marand) and helping us achieve +the best standard of quality for health care applications which also incorporates +using the knowledge gathered by following and/or contributing to open source. +I'm going to continue contributing to Kiwi TCMS and +Captura and if time allows maybe involve myself with some other interesting projects.

+

Thank you, Primož! Happy testing!

+
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2019/07/08/contributor-profile-aneta-petkova/index.html b/blog/kiwi-tcms-team/2019/07/08/contributor-profile-aneta-petkova/index.html new file mode 100644 index 00000000..fcae8fc4 --- /dev/null +++ b/blog/kiwi-tcms-team/2019/07/08/contributor-profile-aneta-petkova/index.html @@ -0,0 +1,280 @@ + + + + + Kiwi TCMS - Contributor profile: Aneta Petkova + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Contributor profile: Aneta Petkova

+

I learned I can build software, not just test it

+ + + +
+

Happy Monday, testers! +In this series we are introducing the contributors behind Kiwi TCMS. +This is our community and these are their stories.

+
+ + Aneta Petkova - QA Chapter Lead at SumUp + + +

+ Aneta is a software engineer navigating the complex field of QA + since her first "grownup" job. She's been working in the area of + test automation for web applications using different programming languages and tools. + + Her mission is to inspire people to think about quality from the + very inception of ideas and to blur the line between developers and + QA specialists. +

+ + + + + + + + + + + + +
+ +

What is your professional background

+

I have an engineering degree in computer science and I've spend the last 8 years in Quality Assurance. +Java, TestNG and UI automation with Selenium WebDriver are my strongest technical skills but +I use different programming languages and tools.

+
+

I believe languages and tools should only support an engineer and never define them.

+
+

Currently I am the QA Chapter Lead at SumUp, +where I can work towards achieving my goals in an amazing team of people that do what they love.

+

When did you use open source for the first time

+

The first time I remember was in 2011, but I've probably used it before and just didn't pay attention. +To me it seemed the same as proprietary, and I guess that means it was good.

+

Describe your contributions to the project

+

I created kiwitcms-junit-plugin. +This is a native Java library which you can install via Maven Central. It +will discover your automated test suite and publish test execution results in +Kiwi TCMS. This plugin is very simple and requires only minimal configuration +before it is ready to work. +Check-out the example in TP-25!

+

editor comment: Aneta and Ivo (Kiwi TCMS) hosted the +"Git crash course" workshop at HackConf 2018. +Kiwi TCMS will be hosting 2 workshops this year so stay tuned!

+

Why did you decide to contribute to Kiwi TCMS

+

I had recently switched Java for Ruby and I was feeling nostalgic. +Also, I had spent my entire career so far in QA and I wanted to slip on +the developer shoes for at least a little bit.

+

Was there something which was hard for you during the contribution process

+

I'm used to working in a team and when I started working on this project +I was the only active Java developer. Luckily for me, I live in the time of StackOverflow, +so I managed to get most of my questions answered by strangers on the Internet.

+
+

I learned tons of stuff, but mostly I learned I can build software, not just test it!

+
+

Which is the best part of contributing to Kiwi TCMS

+

Doing something that has the potential to help others and that could be improved upon.

+

What is next for you in professional and open source plan

+

My current focus is moving slightly into DevOps direction and I am really overwhelmed +by the amount of things to learn. I feel there is so much I want to experiment with. +I am not really planning anything related to open source - it has never been a goal for me - +but when I come across a project I feel strongly about, I'd probably be tempted to contribute.

+

Thank you, Aneta! Happy testing!

+
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2019/08/02/kiwi-tcms-611/index.html b/blog/kiwi-tcms-team/2019/08/02/kiwi-tcms-611/index.html new file mode 100644 index 00000000..835899ed --- /dev/null +++ b/blog/kiwi-tcms-team/2019/08/02/kiwi-tcms-611/index.html @@ -0,0 +1,355 @@ + + + + + Kiwi TCMS - Kiwi TCMS 6.11 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS 6.11

+

security updates, new telemetry, improvements and bug-fixes

+ + + +
+

We're happy to announce Kiwi TCMS version 6.11! +This is a security and improvement release which updates +many internal dependencies, adds 2 new Telemetry reports, updates +TestPlan and TestCase cloning pages and provides several other +improvements 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  6a8249d23a67    1.011 GB
+kiwitcms/kiwi       6.2     7870085ad415    957.6 MB
+kiwitcms/kiwi       6.1.1   49fa42ddfe4d    955.7 MB
+kiwitcms/kiwi       6.1     b559123d25b0    970.2 MB
+kiwitcms/kiwi       6.0.1   87b24d94197d    970.1 MB
+kiwitcms/kiwi       5.3.1   a420465852be    976.8 MB
+
+
+

Changes since Kiwi TCMS 6.10

+
+

Security

+ +
+
+

Improvements

+
    +
  • Update python-gitlab from 1.8.0 to 1.10.0
  • +
  • Update django-grappelli from 2.12.3 to 2.13.1
  • +
  • Update django-simple-history from 2.7.2 to 2.7.3
  • +
  • Update django-attachments to 1.4.1
  • +
  • Update PyGithub from 1.43.7 to 1.43.8
  • +
  • Update patternfly to version 3.59.3
  • +
  • Update prismjs to version 1.17.0
  • +
  • Add Testing Status Matrix telemetry
  • +
  • Add Testing Execution Trends telemetry
  • +
  • Make it possible to attach files directly inside Test Plan page
  • +
  • Make it possible to attach files directly inside Test Execution widget
  • +
  • Convert Clone TestPlan page to Patternfly, greatly simplify the UI +and update behavior:
      +
    • Cloned TP author will always be set to the current user
    • +
    • Cloned TC author will always be set to the current user
    • +
    • Always keep the original default tester for test cases when cloning
    • +
    • Refactor to class based view
    • +
    • Fix a problem where Version values failed form validation b/c +we've been trying to filter based on non-existing field +product_id instead of just product
    • +
    • Fixes a problem where erroneous Version value was shown in the UI
    • +
    +
  • +
  • Convert Clone TestCase page to Patternfly, greatly simplify the UI +and update behavior. Fixes +Issue #838:
      +
    • Allow cloning into multiple test plans
    • +
    • Remove 'Filter another plan' option. Will be replaced by +'Add TP to TC', see +Issue #1021
    • +
    • Always update sortkey. Cloned TC will show at the bottom of the +TestPlan
    • +
    • Cloned TC author will always be set to the current user
    • +
    • Always keep the original default tester
    • +
    +
  • +
+
+
+

API

+
    +
  • First parameter of RPC method Bug.report() +has been renamed from test_case_run_id to execution_id. This may +break existing API scripts which try to pass this argument by name +instead of by position!
  • +
+
+
+

Settings

+
    +
  • Allow ENV variables KIWI_USE_TZ and KIWI_TIME_ZONE to control +settings USE_TZ and TIME_ZONE. Fixes +Issue #982 (Jason Yi)
  • +
+
+
+

Bug fixes

+
    +
  • Fix wrong permission label when deleting comments. Fixes +Issue #1010
  • +
+
+
+

Refactoring

+
    +
  • Disable unnecessary pylint messages for missing-permission-required +checker (Svetlomir Balevski)
  • +
  • Remove unnecessary from_plan URL variable making cleaner URLs
  • +
  • kiwi_lint: Don't check nested functions for permissions
  • +
  • Remove and regroup JavaScript functions
  • +
  • Instruct pyup-bot to monitor requirements/tarballs.txt for updates
  • +
+
+
+

Translations

+ +
+
+
+

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!

+
+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2019/08/09/kiwi-tcms-conference-presence-aw2019/index.html b/blog/kiwi-tcms-team/2019/08/09/kiwi-tcms-conference-presence-aw2019/index.html new file mode 100644 index 00000000..01d84648 --- /dev/null +++ b/blog/kiwi-tcms-team/2019/08/09/kiwi-tcms-conference-presence-aw2019/index.html @@ -0,0 +1,250 @@ + + + + + Kiwi TCMS - Kiwi TCMS conference presence, AW2019 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS conference presence, AW2019

+

11 events, 5 countries during Aug-Nov

+ + + +
+

Your favorite open source test case management system is going on tour again. +During the next several months we will be at:

+ +

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

+
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2019/09/03/open-source-sprints-at-pycon-balkan-in-belgrade/index.html b/blog/kiwi-tcms-team/2019/09/03/open-source-sprints-at-pycon-balkan-in-belgrade/index.html new file mode 100644 index 00000000..59b4f892 --- /dev/null +++ b/blog/kiwi-tcms-team/2019/09/03/open-source-sprints-at-pycon-balkan-in-belgrade/index.html @@ -0,0 +1,349 @@ + + + + + Kiwi TCMS - Open source sprints at PyCon Balkan in Belgrade + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Open source sprints at PyCon Balkan in Belgrade

+

join us, learn and contribute to Kiwi TCMS

+ + + +
+

Next month our team will be at +PyCon Balkan, Oct 3-5 in Belgrade. Together with +presentation and a workshop we are going to host open source sprints! +These will be an informal gathering where participants will be able to +learn more about how open source works and go through their first +contributions. This is ideal for students and less experienced people +but we welcome everyone. There will be tasks ranging from easy to very hard!

+

Who: 4 mentors from Kiwi TCMS and you!

+

What: full day of peer programming and contributing to Kiwi TCMS

+

Where: room will be announced on the days of the conference, + follow @KiwiTCMS for more info

+

Why: up your tech skills, build your GitHub profile and have fun together

+

Translate Kiwi TCMS

+

Difficulty: easy

+

We have enabled Serbian language in our translation system. To get started +checkout our +translation contribution +page. +Once strings are translated kiwitcms-bot will automatically open a pull +request with the new text.

+

Find unused CSS classes

+

Difficulty: easy

+

This should be relatively easy. For each class/selector defined in our CSS files +search (grep) if any of the HTML templates use it. If it is not in use then remove +it.

+

Find unused JavaScript code

+

Difficulty: easy

+

Similar to the above. We're not 100% certain but there could be legacy JavaScript +functions which are no longer in use. Find them and remove them! At the very least +you have confirmed that all functions are in use!

+

CodeClimate Minor severity issues

+

Difficulty: easy to moderate

+

Check-out the +list of Minor severity issues. +There are many of them:

+
    +
  • CSS lint issues (we suggest you start with this one)
  • +
  • functions longer than 25 lines of code
  • +
  • functions with bigger cognitive and cyclomatic complexity
  • +
  • modules longer than 250 LOC
  • +
+

Try fixing a few to see how it goes and continue if you feel confident. +Not everything may be an issue so if you have any questions ask someone from our team.

+

CodeClimate Major severity issues

+

Difficulty: moderate to hard

+

Check-out the +list of Major severity issues. +There are around 150 of them:

+
    +
  • identical and similar code blocks
  • +
  • big modules
  • +
  • big functions
  • +
+

Most of these require some sort of refactoring, either splitting snippets +of code into smaller pieces (functions or sub-modules) or using one function +in several places instead of 2 very similar but different functions, etc. +Ask our team members about which approach they prefer for fixing these issues +to minimize the effort spent here.

+

CodeClimate Critical severity issues

+

Difficulty: hard

+

Check-out the +list of Critical severity issues. +All of these are functions with high cognitive complexity and +the recommended way to deal with them is refactoring into +class based views.

+

Improve pylint health

+

Difficulty: easy

+

Execute pylint against the latest sources and start fixing the issues. +Looking at pylint logs the +following items are relatively easy to work on:

+
    +
  • Everything in module tcms.urls
  • +
  • Everything in module tcms.telemetry.api
  • +
  • Everything in module tcms.testruns.tests.test_views
  • +
  • Everything in module tcms.xmlrpc.forms
  • +
  • Everything in module tcms.testcases.tests.test_models
  • +
  • Everything in module tcms.core.forms.fields
  • +
  • Everything in module tcms.settings.common
  • +
  • Everything in module tcms.settings.test
  • +
  • All module-in-directory-without-init errors reported for module tcms.tests.__init__
  • +
+

Note: fixme, missing-permission-required and avoid-auto-field errors are usually harder +to resolve and will require more work/refactoring. If you feel confident go ahead and +fix them, if not skip to the next error message.

+

We also use a custom pylint checker which reports function based views. +If you are looking for something harder to work on, then give it a try +(see 3rd pylint line in Makefile) and refactor some of the existing +view functions into class based views.

+

Fix 3rd party security issues discovered by Bandit

+

Difficulty: moderate to hard

+

Bandit is a static analysis tool similar to pylint. It focuses on discovering +issues which may lead to security vulnerabilities. We have resolved all such +issues in our own source code but we also execute Bandit against the entire +Python dependency stack. There it finds thousands of issues, so much so that +the reporter crashes.

+

In CI there are around +130 issues reported. The best course of action here is to execute Bandit locally +against the offending library and then figure out what to do:

+
    +
  • report an issue upstream
  • +
  • send a pull request upstream
  • +
  • if these are test files maybe exclude them from the package (e.g. don't ship them for production)
  • +
+

Note: inside Travis CI we have all runtime and testing dependencies which is more +than what we have inside the official Docker image for Kiwi TCMS.

+

Work on reported issues

+

The following issues look suitable for a sprint and don't require lots of +background knowledge. You can also find them using the +PyConBalkan label on +GitHub:

+
    +
  • #212 - moderate - Convert jQ to $ - + this is an easy search & rename but will require more extensive manual testing
  • +
  • #431 - moderate to hard - Remove JavaScript fireEvent() - + 17 matches in static/js/. Must be replaced with direct function calls
  • +
  • #652 - easy - Removal of labels from form fields - + all labels must be included in the HTML template and marked for translation
  • +
  • #681, #682 - moderate - + Move API modules & their tests from xmlrpc/api/<app>.py to <app>/api.py. These have good test + coverage so you have to make sure you don't break anything
  • +
  • #971 - moderate - manage.py command for changing Site URL - + will help with automatic provisioning, e.g. Ansible. For howto see + Django docs
  • +
  • #1021 - moderate - Update TestCase page UI to allow adding TestPlans to cases - + use TestPlan.add_case() API method and refresh the widget. See how Tags and Components cards work + in the same page
  • +
  • #1070 - moderate - manage.py command for checking email settings - + will help with troubleshooting misconfigured email. Must raise exceptions if something fails. + For howto see + Django docs
  • +
  • #733, + #736, + #738, + #883, + #1089 - hard to very hard - New checkers for pylint - + Kiwi TCMS uses customized pylint checkers to discover various conditions. We need a few more + of them and/or update of the existing ones
  • +
+

We hope to see you in Belgrade. Until then: Happy testing!

+
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2019/09/24/kiwi-tcms-70/index.html b/blog/kiwi-tcms-team/2019/09/24/kiwi-tcms-70/index.html new file mode 100644 index 00000000..02e3b348 --- /dev/null +++ b/blog/kiwi-tcms-team/2019/09/24/kiwi-tcms-70/index.html @@ -0,0 +1,514 @@ + + + + + Kiwi TCMS - Kiwi TCMS 7.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS 7.0

+

major release with security updates & many changes

+ + + +
+

We're happy to announce Kiwi TCMS version 7.0! +This is a major release which includes security updates, +significant database schema and API changes, many improvements, +removed functionality, bug fixes, substantial internal refactoring and +several new languages. You can explore everything at +https://public.tenant.kiwitcms.org!

+

The 7.0 version number happily coincides with the fact that we've surpassed +70000 downloads from 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  d34dc6d896bf    584 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 6.11

+
+

Security

+
    +
  • API method BugSystem.filter() has been removed (now unused) but +it was possible to use this method to steal passwords or keys used for +Issue Tracker integration. This vulnerability could be exploited by +users logged into Kiwi TCMS and is classified as medium severity! +We advise you to change your integration API keys and passwords +immediately!
  • +
+
+
+

Improvements

+
    +
  • Update Django from 2.2.4 to 2.2.5
  • +
  • Update django-uuslug from 1.1.8 to 1.1.9
  • +
  • Update mysqlclient from 1.4.2.post1 to 1.4.4
  • +
  • Update python-bugzilla from 2.2.0 to 2.3.0
  • +
  • Update python-gitlab from 1.10.0 to 1.11.0
  • +
  • Update patternfly from 3.59.3 to 3.59.4
  • +
  • Reduce docker image size from 1.01 GB to under 600 MB
  • +
  • Add TestCase Health telemetry
  • +
  • Add support for Redmine issue tracker. Fixes +Issue #41 (Jesse C. Lin)
  • +
  • Add breathing room around HTML form's submit buttons (Rady Madjev)
  • +
  • New TestRun page action: bulk-add hyperlinks to TestExecution(s)
  • +
  • Make it possible to disable HTTPS by specifying the +KIWI_DONT_ENFORCE_HTTPS environment variable! Fixes +Issue #1036 (Marco Descher)
  • +
  • Documentation updates, including internal style checker. Fixes +Issue #1000 (Prome88)
  • +
  • When linking a TestExecution to a defect and choosing to update the +Issue Tracker Kiwi TCMS will not add a comment pointing back to +TR ID/summary/URL and TE ID/summary. This provides more detailed information +about the reproducer instead of just linking to a TestCase without any +specific execution details like we did in the past
  • +
  • Display additional defect information via Issue Tracker integration. +On Patternfly pages which show defect URLs this is accessible via a +small info icon. Fixes +Issue #117
  • +
  • Add minimalistic defect tracker functionality. Fixes +Issue #699
      +
    • integrated with Issue Tracker integration layer as if it was +an external system
    • +
    • when adding hyperlink to TestExecition (also via API method +TestExecution.add_link()) this is special cased and the +references between Bug and TestExecution are always updated
    • +
    • when clicking 'Report bug' from inside Test Execution the new +defect is reported automatically and a new browser window opens to +display the information
    • +
    +
  • +
+
+
+

Database migrations

+
    +
  • Tell the migration planner to apply +testruns.0006_rename_test_case_run_to_test_execution after +linkreference.0001_squashed. This enables subsequent migrations +and new functionality to be applied without crashing.

    +
    +
    +

    Warning

    +

    Django should be able to handle this automatically both for +existing installations and for new ones. In any case make sure +you backup your data first and make a dry-run to verify that +nothing breaks!

    +
    +
    +
  • +
  • Remove fields url_reg_exp, validate_reg_exp and description from +BugSystem model

    +
  • +
  • Update the following fields in LinkReference model:

    +
      +
    • rename test_case_run to execution
    • +
    • add indexing for created_on and url
    • +
    • add is_defect field
    • +
    +
  • +
  • Apply LinkReference permissions to default group Tester. Fixes +Issue #881

    +
    +
    +

    Warning

    +

    Administrators of existing applications will need to +apply these permissions by hand via the Admin section.

    +
    +
    +
  • +
  • Remove testcases.Bug model, replaced with LinkReference. +Closes Issue #1029 and +obsoletes Issue #320.

    +
    +
    +

    Note

    +

    Linking bugs to TestExecution is now performed via URLs instead of +keeping a reference to BUG-ID and trying to reconstruct the URL +on the fly.

    +
    +
    +

    Warning

    +

    The model named Bug which is added by subsequent migrations +refers to defects reported into Kiwi TCMS minimalistic defect tracker!

    +
    +
    +
  • +
  • New model bugs.Bug is now available. Permissions of type +bugs | bug | Can ... will be applied to the default group named +Tester only for new installations.

    +
    +
    +

    Warning

    +

    Administrators of existing applications will need to +apply these permissions by hand via the Admin section.

    +
    +
    +
  • +
+
+
+

API

+
    +
  • TestExecution.add_link() method now returns serialized +LinkReference object.
  • +
  • TestExecution.remove_link() method now accepts one parameter of type +dict used to filter the objects which to remove
  • +
  • TestExecution.get_links() method now accepts one parameter of type +dict instead of int
  • +
  • TestExecution.add_link() method signature changed from +(int, str, str) to (dict), where the single parameter holds field values for +the LinkReference model
  • +
  • Remove TestExecution.add_bug() method, use TestExecution.add_link()
  • +
  • Remove TestExecution.remove_bug() method, use +TestExecution.remove_link()
  • +
  • Remove TestCase.add_bug() method
  • +
  • Remove TestCase.remove_bug() method
  • +
  • Remove Bug.remove() method, use TestExecution.remove_link()
  • +
  • Remove Bug.create() method, use TestExecution.add_link()
  • +
  • Add method Bug.details() which together with the underlying +IssueTracker.details() is the foundation of how Kiwi TCMS fetches +extra details from the issue tracking system. The default implementation +uses OpenGraph protocol to collect the data that will be shown. You may +override .details() for each issue tracker (or add your own IT) to +extend this functionality. Information is cached for 1 hour by default. +References +Issue #117
  • +
  • Add methods Bug.add_tag() and Bug.remove_tag()
  • +
  • Existing method with name Bug.filter() has changed behavior. It is +now used to query objects from Kiwi TCMS minimalistic defect tracker
  • +
+
+
+

Removed functionality

+
    +
  • Remove IssueTrackerType.all_issues_link() method. This was used in +TestRun Report page to show a single link that will open all bugs in the +Issue Tracker. Most trackers don't support this and the UI portion has +been rewritten
  • +
  • Remove LinkOnly issue tracker - obsolete because all defects are +now added to TestExecutions via their URLs
  • +
  • Remove bulk-add/bulk-remove of bugs in TestRun page, replaced by bulk-add +for hyperlinks
  • +
+
+
+

Settings

+
    +
  • Respect the CACHES setting, see +Django docs +for more info. Initially this setting is used to cache defect details received +via Issue Tracker integration. See +Issue #117
  • +
+
+
+

Bug fixes

+
    +
  • Don't auto-download FontAwesome for SimpleMDE. Resolves icons disappearing +on pages which have the markdown editor. Fixes +Issue #905
  • +
  • Reorder HTML elements so Delete button is still visible in TestCase review +comment section. Fixes +Issue #1013 (Rady Madjev)
  • +
  • Remove section that displays bugs in TestExecution container. Bugs are now +denoted by a small icon next to their hyperlink. Closes +Issue #475
  • +
  • Cache Issue Tracker connections per base_url. Fixes +Issue #290
  • +
+
+
+

Refactoring

+
    +
  • Lots of refactoring from function based views to class based views (Rady Madjev)
  • +
  • Use JavaScript and the API to remove case execution instead of dedicated +backend function (Rady Madjev)
  • +
  • Update pylint directives around missing permissions (Svetlomir Balevski)
  • +
  • Fix typo in identifier. Fixes +CID 344186
  • +
  • Use TestExecution.add_link() and TestExecution.remove_link() in UI +instead of dedicated backend function.
  • +
  • Remove unused LinkReference views, forms and tests modules
  • +
+
+
+

Translations

+ +

For more information check-out +all supported languages. +To request new language +click here!

+
+
+
+

junit.xml-plugin v0.4

+

A few days ago we have also released +kiwitcms-junit.xml-plugin +v0.4 with the following changes:

+
    +
  • Update junitparser from 1.3.2 to 1.3.4
  • +
  • Also support XML files with <testsuites> root tag (Katalon Studio). Fixes +Issue #9
  • +
+
+
+

tap-plugin v0.4

+

We have also released +kiwitcms-tap-plugin +v0.4 with the following changes:

+
    +
  • Include traceback from TAP file as TestExecution comment. Fixes +Issue #7 +(Christophe CHAUVET)
  • +
+
+
+

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!

+
+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2019/10/29/kiwi-tcms-71/index.html b/blog/kiwi-tcms-team/2019/10/29/kiwi-tcms-71/index.html new file mode 100644 index 00000000..4bb0cb39 --- /dev/null +++ b/blog/kiwi-tcms-team/2019/10/29/kiwi-tcms-71/index.html @@ -0,0 +1,384 @@ + + + + + Kiwi TCMS - Kiwi TCMS 7.1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS 7.1

+

improvement release with DB, API and translation changes

+ + + +
+

We're happy to announce Kiwi TCMS version 7.1! +This is a small improvement update which includes +database schema and API changes, several other improvements, +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  c8cf36ac5ca5    602 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.0

+
+

Improvements

+
    +
  • Update django from 2.2.5 to 2.2.6
  • +
  • Update python-gitlab from 1.11.0 to 1.12.1
  • +
  • Update pygithub from 1.43.8 to 1.44
  • +
  • Update psycopg2 from 2.8.3 to 2.8.4
  • +
  • Add help tooltips in all telemetry pages
  • +
  • Better styling for checkboxes in 'Add hyperlink' dialog, +part of TestRun page
  • +
  • Add hyperlink validation. Fixes +Issue #1147
  • +
+
+
+

Database migrations

+
    +
  • Add bugs permissions to Tester group. Will make any difference +only if upgrading from existing installation
  • +
+
+
+

API

+
    +
  • New method Bug.remove()
  • +
+
+
+

Bug fixes

+
    +
  • Always build with the latest versions of translations
  • +
  • Add 'Delete' menu item in Bugs page. Fixes #1153 +Issue #1153
  • +
  • When deleting hyperlink from TestExecution hide the actual UI +elements from the page
  • +
  • Fix failure to delete TCs when the number of TCs inside TP is greater +than 100. Fixes +Issue #1149 and +Sentry KIWI-TCMS-8F
  • +
+
+
+

Refactoring

+
    +
  • Rename directory xmlrpc to rpc and pylint updates. Refs +Issue #682 +(Matej Aleksandrov, Sinergise)
  • +
  • Remove labels from form fields, Refs +Issue #652 (Azmi YÜKSEL)
  • +
  • New base class for tests around permissions (Svetlomir Balevski)
  • +
  • New "blueprint" test case around permissions to make testing in this area more +robust
  • +
  • Refactor many views from function based to class based
  • +
  • Update stale tests in tcms/core/tests/ and make sure they aren't ignored +by the test runner
  • +
  • Remove empty class XMLRPCBaseCaseForm
  • +
  • Remove XMLRPCNewCaseForm, duplicate of NewCaseForm
  • +
  • Remove rpc.forms.UpdateCaseForm in favor of XMLRPCUpdateCaseForm
  • +
  • Update only English sources with new strings as a temporary workaround b/c +Crowdin uses different formatting heuristics than gettext. This will minimize +the number of .po format changes
  • +
  • A few pylint fixes
  • +
+
+
+

Translations

+ +
+
+
+

Acknowledgments

+

A special "thank you" goes to our friends from +PyCon Balkan in Belgrade who allowed us to host +an open source coding sprint in Belgrade during the conference!

+

A second "thank you" goes to +Open Labs Hackerspace who hosted a localization +sprint in Tirana and contributed to several different languages!

+

Thank you for being part of our community. Version 7.1 includes all of your +contributions.

+
+
+

Website updates

+

We're using the opportunity to share that website is now serving via SSL courtesy +of GitHub and Let's encrypt.

+

Our main page has also been updated to showcase some of our customers: +Better (Slovenia), Minds, Inc. (USA), Musala Soft (Bulgaria). If you would like to +feature your corporate logo and tell us how you use Kiwi TCMS then +drop us an email!

+
+
+

Upcoming conferences

+

The next two events we are going to participate are:

+ +

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

+
+
+

Upcoming FOSDEM 2020

+

We are happy to announce that our team, together with SUSE and Linaro will be +hosting the +Testing and Automation Developer Room +at FOSDEM in Brussels next February.

+

Call for papers is open until December 10th 2019. Anything related to +software testing and open source is welcome. Apply from the link above.

+
+
+

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!

+
+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2019/11/26/kiwi-tcms-is-going-to-fosdem-2020/index.html b/blog/kiwi-tcms-team/2019/11/26/kiwi-tcms-is-going-to-fosdem-2020/index.html new file mode 100644 index 00000000..6a1a250e --- /dev/null +++ b/blog/kiwi-tcms-team/2019/11/26/kiwi-tcms-is-going-to-fosdem-2020/index.html @@ -0,0 +1,232 @@ + + + + + Kiwi TCMS - Kiwi TCMS is going to FOSDEM 2020 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS is going to FOSDEM 2020

+

Testing and Automation devroom & Open Source Test Management stand

+ + + +
+

Stand at FOSDEM'19

+

Hello testers, Kiwi TCMS is going to FOSDEM 2020. +This is where you can find us:

+
    +
  • Fri Jan 31st: after 18:00 @ Delirium Café - + we are taking part of the FOSDEM Beer Event where all participants are invited. + Shout out with #KiwiTCMS on Twitter if you can't find us in the crowd
  • +
  • Sat Feb 1st: + Testing and Automation devroom - + we are proud to be co-hosting this devroom together with Linaro and SUSE. + CfP is open until Dec 10th 2019. Apply here!
  • +
  • Sun Feb 2nd: Open Source Test Management stand - + we will be together with our friends from SystemTestPortal and we are preparing + some real black-box testing for you!
  • +
+

We would like to meet with all of you and talk about software testing, test management and +test process organization. In case you are stuck for crazy ideas checkout +our project mission for inspiration.

+

Picture: FOSDEM'19 with Kiwi TCMS, ReportPortal & SystemTestPortal

+

Happy testing!

+
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2019/12/09/kiwi-tcms-72/index.html b/blog/kiwi-tcms-team/2019/12/09/kiwi-tcms-72/index.html new file mode 100644 index 00000000..a6bbf9b7 --- /dev/null +++ b/blog/kiwi-tcms-team/2019/12/09/kiwi-tcms-72/index.html @@ -0,0 +1,371 @@ + + + + + Kiwi TCMS - Kiwi TCMS 7.2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS 7.2

+

improvement and bug-fix release

+ + + +
+

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

Translations

+ +
+
+
+

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!

+
+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2020/01/12/kiwi-tcms-is-migrating-from-oauth-to-github-app/index.html b/blog/kiwi-tcms-team/2020/01/12/kiwi-tcms-is-migrating-from-oauth-to-github-app/index.html new file mode 100644 index 00000000..d46818dd --- /dev/null +++ b/blog/kiwi-tcms-team/2020/01/12/kiwi-tcms-is-migrating-from-oauth-to-github-app/index.html @@ -0,0 +1,267 @@ + + + + + Kiwi TCMS - Kiwi TCMS is migrating from OAuth to GitHub App + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS is migrating from OAuth to GitHub App

+

so we can enable tighter integration with GitHub

+ + + +
+

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

+
    +
  • Go to https://public.tenant.kiwitcms.org and + click the GitHub login icon, follow through with the process;
  • +
  • Go to https://github.com/apps/kiwi-tcms and + click the Install button, select account & repositories and complete the + process;
  • +
  • Share this blog post with friends, co-workers and other testers who might be + interested to help!
  • +
+

Thank you! Happy testing and happy new year!

+
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2020/01/16/kiwi-tcms-73/index.html b/blog/kiwi-tcms-team/2020/01/16/kiwi-tcms-73/index.html new file mode 100644 index 00000000..e3d3a689 --- /dev/null +++ b/blog/kiwi-tcms-team/2020/01/16/kiwi-tcms-73/index.html @@ -0,0 +1,357 @@ + + + + + Kiwi TCMS - Kiwi TCMS 7.3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS 7.3

+

critical security update

+ + + +
+

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

Translations

+ +
+
+
+

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!

+
+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2020/02/04/github-oauth-tokens-have-been-revoked/index.html b/blog/kiwi-tcms-team/2020/02/04/github-oauth-tokens-have-been-revoked/index.html new file mode 100644 index 00000000..b56ab9b8 --- /dev/null +++ b/blog/kiwi-tcms-team/2020/02/04/github-oauth-tokens-have-been-revoked/index.html @@ -0,0 +1,214 @@ + + + + + Kiwi TCMS - GitHub OAuth tokens have been revoked + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

GitHub OAuth tokens have been revoked

+ + + +
+

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!

+
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2020/02/12/kiwi-tcms-80/index.html b/blog/kiwi-tcms-team/2020/02/12/kiwi-tcms-80/index.html new file mode 100644 index 00000000..e6adcb80 --- /dev/null +++ b/blog/kiwi-tcms-team/2020/02/12/kiwi-tcms-80/index.html @@ -0,0 +1,443 @@ + + + + + Kiwi TCMS - Kiwi TCMS 8.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS 8.0

+

major release with backwards incompatible changes

+ + + +
+

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. +
    3. docker-compose down

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

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

      +
    8. +
    9. 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

      +
    10. +
    11. Proceed to upgrade your Kiwi TCMS container !

      +
    12. +
    +
  • +
+

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

Translations

+ +
+
+
+

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!

+
+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2020/02/14/were-not-participating-in-qa-of-the-year-award/index.html b/blog/kiwi-tcms-team/2020/02/14/were-not-participating-in-qa-of-the-year-award/index.html new file mode 100644 index 00000000..4b4f48a0 --- /dev/null +++ b/blog/kiwi-tcms-team/2020/02/14/were-not-participating-in-qa-of-the-year-award/index.html @@ -0,0 +1,244 @@ + + + + + Kiwi TCMS - We're not participating in 'QA of the year' award + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

We're not participating in 'QA of the year' award

+

ironically because of a bug

+ + + +
+

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!

+
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2020/02/17/catch-up-with-kiwi-tcms-in-sofia-singapore-kiev-moscow/index.html b/blog/kiwi-tcms-team/2020/02/17/catch-up-with-kiwi-tcms-in-sofia-singapore-kiev-moscow/index.html new file mode 100644 index 00000000..8ff97756 --- /dev/null +++ b/blog/kiwi-tcms-team/2020/02/17/catch-up-with-kiwi-tcms-in-sofia-singapore-kiev-moscow/index.html @@ -0,0 +1,244 @@ + + + + + Kiwi TCMS - Catch-up with Kiwi TCMS in Sofia, Singapore, Kiev & Moscow + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Catch-up with Kiwi TCMS in Sofia, Singapore, Kiev & Moscow

+

and get discounts and free tickets

+ + + +
+

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!

+
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2020/03/04/kiwi-tcms-81/index.html b/blog/kiwi-tcms-team/2020/03/04/kiwi-tcms-81/index.html new file mode 100644 index 00000000..0573f3af --- /dev/null +++ b/blog/kiwi-tcms-team/2020/03/04/kiwi-tcms-81/index.html @@ -0,0 +1,375 @@ + + + + + Kiwi TCMS - Kiwi TCMS 8.1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS 8.1

+

security, improvements, bug fixes

+ + + +
+

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

Translations

+ +
+
+
+

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!

+
+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2020/03/27/kiwi-tcms-is-open-source-seed-award-winner/index.html b/blog/kiwi-tcms-team/2020/03/27/kiwi-tcms-is-open-source-seed-award-winner/index.html new file mode 100644 index 00000000..2c545fdd --- /dev/null +++ b/blog/kiwi-tcms-team/2020/03/27/kiwi-tcms-is-open-source-seed-award-winner/index.html @@ -0,0 +1,254 @@ + + + + + Kiwi TCMS - Kiwi TCMS is Open Source Seed Award winner + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS is Open Source Seed Award winner

+

$10,000 for open source

+ + + +
+

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!

+
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2020/04/03/kiwi-tcms-82/index.html b/blog/kiwi-tcms-team/2020/04/03/kiwi-tcms-82/index.html new file mode 100644 index 00000000..9b41d05d --- /dev/null +++ b/blog/kiwi-tcms-team/2020/04/03/kiwi-tcms-82/index.html @@ -0,0 +1,335 @@ + + + + + Kiwi TCMS - Kiwi TCMS 8.2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS 8.2

+

update 3rd party libraries, small improvements & API changes

+ + + +
+

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"
  • +
+
+
+

Translations

+ +
+
+
+

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!

+
+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2020/04/09/please-vote-for-kiwi-tcms-in-2020-eu-web-awards/index.html b/blog/kiwi-tcms-team/2020/04/09/please-vote-for-kiwi-tcms-in-2020-eu-web-awards/index.html new file mode 100644 index 00000000..198cfd19 --- /dev/null +++ b/blog/kiwi-tcms-team/2020/04/09/please-vote-for-kiwi-tcms-in-2020-eu-web-awards/index.html @@ -0,0 +1,233 @@ + + + + + Kiwi TCMS - Please vote for Kiwi TCMS in 2020 .eu Web Awards + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Please vote for Kiwi TCMS in 2020 .eu Web Awards

+

and help us advertise open source at Brussels airport for FOSDEM 2021

+ + + +
+

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

+
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2020/04/17/kiwi-tcms-open-source-bounty-program-round-01/index.html b/blog/kiwi-tcms-team/2020/04/17/kiwi-tcms-open-source-bounty-program-round-01/index.html new file mode 100644 index 00000000..12879219 --- /dev/null +++ b/blog/kiwi-tcms-team/2020/04/17/kiwi-tcms-open-source-bounty-program-round-01/index.html @@ -0,0 +1,389 @@ + + + + + Kiwi TCMS - Kiwi TCMS open source bounty program, Round 01 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS open source bounty program, Round 01

+

focus: translation & test automation plugins

+ + + +
+

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

+
    +
  • Program will be split into multiple rounds as we work to clearly define + what needs to be done and adjust priorities
  • +
  • News and updates will be posted at https://opencollective.com/kiwitcms/updates/
  • +
  • You are expected to mostly work alone on issues
  • +
  • Technical discussion will be happening via GitHub pull requests and/or GitHub issues + under https://github.com/kiwitcms/Kiwi unless indicated otherwise
  • +
  • Translation related discussion will be happening via Crowdin under + https://crowdin.com/project/kiwitcms/discussions when needed
  • +
  • Do not contact individual team members privately, we are going to ignore such messages
  • +
+

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

+
    +
  • pylint - + #1192
  • +
  • JavaScript: Add buttons for creating tables in text editor - + #1531
  • +
  • Migration from Travis CI to GitHub workflows - + #1550, + #1551, + #1552, + #1553, + #1554
  • +
+

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!

+
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2020/04/27/kiwi-tcms-83/index.html b/blog/kiwi-tcms-team/2020/04/27/kiwi-tcms-83/index.html new file mode 100644 index 00000000..277c751c --- /dev/null +++ b/blog/kiwi-tcms-team/2020/04/27/kiwi-tcms-83/index.html @@ -0,0 +1,331 @@ + + + + + Kiwi TCMS - Kiwi TCMS 8.3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS 8.3

+

update 3rd party libraries, several improvements, API updates & translations

+ + + +
+

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!

+
+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2020/05/01/kiwi-tcms-open-source-bounty-program-round-02/index.html b/blog/kiwi-tcms-team/2020/05/01/kiwi-tcms-open-source-bounty-program-round-02/index.html new file mode 100644 index 00000000..4d620ad6 --- /dev/null +++ b/blog/kiwi-tcms-team/2020/05/01/kiwi-tcms-open-source-bounty-program-round-02/index.html @@ -0,0 +1,276 @@ + + + + + Kiwi TCMS - Kiwi TCMS open source bounty program, Round 02 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS open source bounty program, Round 02

+

focus: customized pylint plugins and missing test automation

+ + + +
+

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!

+
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2020/05/06/robot-framework-plugin-for-kiwi-tcms/index.html b/blog/kiwi-tcms-team/2020/05/06/robot-framework-plugin-for-kiwi-tcms/index.html new file mode 100644 index 00000000..ed6aeafc --- /dev/null +++ b/blog/kiwi-tcms-team/2020/05/06/robot-framework-plugin-for-kiwi-tcms/index.html @@ -0,0 +1,242 @@ + + + + + Kiwi TCMS - Robot Framework plugin for Kiwi TCMS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Robot Framework plugin for Kiwi TCMS

+

v1.0.0 - initial release

+ + + +
+

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!

+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2020/05/26/kiwi-tcms-is-partnering-up-with-pionir/index.html b/blog/kiwi-tcms-team/2020/05/26/kiwi-tcms-is-partnering-up-with-pionir/index.html new file mode 100644 index 00000000..85ce8842 --- /dev/null +++ b/blog/kiwi-tcms-team/2020/05/26/kiwi-tcms-is-partnering-up-with-pionir/index.html @@ -0,0 +1,281 @@ + + + + + Kiwi TCMS - Kiwi TCMS is partnering up with Pionir + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS is partnering up with Pionir

+

to develop open source hardware for testers

+ + + +
+

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!

+
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2020/06/03/kiwi-tcms-84/index.html b/blog/kiwi-tcms-team/2020/06/03/kiwi-tcms-84/index.html new file mode 100644 index 00000000..0dc67056 --- /dev/null +++ b/blog/kiwi-tcms-team/2020/06/03/kiwi-tcms-84/index.html @@ -0,0 +1,444 @@ + + + + + Kiwi TCMS - Kiwi TCMS 8.4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS 8.4

+

update 3rd party libraries, many improvements, bug-fixes & translations

+ + + +
+

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 &amp; 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!

+
+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2020/06/23/versioned-releases-of-kiwi-tcms/index.html b/blog/kiwi-tcms-team/2020/06/23/versioned-releases-of-kiwi-tcms/index.html new file mode 100644 index 00000000..27e01780 --- /dev/null +++ b/blog/kiwi-tcms-team/2020/06/23/versioned-releases-of-kiwi-tcms/index.html @@ -0,0 +1,228 @@ + + + + + Kiwi TCMS - Versioned releases of Kiwi TCMS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Versioned releases of Kiwi TCMS

+

available to enterprise customers

+ + + +
+

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!

+
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2020/06/30/django-plugin-for-kiwi-tcms/index.html b/blog/kiwi-tcms-team/2020/06/30/django-plugin-for-kiwi-tcms/index.html new file mode 100644 index 00000000..5455b013 --- /dev/null +++ b/blog/kiwi-tcms-team/2020/06/30/django-plugin-for-kiwi-tcms/index.html @@ -0,0 +1,236 @@ + + + + + Kiwi TCMS - Django plugin for Kiwi TCMS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Django plugin for Kiwi TCMS

+

initial release

+ + + +
+

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!

+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2020/07/07/cfp-deployment-backup-and-upgrade-best-practices/index.html b/blog/kiwi-tcms-team/2020/07/07/cfp-deployment-backup-and-upgrade-best-practices/index.html new file mode 100644 index 00000000..9bec6d42 --- /dev/null +++ b/blog/kiwi-tcms-team/2020/07/07/cfp-deployment-backup-and-upgrade-best-practices/index.html @@ -0,0 +1,215 @@ + + + + + Kiwi TCMS - CfP: deployment, backup and upgrade best practices + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

CfP: deployment, backup and upgrade best practices

+

tell us how you devops Kiwi TCMS

+ + + +
+

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!

+
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2020/07/10/kiwi-tcms-85/index.html b/blog/kiwi-tcms-team/2020/07/10/kiwi-tcms-85/index.html new file mode 100644 index 00000000..88620c8d --- /dev/null +++ b/blog/kiwi-tcms-team/2020/07/10/kiwi-tcms-85/index.html @@ -0,0 +1,363 @@ + + + + + Kiwi TCMS - Kiwi TCMS 8.5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS 8.5

+

update 3rd party libraries, improvements, tests & translations

+ + + +
+

We're happy to announce Kiwi TCMS version 8.5!

+

IMPORTANT: this is a medium sized release which includes many improvements, +database migrations, translation updates and new tests. +It is the third 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  4379e2438e43    636 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.4

+
+

Improvements

+
    +
  • Update django from 3.0.7 to 3.0.8
  • +
  • Update django-colorfield from 0.3.0 to 0.3.2
  • +
  • Update django-modern-rpc from 0.12.0 to 0.12.1
  • +
  • Update django-simple-history from 2.10.0 to 2.11.0
  • +
  • Update mysqlclient from 1.4.6 to 2.0.1
  • +
  • Update python-gitlab from 2.2.0 to 2.4.0
  • +
  • Update python-bugzilla from 2.3.0 to 2.5.0
  • +
  • Add middleware to warn for unapplied migrations. Fixes +Issue #1696 (Bryan Mutai)
  • +
  • Add "insert table" button to SimpleMDE toolbar. References +Issue #1531 (Bryan Mutai)
  • +
  • Implement kiwitcms-django-plugin. +Resolves Issue #693 (Bryan Mutai)
  • +
  • Add missing permission check for TestExecution.add_link() API method (Rosen Sasov)
  • +
  • Add missing permission check for TestExecution.remove_link() API method (Rosen Sasov)
  • +
  • Admin interface will now appear translated
  • +
  • Propagate server side API errors to the browser. Closes +Issue #625, +Issue #1333
  • +
  • Improvements for Status Matrix telemetry page:
      +
    • Make the horizontal scroll bar at the bottom always visible
    • +
    • Make the header row always visible
    • +
    • Add button to show columns in reverse. Fixes +Issue #1682
    • +
    • Make it possible to display TestExecutions from child TestPlans. Fixes +Issue #1683
    • +
    +
  • +
+
+
+

Database

+
    +
  • Update existing Bug tracker records to match the changes introduced with +the new EXTERNAL_BUG_TRACKERS setting
  • +
+
+
+

Settings

+
    +
  • Add EXTERNAL_BUG_TRACKERS setting which is a list of dotted class paths +representing external bug tracker integrations. Plugins and Kiwi TCMS admins +can now more easily include customized integrations
  • +
+
+
+

Refactoring & testing

+
    +
  • Add new linter to check for label arguments in form field classes. Fixes +Issue #738 (Bryan Mutai)
  • +
  • Add new linter to check if all forms inherit from ModelForm. Fixes +Issue #1384 (Bryan Mutai)
  • +
  • Enable pylint plugin pylint.extensions.docparams and resolve errors. Fixes +Issue #1192 (Bryan Mutai)
  • +
  • Migrate 'test-for-missing-migrations' from Travis CI to GitHub workflow. Fixes +Issue #1553 (Bryan Mutai)
  • +
  • Add tests for tcms.bugs.api.add_tag(). References +Issue #1597 (Mfon Eti-mfon)
  • +
  • Add tests for tcms.bugs.api.remove_tag(). References +Issue #1597 (Mfon Eti-mfon)
  • +
  • Add test for tcms.testplans.views.Edit. References +Issue #1617 (@cmbahadir)
  • +
  • Add tests for markdown2html(). Fixes +Issue #1659 (Mariyan Garvanski)
  • +
  • Add test for Cyrillic support with MariaDB. References +Issue #1770
  • +
+
+ +
+
+

Kiwi TCMS Enterprise v8.5-mt

+
    +
  • Based on Kiwi TCMS v8.5
  • +
  • Update django-ses from 0.8.14 to 1.0.1
  • +
  • Update kiwitcms-tenants from 1.1.1 to 1.2
  • +
  • Update social-auth-app-django from 3.4.0 to 4.0.0
  • +
  • Start tagging non-Enterprise images of kiwitcms/kiwi - will be provided +via separate private repository for enterprise customers. See +here
  • +
+

For more info see +https://github.com/MrSenko/kiwitcms-enterprise/#v85-mt-10-july-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-compose pull
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Refer to +our documentation +for more details!

+

Happy testing!

+
+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2020/08/06/kiwi-tcms-enterprise-v852-mt/index.html b/blog/kiwi-tcms-team/2020/08/06/kiwi-tcms-enterprise-v852-mt/index.html new file mode 100644 index 00000000..da5e0c94 --- /dev/null +++ b/blog/kiwi-tcms-team/2020/08/06/kiwi-tcms-enterprise-v852-mt/index.html @@ -0,0 +1,241 @@ + + + + + Kiwi TCMS - Kiwi TCMS Enterprise v8.5.2-mt + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS Enterprise v8.5.2-mt

+

and extended support hours for subscribers in America

+ + + +
+

We're happy to announce Kiwi TCMS Enterprise version 8.5.2-mt +and extended support hours for subscribers in America.

+

Note: this is only available to customers with an active +Enterprise subscription!

+

Docker images:

+
+mrsenko/kiwitcms-enterprise   8.5.2-mt      633291dd5219    887MB
+
+
+

Changes since Kiwi TCMS Enterprise v8.5.1-mt

+
    +
  • Based on Kiwi TCMS v8.5
  • +
  • Update django-ses from 1.0.1 to 1.0.2
  • +
  • Update kiwitcms-github-app from 1.0 to 1.1
  • +
+

This release includes improvements and bug-fixes for +kiwitcms-github-app.

+

An important change is how issues reported via our 1-click bug report feature +are presented on GitHub. For public repositories issues reported via +Kiwi TCMS + GitHub App integration +will be opened by @kiwitcms-bot with Kiwi TCMS as shown below:

+ +
+
+

Extended support hours

+

Working hours have been updated as follows:

+
    +
  • 09-21 UTC/Mon-Fri with response within 24 hours for Enterprise subscribers
  • +
  • 09-17 UTC/Mon-Fri with response within 72 hours for Private Tenant subscribers
  • +
+

Happy testing!

+
+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2020/08/11/qgis-has-chosen-kiwi-tcms/index.html b/blog/kiwi-tcms-team/2020/08/11/qgis-has-chosen-kiwi-tcms/index.html new file mode 100644 index 00000000..f4c0d3de --- /dev/null +++ b/blog/kiwi-tcms-team/2020/08/11/qgis-has-chosen-kiwi-tcms/index.html @@ -0,0 +1,249 @@ + + + + + Kiwi TCMS - QGIS has chosen Kiwi TCMS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

QGIS has chosen Kiwi TCMS

+ + + +
+

We are happy to announce that QGIS has chosen Kiwi TCMS +for the basis of their Quality Assurance methodology and infrastructure +improvement program! +Kiwi TCMS will play a central role in storing test case definitions, +organizing test cycles, and assigning and tracking test executions by testers +from the QGIS community.

+
+ + +

+ QGIS is a free and open source geographic information system which contains + desktop, server, web and mobile applications for various operating systems. + It is an established project with very large and diverse community and also + one of the very well known open source GIS systems. +

+
+ +

The proposal +QEP#180 is the +highest voted proposal in the +2020 QGIS Grant Program +and has been awarded a budget of 5000€! +This grant will allow the proponents to spend significantly more time setting up the +infrastructure and planning a methodology for manual testing.

+

Scope of proposal

+

QEP#180 +aims to create the necessary infrastructure and methodology to organize and +encourage systematic testing before each QGIS release:

+
    +
  • Setup a test management system to organize test cycles, assign and track tests execution;
  • +
  • Elaborate and document a methodology to execute testing to help testers;
  • +
  • Resurrect and move the tester plugin to QGIS repositories. Publish it in the QGIS official repository
  • +
  • Create an initial set of relevant test cases;
  • +
  • Organize and execute the initial test cases for the next releases.
  • +
+

This effort will steer members & volunteers of the QGIS community towards a more systematic +and organized testing during a feature freeze period before a release. The focus here +is on integration testing, manual & semi-automated workflows for important functionality +that should never regress and is hard or impossible to cover via unit tests.

+

The proposal is lead by Alexandre Neto, Giovanni Manghi and Alexander Bruy!

+


+On behalf of the Kiwi TCMS community welcome aboard and happy testing!

+
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2020/08/18/kiwi-tcms-container-images-now-available-via-red-hat-quayio/index.html b/blog/kiwi-tcms-team/2020/08/18/kiwi-tcms-container-images-now-available-via-red-hat-quayio/index.html new file mode 100644 index 00000000..948b47fc --- /dev/null +++ b/blog/kiwi-tcms-team/2020/08/18/kiwi-tcms-container-images-now-available-via-red-hat-quayio/index.html @@ -0,0 +1,254 @@ + + + + + Kiwi TCMS - Kiwi TCMS container images now available via Red Hat Quay.io + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS container images now available via Red Hat Quay.io

+

and changes to images from Docker Hub

+ + + +
+

Hello testers, we have very important news around how container images +for Kiwi TCMS will be distributed! Recently Docker has announced +several changes in their storage plans which makes it less viable for +our team to continue using their services in full!

+

Information about official upstream container images

+

The official upstream Kiwi TCMS container image will continue to be +publicly available via Docker Hub +as before. In addition all existing and new images will be available via +Quay.io. +These images are available as

+ +

Content is exactly the same between the two registries and you may use +the one which you like best!

+

Warning: after November 1st 2020 older versions will not be available from +Docker Hub, only from Quay.io! The reason is that Docker is enforcing a +6 month image retention limit +for free plans!

+

Information about private containers for subscribers

+

Subscribers enjoy the benefit of having read-only access to tagged versions of the +upstream Kiwi TCMS container images as well as access to tagged versions of +Kiwi TCMS Enterprise container images! Previously these containers were distributed +via Docker Hub and are now available via Quay.io:

+
    +
  • mrsenko/kiwitcms -> quay.io/kiwitcms/version (version tagged upstream images)
  • +
  • mrsenko/kiwitcms-enterprise -> quay.io/kiwitcms/enterprise (enterprise images)
  • +
+

Important: existing subscribers have been notified and granted access +to the new repositories on Quay.io. We advise you to update your +docker-compose.yml files and start using the new images at your earliest convenience!

+

Warning: existing subscribers will continue having access to private +repositories on Docker Hub until December 31st 2020! Private repositories on +Docker Hub will become unavailable after January 31st, 2021 when Docker's new +storage plans will be forced into effect!

+

Why did we chose Quay.io

+

There are multiple container registry services available! We think Quay.io +delivers the best price/quality ratio for our own use-case. In particular +we like the billing model around number of private repositories instead the +one around the number of users in your organization. That's very similar +to how we provide access to Kiwi TCMS via our own subscriptions!

+

Also it just looks cool if you employ your imagination, especially +for non-native English speakers: quay -> qu-ai -> QA!

+


+Thanks for reading and happy testing!

+
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2020/08/23/kiwi-tcms-86/index.html b/blog/kiwi-tcms-team/2020/08/23/kiwi-tcms-86/index.html new file mode 100644 index 00000000..d515c336 --- /dev/null +++ b/blog/kiwi-tcms-team/2020/08/23/kiwi-tcms-86/index.html @@ -0,0 +1,417 @@ + + + + + Kiwi TCMS - Kiwi TCMS 8.6 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS 8.6

+

security update, improvements and bug fixes

+ + + +
+

We're happy to announce Kiwi TCMS version 8.6!

+

IMPORTANT: this is a high severity security update which includes +improvements, bug fixes, database migrations, API changes, translation updates and +new tests. It is the fourth 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  f2c21b370cd9    639 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.5

+
+

Security

+
    +
  • A high severity vulnerability which allows unprivileged data access +via JSON-RPC endpoints has been fixed:
      +
    • Affects all previous versions of Kiwi TCMS
    • +
    • Instances on public networks, such as Amazon EC2, are at higher risk
    • +
    • Instances on private networks are still vulnerable to anyone who can +access the same network
    • +
    • This vulnerability has been disclosed by Michael Longmire (ShastaQA) +and Stone Pack (ShastaQA)
    • +
    +
  • +
  • Update marked from 0.8.2 to 1.1.1 for a medium severity vulnerability, see +SNYK-JS-MARKED-584281
  • +
+
+
+

Improvements

+
    +
  • Update django from 3.0.8 to 3.0.9

    +
  • +
  • Update django-attachments from 1.5 to 1.6

    +
  • +
  • Update prismjs from 1.20.0 to 1.21.0

    +
  • +
  • Update pygithub from 1.51 to 1.53

    +
  • +
  • Replace deprecated bleach-whitelist with bleach-allowlist

    +
  • +
  • Make django-extensions a production dependency because it provides +many useful manage.py commands

    +
  • +
  • Enable syntax highlight for code blocks

    +
  • +
  • Remove file attachments when related objects are deleted

    +
  • +
  • Add image and file upload buttons to text editor. Fixes +Issue #977

    +
  • +
  • Require auth.view_user permission when trying to view user profiles. +Fixes Issue #1685

    +
  • +
  • Multiple pages now explicitly require view permissions before displaying read-only +information. This gives administrators a finer grained control:

    +
      +
    • /bugs/<id>/ -> bugs.view_bug
    • +
    • /bugs/search/ -> bugs.view_bug
    • +
    • /cases/search/ -> testcases.view_testcase
    • +
    • /case/<id>/ -> testcases.view_testcase
    • +
    • /plans/search/ -> testplans.view_testplan
    • +
    • /plan/<id>/* -> testplans.view_testplan
    • +
    • /runs/search/ -> testruns.view_testrun
    • +
    • /runs/<id>/ -> testruns.view_testrun
    • +
    +

    Previously these pages only required the user to be logged in

    +
  • +
+

Warning:

+
+The auth.view_user permission is not granted by default because the +profile page contains personal information like names and email address. +Administrators can grant this permission on a group or individual basis +if they are OK with sharing this information.
+
+
+

Database

+
    +
  • Migrations which manipulate data (contain RunPython) can now be +rollbacked. See ./manage.py migrate --plan for the order in which +migrations are applied (Bryan Mutai)
  • +
  • Increase Product.name size from 64 to 255 characters
  • +
+
+
+

API

+
    +
  • Remove method TestExecution.create() in favor of TestRun.add_case()
  • +
  • Add method User.add_attachment()
  • +
  • Multiple API methods now explicitly require view permissions before returning +read-only information. This is in-sync with the per-page changes listed above:
      +
    • Bug.filter() -> bugs.view_bug
    • +
    • Bug.report() -> testruns.view_testexecution
    • +
    • Build.filter() -> management.view_build
    • +
    • Category.filter() -> testcases.view_category
    • +
    • Classification.filter() -> management.view_classification
    • +
    • Component.filter() -> management.view_component
    • +
    • PlanType.filter() -> testplans.view_plantype
    • +
    • Priority.filter() -> management.view_priority
    • +
    • Product.filter() -> management.view_product
    • +
    • Tag.filter() -> management.view_tag
    • +
    • TestCase.get_components() -> testcases.view_testcase
    • +
    • TestCase.get_notification_cc() -> testcases.view_testcase
    • +
    • TestCase.filter() -> testcases.view_testcase
    • +
    • TestCaseStatus.filter() -> testcases.view_testcasestatus
    • +
    • TestExecution.filter() -> testruns.view_testexecution
    • +
    • TestExecution.get_links() -> linkreference.view_linkreference
    • +
    • TestExecutionStatus.filter() -> testruns.view_testexecutionstatus
    • +
    • TestPlan.filter() -> testplans.view_testplan
    • +
    • TestRun.get_cases() -> testruns.view_testrun
    • +
    • TestRun.filter() -> testruns.view_testrun
    • +
    • User.filter() -> auth.view_user
    • +
    • Version.filter() -> management.view_version
    • +
    +
  • +
+
+
+

Bug fixes

+
    +
  • Update documentation to reflect that test cases cannot be rearranged from +within a TestRun but only from a TestPlan. Fixes +Issue #1805 (@Prome88)
  • +
  • Incorrect code formatting for HTML <pre> tags. Closes +Issue #1300
  • +
  • Fix a bug with the history handler when importing objects with ID field set. +Resolves a crash when trying to restore backup data
  • +
  • Delete comments when Bug is removed
  • +
+
+
+

Refactoring & testing

+
    +
  • Add linter to warn about missing backwards migrations callable in RunPython +and fix all pylint offenses. Fixes +Issue #1774 (Bryan Mutai)
  • +
  • Teach linter to check API for @permissions_required. Fixes +Issue #1089
  • +
  • Refactor NewExecutionForm to use ModelForm (Rosen Sasov)
  • +
  • Refactor UpdateExecutionForm to use ModelForm (Rosen Sasov)
  • +
  • Add tests for tcms.bugs.api. Closes +Issue #1597 (Mfon Eti-mfon)
  • +
  • Add tests for tcms.bugs.views.New. Closes +Issue #1598 (Mfon Eti-mfon)
  • +
  • Add tests for tcms.rpc.api.testplan. Closes +Issue #1627 (@lcmtwn)
  • +
  • Add tests for percentage() function References +Issue #1602 (Mariyan Garvanski)
  • +
  • Add the migrations_order command to help test rollbacks
  • +
  • Adjust code for deprecation warnings from Django 3.1
  • +
  • Use Python 3 style super() without arguments
  • +
  • Update login page to match our new website design
  • +
+
+ +
+
+

Kiwi TCMS Enterprise v8.6-mt

+
    +
  • Based on Kiwi TCMS v8.6
  • +
+

For more info see +https://github.com/kiwitcms/enterprise/#v86-mt-23-aug-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!

+
+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2020/09/01/kiwi-tcms-is-a-finalist-in-the-2020-eu-web-awards/index.html b/blog/kiwi-tcms-team/2020/09/01/kiwi-tcms-is-a-finalist-in-the-2020-eu-web-awards/index.html new file mode 100644 index 00000000..d371710d --- /dev/null +++ b/blog/kiwi-tcms-team/2020/09/01/kiwi-tcms-is-a-finalist-in-the-2020-eu-web-awards/index.html @@ -0,0 +1,221 @@ + + + + + Kiwi TCMS - Kiwi TCMS is a finalist in the 2020 .eu Web Awards + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS is a finalist in the 2020 .eu Web Awards

+

thank you for voting for us

+ + + +
+

Click here to vote for Kiwi TCMS

+

Kiwi TCMS is happy to announce that our website https://kiwitcms.eu is a finalist +in the 2020 .eu Web Awards +in the Leaders category! Big Thank You to everyone who voted for us!

+

Our team is also very happy that we are not the only open source finalist. +Congratulations to the OpenScan project and their community!

+

We are still committed to keeping +our earlier promise +and use the award to represent the larger open source community! The decision +is now in the hands of the jury. Wish us good luck!

+
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2020/09/04/please-nominate-kiwitcms-as-a-github-star/index.html b/blog/kiwi-tcms-team/2020/09/04/please-nominate-kiwitcms-as-a-github-star/index.html new file mode 100644 index 00000000..e78b6ecc --- /dev/null +++ b/blog/kiwi-tcms-team/2020/09/04/please-nominate-kiwitcms-as-a-github-star/index.html @@ -0,0 +1,240 @@ + + + + + Kiwi TCMS - Please nominate @kiwitcms as a GitHub Star + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Please nominate @kiwitcms as a GitHub Star

+

and help us showcase what we do to a bigger audience

+ + + +
+

GitHub Star nomination

+

After our recent success +we again ask the community to support Kiwi TCMS.

+

Steps to reproduce:

+
    +
  1. Go to https://stars.github.com/
  2. +
  3. Click the Sign in button and Authorize the GitHub-Stars application
  4. +
  5. Make sure you are on the Nominate page, https://stars.github.com/nominate/
  6. +
  7. Type kiwitcms as the username. The @ character is provided automatically
  8. +
  9. Type the following text for your reasoning: + they took an abandoned project and turned it into the leading open source + test management system with more than 150k downloads with users & contributors + across the world!
  10. +
  11. Click on the checkbox to acknowledge your nomination
  12. +
  13. Click the Submit nomination button!
  14. +
+

Expected results:

+
    +
  1. You fit into the 180 characters provided for nomination
  2. +
  3. Your submission is recorded by GitHub
  4. +
+

Why are we doing this

+

GitHub Stars is a program that recognizes those who go above and beyond and help +inspire and educate their communities which is exactly what the +Kiwi TCMS team has been doing from our very start! +Checkout our community blog posts for more information!

+

This program will give us access to cool new features +on the GitHub platform and also let us showcase what we do before a larger audience!

+

Thank you for helping us and happy testing!

+
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2020/09/16/kiwi-tcms-87/index.html b/blog/kiwi-tcms-team/2020/09/16/kiwi-tcms-87/index.html new file mode 100644 index 00000000..38e3761a --- /dev/null +++ b/blog/kiwi-tcms-team/2020/09/16/kiwi-tcms-87/index.html @@ -0,0 +1,355 @@ + + + + + Kiwi TCMS - Kiwi TCMS 8.7 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS 8.7

+

improvements, API changes, bug fixes, translation updates

+ + + +
+

We're happy to announce Kiwi TCMS version 8.7!

+

IMPORTANT: this is a medium sized release which includes +improvements, API changes, bug fixes, translation updates and +new tests. It is the fifth 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  1f2461b1facd    643 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.6

+
+

Improvements

+
    +
  • Update Django from 3.0.9 to 3.1.1

    +
  • +
  • Update django-attachments from 1.6 to 1.8

    +
  • +
  • Update django-extensions from 3.0.5 to 3.0.8

    +
  • +
  • Update psycopg2 from 2.8.5 to 2.8.6

    +
  • +
  • Update pygments from 2.6.1 to 2.7.0

    +
  • +
  • Update python-gitlab from 2.4.0 to 2.5.0

    +
  • +
  • Make it possible to use reCAPTCHA during registration. If you want to enable +this then add the following to your settings:

    +
    +if 'captcha' not in INSTALLED_APPS:
    +    INSTALLED_APPS.append('captcha')
    +
    +    RECAPTCHA_PUBLIC_KEY = '......'
    +    RECAPTCHA_PRIVATE_KEY = '.....'
    +    RECAPTCHA_USE_SSL = True
    +
    +

    For more info see https://www.google.com/recaptcha/admin/

    +
  • +
  • Replace GlobalLoginRequiredMiddleware with +tcms.kiwi_auth.backends.AnonymousViewBackend for anonymous read-only +functionality. See section +Anonymous read-only access +in the documentation

    +
  • +
  • Replace the ... in navigation bar with a 3 cogs icon to make the +object-level menu more visible

    +
  • +
+
+
+

Settings

+
    +
  • Remove setting PUBLIC_VIEWS
  • +
+
+
+

API

+
    +
  • Remove TestCase.get_components() in favor of Component.filter()
  • +
  • Bug.details() method will now return {} instead of failing if +it can't find an issue tracker from an URL
  • +
+
+
+

Bug fixes

+
    +
  • Remove documentation references to non-existing environment
  • +
  • Don't fail internal calls if Kiwi TCMS bug tracker can't find a bug
  • +
+
+
+

Refactoring & testing

+
    +
  • Add tests for tcms.core.templatetags. Closes +Issue #1602 (Mariyan Garvanski)
  • +
  • Add tests for tcms.bugs.views.Edit. Closes +Issue #1599 (Mfon Eti-mfon)
  • +
  • Add tests for tcms.bugs.views.AddComment. Closes +Issue #1600 (Mfon Eti-mfon)
  • +
  • Make paths used in migrations & settings platform aware in order to +enable development mode on Windows (Mfon Eti-mfon)
  • +
  • Add new linter checker to check for use of db_column argument in +model field definition. Closes +Issue #736 (Bryan Mutai)
  • +
  • Add tests for Bug.details API method
  • +
  • Replace deprecated ifequal/ifnotequal template tags
  • +
  • Adjust migrations_order for Django 3.1 compatibility
  • +
  • Add npm audit check in CI
  • +
  • Resolve several pylint issues
  • +
+
+ +
+
+

Kiwi TCMS Enterprise v8.7-mt

+
    +
  • Based on Kiwi TCMS v8.7
  • +
  • Overrides for setting PUBLIC_VIEWS have been removed
  • +
  • Update django-ses from 1.0.2 to 1.0.3
  • +
  • Update kiwitcms-github-app from 1.1 to 1.2
  • +
  • Update kiwitcms-tenants from 1.2.1 to 1.3.1
  • +
+

For more info see +https://github.com/kiwitcms/enterprise/#v87-mt-16-sep-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!

+
+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2020/10/10/progress-update-on-open-source-hardware-for-black-box-testing/index.html b/blog/kiwi-tcms-team/2020/10/10/progress-update-on-open-source-hardware-for-black-box-testing/index.html new file mode 100644 index 00000000..243c0a55 --- /dev/null +++ b/blog/kiwi-tcms-team/2020/10/10/progress-update-on-open-source-hardware-for-black-box-testing/index.html @@ -0,0 +1,258 @@ + + + + + Kiwi TCMS - Progress update on open source hardware for black-box testing + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Progress update on open source hardware for black-box testing

+

in cooperation with Pionir

+ + + +
+

Hello testers, as you know our +friends at Pionir +are working on physical hardware which can be used for interactive training and +explanation of the Black-box testing technique. The inspiration +comes from James Lyndsay’s Black Box Puzzles and +Claudiu Draghia.

+

We have the source code of 3 boxes already published at +https://github.com/kiwitcms/black-boxes but still missing bill of materials, +design files for 3D printing and some basic instructions how to put everything +together. There was a delay in delivery of some components but most of the work +is close to completion. You may subscribe to +issues for each box to follow +the progress! Here are some images & videos from the development process.

+

Wason 2-4-6 box

+

Wason 246 box

+ + +

Peltzman effect box

+

Peltzman effect box

+ + +

Salience bias box

+

Salience bias box

+ + +

According to Pionir's own words: +We are testing the salience box and trying to cause emotional effect of an element. +Vuk made a mistake and now he can't turn it off :D. How's that for dogfooding?

+

Help us do more

+

If you like what we're doing and how Kiwi TCMS supports the various communities +around us please nominate us as GitHub Stars!

+


+Thanks for reading and happy testing!

+
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2020/10/13/kiwi-tcms-is-partnering-with-mlh-fellowship-program/index.html b/blog/kiwi-tcms-team/2020/10/13/kiwi-tcms-is-partnering-with-mlh-fellowship-program/index.html new file mode 100644 index 00000000..a9f77730 --- /dev/null +++ b/blog/kiwi-tcms-team/2020/10/13/kiwi-tcms-is-partnering-with-mlh-fellowship-program/index.html @@ -0,0 +1,266 @@ + + + + + Kiwi TCMS - Kiwi TCMS is partnering with MLH Fellowship program + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS is partnering with MLH Fellowship program

+

for 12 weeks of open source hacking

+ + + +
+

We are happy to announce that Kiwi TCMS is going to partner with the +MLH Fellowship +open source program which is a 12 week internship alternative for +students interested in becoming software engineers.

+

Major League Hacking (MLH) is a mission-driven B-Corp focused +on empowering our next generation of technologists. Every year, more than +100,000 developers, designers, and makers join the MLH community to gain +hands-on experience and build their professional networks. +They are headquartered in the Greater New York Area, USA but operate world-wide.

+

Fellowship program

+

The Fall 2020 cohort runs between October 5 - December 21 and we're already +into the Contributing phase of the program. +Fellow students will be working on +open issues from our backlog with +a focus on tasks from our +open source bounty program +but they can really work on any open task!

+

Once a pull request has been made it will undergo first round code review +by Cory Massaro +who is the dedicated MLH Python mentor. Once Cory gives the +1 +each pull request will be reviewed by a member of the Kiwi TCMS core team like usual.

+

To minimize the risk of conflicts between contributors we are going to apply +the following rules:

+
    +
  • Each MLH fellow would add a comment on the issue they are + interested in (applies to other contributors too);
  • +
  • The issue will be assigned to them (new);
  • +
  • The issue will be labeled with the + MLH Fellowship + label (new);
  • +
  • The following comment will be added: + This issue/bounty has been assigned to an MLH fellow who is currently + working on it. Pull requests towards the same issue from other contributors + will not be considered at this time. Please pick something else to work on!
  • +
+

Upon successful completion of tasks all MLH fellows will be eligible to claim their +bounties via our Open Collective page. This is +the same process other contributors go through, there is no difference.

+

Kiwi TCMS commits 2 core-team members who will serve office hours +on the MLH Fellowship Discord server for +couple of hours per week in order to answer questions and keep the ball rolling. +We also commit to having bi-weekly meetings with MLH mentor(s) during the +duration of the program.

+

Kiwi TCMS would also like to thank our friend +Eddie Jaoude for putting us in touch with MLH +and helping bring this partnership to reality. Thank you Eddie!

+

Help us do more

+

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

+ +


+Thanks for reading and happy testing!

+
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2020/10/15/kiwi-tcms-is-partnering-with-vola-software/index.html b/blog/kiwi-tcms-team/2020/10/15/kiwi-tcms-is-partnering-with-vola-software/index.html new file mode 100644 index 00000000..38bdeead --- /dev/null +++ b/blog/kiwi-tcms-team/2020/10/15/kiwi-tcms-is-partnering-with-vola-software/index.html @@ -0,0 +1,264 @@ + + + + + Kiwi TCMS - Kiwi TCMS is partnering with Vola Software + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS is partnering with Vola Software

+

to provide open source opportunities for youngsters

+ + + +
+

We are happy to announce that Kiwi TCMS is going to partner with +Vola Software to provide 2 interns with +opportunities for hacking open source and bootstrapping their careers!

+

Vola Software is a custom software development company +in one of the poorest regions of the European Union and a long-time contributor +to their local ecosystem via +Vratsa Software Community. +They are located in Vratsa, Bulgaria.

+

Internship program

+

Alexander Tsvetanov and +Vladislav Ankov are joining the Kiwi TCMS team +for a 10 month adventure until the end of July 2021 with the opportunity +to continue for another year afterwards!

+

Both Sasho and Vladi are students in the Professional Technical Gymnasium +in Vratsa and are required to work part-time as junior software developers during the +last 2 years of their education. Given that they have very limited practical +experience and the additional red tape around hiring youngsters many software +companies directly avoid such kind of relationship. This creates a catch-22 +circle for both employers who are looking to hire somewhat experienced young people +and youngsters who are looking to advance their practical skills.

+

Here's where Kiwi TCMS steps-in! What better way to improve practical knowledge +than contributing to an actively used and actively maintained open source software! +We are nearing the 200K downloads mark on Docker Hub so changes made by +Sasho and Vladi will be visible to a very big pool of our users and customers!

+

Both have already started their open source adventure last week and are currently +going through some training. However they were faced with real problems which +resulted in +bug discovery +and a +pull request for +python-bugzilla underlined by a +20 years old issue in Python. +How's that for a start ?

+

Administrative

+

Vola Software is the direct employer for Sasho and Vladi because they have the +necessary permits and experience required for hiring youngsters. Kiwi TCMS is +the direct technical mentor and will be acting as a customer to Vola Software!

+

Vola Software will be paying a minimal salary to our interns as required by law. +Kiwi TCMS will reimburse the full amount while Vola Software +will be covering their accounting and administrative expenses. +Both Sasho and Vladi will also be eligible for our +open source bounty-program as an extra stimulation!

+

All expenses will be fully transparent and visible via +our Open Collective page!

+

Help us do more

+

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

+ +


+Thanks for reading and happy testing!

+
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2020/10/18/sedc-academy-for-software-testing-is-running-kiwi-tcms/index.html b/blog/kiwi-tcms-team/2020/10/18/sedc-academy-for-software-testing-is-running-kiwi-tcms/index.html new file mode 100644 index 00000000..369183bf --- /dev/null +++ b/blog/kiwi-tcms-team/2020/10/18/sedc-academy-for-software-testing-is-running-kiwi-tcms/index.html @@ -0,0 +1,289 @@ + + + + + Kiwi TCMS - SEDC Academy For Software Testing is running Kiwi TCMS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

SEDC Academy For Software Testing is running Kiwi TCMS

+

to equip future testers with practical tools and skills from the get go

+ + + +
+

Hello testers, +recently we had a chat with +Gjore Zaharchev, +a QA manager at Seavus and Testing Coach at +SEDC Software Testing Academy in Skopje. Here is their story +and how they use Kiwi TCMS!

+

Seavus Educational and Development Center +is a private company as part of the Seavus Group and a specialized +training center for education of staff in the fields of programming, +design, computer networks and software testing. +Around 90 students pass through their software testing academy every year +with 60 students enrolled thus far. The training program is 6 months +and covers many basic IT skills, manual testing, ISTQB fundamentals and +automation testing. SEDC is located in Skopje, North Macedonia.

+

Hands-On Lab Activities

+

The study program includes multiple individual and team projects, intermediate +exams and a final project. These are intended to exercise the most commonly used +test design techniques and practice writing up the test scenarios. All +scenarios are written directly in Kiwi TCMS. We've even seen test plans and +test cases created during Christmas and the New Year holidays last year!

+

The software under test is usually the programs developed by students +from our Academy for Programming, says Gjore. +Later in the program we use real websites in order to show some bugs in the +wild, he continues. On occasion students have found interesting problems with the websites of +Booking.com and WizzAir. They've also managed to find a critical issue on +one of our local systems. These are the trials and tribulations of +teaching & testing in the wild.

+
+

Kiwi TCMS team still remembers one of Alex's training sessions where we used +the website of an actual cinema. Unfortunately they went out of business +and shutdown the victimized website right in the middle of the session. ;-)

+
+

Why did you decide to use Kiwi TCMS

+

When searching for a TCMS platform for the academy one of the decisive +factors was cost. By being open source Kiwi TCMS has the side benefit of +having zero initial usage cost which was very important for us. +Regardless of that Kiwi TCMS is very easy to install & setup using Docker, +very easy to on-board new users and generally well received by everyone.

+
+

This is a huge benefit for students because they can experiment with Kiwi TCMS +and immediately see how some items work when executing testing workflows. +For example they can visualize how a regression test run looks like compared +to a test run for a critical security fix; or they can simulate working in +groups to cover execution of a larger test plan.

+
+

What do your students say

+

Overall they like the workflow and can easily navigate within the user interface. +They feel very positive because there is no complexity in the system and +it is very intuitive. One of the areas which often receives questions is +the ability to record test automation results!

+

Answer: Kiwi TCMS has the ability to fetch names and test results directly, via +plugins for several +test automation frameworks +while others are on our backlog - +TestNG, +Jenkins, +C#/NUnit! +Anyone interested is welcome to Subscribe to each GitHub issue and follow the progress. +Some issues are also part of our +open source bounty program so we urge students to +take a look and contribute!

+

Anything you want to ask our team

+

At SEDC we'd like to know what are your plans for Kiwi TCMS in the future?

+

Answer: Our plans, like our software, are transparent, check-out posts +tagged roadmap! For 2020 this is refactoring of the +last remaining legacy bits, continue work on our Telemetry feature and +more work towards integration with various bug trackers and test automation +frameworks. An extension to that is tighter integration with the GitHub +platform!

+

Help us do more

+

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

+ +


+Thanks for reading and happy testing!

+
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2020/10/26/kiwi-tcms-celebrates-200k-downloads/index.html b/blog/kiwi-tcms-team/2020/10/26/kiwi-tcms-celebrates-200k-downloads/index.html new file mode 100644 index 00000000..32b30aae --- /dev/null +++ b/blog/kiwi-tcms-team/2020/10/26/kiwi-tcms-celebrates-200k-downloads/index.html @@ -0,0 +1,230 @@ + + + + + Kiwi TCMS - Kiwi TCMS celebrates 200K+ downloads + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS celebrates 200K+ downloads

+

big thank you to our open source community

+ + + +
+

"200K banner"

+

We are happy to announce that Kiwi TCMS has been downloaded more than +200000 times via Docker Hub! +You can check the real-time stats +here. +To celebrate with us subscribe for a +SaaS and/or +Enterprise +subscriptions using coupon code 200KOFF at checkout!

+

Thank you very much and Happy Testing!

+
+

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

+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2020/11/09/kiwi-tcms-88/index.html b/blog/kiwi-tcms-team/2020/11/09/kiwi-tcms-88/index.html new file mode 100644 index 00000000..fe5a110d --- /dev/null +++ b/blog/kiwi-tcms-team/2020/11/09/kiwi-tcms-88/index.html @@ -0,0 +1,418 @@ + + + + + Kiwi TCMS - Kiwi TCMS 8.8 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS 8.8

+

object-level permissions, big UI updates and other improvements

+ + + +
+

We're happy to announce Kiwi TCMS version 8.8!

+

IMPORTANT: this release includes many improvements, +API changes, bug fixes, translation updates, new tests and internal refactoring. +It is the sixth release to include contributions via our +open source bounty program. +You can explore everything at +https://public.tenant.kiwitcms.org!

+

This is also the first 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  4b31ecf8ab5b    654 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.7

+
+

Improvements

+
    +
  • Update bleach from 3.1.5 to 3.2.1
  • +
  • Update django-extensions from 3.0.8 to 3.0.9
  • +
  • Update django from 3.1.1 to 3.1.3
  • +
  • Update django-simple-history from 2.11.0 to 2.12.0
  • +
  • Update markdown from 3.2.2 to 3.3.3
  • +
  • Update pygments from 2.7.0 to 2.7.2
  • +
  • Update python-bugzilla from 2.5.0 to 3.0.1
  • +
  • Update node_modules/marked from 1.1.1 to 1.2.3
  • +
  • Update node_modules/prismjs from 1.21.0 to 1.22.0
  • +
  • Add management command refresh_permission. Closes +Issue #1137 (Ivajlo Karabojkov)
  • +
  • Add bug tracker integration for Azure Boards. Closes +Issue #1979 (@cmbahadir)
  • +
  • Add autosave configuration to web editor. Closes +Issue #1958 (Mfon Eti-mfon)
  • +
  • Change ON/OFF buttons messages to Yes/No for several buttons (Alexander Tsvetanov)
  • +
  • Add support for object-level permissions for TestCase, +TestPlan, TestRun and Bug objects via django-guardian
  • +
  • Complete redesign of Test Plan page to match the rest of Kiwi TCMS:
      +
    • modern look and feel using the PatternFly UI library
    • +
    • remove unused legacy code & HTML templates
    • +
    • closes +Issue #663, +Issue #1977
    • +
    +
  • +
  • Enable Markdown support for strike-through text
  • +
  • Always pull latest RPMs when building container images
  • +
  • Update documentation and images
  • +
+
+
+

Settings

+
    +
  • AUTHENTICATION_BACKENDS setting is now explicitly specified because of +django-guardian. Take care to include the default backends if you +override this setting. See tcms/settings/common.py for more information.
  • +
+
+
+

Database

+
    +
  • Add index to TestCase.summary field
  • +
  • Additional migrations from django-guardian around object-level permissions
  • +
  • New AnonymousUser record added by django-guardian
  • +
  • Start using django-tree-queries which improves how tree based structures +are stored in the database.
  • +
+

important:

+
+Requires PostgreSQL, sqlite3 >= 3.8.3, MariaDB >= 10.2.2 or +MySQL >= 8.0 (if running without ONLY_FULL_GROUP_BY).
+

warning:

+
+Supports only trees with max. 50 levels on MySQL/MariaDB, since those databases +do not support arrays and require us to provide a maximum length upfront. +This means up to 50 levels of nested child-parent test plans!
+
+
+

API

+
    +
  • Method TestExecution.update() will now modify field close_date +depending on test execution status. Fixes +Issue #1820
  • +
  • Method TestCase.add_comment() now returns the created comment
  • +
  • Method TestExecution.add_comment() now returns the created comment
  • +
  • Method TestPlan.add_case() now returns the newly added test case
  • +
  • Add method TestCase.sortkeys(). Fixes +Issue #444
  • +
  • Add method Markdown.render()
  • +
  • Add method TestCase.comments()
  • +
  • Add method TestPlan.tree()
  • +
+
+
+

Bug fixes

+
    +
  • Fix url formatting. Fixes +Issue #1806 (Rosen Sasov)
  • +
  • When deleting TestExecutionStatus check that there will be at least 1 left +before deleting! Closes +Issue #1978
  • +
  • Update typeahead definitions for test case components, tags and +for adding test plans to test cases. Fixes +Issue #882
  • +
  • Add option to filter by reviewer in Test Plan page. Fixes +Issue #564
  • +
  • Pass the number of disabled test cases to HTML template when +creating a new test run. Fixes +Issue #718
  • +
+
+
+

Refactoring & testing

+
    +
  • New linter to warn against GenericForeignKey fields in models. Closes +Issue #1303 (Bryan Mutai)
  • +
  • Add tests for assign_default_group_permissions() (Ivajlo Karabojkov)
  • +
  • Add tests for TestExecutionStatusAdmin. Refs +Issue #1618 (Mariyan Garvanski)
  • +
  • Add tests for tcms.bugs.views.Search. Closes +Issue #1601 (Mfon Eti-mfon)
  • +
  • Add tests for tcms.rpc.api.testrun. Closes +Issue #1628 (@lcmtwn)
  • +
  • Add tests for tcms.rpc.api.classification. Closes +Issue #1621 (Abhishek Chaurasia)
  • +
  • Add tests for tcms.rpc.api.priority. Closes +Issue #1622 (Abhishek Chaurasia)
  • +
  • Add tests for tcms.rpc.api.testcasestatus. Closes +Issue #1624 (Abhishek Chaurasia)
  • +
  • Add tests for tcms.rpc.api.attachment. Closes +Issue #1619 (@awalvie)
  • +
  • Add tests for tcms.rpc.api.testexecution.remove_comment. Closes +Issue #1625 (@awalvie)
  • +
  • Add tests for tcms.rpc.api.testexecutionstatus. Closes +Issue #1626 (@awalvie)
  • +
  • Add tests for TestRun.add_case_run() method and rename it to +TestRun.create_execution()
  • +
  • libkrb5-dev is not needed anymore in CI with newer tcms-api
  • +
  • Use Fedora 32 to build Bugzilla docker image in CI
  • +
  • Update signature for overriden class to match Django 3.1
  • +
  • Move SimpleMDE initialization to simplemde_security_overide.js
  • +
  • Move post_save.send() from bugs.views to comments.add_comment()
  • +
+
+ +
+
+

Kiwi TCMS Enterprise v8.8-mt

+
    +
  • Based on Kiwi TCMS v8.7
  • +
  • Update kiwitcms-github-app from 1.2 to 1.2.
  • +
+

For more info see +https://github.com/kiwitcms/enterprise#v88-mt-07-nov-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!

+ +
+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2020/12/02/call-for-participation-testing-and-automation-devroom-fosdem21/index.html b/blog/kiwi-tcms-team/2020/12/02/call-for-participation-testing-and-automation-devroom-fosdem21/index.html new file mode 100644 index 00000000..4e658a72 --- /dev/null +++ b/blog/kiwi-tcms-team/2020/12/02/call-for-participation-testing-and-automation-devroom-fosdem21/index.html @@ -0,0 +1,228 @@ + + + + + Kiwi TCMS - Call for participation: Testing and Automation devroom, FOSDEM'21 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Call for participation: Testing and Automation devroom, FOSDEM'21

+

organized by Kiwi TCMS, Linaro & SUSE

+ + + +
+

"Cfp banner"

+

Attention open source testers: Testing and Automation devroom at FOSDEM'21 +is happening next year! Call for participation is now open. +Checkout +https://fosdem-testingautomation.github.io/ for more information!

+

Happy Testing!

+
+

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

+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2020/12/07/kiwi-tcms-89/index.html b/blog/kiwi-tcms-team/2020/12/07/kiwi-tcms-89/index.html new file mode 100644 index 00000000..a44778d8 --- /dev/null +++ b/blog/kiwi-tcms-team/2020/12/07/kiwi-tcms-89/index.html @@ -0,0 +1,395 @@ + + + + + Kiwi TCMS - Kiwi TCMS 8.9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS 8.9

+

UI updates, new APIs and other improvements

+ + + +
+

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!

+ +
+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2020/12/26/excellence-in-innovation-2020-award-for-kiwi-tcms/index.html b/blog/kiwi-tcms-team/2020/12/26/excellence-in-innovation-2020-award-for-kiwi-tcms/index.html new file mode 100644 index 00000000..9636a463 --- /dev/null +++ b/blog/kiwi-tcms-team/2020/12/26/excellence-in-innovation-2020-award-for-kiwi-tcms/index.html @@ -0,0 +1,236 @@ + + + + + Kiwi TCMS - Excellence in Innovation 2020 award for Kiwi TCMS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Excellence in Innovation 2020 award for Kiwi TCMS

+

finalist in Innovative Enterprise of the Year

+ + + +
+

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

+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2021/01/13/kiwi-tcms-90/index.html b/blog/kiwi-tcms-team/2021/01/13/kiwi-tcms-90/index.html new file mode 100644 index 00000000..3d6e4f06 --- /dev/null +++ b/blog/kiwi-tcms-team/2021/01/13/kiwi-tcms-90/index.html @@ -0,0 +1,385 @@ + + + + + Kiwi TCMS - Kiwi TCMS 9.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS 9.0

+

contains backwards incompatible changes

+ + + +
+

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!

+ +
+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2021/01/30/kiwi-tcms-has-applied-for-gsoc-2021/index.html b/blog/kiwi-tcms-team/2021/01/30/kiwi-tcms-has-applied-for-gsoc-2021/index.html new file mode 100644 index 00000000..8c9d2cd0 --- /dev/null +++ b/blog/kiwi-tcms-team/2021/01/30/kiwi-tcms-has-applied-for-gsoc-2021/index.html @@ -0,0 +1,409 @@ + + + + + Kiwi TCMS - Kiwi TCMS has applied for GSoC 2021 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS has applied for GSoC 2021

+

here are some project ideas

+ + + +
+

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

+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2021/03/02/kiwi-tcms-100/index.html b/blog/kiwi-tcms-team/2021/03/02/kiwi-tcms-100/index.html new file mode 100644 index 00000000..64ff8cde --- /dev/null +++ b/blog/kiwi-tcms-team/2021/03/02/kiwi-tcms-100/index.html @@ -0,0 +1,483 @@ + + + + + Kiwi TCMS - Kiwi TCMS 10.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS 10.0

+

major version with backwards incompatible changes

+ + + +
+

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

Translations

+ +
+
+
+

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!

+ +
+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2021/05/18/kiwi-tcms-101/index.html b/blog/kiwi-tcms-team/2021/05/18/kiwi-tcms-101/index.html new file mode 100644 index 00000000..cbe26114 --- /dev/null +++ b/blog/kiwi-tcms-team/2021/05/18/kiwi-tcms-101/index.html @@ -0,0 +1,406 @@ + + + + + Kiwi TCMS - Kiwi TCMS 10.1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS 10.1

+

general security, improvement and bug-fix release

+ + + +
+

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!

+ +
+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2021/06/15/thank-you-for-downloading-kiwi-tcms-500000-times/index.html b/blog/kiwi-tcms-team/2021/06/15/thank-you-for-downloading-kiwi-tcms-500000-times/index.html new file mode 100644 index 00000000..15326da6 --- /dev/null +++ b/blog/kiwi-tcms-team/2021/06/15/thank-you-for-downloading-kiwi-tcms-500000-times/index.html @@ -0,0 +1,224 @@ + + + + + Kiwi TCMS - Thank you for downloading Kiwi TCMS 500000 times + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Thank you for downloading Kiwi TCMS 500000 times

+ + + +
+

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

+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2021/07/01/kiwi-tcms-enterprise-1011-mt/index.html b/blog/kiwi-tcms-team/2021/07/01/kiwi-tcms-enterprise-1011-mt/index.html new file mode 100644 index 00000000..5da25bcd --- /dev/null +++ b/blog/kiwi-tcms-team/2021/07/01/kiwi-tcms-enterprise-1011-mt/index.html @@ -0,0 +1,266 @@ + + + + + Kiwi TCMS - Kiwi TCMS Enterprise 10.1.1-mt + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS Enterprise 10.1.1-mt

+

support for Keycloak authentication and publicly readable tenants

+ + + +
+

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!

+ +
+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2021/07/12/kiwi-tcms-102/index.html b/blog/kiwi-tcms-team/2021/07/12/kiwi-tcms-102/index.html new file mode 100644 index 00000000..db0d92a1 --- /dev/null +++ b/blog/kiwi-tcms-team/2021/07/12/kiwi-tcms-102/index.html @@ -0,0 +1,353 @@ + + + + + Kiwi TCMS - Kiwi TCMS 10.2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS 10.2

+

improvement and bug-fix release

+ + + +
+

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!

+ +
+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2021/08/11/kiwi-tcms-103/index.html b/blog/kiwi-tcms-team/2021/08/11/kiwi-tcms-103/index.html new file mode 100644 index 00000000..9ad56574 --- /dev/null +++ b/blog/kiwi-tcms-team/2021/08/11/kiwi-tcms-103/index.html @@ -0,0 +1,345 @@ + + + + + Kiwi TCMS - Kiwi TCMS 10.3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS 10.3

+

small improvement and bug-fix release

+ + + +
+

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

+
    +
  • Add tests for missing coverage in kiwi_auth.admin. References +Issue #1607 +(Mariyan Garvanski)
  • +
  • Fix some eslint issues and formatting in testcases/js/get.js
  • +
  • Use shorter URL when cloning test cases from TP page. References +Issue #1054
  • +
  • Limit URI size to 10KiB. This alone should allow for more than 1000 PKs +specified for cloning. In addition Django itself limits the maximum number of +GET/POST fields to 1000 via the DATA_UPLOAD_MAX_NUMBER_FIELDS setting, +see https://docs.djangoproject.com/en/3.2/ref/settings/#data-upload-max-number-fields. +Closes +Issue #1054
  • +
+
+ +
+
+

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!

+ +
+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2021/09/01/win-6-superfan-tickets-for-hackconf-2021/index.html b/blog/kiwi-tcms-team/2021/09/01/win-6-superfan-tickets-for-hackconf-2021/index.html new file mode 100644 index 00000000..aebdc742 --- /dev/null +++ b/blog/kiwi-tcms-team/2021/09/01/win-6-superfan-tickets-for-hackconf-2021/index.html @@ -0,0 +1,256 @@ + + + + + Kiwi TCMS - Win 6 SUPERFAN tickets for HackConf 2021 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Win 6 SUPERFAN tickets for HackConf 2021

+

by supporting Kiwi TCMS

+ + + +
+

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!

+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2021/09/17/please-nominate-kiwi-tcms-at-mlh-open-source-awards/index.html b/blog/kiwi-tcms-team/2021/09/17/please-nominate-kiwi-tcms-at-mlh-open-source-awards/index.html new file mode 100644 index 00000000..5c6617b6 --- /dev/null +++ b/blog/kiwi-tcms-team/2021/09/17/please-nominate-kiwi-tcms-at-mlh-open-source-awards/index.html @@ -0,0 +1,249 @@ + + + + + Kiwi TCMS - Please nominate Kiwi TCMS at MLH Open Source Awards + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Please nominate Kiwi TCMS at MLH Open Source Awards

+

and help us show what we do to a bigger audience

+ + + +
+

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. +
  3. Click the Submit a Nomination button
  4. +
  5. Follow the instructions on screen!
  6. +
+

Expected results:

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

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!

+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2021/09/21/meet-kiwi-tcms-at-websummit-2021-in-lisbon/index.html b/blog/kiwi-tcms-team/2021/09/21/meet-kiwi-tcms-at-websummit-2021-in-lisbon/index.html new file mode 100644 index 00000000..8afa42bc --- /dev/null +++ b/blog/kiwi-tcms-team/2021/09/21/meet-kiwi-tcms-at-websummit-2021-in-lisbon/index.html @@ -0,0 +1,241 @@ + + + + + Kiwi TCMS - Meet Kiwi TCMS at WebSummit 2021 in Lisbon + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Meet Kiwi TCMS at WebSummit 2021 in Lisbon

+ + + +
+

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!

+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2021/10/05/kiwi-tcms-104/index.html b/blog/kiwi-tcms-team/2021/10/05/kiwi-tcms-104/index.html new file mode 100644 index 00000000..d50cd012 --- /dev/null +++ b/blog/kiwi-tcms-team/2021/10/05/kiwi-tcms-104/index.html @@ -0,0 +1,373 @@ + + + + + Kiwi TCMS - Kiwi TCMS 10.4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS 10.4

+

several improvements and bug-fix release

+ + + +
+

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!

+ +
+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2021/10/06/announcing-winners-of-6-tickets-for-hackconf-2021/index.html b/blog/kiwi-tcms-team/2021/10/06/announcing-winners-of-6-tickets-for-hackconf-2021/index.html new file mode 100644 index 00000000..6c33a224 --- /dev/null +++ b/blog/kiwi-tcms-team/2021/10/06/announcing-winners-of-6-tickets-for-hackconf-2021/index.html @@ -0,0 +1,291 @@ + + + + + Kiwi TCMS - Announcing winners of 6 tickets for HackConf 2021 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Announcing winners of 6 tickets for HackConf 2021

+

thank you for supporting Kiwi TCMS

+ + + +
+

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!

+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2021/10/29/catch-up-with-kiwi-tcms-at-websummit-2021-lisbon/index.html b/blog/kiwi-tcms-team/2021/10/29/catch-up-with-kiwi-tcms-at-websummit-2021-lisbon/index.html new file mode 100644 index 00000000..6ca8934c --- /dev/null +++ b/blog/kiwi-tcms-team/2021/10/29/catch-up-with-kiwi-tcms-at-websummit-2021-lisbon/index.html @@ -0,0 +1,254 @@ + + + + + Kiwi TCMS - Catch up with Kiwi TCMS at WebSummit 2021 Lisbon + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Catch up with Kiwi TCMS at WebSummit 2021 Lisbon

+

Wed, Nov 03, Pavilion 3, ALPHA 4, Stand A407

+ + + +
+

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!

+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2021/11/01/kiwi-tcms-subscription-guidelines/index.html b/blog/kiwi-tcms-team/2021/11/01/kiwi-tcms-subscription-guidelines/index.html new file mode 100644 index 00000000..5ea65eb2 --- /dev/null +++ b/blog/kiwi-tcms-team/2021/11/01/kiwi-tcms-subscription-guidelines/index.html @@ -0,0 +1,260 @@ + + + + + Kiwi TCMS - Kiwi TCMS subscription guidelines + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS subscription guidelines

+

how many subscriptions do you need

+ + + +
+

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!

+
+

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 that low though?

+
+

Ready ? Explore subscriptions!

+
+

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

+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2021/11/26/kiwi-tcms-105/index.html b/blog/kiwi-tcms-team/2021/11/26/kiwi-tcms-105/index.html new file mode 100644 index 00000000..b2da8302 --- /dev/null +++ b/blog/kiwi-tcms-team/2021/11/26/kiwi-tcms-105/index.html @@ -0,0 +1,440 @@ + + + + + Kiwi TCMS - Kiwi TCMS 10.5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS 10.5

+

improvements, new features, bug-fixes and more

+ + + +
+

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

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

+
+

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!

+ +
+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2021/12/06/call-for-participation-testing-and-automation-devroom-fosdem22/index.html b/blog/kiwi-tcms-team/2021/12/06/call-for-participation-testing-and-automation-devroom-fosdem22/index.html new file mode 100644 index 00000000..301e77d2 --- /dev/null +++ b/blog/kiwi-tcms-team/2021/12/06/call-for-participation-testing-and-automation-devroom-fosdem22/index.html @@ -0,0 +1,251 @@ + + + + + Kiwi TCMS - Call for participation: Testing and Automation devroom, FOSDEM'22 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Call for participation: Testing and Automation devroom, FOSDEM'22

+

organized by Kiwi TCMS, Linaro & SUSE

+ + + +
+

"Cfp banner"

+

Attention testers! On behalf of +Testing and Automation devroom +we'd like to announce that call for participation is now open.

+

Here are some ideas for topics that are a good fit for this devroom:

+

Testing in the real, open source world

+
    +
  • War stories/strategies for testing large scale or complex projects
  • +
  • Demystify resource e.g. systems/device/cloud provisioning in a CI loop
  • +
  • Tools that extend the ability to test low-level code, e.g. bootloaders, init +systems, etc.
  • +
  • Projects that are introducing new/interesting ways of testing "systems"
  • +
  • Address the automated testing frameworks fragmentation
  • +
  • Lessons learned from testing
  • +
+

Cool Tools (good candidates for lightning talks)

+
    +
  • How your open source tool made developing quality software better
  • +
  • What tools do you use to setup your CI/CD
  • +
  • Combining projects/plugins/tools to build amazing things "Not enough people in +the open source community know how to use $X, but here's a tutorial on how to +use $X to make your project better."
  • +
+

In the past the devroom has seen both newbies/students and experienced professionals and +past speakers as part of the audience and talks covering from beginner/practical +to advanced/abstract topics. If you have doubts then submit your proposal and +leave a comment for the devroom managers and we'll get back to you.

+

Checkout +https://fosdem-testingautomation.github.io/ for more information!

+

Happy Testing!

+
+

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

+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2021/12/14/new-versions-of-automation-frameworks-plugins/index.html b/blog/kiwi-tcms-team/2021/12/14/new-versions-of-automation-frameworks-plugins/index.html new file mode 100644 index 00000000..91138272 --- /dev/null +++ b/blog/kiwi-tcms-team/2021/12/14/new-versions-of-automation-frameworks-plugins/index.html @@ -0,0 +1,234 @@ + + + + + Kiwi TCMS - New versions of automation frameworks plugins + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

New versions of automation frameworks plugins

+

future API compatibility

+ + + +
+

Kiwi TCMS is pleased to announce new versions of our plugins for different +test automation frameworks:

+ +

The new versions are future compatible with upcoming Kiwi TCMS v11 and also with existing +Kiwi TCMS v10.x installations. Check-out the pages above for individual instructions.

+

Happy testing!

+

---

+

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

+ + +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2022/01/06/kiwi-tcms-enterprise-1051/index.html b/blog/kiwi-tcms-team/2022/01/06/kiwi-tcms-enterprise-1051/index.html new file mode 100644 index 00000000..cc6f7c2e --- /dev/null +++ b/blog/kiwi-tcms-team/2022/01/06/kiwi-tcms-enterprise-1051/index.html @@ -0,0 +1,263 @@ + + + + + Kiwi TCMS - Kiwi TCMS Enterprise 10.5.1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS Enterprise 10.5.1

+

improvements and bug-fixes

+ + + +
+

We're happy to announce Kiwi TCMS Enterprise version 10.5.1!

+

IMPORTANT: +this is a small release which contains minor improvements and bug-fixes.

+

You can explore everything at +https://public.tenant.kiwitcms.org!

+
+

Kiwi TCMS Enterprise v10.5.1-mt

+
    +
  • Based on Kiwi TCMS v10.5

    +
  • +
  • Update django-python3-ldap from 0.13.0 to 0.13.1

    +
  • +
  • Update kiwitcms-github-app from 1.3.1 to 1.3.2

    +
    +

    Private images:

    +
    +quay.io/kiwitcms/enterprise         10.5.1-mt       c4d745bd914c   806MB
    +
    +
    +
  • +
+

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!

+ +
+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2022/01/25/kiwi-tcms-110/index.html b/blog/kiwi-tcms-team/2022/01/25/kiwi-tcms-110/index.html new file mode 100644 index 00000000..bac64f16 --- /dev/null +++ b/blog/kiwi-tcms-team/2022/01/25/kiwi-tcms-110/index.html @@ -0,0 +1,403 @@ + + + + + Kiwi TCMS - Kiwi TCMS 11.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS 11.0

+

improvements, new features, bug-fixes and more

+ + + +
+

We're happy to announce Kiwi TCMS version 11.0.

+

IMPORTANT: +This is a new major release which contains security related updates, several improvements, +API changes, bug fixes and 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)
+
+
+

---

+
+

Container images:

+
+kiwitcms/kiwi       latest  6600bc56a544    622 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
+
+
+

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

+
+

Changes since Kiwi TCMS 10.5

+
+

Improvements

+
    +
  • Update Django to 3.2.11
  • +
  • Update django-colorfield from 0.4.5 to 0.6.3
  • +
  • Update django-grappelli from 2.15.3 to 3.0.2
  • +
  • Update psycopg2 from 2.9.2 to 2.9.3
  • +
  • Update pygments from 2.10.0 to 2.11.2
  • +
  • Update python-gitlab from 2.10.1 to 3.1.0
  • +
  • Update node_modules/prismjs from 1.25.0 to 1.26.0
  • +
  • Update node_modules/marked from 2.1.3 to 4.0.10
  • +
  • Admin panel now allows to view, add, edit and delete Environment records
  • +
  • Allow selection of environment when creating new TestRun and display the chosen +values inside the TestRun page. Closes +Issue #1344
  • +
  • Creating a TestRun will now generate test execution matrix based on the available +environment and test case properties. Closes +Issue #1843
  • +
  • When generating a test execution matrix the supported algorithms are +"full" and "pairwise". Closes +Issue #1931
      +
    • Feature is enabled for test runs which contain test cases. This +feature is not shown when creating an empty test run
    • +
    • This feature isn't supported when subsequently adding new test cases +to test run
    • +
    +
  • +
  • Record a random hex number under /Kiwi/uploads/installation-id
  • +
+

Detailed information about properties, environments and test matrix generation +can be found +in a separate article.

+
+
+

Database

+
    +
  • New model testrun.Environment
  • +
  • New model testrun.EnvironmentProperty
  • +
  • New model testrun.Property
  • +
+

Warning:

+
+

These newly added models create additional permission labels with names +testruns | environment | Can .... environment, +testruns | property | Can .... property, +testruns | environment property | Can .... environment 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!

+
+
+
+

Settings

+
    +
  • Update the value of MODERNRPC_METHODS_MODULES setting to include +modules with the new API methods
  • +
+
+
+

API

+
    +
  • Method TestRun.add_case will now return a list.

    +
    +

    Warning

    +

    This breaks API compatibility with older versions and will break +all plugins which rely on this method. Use plugins v11 or greater!

    +
    +
  • +
  • Method TestRun.add_case return value will now include a field named +properties

    +
  • +
  • New methods Environment.properties, Environment.add_property and +Environment.remove_property

    +
  • +
  • New method TestRun.properties

    +
  • +
+
+
+

Bug fixes

+
    +
  • Send e-mail notification when adding comments to bugs. Fixes +Issue #2232 (@cmbahadir)
  • +
  • Disable the "+" button when there is no related element selected. Fixes +Issue #2561 (@cmbahadir)
  • +
  • When cloning test plans keep the existing test case sort order inside +the resulting test plan. Fixes +Issue #2218 (Nicolas Gelot)
  • +
  • Configure en_US.UTF-8 locale inside container. Allows upload of files with +unicode names. Fixes +Issue #2600
  • +
+
+
+

Refactoring and testing

+
    +
  • Refresh logo design
  • +
  • Pylint fixes
  • +
  • Pin setuptools b/c of problem with django-extensions
  • +
  • Remove redundant test scenario
  • +
  • Shell script refactoring
  • +
+
+ +
+
+

Kiwi TCMS Enterprise v11.0-mt

+
    +
  • Based on Kiwi TCMS v11.0

    +
  • +
  • Update kiwitcms-tenants from 1.8.0 to 1.11.0

    +
    +

    Private images:

    +
    +quay.io/kiwitcms/enterprise         11.0-mt         a730291750f8   846 MB
    +quay.io/kiwitcms/version            11.0            6600bc56a544   622 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!

+ +
+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2022/02/02/kiwi-tcms-111/index.html b/blog/kiwi-tcms-team/2022/02/02/kiwi-tcms-111/index.html new file mode 100644 index 00000000..7e859702 --- /dev/null +++ b/blog/kiwi-tcms-team/2022/02/02/kiwi-tcms-111/index.html @@ -0,0 +1,354 @@ + + + + + Kiwi TCMS - Kiwi TCMS 11.1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS 11.1

+

security improvements and bug-fixes

+ + + +
+

We're happy to announce Kiwi TCMS version 11.1.

+

IMPORTANT: +This is a small release which contains security related updates, several improvements, +bug fixes and 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)
+
+
+

---

+
+

Container images:

+
+kiwitcms/kiwi       latest  72099aa8ee93    629 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
+
+
+

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

+
+

Changes since Kiwi TCMS 11.0

+
+

Security

+
    +
  • Update Django from 3.2.10 to 4.0.2 to fix several fulnerabilities: +CVE-2022-22818, CVE-2022-23833, CVE-2021-45115, CVE-2021-45116, +CVE-2021-45452. Of those we believe that only +CVE-2022-23833: Denial-of-service possibility in file uploads may directly +impact Kiwi TCMS
  • +
+
+
+

Improvements

+
    +
  • Update django-contrib-comments from 2.1.0 to 2.2.0
  • +
  • Update django-uuslug from 1.2.0 to 2.0.0
  • +
  • Update python-gitlab from 3.1.0 to 3.1.1
  • +
  • Update node_modules/marked from 4.0.10 to 4.0.12
  • +
+
+
+

Database

+
    +
  • New migration for django-simple-captcha
  • +
+
+
+

Settings

+
    +
  • RECAPTCHA_PUBLIC_KEY, RECAPTCHA_PRIVATE_KEY and RECAPTCHA_USE_SSL +are no longer in use
  • +
  • New setting USE_CAPTCHA, defaults to True
  • +
  • The string "captcha" is added to INSTALLED_APPS
  • +
+
+
+

Bug fixes

+
    +
  • Fix inappropriate RPC calls causing Version and Build dropdown widgets to +display no values. Fixes +Issue #2704
  • +
+
+
+

Refactoring and testing

+
    +
  • Add tzdata to requirements
  • +
  • Replace django-recaptcha with django-simple-captcha
  • +
  • Adjust /init-db view to reliably detect when applying database migrations +is complete and not exit prematurely
  • +
+
+
+

Translations

+ +
+
+
+

Kiwi TCMS Enterprise v11.1-mt

+
    +
  • Based on Kiwi TCMS v11.1

    +
  • +
  • Update kiwitcms-github-app from 1.3.2 to 1.3.3

    +
  • +
  • Update django-ses from 2.3.1 to 2.4.0

    +
  • +
  • Update python3-saml from 1.12.0 to 1.13.0

    +
  • +
  • Workaround UnicodeDecodeError while building the docker image

    +
    +

    Private images:

    +
    +quay.io/kiwitcms/enterprise         11.1-mt         df5ce509fd41   854 MB
    +quay.io/kiwitcms/version            11.1            72099aa8ee93   629 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!

+ +
+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2022/02/27/container-registry-credentials-for-subscribers/index.html b/blog/kiwi-tcms-team/2022/02/27/container-registry-credentials-for-subscribers/index.html new file mode 100644 index 00000000..cf2ce9b3 --- /dev/null +++ b/blog/kiwi-tcms-team/2022/02/27/container-registry-credentials-for-subscribers/index.html @@ -0,0 +1,225 @@ + + + + + Kiwi TCMS - Container Registry Credentials for Subscribers + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Container Registry Credentials for Subscribers

+

are now fully automated; here's how to use them

+ + + +
+

Kiwi TCMS subscribers had to go through a manual process of registering +a username with our container registry, quay.io and email support +before they could access private docker images. This process is now fully +automated!

+

"private credentials card"

+

Credentials are automatically created upon subscription payment and configured for +read-only access to respective repositories based on the type of subscription. +You can find your credentials at the +subscriptions page, +PLUGINS -> Subscriptions. To authenticate try

+
$ docker login -u="USERNAME" -p "PASSWORD-TOKEN" quay.io
+# or
+$ echo "PASSWORD-TOKEN" | docker login -u="USERNAME" --password-stdin quay.io
+
+ + +

If you would like to have access to private container repositories for Kiwi TCMS +checkout the containers page and +subscribe!

+

Happy Testing!

+
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2022/03/01/new-and-updated-subscription-plans-for-kiwi-tcms/index.html b/blog/kiwi-tcms-team/2022/03/01/new-and-updated-subscription-plans-for-kiwi-tcms/index.html new file mode 100644 index 00000000..787683f8 --- /dev/null +++ b/blog/kiwi-tcms-team/2022/03/01/new-and-updated-subscription-plans-for-kiwi-tcms/index.html @@ -0,0 +1,250 @@ + + + + + Kiwi TCMS - New and updated subscription plans for Kiwi TCMS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

New and updated subscription plans for Kiwi TCMS

+

here's what changed

+ + + +
+

An active Kiwi TCMS subscription ensures a sustainable future for +all open source software maintained by the Kiwi TCMS team and +provides its holder with access to software versions and certain +level services. Given recent changes to +private container credentials +we have refreshed our product and service definitions.

+

New Self Support subscription

+

This is an entry-level subscription which provides read-only access to version tagged +containers of upstream Kiwi TCMS. It is suitable for experimentation, +very small teams, development against Kiwi TCMS and convenience during upgrades.

+

You are free to use any older or future versions of Kiwi TCMS available from +the kiwitcms/version container repository!

+

This subscription plan is also available via +GitHub Marketplace.

+

Private Tenant

+

This is our most popular subscription type.

+

Starting today it also includes access +to the kiwitcms/version container repository! +This is suitable for teams who prefer to be hosting Kiwi TCMS on-premise instead of +using the namespace provided under *.tenant.kiwitcms.org.

+

This subscription plan is also available via +GitHub Marketplace.

+

Everything else remains the same!

+

Enterprise Subscription

+

This is Kiwi TCMS tailored towards on-premise deployments in larger organizations. +Starting today it also automatically includes 1x Private Tenant which can be used +for development or experiments.

+

Support availability has been extended by 2 hours in order to cover more geographic areas!

+

Future features coming to enterprise subscribers - +tools for provisioning of Kiwi TCMS inside cloud environments and aarch64 containers.

+

Price has been increased to 400 $/mo.

+

New Managed Hosting subscription

+

This new offering is designed for the organizations which don't want to bother with provisioning +containers, configuring DNS resolution, managing SSL certificates, regular upgrades and backups. +The Kiwi TCMS team can do all of this for you and provide a fully isolated instance inside AWS.

+

Support availability has been extended by 2 days, covering Saturday and Sunday. When necessary +Managed Hosting subscribers have the option for video conferences with their support contact.

+
+

All changes are effective immediately. Existing customers are granted access to everything +that's new while billing changes are not applied.

+

If you prefer the "free beer" version of +Kiwi TCMS it is available via docker pull kiwitcms/kiwi - free to use +and without any guarantees according to GPLv2.

+

Please consider subscribing and help us make Kiwi TCMS better!

+

Happy Testing!

+
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2022/03/09/kiwi-tcms-112/index.html b/blog/kiwi-tcms-team/2022/03/09/kiwi-tcms-112/index.html new file mode 100644 index 00000000..4d1b22e1 --- /dev/null +++ b/blog/kiwi-tcms-team/2022/03/09/kiwi-tcms-112/index.html @@ -0,0 +1,355 @@ + + + + + Kiwi TCMS - Kiwi TCMS 11.2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS 11.2

+

improvements, new API methods and aarch64 container images

+ + + +
+

We're happy to announce Kiwi TCMS version 11.2.

+

IMPORTANT: +This is a small release which contains several improvements, new API methods, +internal refactoring and new translations! This is the first release to ship +aarch64 container images!

+

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

---

+
+

Upstream container images (x86_64):

+
+kiwitcms/kiwi   latest  bcc4c658440a    622MB
+
+
+

IMPORTANT: version tagged and multi-arch +container images are available only to +subscribers!

+
+

Changes since Kiwi TCMS 11.1

+
+

Improvements

+
    +
  • Update django from 4.0.2 to 4.0.3
  • +
  • Update django-grappelli from 3.0.2 to 3.0.3
  • +
  • Update django-simple-captcha from 0.5.14 to 0.5.17
  • +
  • Update python-bugzilla from 3.1.0 to 3.2.0
  • +
  • Update python-gitlab from 3.1.1 to 3.2.0
  • +
  • Update node_modules/prismjs from 1.26.0 to 1.27.0
  • +
  • Add new command to perform a collection of post-upgrade tasks. +Kiwi TCMS admins are advised to replace +manage.py migrate with manage.py upgrade (Ivajlo Karabojkov)
  • +
+
+
+

API

+
    +
  • New API method Category.create(). Fixes +Issue #2705 (Erik Heeren)
  • +
  • New API method Classification.create(). Fixes +Issue #2705 (Erik Heeren)
  • +
+
+
+

Refactoring and testing

+
    +
  • Add docker build & push automation
  • +
  • Fix Bandit exclusion rule
  • +
  • Test and build on aarch64
  • +
  • Apply auto fixes fro pre-commit.ci
  • +
  • Apply auto fixes from Deepsource
  • +
  • Update versions of several GitHub Actions
  • +
  • Use the appropriate path to package.json for Dependabot
  • +
  • Remove old Telemetry link in menu to avoid confusion
  • +
+
+ +
+
+

Kiwi TCMS Enterprise v11.2-mt

+
    +
  • Based on Kiwi TCMS v11.2

    +
  • +
  • Update django-ses from 2.4.0 to 2.6.0

    +
  • +
  • Update python3-saml from 1.13.0 to 1.14.0

    +
  • +
  • Revert "Use django.contrib.staticfiles.storage from Django==3.2.12". +Instead use the implementation from latest Django version. Closes +Issue #140

    +
  • +
  • Start building kiwitcms/enterprise on aarch64

    +
  • +
  • Add changelog check & docker release automation

    +
  • +
  • Add test for PSA login URLs on login page. References +Issue #83

    +
  • +
  • Add SAML & Azure AD logo images

    +
  • +
  • Update GitHub Actions

    +
  • +
  • Hard-code testing with Keycloak 16.1.1 to workaround significant differences +with Keycloak v17 container

    +
    +

    Private images:

    +
    +quay.io/kiwitcms/enterprise         11.2-mt (aarch64)   fe5e869e36f6    09 Mar 2022    890MB
    +quay.io/kiwitcms/enterprise         11.2-mt (x86_64)    134320d5fb7c    09 Mar 2022    841MB
    +quay.io/kiwitcms/version            11.2 (aarch64)      3b782830d19d    09 Mar 2022    665MB
    +quay.io/kiwitcms/version            11.2 (x86_64)       bcc4c658440a    09 Mar 2022    620MB
    +
    +
    +
  • +
+

IMPORTANT: version tagged, multi-arch 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 upgrade
+
+

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!

+ +
+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2022/04/27/kiwi-tcms-113/index.html b/blog/kiwi-tcms-team/2022/04/27/kiwi-tcms-113/index.html new file mode 100644 index 00000000..660a4725 --- /dev/null +++ b/blog/kiwi-tcms-team/2022/04/27/kiwi-tcms-113/index.html @@ -0,0 +1,348 @@ + + + + + Kiwi TCMS - Kiwi TCMS 11.3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS 11.3

+

security, improvements, new features and translations

+ + + +
+

We're happy to announce Kiwi TCMS version 11.3 which is the 100th tagged version +in our git repository!

+

IMPORTANT: +This is a small release which contains security related updates, several improvements, +bug fixes and new translations! Most importantly the kiwitcms-tenants plugin now supports +tenant groups and permissions!

+

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

---

+
+

Upstream container images (x86_64):

+
+kiwitcms/kiwi   latest  58dcfa91e816    629MB
+
+
+

IMPORTANT: version tagged and multi-arch +container images are available only to +subscribers!

+
+

Changes since Kiwi TCMS 11.2

+
+

Security

+ +
+
+

Improvements

+
    +
  • Update bleach from 4.1.0 to 5.0.0
  • +
  • Update django-tree-queries from 0.7.0 to 0.9.0
  • +
  • Update jira from 3.1.1 to 3.2.0
  • +
  • Update pygments from 2.11.2 to 2.12.0
  • +
  • Update python-gitlab from 3.2.0 to 3.3.0
  • +
  • Update tzdata from 2021.5 to 2022.1
  • +
  • Update node_modules/marked from 4.0.12 to 4.0.14
  • +
  • Update node_modules/prismjs from 1.27.0 to 1.28.0
  • +
  • Allow overriding of Azure Boards API version. Closes +Issue #2717
  • +
  • If tenant_groups is enabled then refresh_permissions command will +update default tenant groups too
  • +
  • Document tenant-group permissions
  • +
+
+
+

Settings

+
    +
  • New setting AZURE_BOARDS_API_VERSION, defaults to 6.0. Can be overriden +directly in settings or via environment variable with the same name
  • +
+
+
+

Bug fixes

+
    +
  • Patch for repositories under GitLab subgroups. Fixes +Issue #2643 (@cmeissl)
  • +
  • Don't crash if a comment user has been removed. Fixes +KIWI-TCMS-HZ
  • +
+
+
+

Refactoring

+
    +
  • Split Users & Groups menu items under ADMIN entry in navigation
  • +
  • [pre-commit.ci] updates
  • +
  • pylint adjustments
  • +
+
+
+

Translations

+ +
+
+
+

Kiwi TCMS Enterprise v11.3.1-mt

+
    +
  • Based on Kiwi TCMS v11.3

    +
  • +
  • Update django-ses from 2.6.0 to 3.0.1

    +
  • +
  • Update kiwitcms-tenants from 1.11.0 to 2.1.1 for +tenant groups support

    +
    +

    Private images:

    +
    +quay.io/kiwitcms/enterprise         11.3.1-mt (aarch64  58a53d616105    27 Apr 2022     894MB
    +quay.io/kiwitcms/enterprise         11.3.1-mt (x86_64)  3b5e7fbd234a    27 Apr 2022     847MB
    +quay.io/kiwitcms/version            11.3 (aarch64)      e9f34a86cd0b    27 Apr 2022     671MB
    +quay.io/kiwitcms/version            11.3 (x86_64)       58dcfa91e816    27 Apr 2022     627MB
    +
    +
    +
  • +
+

IMPORTANT: version tagged, multi-arch 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 upgrade
+
+

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

+ +
+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2022/05/18/new-versions-of-automation-framework-plugins/index.html b/blog/kiwi-tcms-team/2022/05/18/new-versions-of-automation-framework-plugins/index.html new file mode 100644 index 00000000..a171e43b --- /dev/null +++ b/blog/kiwi-tcms-team/2022/05/18/new-versions-of-automation-framework-plugins/index.html @@ -0,0 +1,234 @@ + + + + + Kiwi TCMS - New versions of automation framework plugins + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

New versions of automation framework plugins

+

improvements & bug fixes

+ + + +
+

Kiwi TCMS is pleased to announce new versions of our plugins for different +test automation frameworks:

+ +

These new versions are compatible with Kiwi TCMS v11.x and include several improvements +and bug fixes. Check-out the pages above for individual information and instructions on +how to use them.

+

Happy testing!

+

---

+

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

+ + +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2022/06/02/survey-how-do-testers-and-qa-use-github-gitlab-and-bitbucket/index.html b/blog/kiwi-tcms-team/2022/06/02/survey-how-do-testers-and-qa-use-github-gitlab-and-bitbucket/index.html new file mode 100644 index 00000000..cb357930 --- /dev/null +++ b/blog/kiwi-tcms-team/2022/06/02/survey-how-do-testers-and-qa-use-github-gitlab-and-bitbucket/index.html @@ -0,0 +1,225 @@ + + + + + Kiwi TCMS - Survey: How do testers and QA use GitHub, GitLab and Bitbucket + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Survey: How do testers and QA use GitHub, GitLab and Bitbucket

+

please help us gather more data

+ + + +
+

Hello testers, +we are conducting a little research/survey into how other testers and QA professionals +use modern platforms like GitHub, GitLab and Bitbucket. At this moment in time our goal +is to collect as much information as possible in order to understand the existing ecosystem.

+

If you can spare 5 minutes of your time please check-out +https://forms.gle/avqjWVvSPsE4SWQr5.

+

We promise there will be no follow up emails unless you indicate that you agree to that.

+

Happy Testing!

+
+

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

+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2022/06/07/zaklina-welcome-to-the-kiwi-tcms-team/index.html b/blog/kiwi-tcms-team/2022/06/07/zaklina-welcome-to-the-kiwi-tcms-team/index.html new file mode 100644 index 00000000..b70f7ac7 --- /dev/null +++ b/blog/kiwi-tcms-team/2022/06/07/zaklina-welcome-to-the-kiwi-tcms-team/index.html @@ -0,0 +1,238 @@ + + + + + Kiwi TCMS - Zaklina, welcome to the Kiwi TCMS team + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Zaklina, welcome to the Kiwi TCMS team

+

test engineer with 10+ years of experience

+ + + +
+

Kiwi TCMS is pleased to welcome Zaklina Stojnev to our team!

+

+

She holds an engineering degree in computer science and +has been working as a test engineer for more than 10 years. +In the last couple of years her main focus is automation in testing, +finding ways to improve testing process and tools that will support testing activities.

+

Zaklina will be the primary contact for our +History of Testing project where we are +compiling a database of people who influenced or made important contributions to our professional field.

+

With her prior experience as a conference organizer Zaklina will also be lending a much needed hand +in preparing the Testing and Automation devroom at FOSDEM and showcasing Kiwi TCMS at different +events.

+

You can find her on-boarding progress at TR-1190 and her +contributions on +GitHub.

+

Happy Testing!

+
+

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

+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2022/06/14/meet-kiwi-tcms-at-collision-2022-in-toronto/index.html b/blog/kiwi-tcms-team/2022/06/14/meet-kiwi-tcms-at-collision-2022-in-toronto/index.html new file mode 100644 index 00000000..df32abb2 --- /dev/null +++ b/blog/kiwi-tcms-team/2022/06/14/meet-kiwi-tcms-at-collision-2022-in-toronto/index.html @@ -0,0 +1,273 @@ + + + + + Kiwi TCMS - Meet Kiwi TCMS at Collision 2022 in Toronto + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Meet Kiwi TCMS at Collision 2022 in Toronto

+

Thursday, Jun 23, Stand A3201

+ + + +
+

Kiwi TCMS is happy to announce that we're taking part in +Collision 2022, Jun 20-23 in Toronto, Canada. +We're joining as a featured startup +in the Enterprise Software Solutions category.

+

Kiwi TCMS will have an on-site presence on +Thursday, Jun 23, Stand A3201. Check-out the map for more details: +venue map

+

For engineers

+

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 +Self-Support, SaaS and Enterprise subscriptions!

+

"black boxes"

+

If you are a test or QA engineer please answer our survey +https://forms.gle/LTYnimNjbUaSmTeL8. Participants may claim a small surprise at our booth!

+

For startups

+

We know that in a startup, the major strength of the people is that they are multitaskers. +And it is often the case that the founders will perform some functional and acceptance testing +because they know all the important use-cases.

+

Still you need to document and organize your testing activities early on. You need to +start collecting information about which features of the product have been tested and +how they have been tested. That's the basis on which you can scale your QA team and +future testing activities.

+

If you are a fellow startup exhibitor please swing by out stand to talk about +organizing your product testing with Kiwi TCMS. We know the drill because we're in +the same boat!

+

For partners

+

If you are another ISV providing engineering tools, a product outsourcing company +or a devel/testing service venture we've got a partnership proposal for you!

+

We're interested in partners where we can integrate other products with Kiwi TCMS +and provide a better offering; provide extra services (e.g. managed hosting) and/or +provide more transparency to your own customers (e.g. allow them to see how their products +are being tested).

+

Message us via the Collision app +and request a meeting or better yet, find our team on-site!

+

Virtual press conference

+

If you aren't around in Toronto please join us for a pre 2022 Collision News Conference (VIRTUAL) on +Wednesday, June 15, 1:00 - 2:00 p.m. EDT / 17:00 - 18:00 UTC.

+

For more information see +https://www.eventbrite.com/e/pre-collision-press-conference-1-of-2-hosted-by-brotmanwinterfried-tickets-365110534437

+

After hours

+

The Kiwi TCMS team will be joining the following after-hours events:

+ +

For media

+

If you have any questions, need additional information or would like to schedule an interview, +please email Steve Winter at swinter @ aboutbwf.com (remove spaces) or call 202-468-8100.

+
+

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

+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2022/06/27/mejor-sitio-web-2022/index.html b/blog/kiwi-tcms-team/2022/06/27/mejor-sitio-web-2022/index.html new file mode 100644 index 00000000..ba9652e8 --- /dev/null +++ b/blog/kiwi-tcms-team/2022/06/27/mejor-sitio-web-2022/index.html @@ -0,0 +1,237 @@ + + + + + Kiwi TCMS - Mejor Sitio Web 2022 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Mejor Sitio Web 2022

+

awarded to Kiwi TCMS by Reviewbox.es

+ + + +
+

Kiwi TCMS is happy to announce that we have been awarded a "Best Website 2022" award +by Reviewbox.es, scoring 36/40 on their evaluation. +The review criteria can be found at https://www.reviewbox.es/los-mejores-sitios-web/.

+
+

Querido equipo de Kiwitcms,

+

¡Felicidades!

+

Habéis logrado lo que muchos otros desean:

+

Habéis acumulado 36/40 puntos en nuestra investigación de +mercado y por lo tanto calificasteis (mínimo 30 de 40 puntos necesarios) +para nuestro premio Mejor Sitio Web 2022.

+

Resultados y criterios de investigación

+

URL: Kiwitcms-Team

+

Puntos: 36/40

+
+

Our team is happy to accept this award, which comes exactly 2 years +after we became an OpenAwards winner.

+

Thank you and Happy testing!

+
+

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

+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2022/08/04/kiwi-tcms-114/index.html b/blog/kiwi-tcms-team/2022/08/04/kiwi-tcms-114/index.html new file mode 100644 index 00000000..be142b9d --- /dev/null +++ b/blog/kiwi-tcms-team/2022/08/04/kiwi-tcms-114/index.html @@ -0,0 +1,458 @@ + + + + + Kiwi TCMS - Kiwi TCMS 11.4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS 11.4

+

security, multiple improvements, new features and translations

+ + + +
+

We're happy to announce Kiwi TCMS version 11.4!

+

IMPORTANT: +This is a medium sized release which contains security related updates, +multiple improvements, database and API changes, new settings, bug fixes +and 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)
+
+
+

---

+
+

Upstream container images (x86_64):

+
+kiwitcms/kiwi   latest  8c8356c0268d    610MB
+
+
+

IMPORTANT: version tagged and multi-arch +container images are available only to +subscribers!

+
+

Changes since Kiwi TCMS 11.3

+
+

Security

+ +
+
+

Improvements

+
    +
  • Update bleach from 5.0.0 to 5.0.1
  • +
  • Update django-colorfield from 0.6.3 to 0.7.2
  • +
  • Update django-extensions from 3.1.5 to 3.2.0
  • +
  • Update django-tree-queries from 0.9.0 to 0.11.0
  • +
  • Update jira from 3.2.0 to 3.3.1
  • +
  • Update markdown from 3.3.6 to 3.4.1
  • +
  • Update mysqlclient from 2.1.0 to 2.1.1
  • +
  • Update python-gitlab from 3.3.0 to 3.7.0
  • +
  • Update node_modules/marked from 4.0.14 to 4.0.18
  • +
  • Relax docutils requirement. Use latest version
  • +
  • Add template block which will allow logo customizations (Ivajlo Karabojkov)
  • +
  • Don't show PLUGINS menu when no plugins are installed. References +Issue #2729
  • +
  • Add information about Kiwi TCMS user to 1-click bug reports. Closes +Issue #2591
  • +
  • Use a better icon to signify a manual test inside the user interface
  • +
  • Change UserAdmin to be permission based instead of being role-based. +Fixes Issue #2496
  • +
  • Allow post-processing of automatically created issues. Closes +Issue #2383
  • +
  • Allow more customization over issue type discovery for Jira. Closes +Issue #2833
  • +
  • Allow more customization over project discovery for Jira
  • +
  • Allow more customization over Redmine tracker. Closes +Issue #2382
  • +
  • Allow DB settings to be read from Docker Secret files. Fixes +Issue #2606
  • +
  • Add filter on TestRun page to show test executions assigned to the +current user. Closes +Issue #333
  • +
  • Add URL for creating new TestRun from a TestPlan. The format is +/runs/from-plan/<plan-id>/. Closes +Issue #274
  • +
  • Add bug.Severity attribute which is fully customizeable. Closes +Issue #2703
  • +
  • Update documentation around TCMS_ environment variables +used by automation plugins
  • +
  • Update documentation to denote that pytest plugin is now generally available
  • +
  • Document necessary permissions for adding new users. References +Issue #2496
  • +
+
+
+

Database

+
    +
  • New migration for bug.Severity model
  • +
+
+
+

Settings

+ +
+
+

API

+
    +
  • If default_tester field is not specified for TestRun.create() method +then use the currently logged-in user.
  • +
  • Return value for method TestExecution.filter() now contains fields +expected_duration and actual_duration. Closes +Issue #1924
  • +
  • Return value for method Bug.filter() now contains fields +severity__name, severity__icon and severity__color
  • +
+
+
+

Bug fixes

+
    +
  • Adjust field name when rendering test execution on TestRun page. Fixes +Issue #2794
  • +
  • Render rich text editor preview via backend API:
      +
    • Makes display on HTML pages and editor preview the same. Fixes +Issue #2659
    • +
    • Fixes a bug with markdown rendered in JavaScript. Fixes +Issue #2711
    • +
    +
  • +
  • Stop propagation of HTML unescape which causes display issues with +code snippets that contain XML values. Fixes +Issue #2800
  • +
  • Show bug text only when creating new records, not when editing
  • +
  • Properly display & validate related form fields when editing bugs
  • +
  • Don't send duplicate emails when editing bugs. Fixes +Issue #2782
  • +
+
+
+

Refactoring and testing

+
    +
  • Convert two assignment statements to augmented source code. Closes +Issue #2610 (Markus Elfring)

    +
  • +
  • Rename method IssueTrackerType.report_issue_from_testexecution():

    +
      +
    • Rename to _report_issue() which returns tuple of (object, str)
    • +
    • In case new issue was not created automatically and the method falls +back to manual creation the return value will be (None, str)
    • +
    • report_issue_from_testexecution() will call _report_issue() +internally and handle the change in return type
    • +
    +
    +

    Note

    +
      +
    • This change is backwards compatible!
    • +
    • For customized issue tracker integration you will have to apply +the same changes to your customized code if you wish new functionality, +like post-processing of automatically created issues to work.
    • +
    +
    +
  • +
  • Add tests for backup & restore commands. Closes +Issue #2695

    +
  • +
  • Update versions of several CI tools

    +
  • +
  • Updates around new version of pylint

    +
  • +
  • Use codecov-action to upload coverage results

    +
  • +
  • Remove setuptools and other workarounds in tests

    +
  • +
  • Don't special case dependencies which already provide wheel packages

    +
  • +
  • Workaround an issue with setuptools_git_archive introduced by jira==3.2.0

    +
  • +
  • Workaround the fact that django-ranged-response doesn't provide wheels

    +
  • +
  • Report test results via kiwitcms-django-plugin. Closes +Issue #1757

    +
  • +
+
+
+

Translations

+ +
+
+
+

Kiwi TCMS Enterprise v11.4-mt

+
    +
  • Based on Kiwi TCMS v11.4

    +
  • +
  • Update django-python3-ldap from 0.13.1 to 0.15.2

    +
  • +
  • Update django-ses from 3.0.1 to 3.1.0

    +
  • +
  • Update dj-database-url from 0.5.0 to 1.0.0

    +
  • +
  • Add more icons for extra GitHub login backends

    +
  • +
  • Add images for various Google login backends

    +
    +

    Private images:

    +
    +quay.io/kiwitcms/enterprise         11.4-mt (aarch64)       f5720d030612    03 Aug 2022     862MB
    +quay.io/kiwitcms/enterprise         11.4-mt (x86_64)        8ffd5a64a4d1    03 Aug 2022     829MB
    +quay.io/kiwitcms/version            11.4 (aarch64)          62207c605dcf    03 Aug 2022     639MB
    +quay.io/kiwitcms/version            11.4 (x86_64)           8c8356c0268d    03 Aug 2022     610MB
    +
    +
    +
  • +
+

IMPORTANT: version tagged, multi-arch 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 upgrade
+
+

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

+ +
+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2022/09/06/kiwi-tcms-115/index.html b/blog/kiwi-tcms-team/2022/09/06/kiwi-tcms-115/index.html new file mode 100644 index 00000000..b2cca2c9 --- /dev/null +++ b/blog/kiwi-tcms-team/2022/09/06/kiwi-tcms-115/index.html @@ -0,0 +1,339 @@ + + + + + Kiwi TCMS - Kiwi TCMS 11.5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS 11.5

+

several improvements, bug fixes and new translations

+ + + +
+

We're happy to announce Kiwi TCMS version 11.5!

+

IMPORTANT: +This is a small release which contains several improvements, bug fixes +and 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)
+
+
+

---

+
+

Upstream container images (x86_64):

+
+kiwitcms/kiwi   latest  66c51b64e0a6    608MB
+
+
+

IMPORTANT: version tagged and multi-arch +container images are available only to +subscribers!

+
+

Changes since Kiwi TCMS 11.4

+
+

Improvements

+
    +
  • Update jira from 3.3.1 to 3.4.0
  • +
  • Update pygments from 2.12.0 to 2.13.0
  • +
  • Update python-gitlab from 3.7.0 to 3.9.0
  • +
  • Update tzdata from 2022.1 to 2022.2
  • +
  • Add Product drop down field in Build admin page. Closes +Issue #2818
  • +
  • Add 'prune' argument required for Django 4.1 compatibility
  • +
  • Improve documentation around DEFAULT_GROUPS
  • +
  • Update docs about language preferences and add a Change language menu item. Closes +Issue #2901, +Issue #2902, +Issue #2903
  • +
  • Performance improvement for Status matrix telemetry
  • +
  • Performance improvement for Execution trends telemetry
  • +
  • Display a spinner widget while telemetry data is still loading. Closes +Issue #1801
  • +
+
+
+

Bug fixes

+
    +
  • Fix error Jquery deferred: No length property of null object (@cmbahadir)
  • +
+
+
+

Refactoring and testing

+
    +
  • Add test for AnonymousViewBackend & auth. permissions
  • +
  • Exclude auth.view_ permissions from AnonymousViewBackend
  • +
  • Specify 30 seconds timeout for internal requests via the requests library
  • +
+
+ +
+
+

Kiwi TCMS Enterprise v11.5-mt

+
    +
  • Based on Kiwi TCMS v11.5

    +
  • +
  • Update django-python3-ldap from 0.15.2 to 0.15.3

    +
  • +
  • Update django-ses from 3.1.0 to 3.1.2

    +
  • +
  • Update kiwitcms-tenants from 2.1.1 to 2.3.0

    +
  • +
  • Update kiwitcms-github-app from 1.3.3 to 1.4.0

    +
    +

    Private images:

    +
    +quay.io/kiwitcms/version            11.5 (aarch64)          4be7894de8ae    06 Sep 2022     638MB
    +quay.io/kiwitcms/version            11.5 (x86_64)           66c51b64e0a6    06 Sep 2022     608MB
    +quay.io/kiwitcms/enterprise         11.5-mt (aarch64)       82d64398d8bf    06 Sep 2022     862MB
    +quay.io/kiwitcms/enterprise         11.5-mt (x86_64)        8a5b0b58bcca    06 Sep 2022     829MB
    +
    +
    +
  • +
+

IMPORTANT: version tagged, multi-arch 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 upgrade
+
+

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

+ +
+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2022/10/25/meet-kiwi-tcms-at-websummit-2022-in-lisbon/index.html b/blog/kiwi-tcms-team/2022/10/25/meet-kiwi-tcms-at-websummit-2022-in-lisbon/index.html new file mode 100644 index 00000000..dbc4e2ed --- /dev/null +++ b/blog/kiwi-tcms-team/2022/10/25/meet-kiwi-tcms-at-websummit-2022-in-lisbon/index.html @@ -0,0 +1,262 @@ + + + + + Kiwi TCMS - Meet Kiwi TCMS at WebSummit 2022 in Lisbon + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Meet Kiwi TCMS at WebSummit 2022 in Lisbon

+

Wed, Nov 02, Pavilion 4, Stand A709

+ + + +
+

Kiwi TCMS is happy to announce that we're taking part in +WebSummit 2022, Nov 01-04 in Lisbon, Portugal. +We're joining as a featured startup +in the Enterprise Software Solutions category.

+

Kiwi TCMS will have an on-site presence on +Wednesday, Nov 02 at Pavilion 4, Stand A709. Check-out the map for more details: +venue map

+

For engineers

+

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. We've got new stickers too!

+

Alex and Zaklina will be there to answer all of your questions regarding +open source, community, support, various integrations and the differences between +Self-Support, SaaS and Enterprise subscriptions!

+

"black boxes"

+

IMPORTANT: We've previously announced participation in +Testing Portigal at the end of November. +Unfortunately this had to be canceled due to personal reasons. If you are a test or +QA engineer please swing by and Alex can tell you a bit about his presentation!

+

For partners

+

If you are another ISV providing engineering tools, a product outsourcing company +or a devel/testing services venture we've got a partnership proposal for you!

+

We're interested in partners where we can integrate other products with Kiwi TCMS +and provide a better offering; provide extra services (e.g. managed hosting) and/or +provide more transparency to your own customers (e.g. allow them to see how their products +are being tested).

+

Message us via the WebSummit mobile app and request a meeting or better yet, +find our team on-site!

+

After hours

+

The Kiwi TCMS team will be joining the following after-hours events:

+ +

Catch-up with us for a beer and let's talk testing and open source!

+
+

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

+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2022/11/08/call-for-participation-testing-and-automation-devroom-fosdem23/index.html b/blog/kiwi-tcms-team/2022/11/08/call-for-participation-testing-and-automation-devroom-fosdem23/index.html new file mode 100644 index 00000000..6f7da4f2 --- /dev/null +++ b/blog/kiwi-tcms-team/2022/11/08/call-for-participation-testing-and-automation-devroom-fosdem23/index.html @@ -0,0 +1,256 @@ + + + + + Kiwi TCMS - Call for participation: Testing and Automation devroom, FOSDEM'23 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Call for participation: Testing and Automation devroom, FOSDEM'23

+

organized by Kiwi TCMS, Linaro & SUSE

+ + + +
+

"Cfp banner"

+

Attention testers! On behalf of +Testing and Automation devroom +we'd like to announce that call for participation is now open.

+

Important: devroom will take place 09:00 to 12:50, Sunday, February 5th 2023 at +ULB Solbosch Campus, Brussels, Belgium! +Presentations will be streamed online but all accepted speakers are required to deliver +their talks in person! The devroom will not host pre-recorded videos in 2023!

+

Here are some ideas for topics that are a good fit for this devroom:

+

Testing in the real, open source world

+
    +
  • War stories/strategies for testing large scale or complex projects
  • +
  • Demystify resource e.g. systems/device/cloud provisioning in a CI loop
  • +
  • Tools that extend the ability to test low-level code, e.g. bootloaders, init +systems, etc.
  • +
  • Projects that are introducing new/interesting ways of testing "systems"
  • +
  • Address the automated testing frameworks fragmentation
  • +
  • Lessons learned from testing
  • +
+

Cool Tools (good candidates for lightning talks)

+
    +
  • How your open source tool made developing quality software better
  • +
  • What tools do you use to setup your CI/CD
  • +
  • Combining projects/plugins/tools to build amazing things "Not enough people in +the open source community know how to use $X, but here's a tutorial on how to +use $X to make your project better."
  • +
+

In the past the devroom has seen both newbies/students and experienced professionals and +past speakers as part of the audience and talks covering from beginner/practical +to advanced/abstract topics. If you have doubts then submit your proposal and +leave a comment for the devroom managers and we'll get back to you.

+

Checkout +https://fosdem-testingautomation.github.io/ for more information!

+

Happy Testing!

+
+

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

+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/2022/11/09/kiwi-tcms-116/index.html b/blog/kiwi-tcms-team/2022/11/09/kiwi-tcms-116/index.html new file mode 100644 index 00000000..601892af --- /dev/null +++ b/blog/kiwi-tcms-team/2022/11/09/kiwi-tcms-116/index.html @@ -0,0 +1,380 @@ + + + + + Kiwi TCMS - Kiwi TCMS 11.6 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Kiwi TCMS 11.6

+

security updates, improvements, bug fixes and new translations

+ + + +
+

We're happy to announce Kiwi TCMS version 11.6! This is our first release +after the very positive reception we had at +WebSummit 2022!

+

IMPORTANT: this is a small release which contains security updates, +general improvements, bug fixes and 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)
+
+
+

---

+
+

Upstream container images (x86_64):

+
+kiwitcms/kiwi   latest  9773335a58d1    612MB
+
+
+

IMPORTANT: version tagged and multi-arch +container images are available only to +subscribers!

+
+

Changes since Kiwi TCMS 11.5

+
+

Security

+ +
+
+

Improvements

+
    +
  • Update django-extensions from 3.2.0 to 3.2.1

    +
  • +
  • Update jira from 3.4.0 to 3.4.1

    +
  • +
  • Update psycopg2 from 2.9.3 to 2.9.5

    +
  • +
  • Update pygithub from 1.55 to 1.57

    +
  • +
  • Update python-gitlab from 3.9.0 to 3.11.0

    +
  • +
  • Update tzdata from 2022.2 to 2022.6

    +
  • +
  • Container is now built on top of Red Hat Enteroprise Linux 9 and Python 3.9

    +

    Warning:

    +
    +

    There is high risk of breaking downstream containers. Pay attention to +bind-mounted settings files. Inspect downstream Dockerfile & docker-compose.yml +files !!!

    +
    +
  • +
  • Unify some translation strings

    +
  • +
  • Document add-on issue tracker integrations

    +
  • +
  • Rename Properties to Parameters because "test case parameters" is +more widely used

    +
  • +
+
+
+

Bug fixes

+
    +
  • JIRA.get_issue_type_from_jira() now accepts a second argument. Fixes +Issue #2929 (@cmbahadir)
  • +
  • Fix typo in documentation (Christian Clauss)
  • +
  • Trim white-space after splitting parameter values. For example the inputs +'OS=Linux' and 'OS = Windows ' will result in +Key: 'OS', Values: ['Linux', 'Windows']
  • +
+
+
+

Refactoring and testing

+
    +
  • Update Fedora from 32 to 36 in /tests/bugzilla
  • +
  • Remove Travis CI config b/c we don't use it anymore
  • +
  • Add Coverity Scan as a GitHub action
  • +
  • Don't scan devel dependencies with Coverity Scan
  • +
  • Redirect to where we came from in case posting a comment results in invalid +form
  • +
  • Configure Dependabot to update Docker containers and try tightening security +around docker containers used during testing
  • +
  • Use npm audit fix to automatically update some Node.js dependecies
  • +
  • Execute npm audit signatures when installing Node.js packages
  • +
  • Start using find_namespace_packages() to resolve +'Package would be ignored' warnings from setuptools
  • +
  • Add missing field in setup() to avoid a warning
  • +
+
+ +
+
+

Kiwi TCMS Enterprise v11.6-mt

+
    +
  • Based on Kiwi TCMS v11.6

    +
  • +
  • Update containers for RHEL 9, CentOS Stream 9 and Python 3.9

    +
  • +
  • Update actions/checkout from 2 to 3

    +
  • +
  • Update django-ses from 3.1.2 to 3.2.2

    +
  • +
  • Update kiwitcms-tenants from 2.3.1 to 2.3.2

    +
  • +
  • Update kiwitcms-trackers-integration from 0.2.0 to 0.3.0. +Supports integration with OpenProject and Mantis BT. +Closes Issue #2203 and +Issue #879

    +
    +

    Private images:

    +
    +quay.io/kiwitcms/version            11.6 (aarch64)          cf244e2f1dac    08 Nov 2022     636MB
    +quay.io/kiwitcms/version            11.6 (x86_64)           9773335a58d1    08 Nov 2022     612MB
    +quay.io/kiwitcms/enterprise         11.6-mt (aarch64)       55cf76524ebd    08 Nov 2022     858MB
    +quay.io/kiwitcms/enterprise         11.6-mt (x86_64)        61f48a62666b    08 Nov 2022     832MB
    +
    +
    +
  • +
+

IMPORTANT: version tagged, multi-arch 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 upgrade
+
+

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

+ +
+ +
+
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/index.html b/blog/kiwi-tcms-team/index.html new file mode 100644 index 00000000..6081b20c --- /dev/null +++ b/blog/kiwi-tcms-team/index.html @@ -0,0 +1,2332 @@ + + + + + Kiwi TCMS - Articles by Kiwi TCMS Team + + + + + + + + + + + + + + + + + + + + + +
+

Articles by Kiwi TCMS Team

+ +
+
+ +

Kiwi TCMS 11.6

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 11.6! This is our first release +after the very positive reception we had at +WebSummit 2022!

+

IMPORTANT: this is a small release which contains security updates, +general improvements, bug fixes and 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)
+
+
+

---

+
+

Upstream container images (x86_64):

+
+kiwitcms/kiwi   latest  9773335a58d1    612MB
+
+
+

IMPORTANT: version tagged and multi-arch +container images are available only to +subscribers!

+
+

Changes since Kiwi TCMS 11.5

+
+

Security

+ +
+
+

Improvements

+
    +
  • Update django-extensions from 3.2.0 to 3.2.1

    +
  • +
  • Update jira from 3.4.0 to 3.4.1

    +
  • +
  • Update psycopg2 from 2.9.3 to 2.9.5

    +
  • +
  • Update pygithub from 1.55 to 1.57

    +
  • +
  • Update python-gitlab from 3.9.0 to 3.11.0

    +
  • +
  • Update tzdata from 2022.2 to 2022.6

    +
  • +
  • Container is now built on top of Red Hat Enteroprise Linux 9 and Python 3.9

    +

    Warning:

    +
    +

    There is high risk of breaking downstream containers. Pay attention to +bind-mounted settings files. Inspect downstream Dockerfile & docker-compose.yml +files !!!

    +
    +
  • +
  • Unify some translation strings

    +
  • +
  • Document add-on issue tracker integrations

    +
  • +
  • Rename Properties to Parameters because "test case parameters" is +more widely used

    +
  • +
+
+
+

Bug fixes

+
    +
  • JIRA.get_issue_type_from_jira() now accepts a second argument. Fixes +Issue #2929 (@cmbahadir)
  • +
  • Fix typo in documentation (Christian Clauss)
  • +
  • Trim white-space after splitting parameter values. For example the inputs +'OS=Linux' and 'OS = Windows ' will result in +Key: 'OS', Values: ['Linux', 'Windows']
  • +
+
+
+

Refactoring and testing

+
    +
  • Update Fedora from 32 to 36 in /tests/bugzilla
  • +
  • Remove Travis CI config b/c we don't use it anymore
  • +
  • Add Coverity Scan as a GitHub action
  • +
  • Don't scan devel dependencies with Coverity Scan
  • +
  • Redirect to where we came from in case posting a comment results in invalid +form
  • +
  • Configure Dependabot to update Docker containers and try tightening security +around docker containers used during testing
  • +
  • Use npm audit fix to automatically update some Node.js dependecies
  • +
  • Execute npm audit signatures when installing Node.js packages
  • +
  • Start using find_namespace_packages() to resolve +'Package would be ignored' warnings from setuptools
  • +
  • Add missing field in setup() to avoid a warning
  • +
+
+ +
+
+

Kiwi TCMS Enterprise v11.6-mt

+
    +
  • Based on Kiwi TCMS v11.6

    +
  • +
  • Update containers for RHEL 9, CentOS Stream 9 and Python 3.9

    +
  • +
  • Update actions/checkout from 2 to 3

    +
  • +
  • Update django-ses from 3.1.2 to 3.2.2

    +
  • +
  • Update kiwitcms-tenants from 2.3.1 to 2.3.2

    +
  • +
  • Update kiwitcms-trackers-integration from 0.2.0 to 0.3.0. +Supports integration with OpenProject and Mantis BT. +Closes Issue #2203 and +Issue #879

    +
    +

    Private images:

    +
    +quay.io/kiwitcms/version            11.6 (aarch64)          cf244e2f1dac    08 Nov 2022     636MB
    +quay.io/kiwitcms/version            11.6 (x86_64)           9773335a58d1    08 Nov 2022     612MB
    +quay.io/kiwitcms/enterprise         11.6-mt (aarch64)       55cf76524ebd    08 Nov 2022     858MB
    +quay.io/kiwitcms/enterprise         11.6-mt (x86_64)        61f48a62666b    08 Nov 2022     832MB
    +
    +
    +
  • +
+

IMPORTANT: version tagged, multi-arch 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 upgrade
+
+

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

+ +
+ +
+
+
+ + +
+

"Cfp banner"

+

Attention testers! On behalf of +Testing and Automation devroom +we'd like to announce that call for participation is now open.

+

Important: devroom will take place 09:00 to 12:50, Sunday, February 5th 2023 at +ULB Solbosch Campus, Brussels, Belgium! +Presentations will be streamed online but all accepted speakers are required to deliver +their talks in person! The devroom will not host pre-recorded videos in 2023!

+

Here are some ideas for topics that are a good fit for this devroom:

+

Testing in the real, open source world

+
    +
  • War stories/strategies for testing large scale or complex projects
  • +
  • Demystify resource e.g. systems/device/cloud provisioning in a CI loop
  • +
  • Tools that extend the ability to test low-level code, e.g. bootloaders, init +systems, etc.
  • +
  • Projects that are introducing new/interesting ways of testing "systems"
  • +
  • Address the automated testing frameworks fragmentation
  • +
  • Lessons learned from testing
  • +
+

Cool Tools (good candidates for lightning talks)

+
    +
  • How your open source tool made developing quality software better
  • +
  • What tools do you use to setup your CI/CD
  • +
  • Combining projects/plugins/tools to build amazing things "Not enough people in +the open source community know how to use $X, but here's a tutorial on how to +use $X to make your project better."
  • +
+

In the past the devroom has seen both newbies/students and experienced professionals and +past speakers as part of the audience and talks covering from beginner/practical +to advanced/abstract topics. If you have doubts then submit your proposal and +leave a comment for the devroom managers and we'll get back to you.

+

Checkout +https://fosdem-testingautomation.github.io/ for more information!

+

Happy Testing!

+
+

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

+ +
+
+
+
+ +

Meet Kiwi TCMS at WebSummit 2022 in Lisbon

+
+ + +
+ +
+

Kiwi TCMS is happy to announce that we're taking part in +WebSummit 2022, Nov 01-04 in Lisbon, Portugal. +We're joining as a featured startup +in the Enterprise Software Solutions category.

+

Kiwi TCMS will have an on-site presence on +Wednesday, Nov 02 at Pavilion 4, Stand A709. Check-out the map for more details: +venue map

+

For engineers

+

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. We've got new stickers too!

+

Alex and Zaklina will be there to answer all of your questions regarding +open source, community, support, various integrations and the differences between +Self-Support, SaaS and Enterprise subscriptions!

+

"black boxes"

+

IMPORTANT: We've previously announced participation in +Testing Portigal at the end of November. +Unfortunately this had to be canceled due to personal reasons. If you are a test or +QA engineer please swing by and Alex can tell you a bit about his presentation!

+

For partners

+

If you are another ISV providing engineering tools, a product outsourcing company +or a devel/testing services venture we've got a partnership proposal for you!

+

We're interested in partners where we can integrate other products with Kiwi TCMS +and provide a better offering; provide extra services (e.g. managed hosting) and/or +provide more transparency to your own customers (e.g. allow them to see how their products +are being tested).

+

Message us via the WebSummit mobile app and request a meeting or better yet, +find our team on-site!

+

After hours

+

The Kiwi TCMS team will be joining the following after-hours events:

+ +

Catch-up with us for a beer and let's talk testing and open source!

+
+

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

+ +
+
+
+
+ +

Kiwi TCMS 11.5

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 11.5!

+

IMPORTANT: +This is a small release which contains several improvements, bug fixes +and 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)
+
+
+

---

+
+

Upstream container images (x86_64):

+
+kiwitcms/kiwi   latest  66c51b64e0a6    608MB
+
+
+

IMPORTANT: version tagged and multi-arch +container images are available only to +subscribers!

+
+

Changes since Kiwi TCMS 11.4

+
+

Improvements

+
    +
  • Update jira from 3.3.1 to 3.4.0
  • +
  • Update pygments from 2.12.0 to 2.13.0
  • +
  • Update python-gitlab from 3.7.0 to 3.9.0
  • +
  • Update tzdata from 2022.1 to 2022.2
  • +
  • Add Product drop down field in Build admin page. Closes +Issue #2818
  • +
  • Add 'prune' argument required for Django 4.1 compatibility
  • +
  • Improve documentation around DEFAULT_GROUPS
  • +
  • Update docs about language preferences and add a Change language menu item. Closes +Issue #2901, +Issue #2902, +Issue #2903
  • +
  • Performance improvement for Status matrix telemetry
  • +
  • Performance improvement for Execution trends telemetry
  • +
  • Display a spinner widget while telemetry data is still loading. Closes +Issue #1801
  • +
+
+
+

Bug fixes

+
    +
  • Fix error Jquery deferred: No length property of null object (@cmbahadir)
  • +
+
+
+

Refactoring and testing

+
    +
  • Add test for AnonymousViewBackend & auth. permissions
  • +
  • Exclude auth.view_ permissions from AnonymousViewBackend
  • +
  • Specify 30 seconds timeout for internal requests via the requests library
  • +
+
+ +
+
+

Kiwi TCMS Enterprise v11.5-mt

+
    +
  • Based on Kiwi TCMS v11.5

    +
  • +
  • Update django-python3-ldap from 0.15.2 to 0.15.3

    +
  • +
  • Update django-ses from 3.1.0 to 3.1.2

    +
  • +
  • Update kiwitcms-tenants from 2.1.1 to 2.3.0

    +
  • +
  • Update kiwitcms-github-app from 1.3.3 to 1.4.0

    +
    +

    Private images:

    +
    +quay.io/kiwitcms/version            11.5 (aarch64)          4be7894de8ae    06 Sep 2022     638MB
    +quay.io/kiwitcms/version            11.5 (x86_64)           66c51b64e0a6    06 Sep 2022     608MB
    +quay.io/kiwitcms/enterprise         11.5-mt (aarch64)       82d64398d8bf    06 Sep 2022     862MB
    +quay.io/kiwitcms/enterprise         11.5-mt (x86_64)        8a5b0b58bcca    06 Sep 2022     829MB
    +
    +
    +
  • +
+

IMPORTANT: version tagged, multi-arch 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 upgrade
+
+

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

+ +
+ +
+
+
+
+ +

Kiwi TCMS 11.4

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 11.4!

+

IMPORTANT: +This is a medium sized release which contains security related updates, +multiple improvements, database and API changes, new settings, bug fixes +and 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)
+
+
+

---

+
+

Upstream container images (x86_64):

+
+kiwitcms/kiwi   latest  8c8356c0268d    610MB
+
+
+

IMPORTANT: version tagged and multi-arch +container images are available only to +subscribers!

+
+

Changes since Kiwi TCMS 11.3

+
+

Security

+ +
+
+

Improvements

+
    +
  • Update bleach from 5.0.0 to 5.0.1
  • +
  • Update django-colorfield from 0.6.3 to 0.7.2
  • +
  • Update django-extensions from 3.1.5 to 3.2.0
  • +
  • Update django-tree-queries from 0.9.0 to 0.11.0
  • +
  • Update jira from 3.2.0 to 3.3.1
  • +
  • Update markdown from 3.3.6 to 3.4.1
  • +
  • Update mysqlclient from 2.1.0 to 2.1.1
  • +
  • Update python-gitlab from 3.3.0 to 3.7.0
  • +
  • Update node_modules/marked from 4.0.14 to 4.0.18
  • +
  • Relax docutils requirement. Use latest version
  • +
  • Add template block which will allow logo customizations (Ivajlo Karabojkov)
  • +
  • Don't show PLUGINS menu when no plugins are installed. References +Issue #2729
  • +
  • Add information about Kiwi TCMS user to 1-click bug reports. Closes +Issue #2591
  • +
  • Use a better icon to signify a manual test inside the user interface
  • +
  • Change UserAdmin to be permission based instead of being role-based. +Fixes Issue #2496
  • +
  • Allow post-processing of automatically created issues. Closes +Issue #2383
  • +
  • Allow more customization over issue type discovery for Jira. Closes +Issue #2833
  • +
  • Allow more customization over project discovery for Jira
  • +
  • Allow more customization over Redmine tracker. Closes +Issue #2382
  • +
  • Allow DB settings to be read from Docker Secret files. Fixes +Issue #2606
  • +
  • Add filter on TestRun page to show test executions assigned to the +current user. Closes +Issue #333
  • +
  • Add URL for creating new TestRun from a TestPlan. The format is +/runs/from-plan/<plan-id>/. Closes +Issue #274
  • +
  • Add bug.Severity attribute which is fully customizeable. Closes +Issue #2703
  • +
  • Update documentation around TCMS_ environment variables +used by automation plugins
  • +
  • Update documentation to denote that pytest plugin is now generally available
  • +
  • Document necessary permissions for adding new users. References +Issue #2496
  • +
+
+
+

Database

+
    +
  • New migration for bug.Severity model
  • +
+
+
+

Settings

+ +
+
+

API

+
    +
  • If default_tester field is not specified for TestRun.create() method +then use the currently logged-in user.
  • +
  • Return value for method TestExecution.filter() now contains fields +expected_duration and actual_duration. Closes +Issue #1924
  • +
  • Return value for method Bug.filter() now contains fields +severity__name, severity__icon and severity__color
  • +
+
+
+

Bug fixes

+
    +
  • Adjust field name when rendering test execution on TestRun page. Fixes +Issue #2794
  • +
  • Render rich text editor preview via backend API:
      +
    • Makes display on HTML pages and editor preview the same. Fixes +Issue #2659
    • +
    • Fixes a bug with markdown rendered in JavaScript. Fixes +Issue #2711
    • +
    +
  • +
  • Stop propagation of HTML unescape which causes display issues with +code snippets that contain XML values. Fixes +Issue #2800
  • +
  • Show bug text only when creating new records, not when editing
  • +
  • Properly display & validate related form fields when editing bugs
  • +
  • Don't send duplicate emails when editing bugs. Fixes +Issue #2782
  • +
+
+
+

Refactoring and testing

+
    +
  • Convert two assignment statements to augmented source code. Closes +Issue #2610 (Markus Elfring)

    +
  • +
  • Rename method IssueTrackerType.report_issue_from_testexecution():

    +
      +
    • Rename to _report_issue() which returns tuple of (object, str)
    • +
    • In case new issue was not created automatically and the method falls +back to manual creation the return value will be (None, str)
    • +
    • report_issue_from_testexecution() will call _report_issue() +internally and handle the change in return type
    • +
    +
    +

    Note

    +
      +
    • This change is backwards compatible!
    • +
    • For customized issue tracker integration you will have to apply +the same changes to your customized code if you wish new functionality, +like post-processing of automatically created issues to work.
    • +
    +
    +
  • +
  • Add tests for backup & restore commands. Closes +Issue #2695

    +
  • +
  • Update versions of several CI tools

    +
  • +
  • Updates around new version of pylint

    +
  • +
  • Use codecov-action to upload coverage results

    +
  • +
  • Remove setuptools and other workarounds in tests

    +
  • +
  • Don't special case dependencies which already provide wheel packages

    +
  • +
  • Workaround an issue with setuptools_git_archive introduced by jira==3.2.0

    +
  • +
  • Workaround the fact that django-ranged-response doesn't provide wheels

    +
  • +
  • Report test results via kiwitcms-django-plugin. Closes +Issue #1757

    +
  • +
+
+
+

Translations

+ +
+
+
+

Kiwi TCMS Enterprise v11.4-mt

+
    +
  • Based on Kiwi TCMS v11.4

    +
  • +
  • Update django-python3-ldap from 0.13.1 to 0.15.2

    +
  • +
  • Update django-ses from 3.0.1 to 3.1.0

    +
  • +
  • Update dj-database-url from 0.5.0 to 1.0.0

    +
  • +
  • Add more icons for extra GitHub login backends

    +
  • +
  • Add images for various Google login backends

    +
    +

    Private images:

    +
    +quay.io/kiwitcms/enterprise         11.4-mt (aarch64)       f5720d030612    03 Aug 2022     862MB
    +quay.io/kiwitcms/enterprise         11.4-mt (x86_64)        8ffd5a64a4d1    03 Aug 2022     829MB
    +quay.io/kiwitcms/version            11.4 (aarch64)          62207c605dcf    03 Aug 2022     639MB
    +quay.io/kiwitcms/version            11.4 (x86_64)           8c8356c0268d    03 Aug 2022     610MB
    +
    +
    +
  • +
+

IMPORTANT: version tagged, multi-arch 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 upgrade
+
+

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

+ +
+ +
+
+
+
+ +

Mejor Sitio Web 2022

+
+ + +
+ +
+

Kiwi TCMS is happy to announce that we have been awarded a "Best Website 2022" award +by Reviewbox.es, scoring 36/40 on their evaluation. +The review criteria can be found at https://www.reviewbox.es/los-mejores-sitios-web/.

+
+

Querido equipo de Kiwitcms,

+

¡Felicidades!

+

Habéis logrado lo que muchos otros desean:

+

Habéis acumulado 36/40 puntos en nuestra investigación de +mercado y por lo tanto calificasteis (mínimo 30 de 40 puntos necesarios) +para nuestro premio Mejor Sitio Web 2022.

+

Resultados y criterios de investigación

+

URL: Kiwitcms-Team

+

Puntos: 36/40

+
+

Our team is happy to accept this award, which comes exactly 2 years +after we became an OpenAwards winner.

+

Thank you and Happy testing!

+
+

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

+ +
+
+
+
+ +

Meet Kiwi TCMS at Collision 2022 in Toronto

+
+ + +
+ +
+

Kiwi TCMS is happy to announce that we're taking part in +Collision 2022, Jun 20-23 in Toronto, Canada. +We're joining as a featured startup +in the Enterprise Software Solutions category.

+

Kiwi TCMS will have an on-site presence on +Thursday, Jun 23, Stand A3201. Check-out the map for more details: +venue map

+

For engineers

+

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 +Self-Support, SaaS and Enterprise subscriptions!

+

"black boxes"

+

If you are a test or QA engineer please answer our survey +https://forms.gle/LTYnimNjbUaSmTeL8. Participants may claim a small surprise at our booth!

+

For startups

+

We know that in a startup, the major strength of the people is that they are multitaskers. +And it is often the case that the founders will perform some functional and acceptance testing +because they know all the important use-cases.

+

Still you need to document and organize your testing activities early on. You need to +start collecting information about which features of the product have been tested and +how they have been tested. That's the basis on which you can scale your QA team and +future testing activities.

+

If you are a fellow startup exhibitor please swing by out stand to talk about +organizing your product testing with Kiwi TCMS. We know the drill because we're in +the same boat!

+

For partners

+

If you are another ISV providing engineering tools, a product outsourcing company +or a devel/testing service venture we've got a partnership proposal for you!

+

We're interested in partners where we can integrate other products with Kiwi TCMS +and provide a better offering; provide extra services (e.g. managed hosting) and/or +provide more transparency to your own customers (e.g. allow them to see how their products +are being tested).

+

Message us via the Collision app +and request a meeting or better yet, find our team on-site!

+

Virtual press conference

+

If you aren't around in Toronto please join us for a pre 2022 Collision News Conference (VIRTUAL) on +Wednesday, June 15, 1:00 - 2:00 p.m. EDT / 17:00 - 18:00 UTC.

+

For more information see +https://www.eventbrite.com/e/pre-collision-press-conference-1-of-2-hosted-by-brotmanwinterfried-tickets-365110534437

+

After hours

+

The Kiwi TCMS team will be joining the following after-hours events:

+ +

For media

+

If you have any questions, need additional information or would like to schedule an interview, +please email Steve Winter at swinter @ aboutbwf.com (remove spaces) or call 202-468-8100.

+
+

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

+ +
+
+
+
+ +

Zaklina, welcome to the Kiwi TCMS team

+
+ + +
+ +
+

Kiwi TCMS is pleased to welcome Zaklina Stojnev to our team!

+

+

She holds an engineering degree in computer science and +has been working as a test engineer for more than 10 years. +In the last couple of years her main focus is automation in testing, +finding ways to improve testing process and tools that will support testing activities.

+

Zaklina will be the primary contact for our +History of Testing project where we are +compiling a database of people who influenced or made important contributions to our professional field.

+

With her prior experience as a conference organizer Zaklina will also be lending a much needed hand +in preparing the Testing and Automation devroom at FOSDEM and showcasing Kiwi TCMS at different +events.

+

You can find her on-boarding progress at TR-1190 and her +contributions on +GitHub.

+

Happy Testing!

+
+

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

+ +
+
+
+ + +
+

Hello testers, +we are conducting a little research/survey into how other testers and QA professionals +use modern platforms like GitHub, GitLab and Bitbucket. At this moment in time our goal +is to collect as much information as possible in order to understand the existing ecosystem.

+

If you can spare 5 minutes of your time please check-out +https://forms.gle/avqjWVvSPsE4SWQr5.

+

We promise there will be no follow up emails unless you indicate that you agree to that.

+

Happy Testing!

+
+

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

+ +
+
+
+
+ +

New versions of automation framework plugins

+
+ + +
+ +
+

Kiwi TCMS is pleased to announce new versions of our plugins for different +test automation frameworks:

+ +

These new versions are compatible with Kiwi TCMS v11.x and include several improvements +and bug fixes. Check-out the pages above for individual information and instructions on +how to use them.

+

Happy testing!

+

---

+

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

+ + +
+
+
+
+ +

Kiwi TCMS 11.3

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 11.3 which is the 100th tagged version +in our git repository!

+

IMPORTANT: +This is a small release which contains security related updates, several improvements, +bug fixes and new translations! Most importantly the kiwitcms-tenants plugin now supports +tenant groups and permissions!

+

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

---

+
+

Upstream container images (x86_64):

+
+kiwitcms/kiwi   latest  58dcfa91e816    629MB
+
+
+

IMPORTANT: version tagged and multi-arch +container images are available only to +subscribers!

+
+

Changes since Kiwi TCMS 11.2

+
+

Security

+ +
+
+

Improvements

+
    +
  • Update bleach from 4.1.0 to 5.0.0
  • +
  • Update django-tree-queries from 0.7.0 to 0.9.0
  • +
  • Update jira from 3.1.1 to 3.2.0
  • +
  • Update pygments from 2.11.2 to 2.12.0
  • +
  • Update python-gitlab from 3.2.0 to 3.3.0
  • +
  • Update tzdata from 2021.5 to 2022.1
  • +
  • Update node_modules/marked from 4.0.12 to 4.0.14
  • +
  • Update node_modules/prismjs from 1.27.0 to 1.28.0
  • +
  • Allow overriding of Azure Boards API version. Closes +Issue #2717
  • +
  • If tenant_groups is enabled then refresh_permissions command will +update default tenant groups too
  • +
  • Document tenant-group permissions
  • +
+
+
+

Settings

+
    +
  • New setting AZURE_BOARDS_API_VERSION, defaults to 6.0. Can be overriden +directly in settings or via environment variable with the same name
  • +
+
+
+

Bug fixes

+
    +
  • Patch for repositories under GitLab subgroups. Fixes +Issue #2643 (@cmeissl)
  • +
  • Don't crash if a comment user has been removed. Fixes +KIWI-TCMS-HZ
  • +
+
+
+

Refactoring

+
    +
  • Split Users & Groups menu items under ADMIN entry in navigation
  • +
  • [pre-commit.ci] updates
  • +
  • pylint adjustments
  • +
+
+
+

Translations

+ +
+
+
+

Kiwi TCMS Enterprise v11.3.1-mt

+
    +
  • Based on Kiwi TCMS v11.3

    +
  • +
  • Update django-ses from 2.6.0 to 3.0.1

    +
  • +
  • Update kiwitcms-tenants from 1.11.0 to 2.1.1 for +tenant groups support

    +
    +

    Private images:

    +
    +quay.io/kiwitcms/enterprise         11.3.1-mt (aarch64  58a53d616105    27 Apr 2022     894MB
    +quay.io/kiwitcms/enterprise         11.3.1-mt (x86_64)  3b5e7fbd234a    27 Apr 2022     847MB
    +quay.io/kiwitcms/version            11.3 (aarch64)      e9f34a86cd0b    27 Apr 2022     671MB
    +quay.io/kiwitcms/version            11.3 (x86_64)       58dcfa91e816    27 Apr 2022     627MB
    +
    +
    +
  • +
+

IMPORTANT: version tagged, multi-arch 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 upgrade
+
+

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

+ +
+ +
+
+
+
+ +

Kiwi TCMS 11.2

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 11.2.

+

IMPORTANT: +This is a small release which contains several improvements, new API methods, +internal refactoring and new translations! This is the first release to ship +aarch64 container images!

+

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

---

+
+

Upstream container images (x86_64):

+
+kiwitcms/kiwi   latest  bcc4c658440a    622MB
+
+
+

IMPORTANT: version tagged and multi-arch +container images are available only to +subscribers!

+
+

Changes since Kiwi TCMS 11.1

+
+

Improvements

+
    +
  • Update django from 4.0.2 to 4.0.3
  • +
  • Update django-grappelli from 3.0.2 to 3.0.3
  • +
  • Update django-simple-captcha from 0.5.14 to 0.5.17
  • +
  • Update python-bugzilla from 3.1.0 to 3.2.0
  • +
  • Update python-gitlab from 3.1.1 to 3.2.0
  • +
  • Update node_modules/prismjs from 1.26.0 to 1.27.0
  • +
  • Add new command to perform a collection of post-upgrade tasks. +Kiwi TCMS admins are advised to replace +manage.py migrate with manage.py upgrade (Ivajlo Karabojkov)
  • +
+
+
+

API

+
    +
  • New API method Category.create(). Fixes +Issue #2705 (Erik Heeren)
  • +
  • New API method Classification.create(). Fixes +Issue #2705 (Erik Heeren)
  • +
+
+
+

Refactoring and testing

+
    +
  • Add docker build & push automation
  • +
  • Fix Bandit exclusion rule
  • +
  • Test and build on aarch64
  • +
  • Apply auto fixes fro pre-commit.ci
  • +
  • Apply auto fixes from Deepsource
  • +
  • Update versions of several GitHub Actions
  • +
  • Use the appropriate path to package.json for Dependabot
  • +
  • Remove old Telemetry link in menu to avoid confusion
  • +
+
+ +
+
+

Kiwi TCMS Enterprise v11.2-mt

+
    +
  • Based on Kiwi TCMS v11.2

    +
  • +
  • Update django-ses from 2.4.0 to 2.6.0

    +
  • +
  • Update python3-saml from 1.13.0 to 1.14.0

    +
  • +
  • Revert "Use django.contrib.staticfiles.storage from Django==3.2.12". +Instead use the implementation from latest Django version. Closes +Issue #140

    +
  • +
  • Start building kiwitcms/enterprise on aarch64

    +
  • +
  • Add changelog check & docker release automation

    +
  • +
  • Add test for PSA login URLs on login page. References +Issue #83

    +
  • +
  • Add SAML & Azure AD logo images

    +
  • +
  • Update GitHub Actions

    +
  • +
  • Hard-code testing with Keycloak 16.1.1 to workaround significant differences +with Keycloak v17 container

    +
    +

    Private images:

    +
    +quay.io/kiwitcms/enterprise         11.2-mt (aarch64)   fe5e869e36f6    09 Mar 2022    890MB
    +quay.io/kiwitcms/enterprise         11.2-mt (x86_64)    134320d5fb7c    09 Mar 2022    841MB
    +quay.io/kiwitcms/version            11.2 (aarch64)      3b782830d19d    09 Mar 2022    665MB
    +quay.io/kiwitcms/version            11.2 (x86_64)       bcc4c658440a    09 Mar 2022    620MB
    +
    +
    +
  • +
+

IMPORTANT: version tagged, multi-arch 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 upgrade
+
+

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!

+ +
+ +
+
+
+
+ +

New and updated subscription plans for Kiwi TCMS

+
+ + +
+ +
+

An active Kiwi TCMS subscription ensures a sustainable future for +all open source software maintained by the Kiwi TCMS team and +provides its holder with access to software versions and certain +level services. Given recent changes to +private container credentials +we have refreshed our product and service definitions.

+

New Self Support subscription

+

This is an entry-level subscription which provides read-only access to version tagged +containers of upstream Kiwi TCMS. It is suitable for experimentation, +very small teams, development against Kiwi TCMS and convenience during upgrades.

+

You are free to use any older or future versions of Kiwi TCMS available from +the kiwitcms/version container repository!

+

This subscription plan is also available via +GitHub Marketplace.

+

Private Tenant

+

This is our most popular subscription type.

+

Starting today it also includes access +to the kiwitcms/version container repository! +This is suitable for teams who prefer to be hosting Kiwi TCMS on-premise instead of +using the namespace provided under *.tenant.kiwitcms.org.

+

This subscription plan is also available via +GitHub Marketplace.

+

Everything else remains the same!

+

Enterprise Subscription

+

This is Kiwi TCMS tailored towards on-premise deployments in larger organizations. +Starting today it also automatically includes 1x Private Tenant which can be used +for development or experiments.

+

Support availability has been extended by 2 hours in order to cover more geographic areas!

+

Future features coming to enterprise subscribers - +tools for provisioning of Kiwi TCMS inside cloud environments and aarch64 containers.

+

Price has been increased to 400 $/mo.

+

New Managed Hosting subscription

+

This new offering is designed for the organizations which don't want to bother with provisioning +containers, configuring DNS resolution, managing SSL certificates, regular upgrades and backups. +The Kiwi TCMS team can do all of this for you and provide a fully isolated instance inside AWS.

+

Support availability has been extended by 2 days, covering Saturday and Sunday. When necessary +Managed Hosting subscribers have the option for video conferences with their support contact.

+
+

All changes are effective immediately. Existing customers are granted access to everything +that's new while billing changes are not applied.

+

If you prefer the "free beer" version of +Kiwi TCMS it is available via docker pull kiwitcms/kiwi - free to use +and without any guarantees according to GPLv2.

+

Please consider subscribing and help us make Kiwi TCMS better!

+

Happy Testing!

+
+
+
+
+ +

Container Registry Credentials for Subscribers

+
+ + +
+ +
+

Kiwi TCMS subscribers had to go through a manual process of registering +a username with our container registry, quay.io and email support +before they could access private docker images. This process is now fully +automated!

+

"private credentials card"

+

Credentials are automatically created upon subscription payment and configured for +read-only access to respective repositories based on the type of subscription. +You can find your credentials at the +subscriptions page, +PLUGINS -> Subscriptions. To authenticate try

+
$ docker login -u="USERNAME" -p "PASSWORD-TOKEN" quay.io
+# or
+$ echo "PASSWORD-TOKEN" | docker login -u="USERNAME" --password-stdin quay.io
+
+ + +

If you would like to have access to private container repositories for Kiwi TCMS +checkout the containers page and +subscribe!

+

Happy Testing!

+
+
+
+
+ +

Kiwi TCMS 11.1

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 11.1.

+

IMPORTANT: +This is a small release which contains security related updates, several improvements, +bug fixes and 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)
+
+
+

---

+
+

Container images:

+
+kiwitcms/kiwi       latest  72099aa8ee93    629 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
+
+
+

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

+
+

Changes since Kiwi TCMS 11.0

+
+

Security

+
    +
  • Update Django from 3.2.10 to 4.0.2 to fix several fulnerabilities: +CVE-2022-22818, CVE-2022-23833, CVE-2021-45115, CVE-2021-45116, +CVE-2021-45452. Of those we believe that only +CVE-2022-23833: Denial-of-service possibility in file uploads may directly +impact Kiwi TCMS
  • +
+
+
+

Improvements

+
    +
  • Update django-contrib-comments from 2.1.0 to 2.2.0
  • +
  • Update django-uuslug from 1.2.0 to 2.0.0
  • +
  • Update python-gitlab from 3.1.0 to 3.1.1
  • +
  • Update node_modules/marked from 4.0.10 to 4.0.12
  • +
+
+
+

Database

+
    +
  • New migration for django-simple-captcha
  • +
+
+
+

Settings

+
    +
  • RECAPTCHA_PUBLIC_KEY, RECAPTCHA_PRIVATE_KEY and RECAPTCHA_USE_SSL +are no longer in use
  • +
  • New setting USE_CAPTCHA, defaults to True
  • +
  • The string "captcha" is added to INSTALLED_APPS
  • +
+
+
+

Bug fixes

+
    +
  • Fix inappropriate RPC calls causing Version and Build dropdown widgets to +display no values. Fixes +Issue #2704
  • +
+
+
+

Refactoring and testing

+
    +
  • Add tzdata to requirements
  • +
  • Replace django-recaptcha with django-simple-captcha
  • +
  • Adjust /init-db view to reliably detect when applying database migrations +is complete and not exit prematurely
  • +
+
+
+

Translations

+ +
+
+
+

Kiwi TCMS Enterprise v11.1-mt

+
    +
  • Based on Kiwi TCMS v11.1

    +
  • +
  • Update kiwitcms-github-app from 1.3.2 to 1.3.3

    +
  • +
  • Update django-ses from 2.3.1 to 2.4.0

    +
  • +
  • Update python3-saml from 1.12.0 to 1.13.0

    +
  • +
  • Workaround UnicodeDecodeError while building the docker image

    +
    +

    Private images:

    +
    +quay.io/kiwitcms/enterprise         11.1-mt         df5ce509fd41   854 MB
    +quay.io/kiwitcms/version            11.1            72099aa8ee93   629 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 11.0

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 11.0.

+

IMPORTANT: +This is a new major release which contains security related updates, several improvements, +API changes, bug fixes and 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)
+
+
+

---

+
+

Container images:

+
+kiwitcms/kiwi       latest  6600bc56a544    622 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
+
+
+

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

+
+

Changes since Kiwi TCMS 10.5

+
+

Improvements

+
    +
  • Update Django to 3.2.11
  • +
  • Update django-colorfield from 0.4.5 to 0.6.3
  • +
  • Update django-grappelli from 2.15.3 to 3.0.2
  • +
  • Update psycopg2 from 2.9.2 to 2.9.3
  • +
  • Update pygments from 2.10.0 to 2.11.2
  • +
  • Update python-gitlab from 2.10.1 to 3.1.0
  • +
  • Update node_modules/prismjs from 1.25.0 to 1.26.0
  • +
  • Update node_modules/marked from 2.1.3 to 4.0.10
  • +
  • Admin panel now allows to view, add, edit and delete Environment records
  • +
  • Allow selection of environment when creating new TestRun and display the chosen +values inside the TestRun page. Closes +Issue #1344
  • +
  • Creating a TestRun will now generate test execution matrix based on the available +environment and test case properties. Closes +Issue #1843
  • +
  • When generating a test execution matrix the supported algorithms are +"full" and "pairwise". Closes +Issue #1931
      +
    • Feature is enabled for test runs which contain test cases. This +feature is not shown when creating an empty test run
    • +
    • This feature isn't supported when subsequently adding new test cases +to test run
    • +
    +
  • +
  • Record a random hex number under /Kiwi/uploads/installation-id
  • +
+

Detailed information about properties, environments and test matrix generation +can be found +in a separate article.

+
+
+

Database

+
    +
  • New model testrun.Environment
  • +
  • New model testrun.EnvironmentProperty
  • +
  • New model testrun.Property
  • +
+

Warning:

+
+

These newly added models create additional permission labels with names +testruns | environment | Can .... environment, +testruns | property | Can .... property, +testruns | environment property | Can .... environment 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!

+
+
+
+

Settings

+
    +
  • Update the value of MODERNRPC_METHODS_MODULES setting to include +modules with the new API methods
  • +
+
+
+

API

+
    +
  • Method TestRun.add_case will now return a list.

    +
    +

    Warning

    +

    This breaks API compatibility with older versions and will break +all plugins which rely on this method. Use plugins v11 or greater!

    +
    +
  • +
  • Method TestRun.add_case return value will now include a field named +properties

    +
  • +
  • New methods Environment.properties, Environment.add_property and +Environment.remove_property

    +
  • +
  • New method TestRun.properties

    +
  • +
+
+
+

Bug fixes

+
    +
  • Send e-mail notification when adding comments to bugs. Fixes +Issue #2232 (@cmbahadir)
  • +
  • Disable the "+" button when there is no related element selected. Fixes +Issue #2561 (@cmbahadir)
  • +
  • When cloning test plans keep the existing test case sort order inside +the resulting test plan. Fixes +Issue #2218 (Nicolas Gelot)
  • +
  • Configure en_US.UTF-8 locale inside container. Allows upload of files with +unicode names. Fixes +Issue #2600
  • +
+
+
+

Refactoring and testing

+
    +
  • Refresh logo design
  • +
  • Pylint fixes
  • +
  • Pin setuptools b/c of problem with django-extensions
  • +
  • Remove redundant test scenario
  • +
  • Shell script refactoring
  • +
+
+ +
+
+

Kiwi TCMS Enterprise v11.0-mt

+
    +
  • Based on Kiwi TCMS v11.0

    +
  • +
  • Update kiwitcms-tenants from 1.8.0 to 1.11.0

    +
    +

    Private images:

    +
    +quay.io/kiwitcms/enterprise         11.0-mt         a730291750f8   846 MB
    +quay.io/kiwitcms/version            11.0            6600bc56a544   622 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 Enterprise 10.5.1

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS Enterprise version 10.5.1!

+

IMPORTANT: +this is a small release which contains minor improvements and bug-fixes.

+

You can explore everything at +https://public.tenant.kiwitcms.org!

+
+

Kiwi TCMS Enterprise v10.5.1-mt

+
    +
  • Based on Kiwi TCMS v10.5

    +
  • +
  • Update django-python3-ldap from 0.13.0 to 0.13.1

    +
  • +
  • Update kiwitcms-github-app from 1.3.1 to 1.3.2

    +
    +

    Private images:

    +
    +quay.io/kiwitcms/enterprise         10.5.1-mt       c4d745bd914c   806MB
    +
    +
    +
  • +
+

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!

+ +
+ +
+
+
+
+ +

New versions of automation frameworks plugins

+
+ + +
+ +
+

Kiwi TCMS is pleased to announce new versions of our plugins for different +test automation frameworks:

+ +

The new versions are future compatible with upcoming Kiwi TCMS v11 and also with existing +Kiwi TCMS v10.x installations. Check-out the pages above for individual instructions.

+

Happy testing!

+

---

+

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

+ + +
+
+
+ + +
+

"Cfp banner"

+

Attention testers! On behalf of +Testing and Automation devroom +we'd like to announce that call for participation is now open.

+

Here are some ideas for topics that are a good fit for this devroom:

+

Testing in the real, open source world

+
    +
  • War stories/strategies for testing large scale or complex projects
  • +
  • Demystify resource e.g. systems/device/cloud provisioning in a CI loop
  • +
  • Tools that extend the ability to test low-level code, e.g. bootloaders, init +systems, etc.
  • +
  • Projects that are introducing new/interesting ways of testing "systems"
  • +
  • Address the automated testing frameworks fragmentation
  • +
  • Lessons learned from testing
  • +
+

Cool Tools (good candidates for lightning talks)

+
    +
  • How your open source tool made developing quality software better
  • +
  • What tools do you use to setup your CI/CD
  • +
  • Combining projects/plugins/tools to build amazing things "Not enough people in +the open source community know how to use $X, but here's a tutorial on how to +use $X to make your project better."
  • +
+

In the past the devroom has seen both newbies/students and experienced professionals and +past speakers as part of the audience and talks covering from beginner/practical +to advanced/abstract topics. If you have doubts then submit your proposal and +leave a comment for the devroom managers and we'll get back to you.

+

Checkout +https://fosdem-testingautomation.github.io/ for more information!

+

Happy Testing!

+
+

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

+ +
+
+
+
+ +

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

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

+
+

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!

+ +
+ +
+
+ +
+

+ Page 1 / 6 +

+ Older Posts +
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/index2.html b/blog/kiwi-tcms-team/index2.html new file mode 100644 index 00000000..fe3bb930 --- /dev/null +++ b/blog/kiwi-tcms-team/index2.html @@ -0,0 +1,2606 @@ + + + + + Kiwi TCMS - Articles by Kiwi TCMS Team + + + + + + + + + + + + + + + + + + + + + +
+

Articles by Kiwi TCMS Team

+ +
+
+ +

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!

+
+

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 that low though?

+
+

Ready ? Explore subscriptions!

+
+

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

+ +
+
+
+
+ +

Catch up with Kiwi TCMS at WebSummit 2021 Lisbon

+
+ + +
+ +
+

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!

+ +
+
+
+
+ +

Announcing winners of 6 tickets for HackConf 2021

+
+ + +
+ +
+

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!

+ +
+ +
+
+
+
+ +

Meet Kiwi TCMS at WebSummit 2021 in Lisbon

+
+ + +
+ +
+

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!

+ +
+
+
+
+ +

Please nominate Kiwi TCMS at MLH Open Source Awards

+
+ + +
+ +
+

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. +
  3. Click the Submit a Nomination button
  4. +
  5. Follow the instructions on screen!
  6. +
+

Expected results:

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

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!

+ +
+
+
+
+ +

Win 6 SUPERFAN tickets for HackConf 2021

+
+ + +
+ +
+

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

+
    +
  • Add tests for missing coverage in kiwi_auth.admin. References +Issue #1607 +(Mariyan Garvanski)
  • +
  • Fix some eslint issues and formatting in testcases/js/get.js
  • +
  • Use shorter URL when cloning test cases from TP page. References +Issue #1054
  • +
  • Limit URI size to 10KiB. This alone should allow for more than 1000 PKs +specified for cloning. In addition Django itself limits the maximum number of +GET/POST fields to 1000 via the DATA_UPLOAD_MAX_NUMBER_FIELDS setting, +see https://docs.djangoproject.com/en/3.2/ref/settings/#data-upload-max-number-fields. +Closes +Issue #1054
  • +
+
+ +
+
+

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

Translations

+ +
+
+
+

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!

+ +
+
+
+
+ +

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!

+ +
+ +
+
+
+
+ +

Excellence in Innovation 2020 award for Kiwi TCMS

+
+ + +
+ +
+

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

+ +
+ +
+
+
+ + +
+

"Cfp banner"

+

Attention open source testers: Testing and Automation devroom at FOSDEM'21 +is happening next year! Call for participation is now open. +Checkout +https://fosdem-testingautomation.github.io/ for more information!

+

Happy Testing!

+
+

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

+ +
+
+
+
+ +

Kiwi TCMS 8.8

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 8.8!

+

IMPORTANT: this release includes many improvements, +API changes, bug fixes, translation updates, new tests and internal refactoring. +It is the sixth release to include contributions via our +open source bounty program. +You can explore everything at +https://public.tenant.kiwitcms.org!

+

This is also the first 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  4b31ecf8ab5b    654 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.7

+
+

Improvements

+
    +
  • Update bleach from 3.1.5 to 3.2.1
  • +
  • Update django-extensions from 3.0.8 to 3.0.9
  • +
  • Update django from 3.1.1 to 3.1.3
  • +
  • Update django-simple-history from 2.11.0 to 2.12.0
  • +
  • Update markdown from 3.2.2 to 3.3.3
  • +
  • Update pygments from 2.7.0 to 2.7.2
  • +
  • Update python-bugzilla from 2.5.0 to 3.0.1
  • +
  • Update node_modules/marked from 1.1.1 to 1.2.3
  • +
  • Update node_modules/prismjs from 1.21.0 to 1.22.0
  • +
  • Add management command refresh_permission. Closes +Issue #1137 (Ivajlo Karabojkov)
  • +
  • Add bug tracker integration for Azure Boards. Closes +Issue #1979 (@cmbahadir)
  • +
  • Add autosave configuration to web editor. Closes +Issue #1958 (Mfon Eti-mfon)
  • +
  • Change ON/OFF buttons messages to Yes/No for several buttons (Alexander Tsvetanov)
  • +
  • Add support for object-level permissions for TestCase, +TestPlan, TestRun and Bug objects via django-guardian
  • +
  • Complete redesign of Test Plan page to match the rest of Kiwi TCMS:
      +
    • modern look and feel using the PatternFly UI library
    • +
    • remove unused legacy code & HTML templates
    • +
    • closes +Issue #663, +Issue #1977
    • +
    +
  • +
  • Enable Markdown support for strike-through text
  • +
  • Always pull latest RPMs when building container images
  • +
  • Update documentation and images
  • +
+
+
+

Settings

+
    +
  • AUTHENTICATION_BACKENDS setting is now explicitly specified because of +django-guardian. Take care to include the default backends if you +override this setting. See tcms/settings/common.py for more information.
  • +
+
+
+

Database

+
    +
  • Add index to TestCase.summary field
  • +
  • Additional migrations from django-guardian around object-level permissions
  • +
  • New AnonymousUser record added by django-guardian
  • +
  • Start using django-tree-queries which improves how tree based structures +are stored in the database.
  • +
+

important:

+
+Requires PostgreSQL, sqlite3 >= 3.8.3, MariaDB >= 10.2.2 or +MySQL >= 8.0 (if running without ONLY_FULL_GROUP_BY).
+

warning:

+
+Supports only trees with max. 50 levels on MySQL/MariaDB, since those databases +do not support arrays and require us to provide a maximum length upfront. +This means up to 50 levels of nested child-parent test plans!
+
+
+

API

+
    +
  • Method TestExecution.update() will now modify field close_date +depending on test execution status. Fixes +Issue #1820
  • +
  • Method TestCase.add_comment() now returns the created comment
  • +
  • Method TestExecution.add_comment() now returns the created comment
  • +
  • Method TestPlan.add_case() now returns the newly added test case
  • +
  • Add method TestCase.sortkeys(). Fixes +Issue #444
  • +
  • Add method Markdown.render()
  • +
  • Add method TestCase.comments()
  • +
  • Add method TestPlan.tree()
  • +
+
+
+

Bug fixes

+
    +
  • Fix url formatting. Fixes +Issue #1806 (Rosen Sasov)
  • +
  • When deleting TestExecutionStatus check that there will be at least 1 left +before deleting! Closes +Issue #1978
  • +
  • Update typeahead definitions for test case components, tags and +for adding test plans to test cases. Fixes +Issue #882
  • +
  • Add option to filter by reviewer in Test Plan page. Fixes +Issue #564
  • +
  • Pass the number of disabled test cases to HTML template when +creating a new test run. Fixes +Issue #718
  • +
+
+
+

Refactoring & testing

+
    +
  • New linter to warn against GenericForeignKey fields in models. Closes +Issue #1303 (Bryan Mutai)
  • +
  • Add tests for assign_default_group_permissions() (Ivajlo Karabojkov)
  • +
  • Add tests for TestExecutionStatusAdmin. Refs +Issue #1618 (Mariyan Garvanski)
  • +
  • Add tests for tcms.bugs.views.Search. Closes +Issue #1601 (Mfon Eti-mfon)
  • +
  • Add tests for tcms.rpc.api.testrun. Closes +Issue #1628 (@lcmtwn)
  • +
  • Add tests for tcms.rpc.api.classification. Closes +Issue #1621 (Abhishek Chaurasia)
  • +
  • Add tests for tcms.rpc.api.priority. Closes +Issue #1622 (Abhishek Chaurasia)
  • +
  • Add tests for tcms.rpc.api.testcasestatus. Closes +Issue #1624 (Abhishek Chaurasia)
  • +
  • Add tests for tcms.rpc.api.attachment. Closes +Issue #1619 (@awalvie)
  • +
  • Add tests for tcms.rpc.api.testexecution.remove_comment. Closes +Issue #1625 (@awalvie)
  • +
  • Add tests for tcms.rpc.api.testexecutionstatus. Closes +Issue #1626 (@awalvie)
  • +
  • Add tests for TestRun.add_case_run() method and rename it to +TestRun.create_execution()
  • +
  • libkrb5-dev is not needed anymore in CI with newer tcms-api
  • +
  • Use Fedora 32 to build Bugzilla docker image in CI
  • +
  • Update signature for overriden class to match Django 3.1
  • +
  • Move SimpleMDE initialization to simplemde_security_overide.js
  • +
  • Move post_save.send() from bugs.views to comments.add_comment()
  • +
+
+ +
+
+

Kiwi TCMS Enterprise v8.8-mt

+
    +
  • Based on Kiwi TCMS v8.7
  • +
  • Update kiwitcms-github-app from 1.2 to 1.2.
  • +
+

For more info see +https://github.com/kiwitcms/enterprise#v88-mt-07-nov-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!

+ +
+ +
+
+
+
+ +

Kiwi TCMS celebrates 200K+ downloads

+
+ + +
+ +
+

"200K banner"

+

We are happy to announce that Kiwi TCMS has been downloaded more than +200000 times via Docker Hub! +You can check the real-time stats +here. +To celebrate with us subscribe for a +SaaS and/or +Enterprise +subscriptions using coupon code 200KOFF at checkout!

+

Thank you very much and Happy Testing!

+
+

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

+ +
+
+ +
+ Newer Posts +

+ Page 2 / 6 +

+ Older Posts +
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/index3.html b/blog/kiwi-tcms-team/index3.html new file mode 100644 index 00000000..1b809364 --- /dev/null +++ b/blog/kiwi-tcms-team/index3.html @@ -0,0 +1,1967 @@ + + + + + Kiwi TCMS - Articles by Kiwi TCMS Team + + + + + + + + + + + + + + + + + + + + + +
+

Articles by Kiwi TCMS Team

+ +
+ + +
+

Hello testers, +recently we had a chat with +Gjore Zaharchev, +a QA manager at Seavus and Testing Coach at +SEDC Software Testing Academy in Skopje. Here is their story +and how they use Kiwi TCMS!

+

Seavus Educational and Development Center +is a private company as part of the Seavus Group and a specialized +training center for education of staff in the fields of programming, +design, computer networks and software testing. +Around 90 students pass through their software testing academy every year +with 60 students enrolled thus far. The training program is 6 months +and covers many basic IT skills, manual testing, ISTQB fundamentals and +automation testing. SEDC is located in Skopje, North Macedonia.

+

Hands-On Lab Activities

+

The study program includes multiple individual and team projects, intermediate +exams and a final project. These are intended to exercise the most commonly used +test design techniques and practice writing up the test scenarios. All +scenarios are written directly in Kiwi TCMS. We've even seen test plans and +test cases created during Christmas and the New Year holidays last year!

+

The software under test is usually the programs developed by students +from our Academy for Programming, says Gjore. +Later in the program we use real websites in order to show some bugs in the +wild, he continues. On occasion students have found interesting problems with the websites of +Booking.com and WizzAir. They've also managed to find a critical issue on +one of our local systems. These are the trials and tribulations of +teaching & testing in the wild.

+
+

Kiwi TCMS team still remembers one of Alex's training sessions where we used +the website of an actual cinema. Unfortunately they went out of business +and shutdown the victimized website right in the middle of the session. ;-)

+
+

Why did you decide to use Kiwi TCMS

+

When searching for a TCMS platform for the academy one of the decisive +factors was cost. By being open source Kiwi TCMS has the side benefit of +having zero initial usage cost which was very important for us. +Regardless of that Kiwi TCMS is very easy to install & setup using Docker, +very easy to on-board new users and generally well received by everyone.

+
+

This is a huge benefit for students because they can experiment with Kiwi TCMS +and immediately see how some items work when executing testing workflows. +For example they can visualize how a regression test run looks like compared +to a test run for a critical security fix; or they can simulate working in +groups to cover execution of a larger test plan.

+
+

What do your students say

+

Overall they like the workflow and can easily navigate within the user interface. +They feel very positive because there is no complexity in the system and +it is very intuitive. One of the areas which often receives questions is +the ability to record test automation results!

+

Answer: Kiwi TCMS has the ability to fetch names and test results directly, via +plugins for several +test automation frameworks +while others are on our backlog - +TestNG, +Jenkins, +C#/NUnit! +Anyone interested is welcome to Subscribe to each GitHub issue and follow the progress. +Some issues are also part of our +open source bounty program so we urge students to +take a look and contribute!

+

Anything you want to ask our team

+

At SEDC we'd like to know what are your plans for Kiwi TCMS in the future?

+

Answer: Our plans, like our software, are transparent, check-out posts +tagged roadmap! For 2020 this is refactoring of the +last remaining legacy bits, continue work on our Telemetry feature and +more work towards integration with various bug trackers and test automation +frameworks. An extension to that is tighter integration with the GitHub +platform!

+

Help us do more

+

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

+ +


+Thanks for reading and happy testing!

+
+
+
+
+ +

Kiwi TCMS is partnering with Vola Software

+
+ + +
+ +
+

We are happy to announce that Kiwi TCMS is going to partner with +Vola Software to provide 2 interns with +opportunities for hacking open source and bootstrapping their careers!

+

Vola Software is a custom software development company +in one of the poorest regions of the European Union and a long-time contributor +to their local ecosystem via +Vratsa Software Community. +They are located in Vratsa, Bulgaria.

+

Internship program

+

Alexander Tsvetanov and +Vladislav Ankov are joining the Kiwi TCMS team +for a 10 month adventure until the end of July 2021 with the opportunity +to continue for another year afterwards!

+

Both Sasho and Vladi are students in the Professional Technical Gymnasium +in Vratsa and are required to work part-time as junior software developers during the +last 2 years of their education. Given that they have very limited practical +experience and the additional red tape around hiring youngsters many software +companies directly avoid such kind of relationship. This creates a catch-22 +circle for both employers who are looking to hire somewhat experienced young people +and youngsters who are looking to advance their practical skills.

+

Here's where Kiwi TCMS steps-in! What better way to improve practical knowledge +than contributing to an actively used and actively maintained open source software! +We are nearing the 200K downloads mark on Docker Hub so changes made by +Sasho and Vladi will be visible to a very big pool of our users and customers!

+

Both have already started their open source adventure last week and are currently +going through some training. However they were faced with real problems which +resulted in +bug discovery +and a +pull request for +python-bugzilla underlined by a +20 years old issue in Python. +How's that for a start ?

+

Administrative

+

Vola Software is the direct employer for Sasho and Vladi because they have the +necessary permits and experience required for hiring youngsters. Kiwi TCMS is +the direct technical mentor and will be acting as a customer to Vola Software!

+

Vola Software will be paying a minimal salary to our interns as required by law. +Kiwi TCMS will reimburse the full amount while Vola Software +will be covering their accounting and administrative expenses. +Both Sasho and Vladi will also be eligible for our +open source bounty-program as an extra stimulation!

+

All expenses will be fully transparent and visible via +our Open Collective page!

+

Help us do more

+

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

+ +


+Thanks for reading and happy testing!

+
+
+
+
+ +

Kiwi TCMS is partnering with MLH Fellowship program

+
+ + +
+ +
+

We are happy to announce that Kiwi TCMS is going to partner with the +MLH Fellowship +open source program which is a 12 week internship alternative for +students interested in becoming software engineers.

+

Major League Hacking (MLH) is a mission-driven B-Corp focused +on empowering our next generation of technologists. Every year, more than +100,000 developers, designers, and makers join the MLH community to gain +hands-on experience and build their professional networks. +They are headquartered in the Greater New York Area, USA but operate world-wide.

+

Fellowship program

+

The Fall 2020 cohort runs between October 5 - December 21 and we're already +into the Contributing phase of the program. +Fellow students will be working on +open issues from our backlog with +a focus on tasks from our +open source bounty program +but they can really work on any open task!

+

Once a pull request has been made it will undergo first round code review +by Cory Massaro +who is the dedicated MLH Python mentor. Once Cory gives the +1 +each pull request will be reviewed by a member of the Kiwi TCMS core team like usual.

+

To minimize the risk of conflicts between contributors we are going to apply +the following rules:

+
    +
  • Each MLH fellow would add a comment on the issue they are + interested in (applies to other contributors too);
  • +
  • The issue will be assigned to them (new);
  • +
  • The issue will be labeled with the + MLH Fellowship + label (new);
  • +
  • The following comment will be added: + This issue/bounty has been assigned to an MLH fellow who is currently + working on it. Pull requests towards the same issue from other contributors + will not be considered at this time. Please pick something else to work on!
  • +
+

Upon successful completion of tasks all MLH fellows will be eligible to claim their +bounties via our Open Collective page. This is +the same process other contributors go through, there is no difference.

+

Kiwi TCMS commits 2 core-team members who will serve office hours +on the MLH Fellowship Discord server for +couple of hours per week in order to answer questions and keep the ball rolling. +We also commit to having bi-weekly meetings with MLH mentor(s) during the +duration of the program.

+

Kiwi TCMS would also like to thank our friend +Eddie Jaoude for putting us in touch with MLH +and helping bring this partnership to reality. Thank you Eddie!

+

Help us do more

+

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

+ +


+Thanks for reading and happy testing!

+
+
+
+ + +
+

Hello testers, as you know our +friends at Pionir +are working on physical hardware which can be used for interactive training and +explanation of the Black-box testing technique. The inspiration +comes from James Lyndsay’s Black Box Puzzles and +Claudiu Draghia.

+

We have the source code of 3 boxes already published at +https://github.com/kiwitcms/black-boxes but still missing bill of materials, +design files for 3D printing and some basic instructions how to put everything +together. There was a delay in delivery of some components but most of the work +is close to completion. You may subscribe to +issues for each box to follow +the progress! Here are some images & videos from the development process.

+

Wason 2-4-6 box

+

Wason 246 box

+ + +

Peltzman effect box

+

Peltzman effect box

+ + +

Salience bias box

+

Salience bias box

+ + +

According to Pionir's own words: +We are testing the salience box and trying to cause emotional effect of an element. +Vuk made a mistake and now he can't turn it off :D. How's that for dogfooding?

+

Help us do more

+

If you like what we're doing and how Kiwi TCMS supports the various communities +around us please nominate us as GitHub Stars!

+


+Thanks for reading and happy testing!

+
+
+
+
+ +

Kiwi TCMS 8.7

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 8.7!

+

IMPORTANT: this is a medium sized release which includes +improvements, API changes, bug fixes, translation updates and +new tests. It is the fifth 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  1f2461b1facd    643 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.6

+
+

Improvements

+
    +
  • Update Django from 3.0.9 to 3.1.1

    +
  • +
  • Update django-attachments from 1.6 to 1.8

    +
  • +
  • Update django-extensions from 3.0.5 to 3.0.8

    +
  • +
  • Update psycopg2 from 2.8.5 to 2.8.6

    +
  • +
  • Update pygments from 2.6.1 to 2.7.0

    +
  • +
  • Update python-gitlab from 2.4.0 to 2.5.0

    +
  • +
  • Make it possible to use reCAPTCHA during registration. If you want to enable +this then add the following to your settings:

    +
    +if 'captcha' not in INSTALLED_APPS:
    +    INSTALLED_APPS.append('captcha')
    +
    +    RECAPTCHA_PUBLIC_KEY = '......'
    +    RECAPTCHA_PRIVATE_KEY = '.....'
    +    RECAPTCHA_USE_SSL = True
    +
    +

    For more info see https://www.google.com/recaptcha/admin/

    +
  • +
  • Replace GlobalLoginRequiredMiddleware with +tcms.kiwi_auth.backends.AnonymousViewBackend for anonymous read-only +functionality. See section +Anonymous read-only access +in the documentation

    +
  • +
  • Replace the ... in navigation bar with a 3 cogs icon to make the +object-level menu more visible

    +
  • +
+
+
+

Settings

+
    +
  • Remove setting PUBLIC_VIEWS
  • +
+
+
+

API

+
    +
  • Remove TestCase.get_components() in favor of Component.filter()
  • +
  • Bug.details() method will now return {} instead of failing if +it can't find an issue tracker from an URL
  • +
+
+
+

Bug fixes

+
    +
  • Remove documentation references to non-existing environment
  • +
  • Don't fail internal calls if Kiwi TCMS bug tracker can't find a bug
  • +
+
+
+

Refactoring & testing

+
    +
  • Add tests for tcms.core.templatetags. Closes +Issue #1602 (Mariyan Garvanski)
  • +
  • Add tests for tcms.bugs.views.Edit. Closes +Issue #1599 (Mfon Eti-mfon)
  • +
  • Add tests for tcms.bugs.views.AddComment. Closes +Issue #1600 (Mfon Eti-mfon)
  • +
  • Make paths used in migrations & settings platform aware in order to +enable development mode on Windows (Mfon Eti-mfon)
  • +
  • Add new linter checker to check for use of db_column argument in +model field definition. Closes +Issue #736 (Bryan Mutai)
  • +
  • Add tests for Bug.details API method
  • +
  • Replace deprecated ifequal/ifnotequal template tags
  • +
  • Adjust migrations_order for Django 3.1 compatibility
  • +
  • Add npm audit check in CI
  • +
  • Resolve several pylint issues
  • +
+
+ +
+
+

Kiwi TCMS Enterprise v8.7-mt

+
    +
  • Based on Kiwi TCMS v8.7
  • +
  • Overrides for setting PUBLIC_VIEWS have been removed
  • +
  • Update django-ses from 1.0.2 to 1.0.3
  • +
  • Update kiwitcms-github-app from 1.1 to 1.2
  • +
  • Update kiwitcms-tenants from 1.2.1 to 1.3.1
  • +
+

For more info see +https://github.com/kiwitcms/enterprise/#v87-mt-16-sep-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!

+
+ +
+
+
+
+ +

Please nominate @kiwitcms as a GitHub Star

+
+ + +
+ +
+

GitHub Star nomination

+

After our recent success +we again ask the community to support Kiwi TCMS.

+

Steps to reproduce:

+
    +
  1. Go to https://stars.github.com/
  2. +
  3. Click the Sign in button and Authorize the GitHub-Stars application
  4. +
  5. Make sure you are on the Nominate page, https://stars.github.com/nominate/
  6. +
  7. Type kiwitcms as the username. The @ character is provided automatically
  8. +
  9. Type the following text for your reasoning: + they took an abandoned project and turned it into the leading open source + test management system with more than 150k downloads with users & contributors + across the world!
  10. +
  11. Click on the checkbox to acknowledge your nomination
  12. +
  13. Click the Submit nomination button!
  14. +
+

Expected results:

+
    +
  1. You fit into the 180 characters provided for nomination
  2. +
  3. Your submission is recorded by GitHub
  4. +
+

Why are we doing this

+

GitHub Stars is a program that recognizes those who go above and beyond and help +inspire and educate their communities which is exactly what the +Kiwi TCMS team has been doing from our very start! +Checkout our community blog posts for more information!

+

This program will give us access to cool new features +on the GitHub platform and also let us showcase what we do before a larger audience!

+

Thank you for helping us and happy testing!

+
+
+
+
+ +

Kiwi TCMS is a finalist in the 2020 .eu Web Awards

+
+ + +
+ +
+

Click here to vote for Kiwi TCMS

+

Kiwi TCMS is happy to announce that our website https://kiwitcms.eu is a finalist +in the 2020 .eu Web Awards +in the Leaders category! Big Thank You to everyone who voted for us!

+

Our team is also very happy that we are not the only open source finalist. +Congratulations to the OpenScan project and their community!

+

We are still committed to keeping +our earlier promise +and use the award to represent the larger open source community! The decision +is now in the hands of the jury. Wish us good luck!

+
+
+
+
+ +

Kiwi TCMS 8.6

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 8.6!

+

IMPORTANT: this is a high severity security update which includes +improvements, bug fixes, database migrations, API changes, translation updates and +new tests. It is the fourth 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  f2c21b370cd9    639 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.5

+
+

Security

+
    +
  • A high severity vulnerability which allows unprivileged data access +via JSON-RPC endpoints has been fixed:
      +
    • Affects all previous versions of Kiwi TCMS
    • +
    • Instances on public networks, such as Amazon EC2, are at higher risk
    • +
    • Instances on private networks are still vulnerable to anyone who can +access the same network
    • +
    • This vulnerability has been disclosed by Michael Longmire (ShastaQA) +and Stone Pack (ShastaQA)
    • +
    +
  • +
  • Update marked from 0.8.2 to 1.1.1 for a medium severity vulnerability, see +SNYK-JS-MARKED-584281
  • +
+
+
+

Improvements

+
    +
  • Update django from 3.0.8 to 3.0.9

    +
  • +
  • Update django-attachments from 1.5 to 1.6

    +
  • +
  • Update prismjs from 1.20.0 to 1.21.0

    +
  • +
  • Update pygithub from 1.51 to 1.53

    +
  • +
  • Replace deprecated bleach-whitelist with bleach-allowlist

    +
  • +
  • Make django-extensions a production dependency because it provides +many useful manage.py commands

    +
  • +
  • Enable syntax highlight for code blocks

    +
  • +
  • Remove file attachments when related objects are deleted

    +
  • +
  • Add image and file upload buttons to text editor. Fixes +Issue #977

    +
  • +
  • Require auth.view_user permission when trying to view user profiles. +Fixes Issue #1685

    +
  • +
  • Multiple pages now explicitly require view permissions before displaying read-only +information. This gives administrators a finer grained control:

    +
      +
    • /bugs/<id>/ -> bugs.view_bug
    • +
    • /bugs/search/ -> bugs.view_bug
    • +
    • /cases/search/ -> testcases.view_testcase
    • +
    • /case/<id>/ -> testcases.view_testcase
    • +
    • /plans/search/ -> testplans.view_testplan
    • +
    • /plan/<id>/* -> testplans.view_testplan
    • +
    • /runs/search/ -> testruns.view_testrun
    • +
    • /runs/<id>/ -> testruns.view_testrun
    • +
    +

    Previously these pages only required the user to be logged in

    +
  • +
+

Warning:

+
+The auth.view_user permission is not granted by default because the +profile page contains personal information like names and email address. +Administrators can grant this permission on a group or individual basis +if they are OK with sharing this information.
+
+
+

Database

+
    +
  • Migrations which manipulate data (contain RunPython) can now be +rollbacked. See ./manage.py migrate --plan for the order in which +migrations are applied (Bryan Mutai)
  • +
  • Increase Product.name size from 64 to 255 characters
  • +
+
+
+

API

+
    +
  • Remove method TestExecution.create() in favor of TestRun.add_case()
  • +
  • Add method User.add_attachment()
  • +
  • Multiple API methods now explicitly require view permissions before returning +read-only information. This is in-sync with the per-page changes listed above:
      +
    • Bug.filter() -> bugs.view_bug
    • +
    • Bug.report() -> testruns.view_testexecution
    • +
    • Build.filter() -> management.view_build
    • +
    • Category.filter() -> testcases.view_category
    • +
    • Classification.filter() -> management.view_classification
    • +
    • Component.filter() -> management.view_component
    • +
    • PlanType.filter() -> testplans.view_plantype
    • +
    • Priority.filter() -> management.view_priority
    • +
    • Product.filter() -> management.view_product
    • +
    • Tag.filter() -> management.view_tag
    • +
    • TestCase.get_components() -> testcases.view_testcase
    • +
    • TestCase.get_notification_cc() -> testcases.view_testcase
    • +
    • TestCase.filter() -> testcases.view_testcase
    • +
    • TestCaseStatus.filter() -> testcases.view_testcasestatus
    • +
    • TestExecution.filter() -> testruns.view_testexecution
    • +
    • TestExecution.get_links() -> linkreference.view_linkreference
    • +
    • TestExecutionStatus.filter() -> testruns.view_testexecutionstatus
    • +
    • TestPlan.filter() -> testplans.view_testplan
    • +
    • TestRun.get_cases() -> testruns.view_testrun
    • +
    • TestRun.filter() -> testruns.view_testrun
    • +
    • User.filter() -> auth.view_user
    • +
    • Version.filter() -> management.view_version
    • +
    +
  • +
+
+
+

Bug fixes

+
    +
  • Update documentation to reflect that test cases cannot be rearranged from +within a TestRun but only from a TestPlan. Fixes +Issue #1805 (@Prome88)
  • +
  • Incorrect code formatting for HTML <pre> tags. Closes +Issue #1300
  • +
  • Fix a bug with the history handler when importing objects with ID field set. +Resolves a crash when trying to restore backup data
  • +
  • Delete comments when Bug is removed
  • +
+
+
+

Refactoring & testing

+
    +
  • Add linter to warn about missing backwards migrations callable in RunPython +and fix all pylint offenses. Fixes +Issue #1774 (Bryan Mutai)
  • +
  • Teach linter to check API for @permissions_required. Fixes +Issue #1089
  • +
  • Refactor NewExecutionForm to use ModelForm (Rosen Sasov)
  • +
  • Refactor UpdateExecutionForm to use ModelForm (Rosen Sasov)
  • +
  • Add tests for tcms.bugs.api. Closes +Issue #1597 (Mfon Eti-mfon)
  • +
  • Add tests for tcms.bugs.views.New. Closes +Issue #1598 (Mfon Eti-mfon)
  • +
  • Add tests for tcms.rpc.api.testplan. Closes +Issue #1627 (@lcmtwn)
  • +
  • Add tests for percentage() function References +Issue #1602 (Mariyan Garvanski)
  • +
  • Add the migrations_order command to help test rollbacks
  • +
  • Adjust code for deprecation warnings from Django 3.1
  • +
  • Use Python 3 style super() without arguments
  • +
  • Update login page to match our new website design
  • +
+
+ +
+
+

Kiwi TCMS Enterprise v8.6-mt

+
    +
  • Based on Kiwi TCMS v8.6
  • +
+

For more info see +https://github.com/kiwitcms/enterprise/#v86-mt-23-aug-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!

+
+ +
+
+
+ + +
+

Hello testers, we have very important news around how container images +for Kiwi TCMS will be distributed! Recently Docker has announced +several changes in their storage plans which makes it less viable for +our team to continue using their services in full!

+

Information about official upstream container images

+

The official upstream Kiwi TCMS container image will continue to be +publicly available via Docker Hub +as before. In addition all existing and new images will be available via +Quay.io. +These images are available as

+ +

Content is exactly the same between the two registries and you may use +the one which you like best!

+

Warning: after November 1st 2020 older versions will not be available from +Docker Hub, only from Quay.io! The reason is that Docker is enforcing a +6 month image retention limit +for free plans!

+

Information about private containers for subscribers

+

Subscribers enjoy the benefit of having read-only access to tagged versions of the +upstream Kiwi TCMS container images as well as access to tagged versions of +Kiwi TCMS Enterprise container images! Previously these containers were distributed +via Docker Hub and are now available via Quay.io:

+
    +
  • mrsenko/kiwitcms -> quay.io/kiwitcms/version (version tagged upstream images)
  • +
  • mrsenko/kiwitcms-enterprise -> quay.io/kiwitcms/enterprise (enterprise images)
  • +
+

Important: existing subscribers have been notified and granted access +to the new repositories on Quay.io. We advise you to update your +docker-compose.yml files and start using the new images at your earliest convenience!

+

Warning: existing subscribers will continue having access to private +repositories on Docker Hub until December 31st 2020! Private repositories on +Docker Hub will become unavailable after January 31st, 2021 when Docker's new +storage plans will be forced into effect!

+

Why did we chose Quay.io

+

There are multiple container registry services available! We think Quay.io +delivers the best price/quality ratio for our own use-case. In particular +we like the billing model around number of private repositories instead the +one around the number of users in your organization. That's very similar +to how we provide access to Kiwi TCMS via our own subscriptions!

+

Also it just looks cool if you employ your imagination, especially +for non-native English speakers: quay -> qu-ai -> QA!

+


+Thanks for reading and happy testing!

+
+
+
+
+ +

QGIS has chosen Kiwi TCMS

+
+ + +
+ +
+

We are happy to announce that QGIS has chosen Kiwi TCMS +for the basis of their Quality Assurance methodology and infrastructure +improvement program! +Kiwi TCMS will play a central role in storing test case definitions, +organizing test cycles, and assigning and tracking test executions by testers +from the QGIS community.

+
+ + +

+ QGIS is a free and open source geographic information system which contains + desktop, server, web and mobile applications for various operating systems. + It is an established project with very large and diverse community and also + one of the very well known open source GIS systems. +

+
+ +

The proposal +QEP#180 is the +highest voted proposal in the +2020 QGIS Grant Program +and has been awarded a budget of 5000€! +This grant will allow the proponents to spend significantly more time setting up the +infrastructure and planning a methodology for manual testing.

+

Scope of proposal

+

QEP#180 +aims to create the necessary infrastructure and methodology to organize and +encourage systematic testing before each QGIS release:

+
    +
  • Setup a test management system to organize test cycles, assign and track tests execution;
  • +
  • Elaborate and document a methodology to execute testing to help testers;
  • +
  • Resurrect and move the tester plugin to QGIS repositories. Publish it in the QGIS official repository
  • +
  • Create an initial set of relevant test cases;
  • +
  • Organize and execute the initial test cases for the next releases.
  • +
+

This effort will steer members & volunteers of the QGIS community towards a more systematic +and organized testing during a feature freeze period before a release. The focus here +is on integration testing, manual & semi-automated workflows for important functionality +that should never regress and is hard or impossible to cover via unit tests.

+

The proposal is lead by Alexandre Neto, Giovanni Manghi and Alexander Bruy!

+


+On behalf of the Kiwi TCMS community welcome aboard and happy testing!

+
+
+
+
+ +

Kiwi TCMS Enterprise v8.5.2-mt

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS Enterprise version 8.5.2-mt +and extended support hours for subscribers in America.

+

Note: this is only available to customers with an active +Enterprise subscription!

+

Docker images:

+
+mrsenko/kiwitcms-enterprise   8.5.2-mt      633291dd5219    887MB
+
+
+

Changes since Kiwi TCMS Enterprise v8.5.1-mt

+
    +
  • Based on Kiwi TCMS v8.5
  • +
  • Update django-ses from 1.0.1 to 1.0.2
  • +
  • Update kiwitcms-github-app from 1.0 to 1.1
  • +
+

This release includes improvements and bug-fixes for +kiwitcms-github-app.

+

An important change is how issues reported via our 1-click bug report feature +are presented on GitHub. For public repositories issues reported via +Kiwi TCMS + GitHub App integration +will be opened by @kiwitcms-bot with Kiwi TCMS as shown below:

+ +
+
+

Extended support hours

+

Working hours have been updated as follows:

+
    +
  • 09-21 UTC/Mon-Fri with response within 24 hours for Enterprise subscribers
  • +
  • 09-17 UTC/Mon-Fri with response within 72 hours for Private Tenant subscribers
  • +
+

Happy testing!

+
+ +
+
+
+
+ +

Kiwi TCMS 8.5

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 8.5!

+

IMPORTANT: this is a medium sized release which includes many improvements, +database migrations, translation updates and new tests. +It is the third 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  4379e2438e43    636 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.4

+
+

Improvements

+
    +
  • Update django from 3.0.7 to 3.0.8
  • +
  • Update django-colorfield from 0.3.0 to 0.3.2
  • +
  • Update django-modern-rpc from 0.12.0 to 0.12.1
  • +
  • Update django-simple-history from 2.10.0 to 2.11.0
  • +
  • Update mysqlclient from 1.4.6 to 2.0.1
  • +
  • Update python-gitlab from 2.2.0 to 2.4.0
  • +
  • Update python-bugzilla from 2.3.0 to 2.5.0
  • +
  • Add middleware to warn for unapplied migrations. Fixes +Issue #1696 (Bryan Mutai)
  • +
  • Add "insert table" button to SimpleMDE toolbar. References +Issue #1531 (Bryan Mutai)
  • +
  • Implement kiwitcms-django-plugin. +Resolves Issue #693 (Bryan Mutai)
  • +
  • Add missing permission check for TestExecution.add_link() API method (Rosen Sasov)
  • +
  • Add missing permission check for TestExecution.remove_link() API method (Rosen Sasov)
  • +
  • Admin interface will now appear translated
  • +
  • Propagate server side API errors to the browser. Closes +Issue #625, +Issue #1333
  • +
  • Improvements for Status Matrix telemetry page:
      +
    • Make the horizontal scroll bar at the bottom always visible
    • +
    • Make the header row always visible
    • +
    • Add button to show columns in reverse. Fixes +Issue #1682
    • +
    • Make it possible to display TestExecutions from child TestPlans. Fixes +Issue #1683
    • +
    +
  • +
+
+
+

Database

+
    +
  • Update existing Bug tracker records to match the changes introduced with +the new EXTERNAL_BUG_TRACKERS setting
  • +
+
+
+

Settings

+
    +
  • Add EXTERNAL_BUG_TRACKERS setting which is a list of dotted class paths +representing external bug tracker integrations. Plugins and Kiwi TCMS admins +can now more easily include customized integrations
  • +
+
+
+

Refactoring & testing

+
    +
  • Add new linter to check for label arguments in form field classes. Fixes +Issue #738 (Bryan Mutai)
  • +
  • Add new linter to check if all forms inherit from ModelForm. Fixes +Issue #1384 (Bryan Mutai)
  • +
  • Enable pylint plugin pylint.extensions.docparams and resolve errors. Fixes +Issue #1192 (Bryan Mutai)
  • +
  • Migrate 'test-for-missing-migrations' from Travis CI to GitHub workflow. Fixes +Issue #1553 (Bryan Mutai)
  • +
  • Add tests for tcms.bugs.api.add_tag(). References +Issue #1597 (Mfon Eti-mfon)
  • +
  • Add tests for tcms.bugs.api.remove_tag(). References +Issue #1597 (Mfon Eti-mfon)
  • +
  • Add test for tcms.testplans.views.Edit. References +Issue #1617 (@cmbahadir)
  • +
  • Add tests for markdown2html(). Fixes +Issue #1659 (Mariyan Garvanski)
  • +
  • Add test for Cyrillic support with MariaDB. References +Issue #1770
  • +
+
+ +
+
+

Kiwi TCMS Enterprise v8.5-mt

+
    +
  • Based on Kiwi TCMS v8.5
  • +
  • Update django-ses from 0.8.14 to 1.0.1
  • +
  • Update kiwitcms-tenants from 1.1.1 to 1.2
  • +
  • Update social-auth-app-django from 3.4.0 to 4.0.0
  • +
  • Start tagging non-Enterprise images of kiwitcms/kiwi - will be provided +via separate private repository for enterprise customers. See +here
  • +
+

For more info see +https://github.com/MrSenko/kiwitcms-enterprise/#v85-mt-10-july-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-compose pull
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Refer to +our documentation +for more details!

+

Happy testing!

+
+ +
+
+
+ + +
+

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!

+ +
+
+
+
+ +

Versioned releases of Kiwi TCMS

+
+ + +
+ +
+

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 &amp; 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!

+
+ +
+
+
+
+ +

Kiwi TCMS is partnering up with Pionir

+
+ + +
+ +
+

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!

+
+
+
+
+ +

Robot Framework plugin for Kiwi TCMS

+
+ + +
+ +
+

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 open source bounty program, Round 02

+
+ + +
+ +
+

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!

+
+ +
+
+ +
+ Newer Posts +

+ Page 3 / 6 +

+ Older Posts +
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/index4.html b/blog/kiwi-tcms-team/index4.html new file mode 100644 index 00000000..86abc308 --- /dev/null +++ b/blog/kiwi-tcms-team/index4.html @@ -0,0 +1,2673 @@ + + + + + Kiwi TCMS - Articles by Kiwi TCMS Team + + + + + + + + + + + + + + + + + + + + + +
+

Articles by Kiwi TCMS Team

+ +
+
+ +

Kiwi TCMS open source bounty program, Round 01

+
+ + +
+ +
+

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

+
    +
  • Program will be split into multiple rounds as we work to clearly define + what needs to be done and adjust priorities
  • +
  • News and updates will be posted at https://opencollective.com/kiwitcms/updates/
  • +
  • You are expected to mostly work alone on issues
  • +
  • Technical discussion will be happening via GitHub pull requests and/or GitHub issues + under https://github.com/kiwitcms/Kiwi unless indicated otherwise
  • +
  • Translation related discussion will be happening via Crowdin under + https://crowdin.com/project/kiwitcms/discussions when needed
  • +
  • Do not contact individual team members privately, we are going to ignore such messages
  • +
+

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

+
    +
  • pylint - + #1192
  • +
  • JavaScript: Add buttons for creating tables in text editor - + #1531
  • +
  • Migration from Travis CI to GitHub workflows - + #1550, + #1551, + #1552, + #1553, + #1554
  • +
+

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!

+
+
+
+
+ +

Please vote for Kiwi TCMS in 2020 .eu Web Awards

+
+ + +
+ +
+

+ 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"
  • +
+
+
+

Translations

+ +
+
+
+

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 Open Source Seed Award winner

+
+ + +
+ +
+

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

Translations

+ +
+
+
+

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!

+
+
+
+
+ +

We're not participating in 'QA of the year' award

+
+ + +
+ +
+

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. +
    3. docker-compose down

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

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

      +
    8. +
    9. 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

      +
    10. +
    11. Proceed to upgrade your Kiwi TCMS container !

      +
    12. +
    +
  • +
+

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

Translations

+ +
+
+
+

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!

+
+ +
+
+
+
+ +

GitHub OAuth tokens have been revoked

+
+ + +
+ +
+

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

Translations

+ +
+
+
+

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!

+
+ +
+
+
+
+ +

Kiwi TCMS is migrating from OAuth to GitHub App

+
+ + +
+ +
+

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

+
    +
  • Go to https://public.tenant.kiwitcms.org and + click the GitHub login icon, follow through with the process;
  • +
  • Go to https://github.com/apps/kiwi-tcms and + click the Install button, select account & repositories and complete the + process;
  • +
  • Share this blog post with friends, co-workers and other testers who might be + interested to help!
  • +
+

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

Translations

+ +
+
+
+

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!

+
+ +
+
+
+
+ +

Kiwi TCMS is going to FOSDEM 2020

+
+ + +
+ +
+

Stand at FOSDEM'19

+

Hello testers, Kiwi TCMS is going to FOSDEM 2020. +This is where you can find us:

+
    +
  • Fri Jan 31st: after 18:00 @ Delirium Café - + we are taking part of the FOSDEM Beer Event where all participants are invited. + Shout out with #KiwiTCMS on Twitter if you can't find us in the crowd
  • +
  • Sat Feb 1st: + Testing and Automation devroom - + we are proud to be co-hosting this devroom together with Linaro and SUSE. + CfP is open until Dec 10th 2019. Apply here!
  • +
  • Sun Feb 2nd: Open Source Test Management stand - + we will be together with our friends from SystemTestPortal and we are preparing + some real black-box testing for you!
  • +
+

We would like to meet with all of you and talk about software testing, test management and +test process organization. In case you are stuck for crazy ideas checkout +our project mission for inspiration.

+

Picture: FOSDEM'19 with Kiwi TCMS, ReportPortal & SystemTestPortal

+

Happy testing!

+
+
+
+
+ +

Kiwi TCMS 7.1

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 7.1! +This is a small improvement update which includes +database schema and API changes, several other improvements, +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  c8cf36ac5ca5    602 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.0

+
+

Improvements

+
    +
  • Update django from 2.2.5 to 2.2.6
  • +
  • Update python-gitlab from 1.11.0 to 1.12.1
  • +
  • Update pygithub from 1.43.8 to 1.44
  • +
  • Update psycopg2 from 2.8.3 to 2.8.4
  • +
  • Add help tooltips in all telemetry pages
  • +
  • Better styling for checkboxes in 'Add hyperlink' dialog, +part of TestRun page
  • +
  • Add hyperlink validation. Fixes +Issue #1147
  • +
+
+
+

Database migrations

+
    +
  • Add bugs permissions to Tester group. Will make any difference +only if upgrading from existing installation
  • +
+
+
+

API

+
    +
  • New method Bug.remove()
  • +
+
+
+

Bug fixes

+
    +
  • Always build with the latest versions of translations
  • +
  • Add 'Delete' menu item in Bugs page. Fixes #1153 +Issue #1153
  • +
  • When deleting hyperlink from TestExecution hide the actual UI +elements from the page
  • +
  • Fix failure to delete TCs when the number of TCs inside TP is greater +than 100. Fixes +Issue #1149 and +Sentry KIWI-TCMS-8F
  • +
+
+
+

Refactoring

+
    +
  • Rename directory xmlrpc to rpc and pylint updates. Refs +Issue #682 +(Matej Aleksandrov, Sinergise)
  • +
  • Remove labels from form fields, Refs +Issue #652 (Azmi YÜKSEL)
  • +
  • New base class for tests around permissions (Svetlomir Balevski)
  • +
  • New "blueprint" test case around permissions to make testing in this area more +robust
  • +
  • Refactor many views from function based to class based
  • +
  • Update stale tests in tcms/core/tests/ and make sure they aren't ignored +by the test runner
  • +
  • Remove empty class XMLRPCBaseCaseForm
  • +
  • Remove XMLRPCNewCaseForm, duplicate of NewCaseForm
  • +
  • Remove rpc.forms.UpdateCaseForm in favor of XMLRPCUpdateCaseForm
  • +
  • Update only English sources with new strings as a temporary workaround b/c +Crowdin uses different formatting heuristics than gettext. This will minimize +the number of .po format changes
  • +
  • A few pylint fixes
  • +
+
+
+

Translations

+ +
+
+
+

Acknowledgments

+

A special "thank you" goes to our friends from +PyCon Balkan in Belgrade who allowed us to host +an open source coding sprint in Belgrade during the conference!

+

A second "thank you" goes to +Open Labs Hackerspace who hosted a localization +sprint in Tirana and contributed to several different languages!

+

Thank you for being part of our community. Version 7.1 includes all of your +contributions.

+
+
+

Website updates

+

We're using the opportunity to share that website is now serving via SSL courtesy +of GitHub and Let's encrypt.

+

Our main page has also been updated to showcase some of our customers: +Better (Slovenia), Minds, Inc. (USA), Musala Soft (Bulgaria). If you would like to +feature your corporate logo and tell us how you use Kiwi TCMS then +drop us an email!

+
+
+

Upcoming conferences

+

The next two events we are going to participate are:

+ +

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

+
+
+

Upcoming FOSDEM 2020

+

We are happy to announce that our team, together with SUSE and Linaro will be +hosting the +Testing and Automation Developer Room +at FOSDEM in Brussels next February.

+

Call for papers is open until December 10th 2019. Anything related to +software testing and open source is welcome. Apply from the link above.

+
+
+

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!

+
+ +
+
+
+
+ +

Kiwi TCMS 7.0

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 7.0! +This is a major release which includes security updates, +significant database schema and API changes, many improvements, +removed functionality, bug fixes, substantial internal refactoring and +several new languages. You can explore everything at +https://public.tenant.kiwitcms.org!

+

The 7.0 version number happily coincides with the fact that we've surpassed +70000 downloads from 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  d34dc6d896bf    584 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 6.11

+
+

Security

+
    +
  • API method BugSystem.filter() has been removed (now unused) but +it was possible to use this method to steal passwords or keys used for +Issue Tracker integration. This vulnerability could be exploited by +users logged into Kiwi TCMS and is classified as medium severity! +We advise you to change your integration API keys and passwords +immediately!
  • +
+
+
+

Improvements

+
    +
  • Update Django from 2.2.4 to 2.2.5
  • +
  • Update django-uuslug from 1.1.8 to 1.1.9
  • +
  • Update mysqlclient from 1.4.2.post1 to 1.4.4
  • +
  • Update python-bugzilla from 2.2.0 to 2.3.0
  • +
  • Update python-gitlab from 1.10.0 to 1.11.0
  • +
  • Update patternfly from 3.59.3 to 3.59.4
  • +
  • Reduce docker image size from 1.01 GB to under 600 MB
  • +
  • Add TestCase Health telemetry
  • +
  • Add support for Redmine issue tracker. Fixes +Issue #41 (Jesse C. Lin)
  • +
  • Add breathing room around HTML form's submit buttons (Rady Madjev)
  • +
  • New TestRun page action: bulk-add hyperlinks to TestExecution(s)
  • +
  • Make it possible to disable HTTPS by specifying the +KIWI_DONT_ENFORCE_HTTPS environment variable! Fixes +Issue #1036 (Marco Descher)
  • +
  • Documentation updates, including internal style checker. Fixes +Issue #1000 (Prome88)
  • +
  • When linking a TestExecution to a defect and choosing to update the +Issue Tracker Kiwi TCMS will not add a comment pointing back to +TR ID/summary/URL and TE ID/summary. This provides more detailed information +about the reproducer instead of just linking to a TestCase without any +specific execution details like we did in the past
  • +
  • Display additional defect information via Issue Tracker integration. +On Patternfly pages which show defect URLs this is accessible via a +small info icon. Fixes +Issue #117
  • +
  • Add minimalistic defect tracker functionality. Fixes +Issue #699
      +
    • integrated with Issue Tracker integration layer as if it was +an external system
    • +
    • when adding hyperlink to TestExecition (also via API method +TestExecution.add_link()) this is special cased and the +references between Bug and TestExecution are always updated
    • +
    • when clicking 'Report bug' from inside Test Execution the new +defect is reported automatically and a new browser window opens to +display the information
    • +
    +
  • +
+
+
+

Database migrations

+
    +
  • Tell the migration planner to apply +testruns.0006_rename_test_case_run_to_test_execution after +linkreference.0001_squashed. This enables subsequent migrations +and new functionality to be applied without crashing.

    +
    +
    +

    Warning

    +

    Django should be able to handle this automatically both for +existing installations and for new ones. In any case make sure +you backup your data first and make a dry-run to verify that +nothing breaks!

    +
    +
    +
  • +
  • Remove fields url_reg_exp, validate_reg_exp and description from +BugSystem model

    +
  • +
  • Update the following fields in LinkReference model:

    +
      +
    • rename test_case_run to execution
    • +
    • add indexing for created_on and url
    • +
    • add is_defect field
    • +
    +
  • +
  • Apply LinkReference permissions to default group Tester. Fixes +Issue #881

    +
    +
    +

    Warning

    +

    Administrators of existing applications will need to +apply these permissions by hand via the Admin section.

    +
    +
    +
  • +
  • Remove testcases.Bug model, replaced with LinkReference. +Closes Issue #1029 and +obsoletes Issue #320.

    +
    +
    +

    Note

    +

    Linking bugs to TestExecution is now performed via URLs instead of +keeping a reference to BUG-ID and trying to reconstruct the URL +on the fly.

    +
    +
    +

    Warning

    +

    The model named Bug which is added by subsequent migrations +refers to defects reported into Kiwi TCMS minimalistic defect tracker!

    +
    +
    +
  • +
  • New model bugs.Bug is now available. Permissions of type +bugs | bug | Can ... will be applied to the default group named +Tester only for new installations.

    +
    +
    +

    Warning

    +

    Administrators of existing applications will need to +apply these permissions by hand via the Admin section.

    +
    +
    +
  • +
+
+
+

API

+
    +
  • TestExecution.add_link() method now returns serialized +LinkReference object.
  • +
  • TestExecution.remove_link() method now accepts one parameter of type +dict used to filter the objects which to remove
  • +
  • TestExecution.get_links() method now accepts one parameter of type +dict instead of int
  • +
  • TestExecution.add_link() method signature changed from +(int, str, str) to (dict), where the single parameter holds field values for +the LinkReference model
  • +
  • Remove TestExecution.add_bug() method, use TestExecution.add_link()
  • +
  • Remove TestExecution.remove_bug() method, use +TestExecution.remove_link()
  • +
  • Remove TestCase.add_bug() method
  • +
  • Remove TestCase.remove_bug() method
  • +
  • Remove Bug.remove() method, use TestExecution.remove_link()
  • +
  • Remove Bug.create() method, use TestExecution.add_link()
  • +
  • Add method Bug.details() which together with the underlying +IssueTracker.details() is the foundation of how Kiwi TCMS fetches +extra details from the issue tracking system. The default implementation +uses OpenGraph protocol to collect the data that will be shown. You may +override .details() for each issue tracker (or add your own IT) to +extend this functionality. Information is cached for 1 hour by default. +References +Issue #117
  • +
  • Add methods Bug.add_tag() and Bug.remove_tag()
  • +
  • Existing method with name Bug.filter() has changed behavior. It is +now used to query objects from Kiwi TCMS minimalistic defect tracker
  • +
+
+
+

Removed functionality

+
    +
  • Remove IssueTrackerType.all_issues_link() method. This was used in +TestRun Report page to show a single link that will open all bugs in the +Issue Tracker. Most trackers don't support this and the UI portion has +been rewritten
  • +
  • Remove LinkOnly issue tracker - obsolete because all defects are +now added to TestExecutions via their URLs
  • +
  • Remove bulk-add/bulk-remove of bugs in TestRun page, replaced by bulk-add +for hyperlinks
  • +
+
+
+

Settings

+
    +
  • Respect the CACHES setting, see +Django docs +for more info. Initially this setting is used to cache defect details received +via Issue Tracker integration. See +Issue #117
  • +
+
+
+

Bug fixes

+
    +
  • Don't auto-download FontAwesome for SimpleMDE. Resolves icons disappearing +on pages which have the markdown editor. Fixes +Issue #905
  • +
  • Reorder HTML elements so Delete button is still visible in TestCase review +comment section. Fixes +Issue #1013 (Rady Madjev)
  • +
  • Remove section that displays bugs in TestExecution container. Bugs are now +denoted by a small icon next to their hyperlink. Closes +Issue #475
  • +
  • Cache Issue Tracker connections per base_url. Fixes +Issue #290
  • +
+
+
+

Refactoring

+
    +
  • Lots of refactoring from function based views to class based views (Rady Madjev)
  • +
  • Use JavaScript and the API to remove case execution instead of dedicated +backend function (Rady Madjev)
  • +
  • Update pylint directives around missing permissions (Svetlomir Balevski)
  • +
  • Fix typo in identifier. Fixes +CID 344186
  • +
  • Use TestExecution.add_link() and TestExecution.remove_link() in UI +instead of dedicated backend function.
  • +
  • Remove unused LinkReference views, forms and tests modules
  • +
+
+
+

Translations

+ +

For more information check-out +all supported languages. +To request new language +click here!

+
+
+
+

junit.xml-plugin v0.4

+

A few days ago we have also released +kiwitcms-junit.xml-plugin +v0.4 with the following changes:

+
    +
  • Update junitparser from 1.3.2 to 1.3.4
  • +
  • Also support XML files with <testsuites> root tag (Katalon Studio). Fixes +Issue #9
  • +
+
+
+

tap-plugin v0.4

+

We have also released +kiwitcms-tap-plugin +v0.4 with the following changes:

+
    +
  • Include traceback from TAP file as TestExecution comment. Fixes +Issue #7 +(Christophe CHAUVET)
  • +
+
+
+

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!

+
+ +
+
+
+
+ +

Open source sprints at PyCon Balkan in Belgrade

+
+ + +
+ +
+

Next month our team will be at +PyCon Balkan, Oct 3-5 in Belgrade. Together with +presentation and a workshop we are going to host open source sprints! +These will be an informal gathering where participants will be able to +learn more about how open source works and go through their first +contributions. This is ideal for students and less experienced people +but we welcome everyone. There will be tasks ranging from easy to very hard!

+

Who: 4 mentors from Kiwi TCMS and you!

+

What: full day of peer programming and contributing to Kiwi TCMS

+

Where: room will be announced on the days of the conference, + follow @KiwiTCMS for more info

+

Why: up your tech skills, build your GitHub profile and have fun together

+

Translate Kiwi TCMS

+

Difficulty: easy

+

We have enabled Serbian language in our translation system. To get started +checkout our +translation contribution +page. +Once strings are translated kiwitcms-bot will automatically open a pull +request with the new text.

+

Find unused CSS classes

+

Difficulty: easy

+

This should be relatively easy. For each class/selector defined in our CSS files +search (grep) if any of the HTML templates use it. If it is not in use then remove +it.

+

Find unused JavaScript code

+

Difficulty: easy

+

Similar to the above. We're not 100% certain but there could be legacy JavaScript +functions which are no longer in use. Find them and remove them! At the very least +you have confirmed that all functions are in use!

+

CodeClimate Minor severity issues

+

Difficulty: easy to moderate

+

Check-out the +list of Minor severity issues. +There are many of them:

+
    +
  • CSS lint issues (we suggest you start with this one)
  • +
  • functions longer than 25 lines of code
  • +
  • functions with bigger cognitive and cyclomatic complexity
  • +
  • modules longer than 250 LOC
  • +
+

Try fixing a few to see how it goes and continue if you feel confident. +Not everything may be an issue so if you have any questions ask someone from our team.

+

CodeClimate Major severity issues

+

Difficulty: moderate to hard

+

Check-out the +list of Major severity issues. +There are around 150 of them:

+
    +
  • identical and similar code blocks
  • +
  • big modules
  • +
  • big functions
  • +
+

Most of these require some sort of refactoring, either splitting snippets +of code into smaller pieces (functions or sub-modules) or using one function +in several places instead of 2 very similar but different functions, etc. +Ask our team members about which approach they prefer for fixing these issues +to minimize the effort spent here.

+

CodeClimate Critical severity issues

+

Difficulty: hard

+

Check-out the +list of Critical severity issues. +All of these are functions with high cognitive complexity and +the recommended way to deal with them is refactoring into +class based views.

+

Improve pylint health

+

Difficulty: easy

+

Execute pylint against the latest sources and start fixing the issues. +Looking at pylint logs the +following items are relatively easy to work on:

+
    +
  • Everything in module tcms.urls
  • +
  • Everything in module tcms.telemetry.api
  • +
  • Everything in module tcms.testruns.tests.test_views
  • +
  • Everything in module tcms.xmlrpc.forms
  • +
  • Everything in module tcms.testcases.tests.test_models
  • +
  • Everything in module tcms.core.forms.fields
  • +
  • Everything in module tcms.settings.common
  • +
  • Everything in module tcms.settings.test
  • +
  • All module-in-directory-without-init errors reported for module tcms.tests.__init__
  • +
+

Note: fixme, missing-permission-required and avoid-auto-field errors are usually harder +to resolve and will require more work/refactoring. If you feel confident go ahead and +fix them, if not skip to the next error message.

+

We also use a custom pylint checker which reports function based views. +If you are looking for something harder to work on, then give it a try +(see 3rd pylint line in Makefile) and refactor some of the existing +view functions into class based views.

+

Fix 3rd party security issues discovered by Bandit

+

Difficulty: moderate to hard

+

Bandit is a static analysis tool similar to pylint. It focuses on discovering +issues which may lead to security vulnerabilities. We have resolved all such +issues in our own source code but we also execute Bandit against the entire +Python dependency stack. There it finds thousands of issues, so much so that +the reporter crashes.

+

In CI there are around +130 issues reported. The best course of action here is to execute Bandit locally +against the offending library and then figure out what to do:

+
    +
  • report an issue upstream
  • +
  • send a pull request upstream
  • +
  • if these are test files maybe exclude them from the package (e.g. don't ship them for production)
  • +
+

Note: inside Travis CI we have all runtime and testing dependencies which is more +than what we have inside the official Docker image for Kiwi TCMS.

+

Work on reported issues

+

The following issues look suitable for a sprint and don't require lots of +background knowledge. You can also find them using the +PyConBalkan label on +GitHub:

+
    +
  • #212 - moderate - Convert jQ to $ - + this is an easy search & rename but will require more extensive manual testing
  • +
  • #431 - moderate to hard - Remove JavaScript fireEvent() - + 17 matches in static/js/. Must be replaced with direct function calls
  • +
  • #652 - easy - Removal of labels from form fields - + all labels must be included in the HTML template and marked for translation
  • +
  • #681, #682 - moderate - + Move API modules & their tests from xmlrpc/api/<app>.py to <app>/api.py. These have good test + coverage so you have to make sure you don't break anything
  • +
  • #971 - moderate - manage.py command for changing Site URL - + will help with automatic provisioning, e.g. Ansible. For howto see + Django docs
  • +
  • #1021 - moderate - Update TestCase page UI to allow adding TestPlans to cases - + use TestPlan.add_case() API method and refresh the widget. See how Tags and Components cards work + in the same page
  • +
  • #1070 - moderate - manage.py command for checking email settings - + will help with troubleshooting misconfigured email. Must raise exceptions if something fails. + For howto see + Django docs
  • +
  • #733, + #736, + #738, + #883, + #1089 - hard to very hard - New checkers for pylint - + Kiwi TCMS uses customized pylint checkers to discover various conditions. We need a few more + of them and/or update of the existing ones
  • +
+

We hope to see you in Belgrade. Until then: Happy testing!

+
+
+
+
+ +

Kiwi TCMS conference presence, AW2019

+
+ + +
+ +
+

Your favorite open source test case management system is going on tour again. +During the next several months we will be at:

+ +

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

+
+
+
+
+ +

Kiwi TCMS 6.11

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 6.11! +This is a security and improvement release which updates +many internal dependencies, adds 2 new Telemetry reports, updates +TestPlan and TestCase cloning pages and provides several other +improvements 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  6a8249d23a67    1.011 GB
+kiwitcms/kiwi       6.2     7870085ad415    957.6 MB
+kiwitcms/kiwi       6.1.1   49fa42ddfe4d    955.7 MB
+kiwitcms/kiwi       6.1     b559123d25b0    970.2 MB
+kiwitcms/kiwi       6.0.1   87b24d94197d    970.1 MB
+kiwitcms/kiwi       5.3.1   a420465852be    976.8 MB
+
+
+

Changes since Kiwi TCMS 6.10

+
+

Security

+ +
+
+

Improvements

+
    +
  • Update python-gitlab from 1.8.0 to 1.10.0
  • +
  • Update django-grappelli from 2.12.3 to 2.13.1
  • +
  • Update django-simple-history from 2.7.2 to 2.7.3
  • +
  • Update django-attachments to 1.4.1
  • +
  • Update PyGithub from 1.43.7 to 1.43.8
  • +
  • Update patternfly to version 3.59.3
  • +
  • Update prismjs to version 1.17.0
  • +
  • Add Testing Status Matrix telemetry
  • +
  • Add Testing Execution Trends telemetry
  • +
  • Make it possible to attach files directly inside Test Plan page
  • +
  • Make it possible to attach files directly inside Test Execution widget
  • +
  • Convert Clone TestPlan page to Patternfly, greatly simplify the UI +and update behavior:
      +
    • Cloned TP author will always be set to the current user
    • +
    • Cloned TC author will always be set to the current user
    • +
    • Always keep the original default tester for test cases when cloning
    • +
    • Refactor to class based view
    • +
    • Fix a problem where Version values failed form validation b/c +we've been trying to filter based on non-existing field +product_id instead of just product
    • +
    • Fixes a problem where erroneous Version value was shown in the UI
    • +
    +
  • +
  • Convert Clone TestCase page to Patternfly, greatly simplify the UI +and update behavior. Fixes +Issue #838:
      +
    • Allow cloning into multiple test plans
    • +
    • Remove 'Filter another plan' option. Will be replaced by +'Add TP to TC', see +Issue #1021
    • +
    • Always update sortkey. Cloned TC will show at the bottom of the +TestPlan
    • +
    • Cloned TC author will always be set to the current user
    • +
    • Always keep the original default tester
    • +
    +
  • +
+
+
+

API

+
    +
  • First parameter of RPC method Bug.report() +has been renamed from test_case_run_id to execution_id. This may +break existing API scripts which try to pass this argument by name +instead of by position!
  • +
+
+
+

Settings

+
    +
  • Allow ENV variables KIWI_USE_TZ and KIWI_TIME_ZONE to control +settings USE_TZ and TIME_ZONE. Fixes +Issue #982 (Jason Yi)
  • +
+
+
+

Bug fixes

+
    +
  • Fix wrong permission label when deleting comments. Fixes +Issue #1010
  • +
+
+
+

Refactoring

+
    +
  • Disable unnecessary pylint messages for missing-permission-required +checker (Svetlomir Balevski)
  • +
  • Remove unnecessary from_plan URL variable making cleaner URLs
  • +
  • kiwi_lint: Don't check nested functions for permissions
  • +
  • Remove and regroup JavaScript functions
  • +
  • Instruct pyup-bot to monitor requirements/tarballs.txt for updates
  • +
+
+
+

Translations

+ +
+
+
+

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!

+
+ +
+
+
+
+ +

Contributor profile: Aneta Petkova

+
+ + +
+ +
+

Happy Monday, testers! +In this series we are introducing the contributors behind Kiwi TCMS. +This is our community and these are their stories.

+
+ + Aneta Petkova - QA Chapter Lead at SumUp + + +

+ Aneta is a software engineer navigating the complex field of QA + since her first "grownup" job. She's been working in the area of + test automation for web applications using different programming languages and tools. + + Her mission is to inspire people to think about quality from the + very inception of ideas and to blur the line between developers and + QA specialists. +

+ + + + + + + + + + + + +
+ +

What is your professional background

+

I have an engineering degree in computer science and I've spend the last 8 years in Quality Assurance. +Java, TestNG and UI automation with Selenium WebDriver are my strongest technical skills but +I use different programming languages and tools.

+
+

I believe languages and tools should only support an engineer and never define them.

+
+

Currently I am the QA Chapter Lead at SumUp, +where I can work towards achieving my goals in an amazing team of people that do what they love.

+

When did you use open source for the first time

+

The first time I remember was in 2011, but I've probably used it before and just didn't pay attention. +To me it seemed the same as proprietary, and I guess that means it was good.

+

Describe your contributions to the project

+

I created kiwitcms-junit-plugin. +This is a native Java library which you can install via Maven Central. It +will discover your automated test suite and publish test execution results in +Kiwi TCMS. This plugin is very simple and requires only minimal configuration +before it is ready to work. +Check-out the example in TP-25!

+

editor comment: Aneta and Ivo (Kiwi TCMS) hosted the +"Git crash course" workshop at HackConf 2018. +Kiwi TCMS will be hosting 2 workshops this year so stay tuned!

+

Why did you decide to contribute to Kiwi TCMS

+

I had recently switched Java for Ruby and I was feeling nostalgic. +Also, I had spent my entire career so far in QA and I wanted to slip on +the developer shoes for at least a little bit.

+

Was there something which was hard for you during the contribution process

+

I'm used to working in a team and when I started working on this project +I was the only active Java developer. Luckily for me, I live in the time of StackOverflow, +so I managed to get most of my questions answered by strangers on the Internet.

+
+

I learned tons of stuff, but mostly I learned I can build software, not just test it!

+
+

Which is the best part of contributing to Kiwi TCMS

+

Doing something that has the potential to help others and that could be improved upon.

+

What is next for you in professional and open source plan

+

My current focus is moving slightly into DevOps direction and I am really overwhelmed +by the amount of things to learn. I feel there is so much I want to experiment with. +I am not really planning anything related to open source - it has never been a goal for me - +but when I come across a project I feel strongly about, I'd probably be tempted to contribute.

+

Thank you, Aneta! Happy testing!

+
+
+
+
+ +

Contributor profile: Primož Klemen

+
+ + +
+ +
+

In this new series we are going to introduce the contributors behind Kiwi TCMS. +This is our community and these are their stories.

+
+ + Primož Klemen - + QA tester, full time dad, Manchester United F.C. supporter + +

+ Primož is an early adopter and our Slovenian translator. He's been actively engaging + in GitHub issues, posted pull requests for improving documentation and follows us on + StackOverflow as well. +

+ + + + + + + + +
+ +

What is your professional background

+

I've started working in IT as tech support for the 2nd largest Slovenian ISP at the time. +Then I've been at leading software provider for fintech in the Balkans region in the same +role and gradually transitioned into QA role. Currently, I'm working as a QA tester for +Better (by Marand) and ensure, with help of my colleagues of course, +proper quality of administration application for health care sector.

+

When did you use open source for the first time

+

If I recall correctly that would be some 14 years ago when I ditched dreaded +Internet Explorer in favor of Mozilla Firefox browser. The whole Internet got better in +a matter of seconds.

+

What are your contributions to Kiwi TCMS

+

I mainly contribute via translating the application into my native language, Slovenian. +Currently there are +7 languages available for Kiwi TCMS so you are +more than welcome to join and add another one. +Translating via Crowdin +is very simple and requires no additional technical skills. I've also dabbled into project +documentation and proposed a few updates to it. I'm also the culprit for some +32 issues and counting, +the majority of them being proposals for future application enhancements and few UX/UI bugs +(déformation professionnelle :-)).

+

Why did you decide to contribute to Kiwi TCMS

+
+

The guys and gals from the Kiwi TCMS team provided us with an application which solved +our pain about building, maintaining and running manual regression tests.

+
+

They did all of that for free in their spare time! So I've decided to give something back to +the whole community. This was indeed my first +contribution to the open source world but not the last. Since then I've also +contributed to other projects which I use on a regular basis.

+
+

In hindsight, Kiwi TCMS converted me from an open source user to open source contributor!

+
+

Was there something which was hard for you during the contribution process

+

Contributing to the project, as a non-developer, is very easy and intuitive by +either opening issues on GitHub or translating via Crowdin or even committing +updated documentation to git repository through GitHub Desktop client. +All of the aforementioned was new to me and I've learned in depth how to use +these tools. I've also had the pleasure to familiarize myself with project documentation +- Sphinx and reStructuredText are my two new best friends.

+

Which is the best part of contributing to Kiwi TCMS

+

Being able to actively improve an application that we use on a daily basis in our +development process. Getting to know more people from all around the globe and see their +insights about software quality assurance thus learning something new every day.

+

What is next for you in professional and open source plan

+

Professionally I'm 100% committed to Better (by Marand) and helping us achieve +the best standard of quality for health care applications which also incorporates +using the knowledge gathered by following and/or contributing to open source. +I'm going to continue contributing to Kiwi TCMS and +Captura and if time allows maybe involve myself with some other interesting projects.

+

Thank you, Primož! Happy testing!

+
+
+ +
+ Newer Posts +

+ Page 4 / 6 +

+ Older Posts +
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/index5.html b/blog/kiwi-tcms-team/index5.html new file mode 100644 index 00000000..31cba00b --- /dev/null +++ b/blog/kiwi-tcms-team/index5.html @@ -0,0 +1,2644 @@ + + + + + Kiwi TCMS - Articles by Kiwi TCMS Team + + + + + + + + + + + + + + + + + + + + + +
+

Articles by Kiwi TCMS Team

+ +
+
+ +

Kiwi TCMS 6.10

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 6.10! +This is a small security and improvement update. +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  bbb581d60ed1    1.005 GB
+kiwitcms/kiwi       6.2     7870085ad415    957.6 MB
+kiwitcms/kiwi       6.1.1   49fa42ddfe4d    955.7 MB
+kiwitcms/kiwi       6.1     b559123d25b0    970.2 MB
+kiwitcms/kiwi       6.0.1   87b24d94197d    970.1 MB
+kiwitcms/kiwi       5.3.1   a420465852be    976.8 MB
+
+
+

Changes since Kiwi TCMS 6.9

+
+

Security

+
    +
  • Update Django from 2.2.1 to 2.2.2 for medium severity +CVE-2019-12308 (XSS), CVE-2019-11358 (jQuery). +More info
  • +
  • Add missing permission checks for menus in Test run page UI template. +Permission check added for TestExecution status and comment menu. +References Issue #716
  • +
  • Re-enable static analysis with bandit and Coverity Scan in +Travis CI (Svetlomir Balevski)
  • +
+
+
+

Improvements

+
    +
  • Update psycopg2 from 2.8.2 to 2.8.3
  • +
  • Update markdown from 3.1 to 3.1.1
  • +
  • Update patternfly to version 3.59.2
  • +
  • Override PasswordResetForm because Site.objects.get_current() +didn't produce correct results when working with kiwitcms-tenants
  • +
  • Show column is_active in user admin page
  • +
+
+
+

Refactoring

+
    +
  • Add test for email_case_deletion() (Rik)
  • +
  • New linter to warn about usage of AutoField. Fixes +Issue #737 (Ivo Donchev, HackSoft)
  • +
  • New linter to discover empty classed. Fixes +Issue #739 (Daniel Goshev)
  • +
  • New linter to warn about usage of OneToOneField. Fixes +Issue #735 (George Goranov)
  • +
  • New linter to warn about usage of function based views. Fixes +Issue #734 (Yavor Lulchev, Uber)
  • +
  • New linter to discover Python files in directories without __init__.py. Fixes +Issue #790
  • +
+
+
+
+

Join us at OpenExpo in Madrid

+

Kiwi TCMS is exhibitor at OpenExpo Europe +on June 20th in Madrid. We will be hosting an info booth and 2 technical +presentations delivered by +Anton Sankov and +Alex Todorov.

+

Kiwi TCMS is also the leading finalist in the +Best Tech Community +category at Open Awards 2019!

+

Use OE19SPEAKERINVITE 100% discount code! Get your ticket +here!

+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+

WARNING: kiwitcms/kiwi:latest and docker-compose.yml will +always point to the latest available version! If you have to upgrade in steps, +e.g. between several intermediate releases, you have to modify the above workflow:

+
+# starting from an older Kiwi TCMS version
+docker-compose down
+docker pull kiwitcms/kiwi:<next_upgrade_version>
+edit docker-compose.yml to use kiwitcms/kiwi:<next_upgrade_version>
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+# repeat until you have reached latest
+
+

Happy testing!

+
+ +
+
+
+ + +
+

Vote for Kiwi TCMS at OpenAwards 2019

+

Thanks to you, our community supporters, Anton Sankov and Alex Todorov +took the lead at OpenExpo 2019 CfP votes. +We need your help one more time. Our team has submitted participation in +'Best Tech Community' and 'Best Success Story' categories.

+

Unfortunately our submission into 'Best Success Story' has been pulled down! +We used that category to share the story from a dead open source project into +a thriving open source community with lots of users and contributors and to +highlight some of our milestones. Here's the short version:

+
    +
  • lots of technical updates and refactoring, latest everything, modern UI
  • +
  • the only open source test case management system on GitHub Marketplace
  • +
  • nearly 60000 downloads on Docker Hub
  • +
  • growing and active core team
  • +
  • active OSS contributors
  • +
+

Please help us gain more recognition:

+ +

Thanks you & happy testing!

+
+
+
+
+ +

Kiwi TCMS 6.9

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 6.9! +This is a small improvement and bug-fix update which introduces +our first telemetry report: testing breakdown. 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  a01eaeddf213    1.001 GB
+kiwitcms/kiwi       6.2     7870085ad415    957.6 MB
+kiwitcms/kiwi       6.1.1   49fa42ddfe4d    955.7 MB
+kiwitcms/kiwi       6.1     b559123d25b0    970.2 MB
+kiwitcms/kiwi       6.0.1   87b24d94197d    970.1 MB
+kiwitcms/kiwi       5.3.1   a420465852be    976.8 MB
+
+
+

Changes since Kiwi TCMS 6.8

+
+

Improvements

+
    +
  • Update mysqlclient from 1.4.2 to 1.4.2.post1
  • +
  • Ship with prism.js so it can be used for syntax highlighting
  • +
  • Add Testing Breakdown telemetry
  • +
  • Mark more strings for translations
  • +
  • Add delete_user() function which can delete data across +Postgre schemas (if kiwitcms-tenants add-on is installed)
  • +
+
+
+

API

+
    +
  • Remove deprecated TestCaseRun. API methods. Use the new +TestExecution. methods introduced in v6.7. Fixes +Issue #889
  • +
+
+
+

Bug fixes

+
    +
  • Fix typos in documentation (@Prome88)
  • +
  • Fix TemplateParseError in email templates when removing test cases. +On-delete email notification is now sent properly
  • +
+
+
+

Refactoring

+
    +
  • Add more tests around TestRun/TestExecution menu permissions
  • +
  • Minor pylint fixes
  • +
+
+
+

Translations

+ +
+
+
+

Join us at OpenExpo in Madrid

+

Kiwi TCMS is exhibitor at OpenExpo Europe +on June 20th in Madrid. We will be hosting an info booth and 2 technical +presentations delivered by Anton Sankov and Alex Todorov.

+

Next week we are going to announce 100% discount tickets +for our guests at the conference. If you are interested in coming +subscribe to our newsletter +and don't miss the announcement!

+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+

WARNING: kiwitcms/kiwi:latest and docker-compose.yml will +always point to the latest available version! If you have to upgrade in steps, +e.g. between several intermediate releases, you have to modify the above workflow:

+
+# starting from an older Kiwi TCMS version
+docker-compose down
+docker pull kiwitcms/kiwi:<next_upgrade_version>
+edit docker-compose.yml to use kiwitcms/kiwi:<next_upgrade_version>
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+# repeat until you have reached latest
+
+

Happy testing!

+
+ +
+
+
+
+ +

Kiwi TCMS 6.8

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 6.8! +This is a small improvement and bug-fix update. +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  fca095f95475    994.8 MB
+kiwitcms/kiwi       6.2     7870085ad415    957.6 MB
+kiwitcms/kiwi       6.1.1   49fa42ddfe4d    955.7 MB
+kiwitcms/kiwi       6.1     b559123d25b0    970.2 MB
+kiwitcms/kiwi       6.0.1   87b24d94197d    970.1 MB
+kiwitcms/kiwi       5.3.1   a420465852be    976.8 MB
+
+
+

Changes since Kiwi TCMS 6.7

+
+

Improvements

+
    +
  • Update Django from 2.2 to 2.2.1
  • +
  • Update django-simple-history from 2.7.0 to 2.7.2
  • +
  • Update django-grappelli from 2.12.2 to 2.12.3
  • +
  • Update psycopg2 from 2.8 to 2.8.2
  • +
  • Update pygithub from 1.43.6 to 1.43.7
  • +
  • Upgrade pip and setuptools inside Docker image
  • +
  • Update documentation with newer screenshots and updated Tutotial. Fixes +Issue #837 (@Prome88)
  • +
  • Document how to enable public read-only views
  • +
  • Remove deprecated documentation section about Bugzilla authentication
  • +
  • Install PostgreSQL libraries in Docker image which makes it easier to +switch the DB backend without rebuilding the entire image
  • +
  • Remove npm, libxml2-devel and libxslt-devel from Docker image
  • +
  • Database engine configuration now respects the KIWI_DB_ENGINE environment +variable which defaults to django.db.backends.mysql. This will make it +easier for admins to change DB engine by updating their docker-compose.yml
  • +
+
+
+

Bug fixes

+
    +
  • Pin bootstrap-switch to version 3.3.4 in package.json. Fixes +Issue #916
  • +
+
+
+

Translations

+ +
+
+

Refactoring

+
    +
  • Don't use Site.objects.get_current() because it has an internal cache +and causes email notifications from tenants to use the wrong URL
  • +
  • More changes around renaming of TestCaseRun to TestExecution
  • +
+
+
+
+

GitHub Marketplace

+

During the past week we have silently launched Kiwi TCMS on +GitHub Marketplace. Free plans +will be redirected to +public.tenant.kiwitcms.org +while paid plans will be hosted under *.tenant.kiwitcms.org sub-domains!

+

Our team is still working on all requirements for GitHub integration and we will +issue a formal statement when ready!

+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+

WARNING: kiwitcms/kiwi:latest and docker-compose.yml will +always point to the latest available version! If you have to upgrade in steps, +e.g. between several intermediate releases, you have to modify the above workflow:

+
+# starting from an older Kiwi TCMS version
+docker-compose down
+docker pull kiwitcms/kiwi:<next_upgrade_version>
+edit docker-compose.yml to use kiwitcms/kiwi:<next_upgrade_version>
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+# repeat until you have reached latest
+
+

Happy testing!

+
+ +
+
+
+
+ +

Kiwi TCMS 6.7

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 6.7! +This is a small improvement and bug-fix update. +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  702a78976de7    993.5 MB
+kiwitcms/kiwi       6.2     7870085ad415    957.6 MB
+kiwitcms/kiwi       6.1.1   49fa42ddfe4d    955.7 MB
+kiwitcms/kiwi       6.1     b559123d25b0    970.2 MB
+kiwitcms/kiwi       6.0.1   87b24d94197d    970.1 MB
+kiwitcms/kiwi       5.3.1   a420465852be    976.8 MB
+
+
+

Changes since Kiwi TCMS 6.6

+
+

Improvements

+
    +
  • Update Django from 2.1.7 to 2.2
  • +
  • Update markdown from 3.0.1 to 3.1
  • +
  • Update psycopg2 from 2.7.7 to 2.8
  • +
  • Update pygithub from 1.43.5 to 1.43.6
  • +
  • Update bleach-whitelist from 0.0.9 to 0.0.10
  • +
  • Update marked(.js) to version 0.6.2
  • +
  • Support arbitrary depth for MENU_ITEMS setting
  • +
  • Support auto-discovery of 3rd party Telemetry plugins, see +documentation
  • +
+
+
+

Database migrations

+
    +
  • Rename TestCaseRun to TestExecution including renaming existing +permissions
  • +
  • Rename TestCaseRunStatus to TestExecutionStatus
  • +
+
+
+

API

+
    +
  • Rename TestCaseRun.* to TestExecution.*
  • +
  • Rename TestCaseRunStatus.* to TestExecution.*
  • +
  • This version keeps the old names for backwards compatibility reasons but they +will be removed in +Issue #889
  • +
+
+
+

Bug fixes

+
    +
  • Prompt user before deleting attachments. Fixes +Issue #867 (Martin Jordanov)
  • +
  • email_case_deletion() format error fixed so notifications when +test cases are deleted are not sent (Rik)
  • +
+
+
+

Refactoring

+
    +
  • Remove unused images
  • +
  • Install node_modules/ under tcms/ and include it inside PyPI tarball
  • +
+
+
+

Translations

+ +
+
+
+

Native JUnit 5 plugin

+

Our team is happy to announce the availability of +kiwitcms-junit-plugin. +This is a native JUnit 5 plugin which will read the results from your +automated test suite and send them back to Kiwi TCMS.

+

Version 1.0.3 and the latest changes in master branch are still to be considered +Beta quality. They are available for early preview and feedback.

+

Many thanks to Aneta Petkova who is the +main contributor behind this plugin!

+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+

WARNING: kiwitcms/kiwi:latest and docker-compose.yml will +always point to the latest available version! If you have to upgrade in steps, +e.g. between several intermediate releases, you have to modify the above workflow:

+
+# starting from an older Kiwi TCMS version
+docker-compose down
+docker pull kiwitcms/kiwi:<next_upgrade_version>
+edit docker-compose.yml to use kiwitcms/kiwi:<next_upgrade_version>
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+# repeat until you have reached latest
+
+

Happy testing!

+
+ +
+
+
+
+ +

Kiwi TCMS 6.6

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 6.6! This is a +medium severity security update, improvement and bug-fix update. +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  c4734f98ca37    971.3 MB
+kiwitcms/kiwi       6.2     7870085ad415    957.6 MB
+kiwitcms/kiwi       6.1.1   49fa42ddfe4d    955.7 MB
+kiwitcms/kiwi       6.1     b559123d25b0    970.2 MB
+kiwitcms/kiwi       6.0.1   87b24d94197d    970.1 MB
+kiwitcms/kiwi       5.3.1   a420465852be    976.8 MB
+
+
+

Changes since Kiwi TCMS 6.5.3

+
+

Security

+
    +
  • Explicitly require marked v0.6.1 to fix medium severity ReDoS vulnerability. See +SNYK-JS-MARKED-73637
  • +
+
+
+

Improvements

+
    +
  • Update python-gitlab from 1.7.0 to 1.8.0
  • +
  • Update django-contrib-comments from 1.9.0 to 1.9.1
  • +
  • More strings marked as translatable (Christophe CHAUVET)
  • +
  • When creating new TestCase you can now change notification settings. +Previously this was only possible during editing
  • +
  • Document import-export approaches. Closes +Issue #795
  • +
  • Document available test automation plugins
  • +
  • Improve documentation around Docker customization and SSL termination
  • +
  • Add documentation example of reverse rroxy configuration for HAProxy (Nicolas Auvray)
  • +
  • TestPlan.add_case() will now set the sortkey to highest in plan + 10 (Rik)
  • +
  • Add LinkOnly issue tracker. Fixes +Issue #289
  • +
  • Use the same HTML template for both TestCase new & edit
  • +
  • New API methods for adding, removing and listing attachments. Fixes +Issue #446:
      +
    • TestPlan.add_attachment()
    • +
    • TestCase.add_attachment()
    • +
    • TestPlan.list_attachments()
    • +
    • TestCase.list_attachments()
    • +
    • Attachments.remove_attachment()
    • +
    +
  • +
+
+
+

Database migrations

+
    +
  • Populate missing TestCase.text history. +In version 6.5 the TestCase model was updated to store the text +into a single field called text instead of 4 separate fields. +During that migration historical records were updated to have +the new text field but values were not properly assigned.

    +

    The "effect" of this is that in TestCaseRun records you were not +able to see the actual text b/c it was None.

    +

    This change ammends 0006_merge_text_field_into_testcase_model for +installations which have not yet migrated to 6.5 or later. We also +provide the data-only migration 0009_populate_missing_text_history +which will inspect the current state of the DB and copy the text to +the last historical record.

    +
  • +
+
+
+

Removed functionality

+
    +
  • Remove legacy reports. Closes +Issue #657

    +
  • +
  • Remove "Save & Continue" functionality from TestCase edit page

    +
  • +
  • Renamed API methods:

    +
      +
    • TestCaseRun.add_log() -> TestCaseRun.add_link()
    • +
    • TestCaseRun.remove_log() -> TestCaseRun.remove_link()
    • +
    • TestCaseRun.get_logs() -> TestCaseRun.get_links()
    • +
    +

    These methods work with URL links, which can be added or removed to +test case runs.

    +
  • +
+
+
+

Bug fixes

+
    +
  • Remove hard-coded timestamp in TestCase page template, References +Issue #765
  • +
  • Fix handling of ?from_plan URL parameter in TestCase page
  • +
  • Make TestCase.text occupy 100% width when rendered. Fixes +Issue #798
  • +
  • Enable markdown.extensions.tables. Fixes +Issue #816
  • +
  • Handle form erros and default values for TestPlan new/edit. Fixes +Issue #864
  • +
  • Tests + fix for failing TestCase rendering in French
  • +
  • Show color-coded statuses on dashboard page when seen with non-English +language
  • +
  • Refactor check for confirmed test cases when editting to work with +translations
  • +
  • Fix form values when filtering test cases inside TestPlan. Fixes +Issue #674 (@marion2016)
  • +
  • Show delete icon for attachments. Fixes +Issue #847
  • +
+
+
+

Refactoring

+
    +
  • Remove unused .current_user instance attribute
  • +
  • Remove EditCaseForm and use NewCaseForm instead, References +Issue #708, +Issue #812
  • +
  • Fix "Select All" checkbox. Fixes +Issue #828 (Rady)
  • +
+
+
+

Translations

+ +
+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+

WARNING: kiwitcms/kiwi:latest and docker-compose.yml will +always point to the latest available version! If you have to upgrade in steps, +e.g. between several intermediate releases, you have to modify the above workflow:

+
+# starting from an older Kiwi TCMS version
+docker-compose down
+docker pull kiwitcms/kiwi:<next_upgrade_version>
+edit docker-compose.yml to use kiwitcms/kiwi:<next_upgrade_version>
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+# repeat until you have reached latest
+
+

Happy testing!

+
+ +
+
+
+
+ +

Taking the lead at OpenExpo Europe CfP votes

+
+ + +
+ +
+

Vote for Kiwi TCMS at OpenExpo

+

We are happy to announce that Anton Sankov and Alex Todorov are currently taking +the lead at OpenExpo Europe's CfP votes!

+

Going to OpenExpo will be huge boost for Kiwi TCMS so please help us make this happen! +Voting is open until March 17th 2019! You can cast your vote via Facebook login +but remember to confirm your email address!

+ +

Thank you & happy testing!

+
+
+
+
+ +

Legacy reports become Telemetry

+
+ + +
+ +
+

As we've promised Kiwi TCMS is +starting work on improving the legacy reports functionality. +After analyzing your feedback in +Issue #657 here's what we came up +with. Note: screenshots below are mockups.

+

General tech specs

+
    +
  • Once a self-contained tarball is installed inside the Docker image (or inside local virtualenv) + Kiwi TCMS will be able to find it automatically and update the menu options. Aka plugins. + No further configuration should be necessary other than providing the source code implementing + the new functionality
  • +
  • Navigation menu will be able to support several layers of menus
  • +
  • Where possible Telemetry pages will reuse existing HTML templates
  • +
  • Telemetry data will be implemented as an RPC method that can be consumed by the front-end + via JSON-RPC
  • +
  • Charts will be rendered in the browser with c3/d3, + see Data Visualization
  • +
+

Feature: Rename TestCaseRun to TestExecution

+

Inside Kiwi TCMS the term "test case" is used to refer to specific scenario of +testing steps. A "test run" is the collection of multiple "test cases" which +will be executed against a particular product build and environment.

+

The specific results are kept into what is now called "test case run". This will +be renamed to "test execution" (internally TestExecution class) to make it more +clear and easier to distinguish among other artifacts.

+

Feature: Better color coding for test execution status

+

As a webUI user I want to easily distinguish between PASSED, FAILED and other statuses +when looking at charts and graphical visualizations.

+

TestRun progress

+

This feature request comes from the TestRun progress bar. +Other charts should use the same 4 status categories and color coding standards:

+
    +
  • IDLE - pf-black-600
  • +
  • PASSED - pf-green-400
  • +
  • FAILED - pf-red-100
  • +
  • OTHER - pf-orange-400. This includes other statuses which are not PASSED, FAILED and IDLE.
  • +
+

Here the percent value will continue to mean percent completed, aka non-IDLE.

+

Implementation wise the TestCaseRunStatus class defines methods for the actual icons to be used. +The same can be done for colors and this can be used directly in the HTML templates. +For color definitions see Status Palette.

+

Feature: Printable Test Execution Report

+

As a tester I want to have a nice looking TestRun execution report which I can present to +my managers, stakeholders and/or customers. The page needs to be printer friendly for +“Print to PDF” or print on paper!

+

Kiwi TCMS already has this feature. Clicking the [Report] button +in the progress widget at TR-625 presents +TestRun execution information in a simplified format found at +TR-625/Report. +In order to improve the current implementation:

+
    +
  • Convert TestRun page to Patternfly which generally prints better
  • +
  • Add bug list at the bottom of the page, below all test execution rows
  • +
  • Keep “View all in Issue Tracker” link (supported only for some bug trackers)
  • +
  • The widget for TestRun progress must be kept
  • +
  • Tweak CSS classes to disable printing for visual elements that we don't need. + This will be decided after the entire page has been converted to Patternfly
  • +
  • Remove the existing testruns.views.TestRunReportView and associated templates, + JavaScript and CSS because they will not be needed anymore
  • +
+

Feature: Individual or team performance telemetry

+

As a manager I want to know what the work-load/performance of individual teams and +engineers is. I can use this information either for performance review or for +capacity planning of future work.

+

Individual/team performance

+

A new page will be available under TELEMETRY -> Management -> Performance which will:

+
    +
  • Allow filtering by
      +
    • Group (multi-select)
    • +
    • User (multi select, depends on Group)
    • +
    • Start / Stop dates
    • +
    • Product
    • +
    +
  • +
  • Show results per User or per Group (if no users are selected)
  • +
  • Allow grouping per TestRun ID or calendar week number
  • +
+

The backend will query TestExecution.objects and apply the selected +filters and grouping logic! +The returned data is the count of how many tests this person/team was able to execute.

+

Further refinement: +Aggregate count by statuses (executed vs. non-executed or PASSED vs. FAILED vs. OTHER). +May be represented as a stacked bar chart if grouping of series is supported.

+

Feature: Time-tracking telemetry

+

As a manager I want to know how much time it took to complete previous testing activities. +I can use this information for predicting future capacity.

+

New page under TELEMETRY -> Management -> Time tracking.

+
    +
  • Filtering will be the same as performance telemetry
  • +
  • Grouping will be the same as performance telemetry
  • +
  • Unknown: total execution time is calculated as
      +
    • the sum of duration for each TestExecution (not available ATM, + automation plugins not sending this info) or
    • +
    • the total time for the entire TestRrun (not supported by automation plugins)
    • +
    +
  • +
+

Visually this will be a line chart with one line for each user/group which have +been selected. It will be very good if the existing chart libraries allow for a +stacked line chart or a stacked area chart here!

+

Feature: Estimate TestRun completion time

+

As a test lead I want to know approximately when testing is expected to complete.

+

This feature will utilize time-tracking data from previous executions and +display the approximated calculation in the web UI. The most obvious place for this +is the TestRun progress widget (under the progress bar) or the Test Run page +(near the Started at/Finished at fields).

+

Example text:

+
Started at: YYYY-MM-DD 10:38
+Status: Running
+Duration: 1.2 / 3 hrs
+Estimated completion at: 13:30
+
+ + +

Unknown: where does baseline duration come from? Either from the most recent TestRun +or an average from all of the previous Test Runs. Note that cumulative TestRun duration +is calculated between Start/Finish events while individual TestExecution records may +sum up to a different value! This needs to be clarified.

+

Feature: TestCase health telemetry

+

As a tester and/or manager I want to be able to discover which TestCase(s) are the most +common source of problems, that is they fail all the time or from time to time. +This may indicate poor test design or bad practices when developing the product. +This is also known as test stability or flaky tests!

+

Flaky tests

+

New page under TELEMETRY -> Testing -> Flaky tests

+
    +
  • Allow filtering by
      +
    • Product
    • +
    • Test plan (refined by product)
    • +
    • Start / Stop dates
    • +
    +
  • +
  • Show results in table form as shown in the image above
  • +
  • PASS/non-PASS stats will be calculated based on TestExecution.objects
  • +
  • 100% failing rate will be reported in the first table as ALWAYS FAILING
  • +
  • Executions where failing rate is >0% and <100% will be reported as FLAKY TESTS
  • +
+

Feature: TestCase breakdown telemetry

+

As a tester and/or manager I want to see a breakdown of tests so that I have an +idea how the existing tests for the product are distributed!

+

Test case breakdown

+

New page under TELEMETRY -> Testing -> Breakdown

+
    +
  • Allow filtering by
      +
    • Product
    • +
    • Test plan (refined by product)
    • +
    • Start / Stop dates
    • +
    +
  • +
+

Shows combined bar/line charts with information about test case priorities, categories, +automation status and confirmed status.

+

Feature: Individual TestCase health widget

+

As a test engineer I want to be able to quickly see health information about individual +test case. This can help me visually locate TCs that need improvement so I can edit them +or will help me visually judge the past history of the TC I am looking at.

+

Individual TestCase health

+

This depends on the previous feature. Possible places where health status can be shown:

+
    +
  • Test Case page, Executions card: info per TP
  • +
  • Test Run page, Test Executions table - visual icon + % to hint the user + about expected TC stability
  • +
+

Feature: Execution trends telemetry

+

As a test manager I want to see information if Product builds are getting better or worse. +In other words what is the trend in TestExecution number and status!

+

Build status

+

This is going to be a new page at TELEMETRY -> Testing -> Execution trends

+
    +
  • Filter by
      +
    • Product
    • +
    • Version (refined by Product)
    • +
    • Build (refined by Version)
    • +
    • Test Plan (refined by Product)
    • +
    • Start / Stop dates
    • +
    +
  • +
  • Shows total count of TestExecution.objects (stacked area chart) with color codes for status
  • +
  • Group by TestRun ID or calendar week
  • +
+

You will be able to select TestRuns and/or weeks for detailed comparison.

+

Feature: TestRun status matrix telemetry

+

As a test manager I want to see detailed information about testing status for +specific test run(s) or a calendar period. I also want to be able to compare +the results between various weeks and/or test runs.

+

Compare TestRuns

+

This is a continuation of Execution trends telemetry but can be used on its own as well. +It will be accessible from TELEMETRY -> Testing -> Status matrix

+

Filtering options are the same. Results are displayed in a table format where +columns are the filtered (or previously selected) TestRun objects or calendar weeks. +The rows are the names of individual test cases that have been executed. If a case +is missing the cell will be empty.

+

Cells contain color coded information about status, timestamp of execution, +execution duration, links to the TestExecution object, latest comment in case +of failure.

+

Links to bugs will be shown in each cell with a summarized bug table below the +charts.

+

Feature: Search and compare TestRuns

+

This is complimentary to the TestRun status matrix feature! While searching +for TestRuns in SEARCH -> Test Runs the user will be able to select several +rows and proceed to compare them as described above.

+

Happy testing!

+
+
+
+
+ +

Want to hack open source ?

+
+ + +
+ +
+

+

Have you ever wanted to be part of an open source team? +Have you ever wanted to contribute back the open source community ? +Have you ever wanted to see your code used by thousands of people ?

+

If yes now you have the opportunity! Read on to learn how you can help +Kiwi TCMS and how our team can help you.

+

Inexperienced Python developer(s)

+

It is fine not to have any experience at all! You will compensate with +commitment and hard work. Initially you are going to work on refactoring, +cleaning up pylint errors, removing duplicate code and other issues +reported by CodeClimate.

+

By doing this you will have the opportunity to learn git, Python, Django, +some CSS, JavaScript and Patternfly HTML of course. We are going to provide +you with all the learning materials plus help and guidance from existing team members.

+

Everyone on the team has gone though the same training procedure and grueling tasks +and so will you! Once you can demonstrate progress and learn the ropes you +will continue working on more complicated tasks.

+

Experienced Python developer(s)

+

So you have some experience already, you've probably contributed code before and are +now looking for more green stripes on your GitHub profile. We've got you covered!

+

There are many areas to choose from: issue tracker integration, GitHub integration, +GitLab integration, external API library, Kiwi TCMS plugins written in Python and +customized pylint linters! This is going to be where you get your hands dirty and +show your strengths. Our team is here to help if necessary but we expect you to +show progress by yourself.

+

A challenge for you will be to review pull requests from other contributors and +be patient with less experienced contributors and team members. This is an excellent +opportunity to work on your people skills as well.

+

Experienced non-Python developer(s) (with Java)

+

Kiwi TCMS is primarily looking for Java developers who will own our test automation +plugins. Currently we have a plugin for JUnit 5 and TestNG is in planning. Maybe +there will be a plugin for Jenkins as well. You are going to own these components +and work solely on them. Unless you decide to learn Python and Django that would +be a very easy job!

+

.NET, PHP, Ruby, JavaScript ? We don't have a lot of code written in these languages +but you can help change this. The main thing we'd like you to know +(or become familiar with) are the internals of popular test automation frameworks +for these languages and how to create plugins for them.

+

QA engineer with Python

+

You are going to test a lot! You are going to write test automation a lot! Ideally you +already have a medium level of experience in the software testing field and +want to improve your coding skills and/or get more experience into a different +application domain. We also have Linux and Docker in the mix, just for fun!

+

Your responsibility will be to design test scenarios for various features (new or existing), +write test automation scripts and help improve overall test coverage and quality +of Kiwi TCMS. You will also check-in on non-Python developers and +help them with test design when necessary.

+

There are other things that can be tested as well, for example Kiwi TCMS +performance and scalability. Here you will have to get down to the nitty-gritty +stuff and do some profiling to pin-point where the root cause of the problem is.

+

Security freak

+

We've got Coverity scan and +Snyk automatically inspecting our +code base. We do have some other tools as well and we know they can never be enough.

+

You will be responsible for triaging the numerous issues being reported by these +tools and help us decide if they are a real threat or a false positive. For example +Coverity reports hundreds of issues mostly coming from our Python and Node.js dependency +stack. We haven't had the time to classify them and work with upstream communities +to fix them thus the majority of your contributions will be outside of the +Kiwi TCMS code base.

+

Graphics designer

+

Your main job is going to be creating beautiful images for our website, +blog posts and promotional material. All the images we use are licensed under +Creative Commons which we then modify with the specific Kiwi TCMS look and +feel. This is not going to change, your work will remain under a permissive +license!

+

Marketing specialist

+

You will be directly responsible for driving more traffic to our website, +interpreting Google Analytics metrics and coming up with creative ideas +how to boost Kiwi TCMS popularity. This means, but not limited to blog posts, +collaborations with other projects and/or bloggers, professional magazines, etc. +You will also be in charge of events and conferences that we go to! Whenever +possible you will be coming with us as well!

+

A challenge for you will be to learn some technical jargon and learn more +about the software testing profession and software testers in general!

+

What's in it for you ?

+

You will sharpen your skills! You will use Kiwi TCMS as a platform to +improve your career. You will experience the gratification of our community of users.

+

This blog is the medium where you can share tips +and tricks and technical articles about interesting features in Kiwi TCMS. +If you'd rather have your personal blog working on Kiwi TCMS will give you lots +of topics to write about.

+

We go to conferences and meetups too. If public speaking is your thing +you will have plenty of topics to talk about. We can also help you +deliver your first presentation! Everyone on the team has done it!

+

Our existing team will help you learn and we will help you grow. Our personal time +is the most expensive item we can offer to you! In return we expect you to +fulfill your commitments and when you promise something will be done you will +make sure it is done!

+

How to apply ?

+

You can figure this out yourself.

+

Happy testing!

+
+
+
+
+ +

Kiwi TCMS 6.5.3

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 6.5.3! This is a +security, improvement and bug-fix update that includes new +versions of Django, includes several database migrations and fixes several bugs. +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  b9355cf85833    1.039 GB
+kiwitcms/kiwi       6.2     7870085ad415    957.6 MB
+kiwitcms/kiwi       6.1.1   49fa42ddfe4d    955.7 MB
+kiwitcms/kiwi       6.1     b559123d25b0    970.2 MB
+kiwitcms/kiwi       6.0.1   87b24d94197d    970.1 MB
+kiwitcms/kiwi       5.3.1   a420465852be    976.8 MB
+
+
+

Changes since Kiwi TCMS 6.5

+
+

Security

+
    +
  • Update Django from 2.1.5 to 2.1.7. Fixes CVE-2019-6975: +Memory exhaustion in django.utils.numberformat.format()
  • +
+
+
+

Improvements

+
    +
  • Update mysqlclient from 1.4.1 to 1.4.2
  • +
  • Multiple template strings marked as translatable (Christophe CHAUVET)
  • +
+
+
+

Database migrations

+
    +
  • Email notifications for TestPlan and TestCase now default to True
  • +
  • Remove TestPlanEmailSettings.is_active field
  • +
+
+
+

API

+
    +
  • New method Bug.report(), References +Issue #18
  • +
  • Method Bug.create() now accepts parameter auto_report=False
  • +
+
+
+

Translations

+ +
+
+

Bug fixes

+
    +
  • Show the user who actually tested a TestCase instead of hard-coded value. Fixes +Issue #765
  • +
  • Properly handle pagination button states and page numbers. Fixes +Issue #767
  • +
  • Add TestCase to TestPlan if creating from inside a TestPlan. Fixes +Issue #777
  • +
  • Made TestCase text more readable. Fixes +Issue #764
  • +
  • Include missing templates and static files from PyPI tarball
  • +
+
+
+

Refactoring

+
    +
  • Use find_packages() when building PyPI tarball
  • +
  • Install Kiwi TCMS as tarball package inside Docker image instead of copying +from the source directory
  • +
  • Pylint fixes
  • +
  • Remove testcases.views.ReturnActions() which is now unused
  • +
  • Refactor New TestCase to class-based view and add tests
  • +
+
+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+

WARNING: kiwitcms/kiwi:latest and docker-compose.yml will +always point to the latest available version! If you have to upgrade in steps, +e.g. between several intermediate releases, you have to modify the above workflow:

+
+# starting from an older Kiwi TCMS version
+docker-compose down
+docker pull kiwitcms/kiwi:<next_upgrade_version>
+edit docker-compose.yml to use kiwitcms/kiwi:<next_upgrade_version>
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+# repeat until you have reached latest
+
+

Happy testing!

+
+ +
+
+
+
+ +

Kiwi TCMS 6.5

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 6.5! This is a minor security, +improvement and bug-fix update that includes new +versions of Django and other dependencies, removes some database fields, +includes backend API updates and fixes several bugs. +You can explore everything at +https://public.tenant.kiwitcms.org!

+

Together with this release we announce:

+ +

Both of these are implemented in Python and should work on standard TAP and +junit.xml files generated by various tools!

+

Additionally 3 more plugins are currently under development by contributors:

+ +

Supported upgrade paths:

+
+5.3   (or older) -> 5.3.1
+5.3.1 (or newer) -> 6.0.1
+6.0.1            -> 6.1
+6.1              -> 6.1.1
+6.1.1            -> 6.2 (or newer)
+
+

Docker images:

+
+kiwitcms/kiwi       latest  7ca4fda602fc    1.002 GB
+kiwitcms/kiwi       6.2     7870085ad415    957.6 MB
+kiwitcms/kiwi       6.1.1   49fa42ddfe4d    955.7 MB
+kiwitcms/kiwi       6.1     b559123d25b0    970.2 MB
+kiwitcms/kiwi       6.0.1   87b24d94197d    970.1 MB
+kiwitcms/kiwi       5.3.1   a420465852be    976.8 MB
+
+
+

Changes since Kiwi TCMS 6.4

+
+

Security

+
    +
  • Better override of SimpleMDE markdown rendering to prevent XSS vulnerabilities +in SimpleMDE
  • +
+
+
+

Improvements

+
    +
  • Update patternfly to version 3.59.1
  • +
  • Update bleach from 3.0.2 to 3.1.0
  • +
  • Update django-vinaigrette from 1.1.1 to 1.2.0
  • +
  • Update django-simple-history from 2.6.0 to 2.7.0
  • +
  • Update django-grappelli from 2.12.1 to 2.12.2
  • +
  • Update mysqlclient from 1.3.14 to 1.4.1
  • +
  • Update psycopg2 from 2.7.6.1 to 2.7.7
  • +
  • Update pygithub from 1.43.4 to 1.43.5
  • +
  • Convert TestCase page to Patternfly
      +
    • page menu is under ... in navigation bar
    • +
    • Test plans card is missing the old 'add plan' functionality b/c we are not +at all sure if adding plans to test cases is used at all. Can bring it back +upon user request!
    • +
    • Bugs card is missing the add/remove functionality for b/c we are not +quite sure how that functionality is used outside test runs!
    • +
    +
  • +
  • Convert new TestCase page to Patternfly and provide Given-When-Then text +template. This prompts the author to use a BDD style definition for their +scenarios. We believe this puts the tester into a frame of mind more +suitable for expressing what needs to be tested
  • +
  • Add a favicon. Fixes +Issue #532
  • +
  • Sort Component, Product and Version objects alphabetically. Fixes +Issue #633
  • +
  • Search test case page now shows Components and Tags
  • +
  • Search test case page now allows filtering by date. Fixes +Issue #715
  • +
  • Search test case page now uses radio buttons to filter by automation status
  • +
  • Small performance improvement when searching test plans and test cases
  • +
  • Search test run page now allows to filter by Product but still continue to +display all Builds in the selected Product
  • +
  • Updated doc-string formatting for some tcms modules
  • +
+
+
+

Database migrations

+

Known issues: on our demo installation we have observed that permission +labels were skewed after applying migrations. The symptom is that labels for +removed models are still available, labels for some models may have been removed +from groups/users or there could be permission labels appearing twice in the +database.

+

This may affect only existing installations, new installations do not have +this problem!

+

We are not certain what caused this but a quick fix is to remove all permissions +from the default Tester group and re-add them again!

+
    +
  • Remove TestCase.alias
  • +
  • Remove TestCaseRun.running_date
  • +
  • Remove TestCaseRun.notes
  • +
  • Remove TestCase.is_automated_proposed
  • +
  • Remove TestCaseText model, merge into TestCase.text field. Closes +Issue #198
  • +
  • Remove Priority.sortkey
  • +
  • Remove Build.description
  • +
  • Remove Classification.sortkey and Classification.description
  • +
  • Convert TestCase.is_automated from int to bool
  • +
  • Rename TestCaseRun.case_run_status to status
  • +
+
+
+

API

+
    +
  • New method TestCaseRunStatus.filter()
  • +
  • New method Product.create()
  • +
  • New method Classification.filter()
  • +
  • New method BugSystem.filter()
  • +
  • Changes to TestCase.add_component():
      +
    • now accepts component name instead of id
    • +
    • now fails if trying to add components linked to another Product.
    • +
    • now returns serialized TestCase object
    • +
    +
  • +
+
+
+

Translations

+ +
+
+

Bug fixes

+
    +
  • Fix for missing migrations from django-simple-history, see +DSH #512 and +StackOverflow #54177838
  • +
  • Fix cloning of test cases by surrounding bootstrap-selectpicker call with +try-catch. Fixes +Issue #695
  • +
  • Fix a traceback with TestRun report page when the RPC connection to Bugzilla +can't be established
  • +
+
+
+

Refactoring

+
    +
  • Remove unused form classes, methods, fields and label attributes
  • +
  • Remove unused or duplicate methods from TestCase model
  • +
  • Remove useless methods from BaseCaseForm()
  • +
  • Add test for discovering missing migrations
  • +
  • Add test for sanity checking PyPI packages which will always +build tarball and wheel packages
  • +
+
+
+
+

tcms-api 5.2 (30 Jan 2019)

+
    +
  • Add plugin_helpers.Backend which implements our test runner plugin +specification +in Python
  • +
  • Add dependency to kerberos (Aniello Barletta)
  • +
+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+

WARNING: kiwitcms/kiwi:latest and docker-compose.yml will +always point to the latest available version! If you have to upgrade in steps, +e.g. between several intermediate releases, you have to modify the above workflow:

+
+# starting from an older Kiwi TCMS version
+docker-compose down
+docker pull kiwitcms/kiwi:<next_upgrade_version>
+edit docker-compose.yml to use kiwitcms/kiwi:<next_upgrade_version>
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+# repeat until you have reached latest
+
+

Happy testing!

+
+ +
+
+
+
+ +

Kiwi TCMS is going to FOSDEM 2019

+
+ + +
+ +
+

Hello testers, Kiwi TCMS is going to FOSDEM this year. +This is where you can find us:

+

Kiwi TCMS sticker

+ +

We would like to meet with all of you and talk about test management and +test process organization. In case you are stuck for crazy ideas checkout +our project mission for inspiration.

+

Be part of the community

+

We are turning 10 years old and we have presents for you! You will have to perform +a small challenge and you can get your hands(errr, feet) on a pair of these:

+

Kiwi TCMS socks

+

Here's what else you can do to help us:

+ +

Happy testing!

+
+
+
+
+ +

Kiwi TCMS 6.4

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 6.4! This is a security, +improvement and bug-fix update that includes new versions of Django, +Patternfly and other dependencies. 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  39fcb88182bb    963.4 MB
+kiwitcms/kiwi       6.2     7870085ad415    957.6 MB
+kiwitcms/kiwi       6.1.1   49fa42ddfe4d    955.7 MB
+kiwitcms/kiwi       6.1     b559123d25b0    970.2 MB
+kiwitcms/kiwi       6.0.1   87b24d94197d    970.1 MB
+kiwitcms/kiwi       5.3.1   a420465852be    976.8 MB
+
+
+

Changes since Kiwi TCMS 6.3

+
+

Security

+
    +
  • Update Django from 2.1.4 to 2.1.5, which deals with CVE-2019-3498: +Content spoofing possibility in the default 404 page
  • +
  • Update Patternfly to version 3.59.0, which deals with XSS issue in bootstrap. +See CVE-2018-14041
  • +
  • By default session cookies will expire after 24 hours. This can be controlled +via the SESSION_COOKIE_AGE setting. Fixes +Issue #556
  • +
+
+
+

Improvements

+
    +
  • Update mysqlclient from 1.3.13 to 1.3.14
  • +
  • Update python-gitlab from 1.6.0 to 1.7.0
  • +
  • Update django-simple-history from 2.5.1 to 2.6.0
  • +
  • Update pygithub from 1.43.3 to 1.43.4
  • +
  • New API method TestCase.remove(). Initially requested as +SO #53844380
  • +
  • Drop down select widges in Patternfly pages are now styled with +bootstrap-select giving them more consistent look and feel with +the rest of the page (Anton Sankov)
  • +
  • Create new TestPlan page now includes toggles to control notifications +and whether or not the test plan is active. This was previously available +only in edit page (Anton Sankov)
  • +
  • By default TestPlan notification toggles are turned on. Previously they +were off (Anton Sankov)
  • +
  • Create and Edit TestPlan pages now look the same (Anton Sankov)
  • +
  • Kiwi TCMS is now accepting donations via +Open Collective
  • +
+
+
+

Removed functionality

+
    +
  • Remove TestPlan page -> Run menu -> Add cases to run action. +This is the same as TestRun page -> Cases menu -> Add action
  • +
  • Legacy reports will be removed after 1st March 2019. Provide your +feedback in +Issue #657
  • +
  • The /run/ URL path has been merged with /runs/ due to configuration +refactoring. This may break your bookmarks or permalinks!
  • +
+
+
+

Bug fixes

+
    +
  • Don't traceback if markdown text is None. Originally reported as +SO #53662887
  • +
  • Show loading spinner when searching. Fixes +Issue #653
  • +
  • Quick fix: when viewing TestPlan cases make TC summary link to the test case. +Previously the summary column was a link to nowhere.
  • +
+
+
+

Translations

+ +
+
+

Refactoring

+
    +
  • Pylint fixes
  • +
  • New and updated internal linters
  • +
  • Refactor testplans.views.new to class based view (Anton Sankov)
  • +
  • Refactor TestCase -> Bugs tab -> Remove to JSON-RPC. References +Issue #18
  • +
  • Refactor removeCaseRunBug() to JSON-RPC, References +Issue #18
  • +
  • Remove unused render_form() methods
  • +
  • Remove unnecessary string-to-int conversion (Ivaylo Ivanov)
  • +
  • Remove obsolete label fields. References +Issue #652 (Anton Sankov)
  • +
  • Remove JavaScript that duplicates requestOperationUponFilteredCases()
  • +
  • Remove QuerySetIterationProxy class - not used anymore
  • +
+
+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+

WARNING: kiwitcms/kiwi:latest and docker-compose.yml will +always point to the latest available version! If you have to upgrade in steps, +e.g. between several intermediate releases, you have to modify the above workflow:

+
+# starting from an older Kiwi TCMS version
+docker-compose down
+docker pull kiwitcms/kiwi:<next_upgrade_version>
+edit docker-compose.yml to use kiwitcms/kiwi:<next_upgrade_version>
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+# repeat until you have reached latest
+
+

Happy testing!

+
+ +
+
+
+
+ +

Kiwi TCMS 6.3

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 6.3! This is a medium severity +security update that includes new versions of Django and Patternfly, +new database migrations, lots of improvements, bug fixes and internal +refactoring. This version also introduces integration with GitLab issue +tracker! 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  8135624fdca2    960.3 MB
+kiwitcms/kiwi       6.2     7870085ad415    957.6 MB
+kiwitcms/kiwi       6.1.1   49fa42ddfe4d    955.7 MB
+kiwitcms/kiwi       6.1     b559123d25b0    970.2 MB
+kiwitcms/kiwi       6.0.1   87b24d94197d    970.1 MB
+kiwitcms/kiwi       5.3.1   a420465852be    976.8 MB
+
+
+

Changes since Kiwi TCMS 6.2.1

+
+

Security

+
    +
  • Resolve medium severity XSS vulnerability which can be exploited when +previewing malicious text in Simple MDE editor. See +CVE-2018-19057, +SNYK-JS-SIMPLEMDE-72570
  • +
  • Use mozilla/bleach before rendering Markdown to the user as a second layer +of protection against the previously mentioned XSS vulnerability
  • +
+
+
+

Improvements

+
    +
  • Update to Django 2.1.4
  • +
  • Update to Patternfly 3.58.0
  • +
  • Make docker container restartable (Maik Opitz, Adam Hall)
  • +
  • Add GitLab issue tracker integration. Fixes +Issue #176 +(Filipe Arruda, Federal Institute of Pernambuco)
  • +
  • Convert Create new TestPlan page to Patternfly (Anton Sankov)
  • +
  • Upon successful registration show the list of super-users in case new +accounts must be activated manually. This can be the same or expanded +version of the addresses in the ADMIN setting. Include super-users +in email notifications sent via tcms.signals.notify_admins().
  • +
  • Don't include admin/js/*.js files in templates when not +necessary. Results in faster page load. Fixes +Issue #209
  • +
  • Enable nl2br Markdown extension which allows newline characters +to be rendered as <br> tags in HTML. Visually the rendered +text will look closer to what you seen in the text editor. Fixes +Issue #623
  • +
  • Use auto-complete for adding components to TestCase
  • +
+
+
+

Removed functionality

+
    +
  • Bulk-update of Category for selected TestCase(s) inside of +TestPlan
  • +
  • Bulk-update of Components for selected TestCase(s) inside of +TestPlan
  • +
  • Bulk-update of automated status for selected TestCase(s) inside of +TestPlan
  • +
  • Bulk-remove for TestCase Component tab
  • +
+

These actions have always been a bit broken and didn't check the +correct permission labels. You can still update items individually!

+
    +
  • Selection of Components when creating new TestCase. Closes +Issue #565. +Everywhere else Kiwi TCMS doesn't allow selection of many-to-many +relationships when creating or editing objects. Tags, Bugs, Components, +TestPlans can be added via dedicated tabs once the object has been saved.
  • +
+
+
+

Bug fixes

+
    +
  • Hide KiwiUserAdmin.password field from super-user. Fixes +Issue #610
  • +
  • Don't show inactive Priority. Fixes +Issue #637
  • +
  • Don't traceback when adding new users via Admin. Fixes +Issue #642
  • +
  • Teach TestRun.update() API method to process the stop_date +field. Fixes +Issue #554 (Anton Sankov)
  • +
  • Previously when reporting issues to Bugzilla, directly from a TestRun, +Kiwi TCMS displayed the error Enable reporting to this Issue Tracker by +configuring its base_url although that has already been configured. +This is now fixed. See +Stack Overflow #53434949
  • +
+
+
+

Database

+
    +
  • Remove TestPlan.owner field, duplicates TestPlan.author
  • +
+
+
+

Translations

+ +
+
+

Refactoring

+
    +
  • Remove fmt_queries(). Fixes +Issue #330 (Anton Sankov)
  • +
  • Remove unused parameter from plan_from_request_or_none(). Refers to +Issue #303 (Anton Sankov)
  • +
  • Remove ComponentActions() class. Fixes +Issue #20
  • +
  • Convert lots of AJAX calls to JSON-RPC
  • +
  • Remove lots of unused Python, JavaScript and templates. Both after migration +to JSON RPC and other leftovers
  • +
  • Pylint fixes (Alexander Todorov, Anton Sankov)
  • +
+
+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+

WARNING: kiwitcms/kiwi:latest and docker-compose.yml will +always point to the latest available version! If you have to upgrade in steps, +e.g. between several intermediate releases, you have to modify the above workflow:

+
+# starting from an older Kiwi TCMS version
+docker-compose down
+docker pull kiwitcms/kiwi:<next_upgrade_version>
+edit docker-compose.yml to use kiwitcms/kiwi:<next_upgrade_version>
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+# repeat until you have reached latest
+
+

Happy testing!

+
+ +
+
+
+
+ +

Kiwi TCMS 6.2.1

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 6.2.1! This is a small release +that includes some improvements 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  24338088bf46    956.8 MB
+kiwitcms/kiwi       6.2     7870085ad415    957.6 MB
+kiwitcms/kiwi       6.1.1   49fa42ddfe4d    955.7 MB
+kiwitcms/kiwi       6.1     b559123d25b0    970.2 MB
+kiwitcms/kiwi       6.0.1   87b24d94197d    970.1 MB
+kiwitcms/kiwi       5.3.1   a420465852be    976.8 MB
+
+
+

Changes since Kiwi TCMS 6.2

+
+

Improvements

+ +
+
+

Bug fixes

+
    +
  • Fix InvalidQuery, field TestCase.default_tester cannot be both deferred and +traversed using select_related at the same time. References +Issue #346
  • +
+
+
+

Refactoring

+
    +
  • Pylint fixes (Ivaylo Ivanov)
  • +
  • Remove JavaScript and Python functions in favor of existing JSON-RPC
  • +
  • Remove vendored-in js/lib/jquery.dataTables.js which is now replaced by +the npm package datatables.net (required by Patternfly)
  • +
+
+
+

Translations

+ +
+
+

Misc

+
    +
  • https://public.tenant.kiwitcms.org is +using a new SSL certificate with serial number +46:78:80:EA:80:A4:FC:65:17:E4:59:EC:1D:C2:27:47
  • +
  • Version 6.2.1 has been published to +PyPI to facilitate people who want +to deploy Kiwi TCMS on Heroku. Important: PyPI package will be provided +as a convenience for those who know what they are doing. Valid bugs and +issues will be dealth with accordingly. As we do not deploy from a PyPI +tarball we ask you to provide all the necessary +details when reporting issues! If you have no idea what all of this means +then stick to the official Docker images!
  • +
+
+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+

WARNING: kiwitcms/kiwi:latest and docker-compose.yml will +always point to the latest available version! If you have to upgrade in steps, +e.g. between several intermediate releases, you have to modify the above workflow:

+
+# starting from an older Kiwi TCMS version
+docker-compose down
+docker pull kiwitcms/kiwi:<next_upgrade_version>
+edit docker-compose.yml to use kiwitcms/kiwi:<next_upgrade_version>
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+# repeat until you have reached latest
+
+

Happy testing!

+
+ +
+
+
+
+ +

Kiwi TCMS 6.2

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 6.2! This is a small release +that removes squashed migrations from previous releases and includes a few +improvements. You can explore everything at +https://public.tenant.kiwitcms.org or +find our info booth at OpenFest in Sofia during +the weekend and do a live demo with the team!

+

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 (latest)
+
+

Docker images:

+
+kiwitcms/kiwi       latest  7870085ad415    957.6 MB
+kiwitcms/kiwi       6.2     7870085ad415    957.6 MB
+kiwitcms/kiwi       6.1.1   49fa42ddfe4d    955.7 MB
+kiwitcms/kiwi       6.1     b559123d25b0    970.2 MB
+kiwitcms/kiwi       6.0.1   87b24d94197d    970.1 MB
+kiwitcms/kiwi       5.3.1   a420465852be    976.8 MB
+
+
+

Changes since Kiwi TCMS 6.1.1

+
+

Improvements

+
    +
  • Update to Django 2.1.3
  • +
  • Update Apache config to print logs on the console. Fixes +Issue #549
  • +
  • https://public.tenant.kiwitcms.org now +allows email associations when logging via GitHub. If you have an existing +account which shares the same email address with your GitHub profile you +will be redirected to that account upon logging in via GitHub! +This also resolves a problem where existing users trying to login via GitHub +were presented with error message that their email exists in the database! +Fixes +Issue #573
  • +
+
+
+

Database

+
    +
  • Remove old variants of squashed migrations from earlier releases
  • +
+
+
+

Translations

+ +
+
+

Refactoring

+
    +
  • Update tcms.tests.factories.BugFactory (Ivaylo Ivanov)
  • +
  • Add test for tcms.testcases.views.group_case_bugs (Ivaylo Ivanov)
  • +
  • Pylint fixes (Ivaylo Ivanov)
  • +
  • Remove unused JavaScript and re-use the existing JSON RPC methods
  • +
+
+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+

WARNING: kiwitcms/kiwi:latest and docker-compose.yml will +always point to the latest available version! If you have to upgrade in steps, +e.g. between several intermediate releases, you have to modify the above workflow:

+
+# starting from an older Kiwi TCMS version
+docker-compose down
+docker pull kiwitcms/kiwi:<next_upgrade_version>
+edit docker-compose.yml to use kiwitcms/kiwi:<next_upgrade_version>
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+# repeat until you have reached latest
+
+
+
+

Subscription based online service

+

We are planning to convert +https://public.tenant.kiwitcms.org into +a subscription based service for people who don't want to bother installing +Kiwi TCMS on their own systems and just want to use it for test collaboration +with their team.

+

The income from this service will go towards covering operating costs and +supporting the +development team. Watch this +blog for further announcements about this. Meanwhile you may share your +thoughts via +Issue #515.

+
+
+

Plans to remove deprecated functionality

+

TestRun.product_version will be removed from the database schema in favor of +TestRun.plan.product_version! With the latest web interface it is not possible +to select a product version different than the one selected in the Test Plan. +Test runs should only be able to select product builds (after +Issue #246 is fixed).

+
+ +
+
+
+
+ +

Kiwi TCMS 6.1.1

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 6.1.1! This release +squashes database migrations and removes +older migrations that have been squashed in previous releases, a few +improvements 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
+
+

Docker images:

+
+kiwitcms/kiwi       latest  49fa42ddfe4d    955.7 MB
+kiwitcms/kiwi       6.1.1   49fa42ddfe4d    955.7 MB
+kiwitcms/kiwi       6.1     b559123d25b0    970.2 MB
+kiwitcms/kiwi       6.0.1   87b24d94197d    970.1 MB
+kiwitcms/kiwi       5.3.1   a420465852be    976.8 MB
+
+
+

Changes since Kiwi TCMS 6.1

+
+

Improvements

+
    +
  • Dashboard will now show TestRuns which have test cases assigned to current +user. Fixes +Issue #520
  • +
  • API method TestRun.add_case() now returns a serialized TestCaseRun object. +Previously this method returned None
  • +
+
+
+

Bug fixes

+
    +
  • Don't show disabled Priority records in UI. Fixes +Issue #334
  • +
+
+
+

Translations

+ +
+
+

Refactoring

+
    +
  • Fix some pylint errors (Ivaylo Ivanov)
  • +
+
+
+

Database

+
    +
  • Remove old squashed migrations for management, testplans, +testcases and testruns apps
  • +
  • Squash the remaining migrations for management, testplans, +testcases and testruns apps
  • +
+
+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+
+
+

Subscription based online service

+

We are planning to convert +https://public.tenant.kiwitcms.org into +a subscription based service for people who don't want to bother installing +Kiwi TCMS on their own systems and just want to use it for test collaboration +with their team.

+

The income from this service will go towards covering operating costs and +supporting the +development team. Watch this +blog for further announcements about this. Meanwhile you may share your +thoughts via +Issue #515.

+
+
+

Plans to remove deprecated functionality

+

TestRun.product_version will be removed from the database schema in favor of +TestRun.plan.product_version! With the latest web interface it is not possible +to select a product version different than the one selected in the Test Plan. +Test runs should only be able to select product builds (after +Issue #246 is fixed).

+
+ +
+
+
+
+ +

Kiwi TCMS 6.1

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 6.1! This release +introduces new database migrations, +internal updates and bug fixes. It is a small release designed +to minimize the number of database migrations by squashing them together. +You can explore everything at +https://public.tenant.kiwitcms.org.

+

NOTE: there is the 6.0.1 release which resolves an upgrade problem +caused by non-applied migrations which have been later squashed and +released in the same release! It is best to jump through the intermediate +releases to ensure a smooth upgrade!

+

Supported upgrade paths:

+
+5.3   (or older) -> 5.3.1
+5.3.1 (or newer) -> 6.0.1
+6.0.1            -> 6.1
+
+

Docker images:

+
+kiwitcms/kiwi       latest  b559123d25b0    970.2 MB
+kiwitcms/kiwi       6.1     b559123d25b0    970.2 MB
+kiwitcms/kiwi       6.0.1   87b24d94197d    970.1 MB
+kiwitcms/kiwi       5.3.1   a420465852be    976.8 MB
+
+
+

Changes since Kiwi TCMS 6.0

+
+

Improvements

+
    +
  • Update Jira from 1.0.10 to 2.0.0
  • +
  • Update to Patternfly 3.55.0
  • +
  • Use button instead of HTML link for deleting test plan (Oleg Kainov)
  • +
  • New middleware that will check missing settings. At the moment will only +check Base URL configuration which often gets forgotten!
  • +
+
+
+

Bug fixes

+
    +
  • Hot-fix for error caused by the API method TestRun.update. Error was +initially reported on +StackOverflow. +This patch makes it possible to use the API without crashing however the +TestRun.update method doesn't handle the stop_date field at the moment!
  • +
+
+
+

Translations

+ +
+
+

Refactoring

+
    +
  • Fix pylint errors (Ivaylo Ivanov)
  • +
  • Remove unused TestRun.list and TestCase.list_confirmed methods
  • +
  • Remove unused plan_by_id_or_name() and is_int(). Fixes +Issue #269
  • +
+
+
+

Database

+
    +
  • Rename tcms.core.contrib.auth to tcms.kiwi_auth
  • +
  • Remove field user from TestCaseTag, TestRunTag and TestPlanTag +models
  • +
  • Squash migrations for management app
  • +
  • Squash migrations for testcases app
  • +
  • Squash migrations for testplans app
  • +
  • Squash migrations for testruns app
  • +
+
+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+
+
+

Subscription based online service

+

We are planning to convert +https://public.tenant.kiwitcms.org into +a subscription based service for people who don't want to bother installing +Kiwi TCMS on their own systems and just want to use it for test collaboration +with their team.

+

The income from this service will go towards covering operating costs and +supporting the +development team. Watch this +blog for further announcements about this. Meanwhile you may share your +thoughts via +Issue #515.

+
+
+

Plans to remove deprecated functionality

+

TestRun.product_version will be removed from the database schema in favor of +TestRun.plan.product_version! With the latest web interface it is not possible +to select a product version different than the one selected in the Test Plan. +Test runs should only be able to select product builds (after +Issue #246 is fixed).

+
+ +
+
+
+
+ +

Kiwi TCMS winter conference presence

+
+ + +
+ +
+

We are happy to announce that OpenFest - the biggest +open source conference in Bulgaria has provided an info booth for our project. +This year the event will be held on 3rd and 4th of November at Sofia Tech Park!

+

Last time the team went to a conference together we had a lot of fun! Join us +at OpenFest to learn more about Kiwi TCMS and have fun with us!

+ + + + + + +

In case you are unable to visit Sofia, which you totally should, you can catch up with +us in Russia until the end of the year:

+ +

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

+
+
+
+
+ +

Kiwi TCMS 6.0

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 6.0! This release +introduces new database migrations, removal of +environment properties in favor of tags, internal updates and bug fixes. +You can explore everything at +https://public.tenant.kiwitcms.org.

+

This release removes squashed migrations. Direct upgrades from versions +< 5.3.1 to 6.0 will break without an intermediate upgrade to 5.3.1!

+

Docker images:

+
+kiwitcms/kiwi       latest  cd087297f349    991.3 MB
+
+
+

Changes since Kiwi TCMS 5.3.1

+
+

Improvements

+
    +
  • Update to Django 2.1.2 +due to high severity security issue
  • +
  • Update to Patternfly 3.54.8
  • +
  • Tag objects are now shown in Admin panel
  • +
  • Add autocomplete when adding tags to TestRun via UI
  • +
+
+
+

Removed functionality

+
    +
  • TestCase new and edit views no longer allow editing of tags. Tags can be +added/removed from the Tags tab which also makes sure to properly account +for permissions
  • +
  • Remove EnvGroup, EnvProperty and EnvValue models in favor of tags. +Existing values and properties are converted into tags and automatically added +to test runs!
  • +
  • Convert squashed database migrations to regular ones and remove older migrations. +WARNING: upgrade from versions <= 5.3.1 to 6.0 will break without an intermediate +upgrade to kiwitcms/kiwi:5.3.1 a420465852be.
  • +
  • Remove deprecated TestCase.estimated_time and TestRun.estimated_time. Fixes +Issue #514
  • +
+
+
+
+

Backend API

+
    +
  • No longer use product_version for TestRun.create. Fixes +Issue #522
      +
    • 'product' is no longer required
    • +
    • 'product_version' is no longer required
    • +
    • 'manager' and 'default_tester' can be usernames or IDs
    • +
    +
  • +
  • TestCase.create no longer accepts 'tag' values
  • +
  • TestRun.add_tag and TestRun.remove_tag now return list of tags. +Previously these methods returned None! +This is the list of tags assigned to the TestRun that is being modified!
  • +
+
+

Bug fixes

+
    +
  • Fix mismatched HTML tag in plan/get.html template (Oleg Kainov)
  • +
  • Don't use |slugify filter in templates which breaks HTML links with non-ASCII +TestPlan names. Fixes +Sentry KIWI-TCMS-38
  • +
+
+
+

Refactoring

+
    +
  • Fix pylint errors (Ivaylo Ivanov, Anton Sankov)
  • +
  • Use existing JSON-RPC methods to add/remove tags via webUI and remove specialized +backend methods that handled these requests. Also make sure to obey respective +permissions
  • +
+
+
+

Translations

+ +
+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+
+
+

Subscription based online service

+

We are planning to convert +https://public.tenant.kiwitcms.org into +a subscription based service for people who don't want to bother installing +Kiwi TCMS on their own systems and just want to use it for test collaboration +with their team.

+

The income from this service will go towards covering operating costs and +supporting the +development team. Watch this +blog for further announcements about this. Meanwhile you may share your +thoughts via +Issue #515.

+
+
+

Plans to remove deprecated functionality

+

TestRun.product_version will be removed from the database schema in favor of +TestRun.plan.product_version! With the latest web interface it is not possible +to select a product version different than the one selected in the Test Plan. +Test runs should only be able to select product builds (after +Issue #246 is fixed).

+
+ +
+
+ +
+ Newer Posts +

+ Page 5 / 6 +

+ Older Posts +
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/kiwi-tcms-team/index6.html b/blog/kiwi-tcms-team/index6.html new file mode 100644 index 00000000..5dacfccb --- /dev/null +++ b/blog/kiwi-tcms-team/index6.html @@ -0,0 +1,1900 @@ + + + + + Kiwi TCMS - Articles by Kiwi TCMS Team + + + + + + + + + + + + + + + + + + + + + +
+

Articles by Kiwi TCMS Team

+ + +
+
+ +

Kiwi TCMS 5.3.1

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 5.3.1! This release +brings lots of UI updates and removal of unused +and/or duplicated functionality and source code. Many pages have been redesigned +with the Patternfly library to have a modern look and feel which you can +experience at https://public.tenant.kiwitcms.org.

+

This will be the last release to carry around squashed migrations. In version +6.0 older migrations will be deleted and replaced with their squashed equivalents. +Upgrades from versions < 5.3 to 6.0 will break without an intermediate upgrade to 5.3.1!

+

Use kiwitcms/kiwi:5.3.1 from Docker Hub when upgrading at some point in the future!

+

Docker images:

+
+kiwitcms/kiwi        5.3.1               a420465852be        976.8 MB
+kiwitcms/kiwi        latest              a420465852be        976.8 MB
+
+
+

Changes since Kiwi TCMS 5.2

+
+

Improvements

+
    +
  • Update to Django 2.1.1
  • +
  • Update Patternfly version. Fixes +Issue #381
  • +
  • Replace TinyMCE with SimpleMDE markdown editor. Used for TestPlan text and +TestCase action, setup, breakdown, effect fields
  • +
  • Allow downstream builds to customize the login templates by +providing registration/custom_login.html template. It can either +override the entire login page or provide additional information inside +the custom_login block!
  • +
+
+
+

Known issues

+
    +
  • You may need to strip existing texts from HTML tags that were generated by +TinyMCE. Either do this manually as you go along and use/edit records or in bulk via +the API and tools like html2text. +We strongly advise you to backup +your database before attempting to automatically edit text fields!
  • +
+
+
+

Visual changes

+
    +
  • Remove breadcrumbs at the top of pages. Only admin pages still have them
  • +
  • Convert login and registration templates to Patternfly. Fixes +Issue #211
  • +
  • Convert 404 and 500 templates to Patternfly
  • +
  • Convert dashboard page to Patternfly
  • +
  • Convert TestRun new, edit and clone pages to Patternfly. Fixes +Issue #17
  • +
  • Convert Search Test Plans page to Patternfly
  • +
  • Convert Search Test Runs page to Patternfly
  • +
  • Convert Search Test Cases page to Patternfly
  • +
  • TestPlan view page, Runs tab now re-uses the search form for test runs +which is built using Patternfly
  • +
  • Added pagination controls to pages with search results
  • +
+
+
+

Removed functionality

+
    +
  • When creating or editing TestRun
      +
    • field estimated_time is scheduled for removal and is not shown
    • +
    • product_version is scheduled for removal in favor of +TR.plan.product_version
    • +
    • Product & Version can't be edited anymore. Must be set on the parent +TestPlan instead. Still allows to specify builds
    • +
    +
  • +
  • Remove the ability to clone multiple TestPlans from search results
  • +
  • Remove the ability to upload TestPlan document files in favor of +the existing API
  • +
  • Remove TestCase export to XML in favor of existing API
  • +
  • Remove Advanced Search functionality. Fixes +Issue #448, +Issue #108
  • +
  • Remove tech preview feature: Django Report Builder
  • +
+
+
+

Translations

+ +
+
+

Bug fixes

+
    +
  • Don't use get_full_url() where not needed. Closes +Issue #380
  • +
  • Remove unused templates. Fixes +Issue #114
  • +
  • Submit filter form when clicking on tag value. Fixes +Issue #426
  • +
  • Update TestCaseRun.tested_by when setting status. Fixes +Issue #459
  • +
  • Add tests for KiwiUserAdmin. Closes +Issue #489
  • +
+
+
+

Settings

+
    +
  • The following settings have been removed MOTD_LOGIN, WELCOME_MESSAGE +and TINYMCE_DEFAULT_CONFIG
  • +
+
+
+

Refactoring

+
    +
  • Fix pylint errors (Anton Sankov, Ivaylo Ivanov)
  • +
  • Remove lots of unused functions and classes
  • +
  • Remove old or unnecessary templates
  • +
  • Remove html2text dependency
  • +
  • Remove unused CSS and vendored-in JavaScript libraries
  • +
  • Add JavaScript JSON-RPC client which is now used by the front-end to +communicate with the existing JSON-RPC API on the back-end. This +replaces many 'ajax' views which are only used to render the UI and were +duplicating functionality with existing API
  • +
  • Non dist/ files are no longer removed from node_modules/ when building +a docker image because packages like moment.js and bootstrap-datetimepicker.js +don't ship their files in dist/
  • +
  • Convert TestPlans.TreeView to JSON RPC
  • +
+
+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+
+
+

Ask your questions on StackOverflow

+

Kiwi TCMS is now using the +'kiwi-tcms' +tag on StackOverflow to track questions. Please submit your support requests +and general questions to +StackOverflow tagged +with the 'kiwi-tcms' tag! Support requests via GitHub or email will not be answered +anymore (GitHub issues are for bugs or feature discussions only)!

+
+
+

Subscription based online service

+

We are planning to convert +https://public.tenant.kiwitcms.org into +a subscription based service for people who don't want to bother installing +Kiwi TCMS on their own systems and just want to use it for test collaboration +with their team.

+

The income from this service will go towards covering operating costs and +supporting the +development team. Watch this +blog for further announcements about this. Meanwhile you may share your +thoughts via +Issue #515.

+
+
+

Plans to remove deprecated functionality

+

TestRun.product_version will be removed from the database schema in favor of +TestRun.plan.product_version! With the latest web interface it is not possible +to select a product version different than the one selected in the Test Plan. +Test runs should only be able to select product builds (after +Issue #246 is fixed).

+

TestRun.estimated_time is scheduled for removal if not used. Objections +and use-cases must be shared via +Issue #514.

+

EnvGroup and EnvProperty models are scheduled for removal in favor +of Tag. Internally tags are referenced in more places inside Kiwi TCMS' +source code and they appear to be more fully developed. On the other hand +while environment appears very similar to tags it is not exactly the same. +Ongoing discussion is happening via +Issue #484.

+
+ +
+
+
+
+ +

Kiwi TCMS 5.2

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 5.2! This release +introduces new database migrations and converts +the Docker image to a non-root user with uid 1001. You may have to adjust +ownership/permissions on the kiwi_uploads Docker volume!

+

The new kiwitcms/kiwi:latest docker image has Image ID 6bc4e3124fd4. +https://public.tenant.kiwitcms.org +has also been updated!

+
+

Changes since Kiwi TCMS 5.1

+
+

Enhancements

+
    +
  • Upgrade to Django 2.1
  • +
  • Upgrade to django-report-builder 6.2.2, compatible with Django 2.1
  • +
  • Docker image now executes with uid 1001 instead of root
      +
    • image based on centos7 image instead of centos/httpd
    • +
    • image now exposes ports 8080 and 8443
    • +
    • Apache logs now printed on Docker console
    • +
    • SSL certificates copied to /Kiwi/ssl inside Docker image instead of being bind-mounted
    • +
    • uploads dir changed to /Kiwi/uploads
    • +
    • static dir changed to /Kiwi/static
    • +
    • /Kiwi is now owned by uid 1001
    • +
    • /venv is now owned by uid 1001
    • +
    • docker-compose.yml is updated to match
    • +
    +
  • +
  • Fix pylint errors (Ivaylo Ivanov)
  • +
  • Allow users to see other profiles via Admin
  • +
  • Use password change form from Admin instead of custom one
  • +
  • product.py will try to import local_settings.py if available in the +same directory. This can be used to customize settings in downstream +distributions
  • +
  • Updated Slovenian translation
  • +
+
+
+

Bug fixes

+
    +
  • Make password reset views public
  • +
  • Don't crash when adding new users via Admin
  • +
+
+
+

Refactoring

+
    +
  • Remove UserProfile model. Kiwi TCMS doesn't needs extra information +about users so we remove this part of the application. Custom installations +may choose to define their own profiles if they wish
  • +
  • Remove custom DBModelBackend authentication backend
  • +
  • Remove unused tcms.core.context_processors.auth_backend_processor
  • +
  • Remove unused get_using_backend(). Fixes +Issue #261
  • +
  • Remove dj_pagination. Fixes +Issue #110
  • +
+
+
+

Settings

+
    +
  • AUTHENTICATION_BACKENDS is removed
  • +
  • PAGINATION_DEFAULT_PAGINATION is removed
  • +
  • Navigation menu links are now defined in MENU_ITEMS and can be redefined
  • +
+
+
+

Signals

+
    +
  • USER_REGISTERED_SIGNAL now doesn't receive the backend parameter
  • +
+
+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+
+ +
+
+
+
+ +

Kiwi TCMS 5.1

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 5.1! This release +introduces new database migrations, an experimental reporting feature, +deprecated functionality and bug fixes.

+

The new kiwitcms/kiwi:latest docker image has Image ID cc9b55aa664d. +https://public.tenant.kiwitcms.org +has also been updated!

+
+

Changes since Kiwi TCMS 5.0

+
+

Enhancements

+
    +
  • Integrate with Django Report Builder as tech-preview. This makes it possible +for power users and administrators to generate +tabular reports. +You will have to know the existing DB schema if you want to create your own reports. +See http://kiwitcms.readthedocs.io/en/latest/db.html. This feature is in +tech-preview and it may be removed if it doesn't work out. Please comment at: +Issue #452.
  • +
  • Allow using manage.py dumpdata|loaddata|sqlflush|dbshell for backups, see +blog post
  • +
  • In TestCase view page add a link to delete the current test case
  • +
  • In TestCase Admin page the + Add TestCase button now allows to create new +test case
  • +
  • The version menu item in the helper menu now links to +Changelog
  • +
+
+
+

Deprecated functionality

+
    +
  • Start showing deprecation warning for Advanced search, see +Issue #448
  • +
+
+
+

Bug fixes

+
    +
  • Allows Product/Version/Build to be shown in Testing Report. Fixes +Sentry KIWI-TCMS-2C
  • +
  • Default to https:// links if not running locally. Fixes +Issue #450
  • +
  • Apply missing CSS class for object history table so it can be displayed nicely
  • +
+
+
+

Refactoring

+
    +
  • Squash some database migrations
  • +
  • Fix a number of pylint issues
  • +
  • Remove unused testruns.views::view_caseruns(). References +Issue #316
  • +
  • Remove unused template report/caserun.html
  • +
  • Handle TestRun deletion via admin not home grown code
  • +
+
+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+
+
+

Help us make Kiwi TCMS better

+

According to our 2018 roadmap update +the Kiwi TCMS team is investing a great deal of our time to make the code base more +maintainable! For the past few releases we've been balancing code refactoring +with bug-fixing and enhancements and we have lots of ideas down the line.

+

We want to hear your voice! Tell us how you use Kiwi TCMS inside your organization. +We want to know what works for you and what doesn't so we can make it better. Feel +free to comment below, file GitHub issues or send us an email.

+

Happy testing!

+
+ +
+
+
+
+ +

Kiwi TCMS 5.0

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS and tcms-api version 5.0! This release +introduces object history tracking, removal of old functionality and unused code, +lots of internal updates and bug fixes.

+

The new kiwitcms/kiwi:latest docker image has Image ID 468de0abe8a8. +https://public.tenant.kiwitcms.org has also been updated!

+
+

Changes since Kiwi TCMS 4.2

+
+

Settings

+
    +
  • Remove CACHE because not used
  • +
  • Remove PLAN_EMAIL_TEMPLATE, CASE_EMAIL_TEMPLATE and +CASE_DELETE_EMAIL_TEMPLATE. Templates can still be overridden if desired
  • +
+
+
+

Enhancements

+
    +
  • Upgrade to Django 2.0.7
  • +
  • Allow to delete TestPlan. Fixes +Issue #273
  • +
  • Don't include username in dashboard URL
  • +
  • Copy latest TestPlan text when cloning
  • +
  • Always require users to be logged in. Anonymous users will not be allowed +access by default. Read-only access to some views (e.g. get TestPlan or TestRun) +can be enabled by disabling GlobalLoginRequiredMiddleware! Fixes +Issue #230
  • +
  • Start tracking change history for TestPlan, TestCase, TestRun and TestCaseRun. +Fixes Issue #294
  • +
  • History changes are recorded as unified diff which is a universally recognized format
  • +
  • Show the actual changes in email notifications. Fixes +Issue #199
  • +
+
+
+

Bug fixes

+
    +
  • Fix UnboundLocalError local variable 'message' referenced before assignment. Fixes +Sentry KIWI-TCMS-1S
  • +
  • Make email address unique when adding users via admin panel. Fixes +Issue #352 and +Issue #68
  • +
  • Fix unsupported operand type(s) for +=: 'int' and 'datetime.timedelta' by +initializing timedelta variable properly. Fixes +Sentry KIWI-TCMS-1Y
  • +
  • Remove core.models.fields with MySQL time conversions. Fixes +Issue #390
  • +
  • Fix bad JavaScript comparison. Fixes Coverity #289956
  • +
  • Remove expression with no effect. Fixes Coverity #289974
  • +
  • Rewrite request_host_link() to fix Coverity #289987
  • +
  • Fix Coverity #289923 - Typo in identifier
  • +
  • Don't send emails for changes performed by myself. Fixes +Issue #216
  • +
+
+
+

Refactoring

+
    +
  • Fix pylint issues in several modules (Anton Sankov & Ivaylo Ivanov)
  • +
  • Fix wrong Plan Type template variable in advanced search form
  • +
  • Do not use Model.objects.update() because it doesn't respect history
  • +
  • Use the standard ModelChoiceField instead of custom one
  • +
  • Use updateRunStatus() instead of deprecated updateObject()
  • +
  • Simplify JavaScript function getInfo() and use it multiple times
  • +
  • Simplify previewPlan() by removing unused parameters
  • +
  • Unify addChildPlan() and removeChildPlan()
  • +
  • Unify getInfoAndUpdateObject() with changeCaseRunAssignee()
  • +
  • Unify onTestCaseStatusChange() with changeTestCaseStatus()
  • +
  • Convert TestCaseEmailSettings.cc_list to string field
  • +
  • Merge report/caseruns_table.html with reports/caseruns.html
  • +
  • Rename model UserActivateKey to UserActivationKey. Fixes +Issue #276
  • +
  • Remove cached_entities(). Fixes +Issue #307
  • +
  • Remove TestPlanText.checksum field
  • +
  • Remove checksum fields for TestCaseText model
  • +
  • Remove unused and home-grown template tags
  • +
  • Remove unused fields auto_blinddown, description, sortkey from +TestCaseRunStatus model. Fixes +Issue #186
  • +
  • Remove Meta.db_name effectively renaming all tables. New names will use +Django's default naming scheme
  • +
  • Remove RawSQL queries. We are now 100% ORM based. Fixes +Issue #36
  • +
  • Remove duplicate MultipleEmailField definition
  • +
  • Remove TCMSLog view, TCMSLogManager, TCMSLogModel
  • +
  • Remove TestPlanText model, use TestPlan.text instead
  • +
  • Remove unused JavaScript files +- lib/detetmine_type.js +- lib/hole.js +- lib/scriptaculous-controls.js.patch +- lib/validations.js +- static/js/index.js
  • +
  • Remove constructPlanParentPreviewDialog()
  • +
  • Remove changeCasePriority()
  • +
  • Remove changeCaseRunOrder()
  • +
  • Remove debug_output() from JavaScript files
  • +
  • Remove deprecated /ajax/update/ end-point
  • +
  • Remove taggleSortCaseRun()
  • +
  • Remove strip_parameters()
  • +
  • Remove _InfoObjects.users()
  • +
  • Remove get_value_by_type()
  • +
  • Remove testcases.views.get_log()
  • +
  • Remove mail_scene() methods and related templates
  • +
+
+
+

Removed functionality

+
    +
  • TestRun completion status is no longer updated automatically. You can still +update the status manually via the 'Set Finished' or 'Set Running' links! +Fixes Issue #367
  • +
  • Remove bookmarks functionality. There are many great bookmark manager apps +and if the user is keen on bookmarks they should use one of them. Closes +Issue #67 and +Issue #210
  • +
  • Don't track & display history of changes for EnvGroup model
  • +
  • Remove Disable/Enable buttons from TestPlan page. Enabling and disabling +can still be done via the edit page
  • +
  • Remove changeParentPlan() and the ability to change TestPlan parents +from the 'Tree View' tab. This can be done via the edit page
  • +
  • When viewing a TestPlan the user is no longer able to specify a sorkey for a +particular TestCase. Instead they can use the Re-order cases button and +move around the entire row of cases to adjust the sort order
  • +
  • When working with test case results, inside a TestRun you will not be allowed +to change the order of execution. Order should be defined inside the TestPlan +instead
  • +
  • Remove XmlRpcLog() model. Kiwi TCMS will no longer log RPC calls to the +database. This leads to a small performance boost and can be overridden on +individual basis if you need to do so.
  • +
+
+
+

Translations

+
    +
  • More source strings marked as translatable
  • +
  • New translations for Chinese Simplified, Chinese Traditional, German and Slovenian
  • +
  • Stop keeping compiled translations under git. Fixes +Issue #387
  • +
+
+
+
+

tcms-api changes since 4.2

+
    +
  • Requires Python 3.6 or newer because it fixes bugs related to Django's +disabling of keep-alive connections. See https://bugs.python.org/issue26402
  • +
  • The rpc client is now accessed via TCMS().exec.<Server-Method>
  • +
  • Leave only XML-RPC transport classes! This removes the top-level interface +behind the API client and the consuming side is left to work with Python +dictionaries instead of objects.
  • +
  • Remove the interactive tcms script
  • +
  • Remove tcms_api.config module
  • +
  • Remove logging class
  • +
  • Remove script_examples/ directory. These were never tested and maintained
  • +
+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+docker exec -it kiwi_web /Kiwi/manage.py populate_history --auto
+
+
+
+

Help us make Kiwi TCMS better

+

According to our 2018 roadmap the +Kiwi TCMS team is investing a great deal of our time to make the code base more +maintainable! For the past few releases we've been balancing code refactoring +with bug-fixing and minor enhancements and we have lots of ideas down the line.

+

We want to hear your voice! Tell us how you use Kiwi TCMS inside your organization. +We want to know what works for you and what doesn't so we can make it better. Feel +free to comment below, file GitHub issues or send us an email.

+

Happy testing!

+
+ +
+
+
+
+ +

Kiwi TCMS 4.2

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS and tcms-api version 4.2! +This is a security, bug-fix and enhancement update which upgrades to the latest +Django version under Python 3.6. +We've pushed new kiwitcms/kiwi:latest docker image to Docker Hub and updated the +demo instance at https://public.tenant.kiwitcms.org!

+

This version also includes GDPR related changes which affect our project. Read below +for the details.

+

Changes since Kiwi TCMS 4.1.4

+

IMPORTANT: this release introduces new database migrations

+

Security

+ +

Settings

+
    +
  • BUGZILLA_AUTH_CACHE_DIR is a new setting that may be specified to control + where Bugzilla auth cookies are saved! It is not specified by default and + Kiwi TCMS uses a temporary directory each time we try to login into Bugzilla!
  • +
+

Enhancements

+
    +
  • Upgrade to Python 3.6. Fixes + Issue #91
  • +
  • Upgrade to Django 2.0.6
  • +
  • Fix around 100 pylint issues (Anton Sankov)
  • +
  • Update email confirmation template for newly registered users and make the + text translatable
  • +
  • Display Last login column in User admin page
  • +
  • Add tests for tcms.management.views (Anton Sankov)
  • +
  • Remove unused CSS selectors
  • +
  • Remove unnecessary templates/comments/comments.html
  • +
+

Bug fixes

+
    +
  • Remove unused deferred field product_version. Fixes + Sentry KIWI-TCMS-1C
  • +
  • Rename left-over get_url() to get_full_url(). Fixes + Sentry KIWI-TCMS-1B
  • +
  • Fix empty TestPlan url and Product fields in TestRun email notification. Fixes + Issue #353 (Matt Porter, Konsulko Group)
  • +
+

Translations

+
    +
  • Updated translations for Chinese Simplified
  • +
  • Updated translations for Chinese Traditional
  • +
  • New language and translations for Slovenian
  • +
+

Documentation

+
    +
  • Added git clone command to documentation. Fixes + Issue #344 (Anton Sankov)
  • +
+

Models and database migrations

+
    +
  • Increase checksum fields size to hold the new checksum values
  • +
  • Increase activation_key field size to 64 chars
  • +
+

GDPR related

+
    +
  • Allow users to delete their accounts. Link is present on My profile page. + This will also delete any related objects using cascade delete
  • +
  • Try not to be so obvious when it comes to displaying email addresses across + the web interface. Instead show username and link to profile
  • +
+

In addition the following changes were deployed to our infrastructure:

+
    +
  • On our website the Subscribe to our newsletter is now a link, instead of + embedded form because embedded forms can't display GDPR compliance fields. + If you wish to receive email from Kiwi TCMS you need to select the Email + checkbox when signing up for the newsletter.
  • +
  • Double opt-in is now enabled when subscribing to our newsletter
  • +
  • All newsletter addresses that have been unsubscribed have been deleted
  • +
  • Upon registration for https://public.tenant.kiwitcms.org + you are no longer subscribed + to the newsletter. Now we send a welcome email with a link to the newsletter + so you can subscribe if you want
  • +
  • https://public.tenant.kiwitcms.org + now runs a cron job which deletes inactive accounts + and all of their related data. The cron job runs weekly
  • +
+

We're trying to be respectful to your private data and not expose that to any +3rd parties or use it for means other than making Kiwi TCMS better open source +software. If you spot areas for improvement please +report an issue so we can take +a look at it!

+

tcms-api changes since 4.0.0

+
    +
  • Remove coloring. Fixes + Issue #185
  • +
  • Fix using the API client against https:// URLs (Adam Łoszyn, Samsung)
  • +
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then

+
cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+ + +

Help us make Kiwi TCMS better

+

According to our 2018 roadmap the +Kiwi TCMS team is investing a great deal of our time to make the code base more +maintainable! For the past few releases we've been balancing code refactoring +with bug-fixing and minor enhancements and we have lots of ideas down the line.

+

We want to hear your voice! Tell us how you use Kiwi TCMS inside your organization. +We want to know what works for you and what doesn't so we can make it better. Feel +free to comment below, file GitHub issues or send us an email.

+

Happy testing!

+
+
+
+
+ +

Kiwi TCMS conference presence

+
+ + +
+ +
+

Kiwi TCMS is going on a small conference tour. This is where you can find us +in the next couple of months:

+ +

For all of the 3 conferences we're going to have a project presence. In addition +to that you can catch-up with Alex Todorov, Kiwi's project lead at: +TestCon Moscow(17-19 April, Moscow), +Romanian Testing Conference(9-11 May, Cluj-Napoca), +PyCon CZ(1-3 June, Prague) and +DEVit(10-11 June, Thessaloniki).

+

If you can ping us at @KiwiTCMS or look for the +kiwi bird logo and come to say hi!

+
+
+
+
+ +

Kiwi TCMS 4.1.4

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 4.1.4! +This is a bug-fix and enhancement update which upgrades to the latest Django +version, resolves several issues and includes lots of internal code updates.

+

We've pushed new kiwitcms/kiwi docker image to Docker Hub and updated the +demo instance at +https://public.tenant.kiwitcms.org!

+

Changes since Kiwi TCMS 4.1.3

+

Enhancements

+
    +
  • Upgrade to Django 2.0.4
  • +
  • Enable pylint and fix around 700 issues (Anton Sankov)
  • +
  • Add pylint plugin to check docstrings for triple double quotes. Fixes + Issue #296
  • +
  • Add pylint plugin to check for list comprehensions. Fixes + Issue #270
  • +
  • Add pylint plugin to check for class attributes enclosed with double underscores. + These are dunders and are reserved for Python!
  • +
+

Signals

+

BREAKING CHANGES:

+
    +
  • Renamed user_registered to USER_REGISTERED_SIGNAL and + post_update to POST_UPDATE_SIGNAL!
  • +
+

Bug fixes

+ +

Refactoring

+
    +
  • Move Bugzilla and Kerberos backends code into their own repositories. Fixes + Issue #239
  • +
  • Remove cache from TestCaseRunStatus. Fixes + Issue #279
  • +
  • Rewrite UrlMixin. Fixes + Issue #157 (Chenxiong Qi)
  • +
  • Remove unused split_as_option template tag
  • +
  • Internal refactoring and more tests in tcms/core/ajax.py
  • +
  • Delete unused file tcms/core/forms/widgets.py
  • +
  • Merge case/form/filter.html into plan/get_cases.html
  • +
  • Remove unused TestCaseStatus.id_to_string()
  • +
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then

+
cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+ + +

Help us make Kiwi TCMS better

+

According to our 2018 roadmap the +Kiwi TCMS team is investing a great deal of our time to make the code base more +maintainable! For the past few releases we've been balancing code refactoring +with bug-fixing and minor enhancements and we have lots of ideas down the line.

+

We want to hear your voice! Tell us how you use Kiwi TCMS inside your organization. +We want to know what works for you and what doesn't so we can make it better. Feel +free to comment below, file GitHub issues or send us an email.

+

Happy testing!

+
+
+
+
+ +

Kiwi TCMS 4.1.3

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 4.1.3! +This is a bug-fix and enhancement update which upgrades to the latest Django +version, provides easier way for Docker administrators to override SSL certificates +and access httpd log files and resolves several issues. This release also includes +lots of internal code refactoring which removes code duplication and brings down +CodeClimate metrics +to 26.9% of technical debt or 10 months to fix.

+

We've pushed the new kiwitcms/kiwi docker image to Docker Hub and updated the +demo instance at +https://public.tenant.kiwitcms.org. +Starting forward the demo will use +the info-at-kiwitcms.org email address for all communication sent. There are real +people behind this address so if you write to us we will reply!

+

Changes since Kiwi TCMS 4.1.0

+

Enhancements

+
    +
  • Upgrade to Django 2.0.3
  • +
  • Show date_joined column for user admin
  • +
  • Expose httpd logs to the host running docker. Fixes + Issue #191
  • +
+

Bug fixes

+
    +
  • Move SSL keys under common directory in the container. Fixes + Issue #231
  • +
  • Always select active builds for TestRun. Fixes + Issue #245
  • +
  • Swap escape and escapejs filters. Fixes + Issue #234
  • +
  • Globally disable delete_selected action in Admin, this removes the + drop down selection widget! Fixes + Issue #221
  • +
  • Fix error in TestCase view when from_plan is empty string. Fixes + Sentry KIWI-TCMS-Z
  • +
  • Fix sorting issue when None is compared to int. Fixes + Sentry KIWI-TCMS-V
  • +
  • Validate form field as integer, not char. Fixes + Sentry KIWI-TCMS-W
  • +
  • [docs] Remove information about importing test cases via XML. This functionality + was removed in version 3.49
  • +
+

Refactoring

+
    +
  • Refactor inner class CaseActions. Fixes + Issue #21 (Chenxiong Qi)
  • +
  • Only use get_cases.html template. Fixes + Issue #176
  • +
  • Unify get_details_review.html and get_details.html templates
  • +
  • Remove internal Prompt.render class and replace with Django messages
  • +
  • Remove mail/delete_plan.txt template
  • +
  • Remove handle_emails_pre_plan_delete signal handler
  • +
  • Remove the Export button from TestPlan view, use Case->Export sub-menu + item in the Cases tab. Also remove the export buttons from search and advanced + search result templates. If you'd like to export the cases from a given + plan you have to open it in a new browser window and use the menu
  • +
  • Remove the Print button from plan search form
  • +
  • Remove TestRun cloning from search results and plan details, use sub-menu
  • +
  • Remove unnecessary JavaScript handling for EnvGroup edit view
  • +
+

Settings

+
    +
  • Remove PLAN_DELELE_EMAIL_TEMPLATE setting (not used)
  • +
+

Models and database migrations

+
    +
  • Use Django's own DurationField, instead of custom one. Fixes + Issue #183
  • +
+

API clients must now send values for estimated_time which must be in a +format that parse_duration() understands, for example 'DD HH:MM:SS'! See +https://docs.djangoproject.com/en/2.0/ref/utils/#django.utils.dateparse.parse_duration

+

IMPORTANT: this release introduces new database migrations!

+

Translations

+

There are new translatable strings introduced with this release! At this moment +translating Kiwi TCMS in languages other than English is purely a +community effort. If you'd like to help consult our +translations contribution page.

+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then

+
cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+ + +

Help us make Kiwi TCMS better

+

According to our 2018 roadmap the +Kiwi TCMS team is investing a great deal of our time to make the code base more +maintainable! For the past few releases we've been balancing code refactoring +with bug-fixing and minor enhancements and we have lots of ideas down the line.

+

We want to hear your voice! Tell us how you use Kiwi TCMS inside your organization. +We want to know what works for you and what doesn't so we can make it better. Feel +free to comment below, file GitHub issues or send us an email.

+

Happy testing!

+
+
+
+
+ +

Kiwi TCMS 4.1.0

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 4.1.0! +This is a bug-fix and enhancement update centered around providing more +flexibility for administrators to configure the user approval process. +Refer to the documentation for more information about +signals handling +in Kiwi TCMS.

+

Changes since Kiwi TCMS 4.0.0

+

Enhancements and bug fixes

+
    +
  • Add tests for tcms.core.ajax.tag (Anton Sankov)
  • +
  • Remove unused code from tcms.core.ajax.tag (Anton Sankov)
  • +
  • Refactor tcms.core.ajax.tag to work with only one object. Fixes + Issue #135 (Anton Sankov)
  • +
  • Add test for tcms_api.TestRun. Closes + Issue #194
  • +
  • Send the user_registered signal when new users are registered
  • +
  • Add signal handler to notify admins on new users. Fixes + Issue #205
  • +
  • Add is_superuser column to User admin. Fixes + Issue #206
  • +
  • Properly pass variables to blocktrans tag. Fixes + Issue #225
  • +
  • Minor documentation updates
  • +
+

Refactoring

+
    +
  • Remove double thread when sending email on post_save signal
  • +
  • Remove unused EmailBackend authentication backend
  • +
  • Remove unused tcms.core.models.signals module
  • +
  • Consolidate all signals and handlers in tcms.signals
  • +
  • Make use of django_messages during account registration
  • +
+

Settings

+
    +
  • Remove LISTENING_MODEL_SIGNAL (internal setting)
  • +
  • New setting AUTO_APPROVE_NEW_USERS. Fixes + Issue #203
  • +
+

Models and database migrations

+
    +
  • Remove unused fields from Product model: + disallow_new, max_vote_super_bug, vote_super_user, + field votes_to_confirm, default_milestone, milestone_url
  • +
  • Remove unused Milestone model
  • +
+

IMPORTANT: this release introduces new database migrations!

+

Translations

+

There are new translatable strings introduced with this release, +including translations of a few email templates! At this moment +translating Kiwi TCMS in languages other than English is purely a +community effort. If you'd like to help consult our +translations contribution page.

+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then

+
cd Kiwi/
+docker-compose down
+docker pull kiwitcms/kiwi
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+ + +

Happy testing!

+
+
+
+
+ +

Kiwi TCMS & tcms-api version 4.0.0

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 4.0.0 +and the corresponding tcms-api version 4.0.0! This is a very big release +which introduces tons of backwards incompatible changes to the RPC layer +as well as several bug-fixes and enhancements!

+

With this release Kiwi TCMS meets one of our +milestones for 2018! All XML-RPC +namespaces now match DB model names and the API client class names. Lots of +similar and duplicate methods were removed and existing ones were simplified. +We've also reduced code duplication and technical debth by 1 month +according to stats by CodeClimate.

+

IMPORTANT: this is also the first release to officially publish the +kiwitcms/kiwi image on Docker Hub!

+

WARNING: upgrading to Kiwi TCMS 4.0.0 means you will have to upgrade +the tcms-api client as well. None of the 4.x releases is compatible with +older releases due to the massive ammount of changes in the RPC layer.

+

Changes since Kiwi TCMS 3.50

+

Enhancements and bug fixes

+
    +
  • Upgrade to Django 2.0.2 which patches a security issue
  • +
  • Pin JIRA client version to 1.0.10. Fixes + Issue #195
  • +
  • Generate api-docs for model classes
  • +
  • Updated documentation for all RPC methods
  • +
  • Use Grappelli jQuery initialization, fixes popup windows
  • +
  • Unify RPC namespaces, API client class names and server-side model names. + Fixes Issue #153
  • +
+

Settings

+
    +
  • Remove ADMIN_PREFIX setting
  • +
+

RPC methods refactoring

+
    +
  • Remove Build.check_build, use Build.filter
  • +
  • Remove Build.get, use Build.filter
  • +
  • Remove Build.get_caseruns, use TestCaseRun.filter
  • +
  • +

    Remove Build.get_runs, use TestRun.filter

    +
  • +
  • +

    Rename Env.filter_groups, use Env.Group.filter

    +
  • +
  • Rename Env.filter_properties, use Env.Property.filter
  • +
  • +

    Rename Env.filter_values, use Env.Value.filter

    +
  • +
  • +

    Remove Product.add_component, use Component.create

    +
  • +
  • Remove Product.add_version, use Version.create
  • +
  • Remove Product.check_category, use Category.filter
  • +
  • Remove Product.check_component, use Component.filter
  • +
  • Remove Product.check_product, use Product.filter
  • +
  • Remove Product.filter_categories, use Category.filter
  • +
  • Remove Product.filter_components, use Component.filter
  • +
  • Remove Product.filter_versions, use Version.filter
  • +
  • Remove Product.get, use Product.filter
  • +
  • Remove Product.get_builds, use Build.filter
  • +
  • Remove Product.get_cases, use TestCase.filter
  • +
  • Remove Product.get_categories, use Category.filter
  • +
  • Remove Product.get_category, use Category.filter
  • +
  • Remove Product.get_component, use Component.filter
  • +
  • +

    Remove Product.update_component, use Component.update

    +
  • +
  • +

    Rename Tag.get_tags to Tag.filter

    +
  • +
  • +

    Remove TestCase.add_comment

    +
  • +
  • Update signature for TestCase.add_component
  • +
  • Update signature for TestCase.add_tag
  • +
  • Remove TestCase.add_to_run, use TestRun.add_case
  • +
  • Remove TestCase.attach_bug, use Bug.create
  • +
  • Remove TestCase.calculate_average_estimated_time
  • +
  • Remove TestCase.calculate_total_estimated_time
  • +
  • Remove TestCase.check_case_status, use TestCaseStatus.filter
  • +
  • Remove TestCase.check_priority, use Priority.filter
  • +
  • Update signature for TestCase.create, no longer accepts plan, + component and bug dict attributes. Instead use + TestPlan.add_case, TestCase.add_component and Bug.create
  • +
  • Remove TestCase.detach_bug, use Bug.remove
  • +
  • Remove TestCase.filter_count
  • +
  • Remove TestCase.get, use TestCase.filter
  • +
  • Remove TestCase.get_bugs, use Bug.filter({'case': ?})
  • +
  • Remove TestCase.get_bug_systems
  • +
  • Remove TestCase.get_case_status, use TestCaseStatus.filter
  • +
  • Update signature for TestCase.get_components
  • +
  • Remove TestCase.get_plans, use TestPlan.filter({'case': ?})
  • +
  • Remove TestCase.get_priority, use Priority.filter
  • +
  • Remove TestCase.get_tags, use Tag.filter({'case': ?})
  • +
  • Remove TestCase.get_text, use TestCase.filter
  • +
  • Remove TestCase.link_plan, use TestPlan.add_case
  • +
  • Rename TestCase.notification_add_cc to TestCase.add_notification_cc + and update signature
  • +
  • Rename TestCase.notification_get_cc_list to TestCase.get_notification_cc + and update signature
  • +
  • Rename TestCase.notification_remove_cc to TestCase.remove_notification_cc + and update signature
  • +
  • Update signature for TestCase.remove_component
  • +
  • Update signature for TestCase.remove_tag
  • +
  • Remove TestCase.store_text, use TestCase.update with + setup, breakdown, action and effect attributes in the parameter dict
  • +
  • +

    Remove TestCase.unlink_plan, use TestPlan.remove_case

    +
  • +
  • +

    Remove TestCasePlan.get

    +
  • +
  • +

    Remove TestCasePlan.update

    +
  • +
  • +

    Update TestCaseRun.add_comment to accept a single ID as first parameter

    +
  • +
  • Remove TestCaseRun.attach_bug, use Bug.create
  • +
  • Rename TestCaseRun.attach_log to TestCaseRun.add_log
  • +
  • Remove TestCaseRun.detach_bug, use Bug.remove
  • +
  • Rename TestCaseRun.detach_log to TestCaseRun.remove_log
  • +
  • Remove TestCaseRun.get, use TestCaseRun.filter
  • +
  • Remove TestCaseRun.get_bugs, use Bug.filter({'case_run': ?})
  • +
  • Remove TestCaseRun.get_case_run_status_by_name
  • +
  • +

    Update signature for TestCaseRun.update

    +
  • +
  • +

    Remove TestPlan.add_component

    +
  • +
  • Update signature for TestPlan.add_tag
  • +
  • Remove TestPlan.check_plan_type, use PlanType.filter
  • +
  • Remove TestPlan.filter_count
  • +
  • Remove TestPlan.get, use TestPlan.filter
  • +
  • Remove TestPlan.get_all_cases_tags
  • +
  • Remove TestPlan.get_components
  • +
  • Remove TestPlan.get_env_groups, use Env.Group.filter({'testplan': ?})
  • +
  • Remove TestPlan.get_plan_type, use PlanType.filter
  • +
  • Remove TestPlan.get_product, use Product.filter({'plan': ?})
  • +
  • Remove TestPlan.get_tags, use Tag.filter({'plan': ?})
  • +
  • Remove TestPlan.get_test_cases, use TestCase.filter({'plan': ?})
  • +
  • Remove TestPlan.get_test_runs, use TestRun.filter({'plan': ?})
  • +
  • Remove TestPlan.get_text, use TestPlan.filter
  • +
  • Rename TestPlan.link_env_value to TestPlan.add_env_value + and update signature
  • +
  • Remove TestPlan.remove_component
  • +
  • Update signature for TestPlan.remove_tag
  • +
  • Remove TestPlan.store_text, use TestPlan.update with + a text attribute in the parameter values
  • +
  • +

    Rename TestPlan.unlink_env_value to TestPlan.remove_env_value + and update signature

    +
  • +
  • +

    Rename TestRun.add_cases to TestRun.add_case and update signature

    +
  • +
  • Update signature for TestRun.add_tag
  • +
  • Update signature for TestRun.create, no longer accepts case + dict attribute. Instead use TestRun.add_case
  • +
  • Remove TestRun.filter_count
  • +
  • Remove TestRun.get, use TestRun.filter
  • +
  • Remove TestRun.get_bugs
  • +
  • Remove TestRun.get_env_values, use Env.Value.filter({'testrun': ?})
  • +
  • Remove TestRun.get_tags, use Tag.filter({'run': ?})
  • +
  • Rename TestRun.get_test_cases to TestRun.get_cases
  • +
  • Remove TestRun.get_test_case_runs, use TestCaseRun.filter({'run': ?})
  • +
  • Remove TestRun.get_test_plan, use TestPlan.filter({'run': ?})[0]
  • +
  • Rename TestRun.remove_cases to TestRun.remove_case and update signature
  • +
  • Update signature for TestRun.remove_tag
  • +
  • +

    Update signature for TestRun.update

    +
  • +
  • +

    Rename User.get to User.filter

    +
  • +
  • Rename User.join to User.join_group
  • +
  • Update signature for User.update
  • +
+

Models and database migrations

+
    +
  • Remove model TestEnvironment
  • +
  • Remove model TestEnvironmentCategory
  • +
  • Remove model TestEnvironmentElement
  • +
  • Remove model TestEnvironmentMap
  • +
  • Remove model TestEnvironmentProperty
  • +
  • Remove model TestPlanComponent
  • +
  • Remove TestPlan.get_text_with_version()
  • +
  • Remove TestRun.get_previous_or_next()
  • +
+

IMPORTANT: this release introduces new database migrations!

+

tcms-api changes since 1.5.1

+
    +
  • Make the code compatible with Kiwi TCMS XML-RPC v4.0.0
  • +
  • Rename Status to TestCaseRunStatus
  • +
  • Rename CaseRun to TestCaseRun
  • +
  • Remove PlanStatus, use TestPlan.is_active
  • +
  • Remove RunStatus, use TestRun.finished
  • +
  • Remove TestPlan.components container
  • +
  • Update signature for TestPlan. Now accept text kwarg in constructor + instead of document.
  • +
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then

+
cd Kiwi/
+docker-compose down
+docker pull kiwitcms/kiwi
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+ + +

Happy testing!

+
+
+
+
+ +

Kiwi TCMS version 3.50

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 3.50 +and the corresponding tcms-api version 1.5.1! This is a bug-fix and +enhancement release and we advise you to upgrade as soon as possible!

+

Changes since Kiwi TCMS 3.49

+

Enhancements and bug fixes

+
    +
  • Update documentation for XML-RPC and positional arguments, translations, + environment groups
  • +
  • Enable translations. Fixes + Issue #129
  • +
  • Register models for DB translations. Fixes + Issue #182
  • +
  • New German translations (@xbln)
  • +
  • Require django-attachments>=1.3 and restore attachments count in tabs
  • +
  • Fix missing tag names in TestPlan page
  • +
  • Hide admin forms for some models not supposed to be edited by users. Fixes + Issue #174
  • +
  • Use django-grappelli for the admin templates: modern look and feel and + less template files overridden by Kiwi TCMS
  • +
  • Load values for default property in TestRun 'Add Property' dialog. Fixes + Issue #142
  • +
  • Correctly find property ID when renaming environment properties. Fixes + Issue #167
  • +
  • Convert request body to string. Fixes + Issue #177
  • +
+

Refactoring

+
    +
  • Remove batch tag Add/Remove sub-menu in TestPlan view (Anton Sankov)
  • +
  • Remove Edit tag button in Tag tab (Anton Sankov)
  • +
  • Remove template functions. Fixes + Issue #107
  • +
  • Remove custom HttpJSONResponse classes
  • +
  • Remove unused and duplicate code
  • +
+

tcms-api changes since 1.5.0

+
    +
  • Fix order of TestCaseRun statuses. Fixes + Issue #184
  • +
+

IMPORTANT: this release introduces new database migrations!

+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then

+
cd Kiwi/
+docker-compose down
+make docker-image
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+ + +

Happy testing!

+
+
+
+
+ +

Kiwi TCMS roadmap for 2018

+
+ + +
+ +
+

Hello everyone. As you know Kiwi TCMS has been around for a while and it has +gone through some big changes in the last year! It started as an abandoned +Django 1.6 project with broken test suite and is now currently running on the +latest Django 2.0.1 with Python 3.5! It is clearly a legacy code base!

+

We, the Kiwi TCMS team, have learned a lot more about the project and this +blog post describes our roadmap for 2018 in terms of technical work and community +engagement. The general technical direction is cleaner/simpler code, +improved UI/UX and more tests!

+

Make code easier to maintain

+

The current code is a bunch of very large modules and functions and classes +bundled together. It is also old and sometimes looks like spaghetti code. +CodeClimate gives us a "D" rating +for maintainability with a 1 year estimated effort to fix that. There are 600+ +code smells and 600+ duplications detected by CodeClimate. Our goal is to get this +number down to zero!

+

Use pylint and pylint-django

+

pylint is the standard static analyzer for Python and currently it reports over +4000 errors and warnings when executed against Kiwi TCMS. This is a huge number and +it needs to become zero! We've also identified interesting patterns that will +make it into pylint and pylint-django plugins!

+

Render HTML, return JSON

+

The current state of affairs is a mix and match of everything. There are views that +render HTML, others which return pure JSON, other which return HTML encoded as JSON string +and probably everything in between. Views that render pages need to do just that +and views that are used with AJAX calls from the UI need to return pure JSON! +A lot of these are hiding in plain sight and will come to light when we start +overhauling the user interface.

+

Submit forms, post JSON, GET clean URLs

+

There are lots of forms in Kiwi TCMS. Sometimes they are submitted by the user and +other times they are serialized and POSTed by some JavaScript code. This isn't +very easy to understand plus this entire home-grown utility code doesn't bring +anything useful to the project. All of these need to be identified and cleaned up. +JavaScript code needs to send or consume JSON, nothing else!

+

There are also lots of places where Kiwi issues GET requests with a number of +query parameters. Our goal is to minimize these and where possible have the +parameters as part of the Django urls scheme, not as query strings.

+

API layer

+

The current API module is a bit disorganized. API namespaces don't match the +names of the underlying DB models and the API client classes don't match any +of the other two! The way we pass parameters and what these parameters are +named should match between the client, the RPC method and the underlying model!

+

In earlier releases we've removed duplicate or similar RPC methods and we +think there are more of these that need our love.

+

Documentation

+

We've started producing documentation from doc-strings and most of the RPC +methods have such. However it is unformatted and barely readable, sometimes +even inaccurate. Previous releases made progress on this but there's a lot +more to cover.

+

All RPC methods should be documented first and then the rest of Kiwi's +internals to make development easier!

+

No vendored JavaScript libraries

+

There are 11 vendored-in JavaScript files that we carry around in Kiwi TCMS. +Most notable are jQuery plus a few addons and Handlebars.js. To the extent possible +our goal is to use jQuery provided by Django or installed via NPM dependencies!

+

Less HTML templates with better organization

+

There are over 100 HTML templates in Kiwi TCMS. There are also email and even +JavaScript templates. For example there are get_cases.html and get_review_cases.html +which are essentially the same. This is kind of also true for templates used in +new and edit views! Such templates should be unified!

+

Those JavaScript templates need to be totally gone!

+

All templates are stuffed together in a single directory and their names +are not very predictable. They need to be split per application and follow +some kind of naming convention.

+

Modern interface with Patternfly

+

The UI already uses the Patternfly library for some of its widgets. Most notably +the main navigation header. Our goal is for the entire UI to be ported to Patternfly +by updating widgets HTML and CSS where needed. +This will also help clean things up a lot. At the same time we'll be rethinking how +information is organized on screen and how the person interacts with it! Usability +suggestions are very welcome!

+

This move will also help us get rid of the Handlebars dependency which is now +used for pop-up dialogs.

+

JavaScript updates and front-end testing

+

There's lots of JavaScript code on the front-end and honestly we don't quite know +what it does or how it is organized. There are also no tests on the front-end +whatsoever!

+

It is our goal for this to change with the intention to not overdo the JavaScript +part and keep things very minimal. At the moment we're thinking about vanilla jQuery +that will act as a proxy between the browser and the back-end!

+

Community efforts

+

A year ago hardly anybody knew what Kiwi TCMS was, the project didn't even have +this name, there was 1 active contributor and hardly any users! Now the community +has started to slowly revitalize, we're seeing some contributions from our +junior team members (more on this in another blog post) and also seeing +folks installing and using Kiwi TCMS and reporting interesting bugs and feature +requests around it!

+

For the upcoming year our goal is to seek active engagement with other open source +projects that could make use of Kiwi TCMS and work with them. Kudos to +openSUSE for being the first +to propose such integration! +We're also planning couple of appearances at a few conferences but there's +nothing confirmed yet.

+

Every other contribution in terms of bug reports, new users and feature requests +is of course welcome but we're very conscious of the fact that there's tons +of work to be done and the team is still very small!

+

Team wise we'd like to get the existing team members up to speed and tackle +the above tasks with priority. This will also help us introduce bug fixes +and new features more quickly!

+

Happy testing!

+
+
+
+
+ +

Kiwi TCMS version 3.49

+
+ + +
+ +
+

Happy New Year to everyone. We're happy to announce Kiwi TCMS version 3.49 +and the corresponding tcms-api version 1.5.0! This release includes a fair +amount of bug fixes and many changes related to Kiwi's RPC layer!

+

Most importantly Kiwi is updated to Django 2.0.1, the API client no longer +supports Python 2 and many RPC methods have been removed or updated. +https://public.tenant.kiwitcms.org +has also been updated so you can explore the new version.

+

Changes since Kiwi TCMS 3.48

+

Enhancements and bug fixes

+
    +
  • Upgrade to Django 2.0.1
  • +
  • Don't log passwords sent via RPC
  • +
  • Log XML-RPC requests from anonymous users. Fixes + Issue #126
  • +
  • Order TCMSEnvValue records by property name and value. Fixes + Issue #155
  • +
  • flake8 fixes (Anton Sankov)
  • +
  • Start building source code documentation from Python doc strings
  • +
  • Properly urlencode emails in personal menu links
  • +
  • Remove test case import via XML files
  • +
  • Use django-attachments for user uploaded files. Fixes + Issue #160 + As part of this change we no longer copy Plan and Case attachments when + cloning these objects.
  • +
+

NOTE: Since django-attachments introduces new permission objects + you will have to adjust default permissions for existing users! + In order for them to be able to upload/delete their own files they + need to have attachments.add_attachment and atachments.delete_attachment + permissions.

+

These same permissions are added by default to the 'Tester' group. + If you are running an existing installation registering a new user + with Kiwi TCMS will update the default permissions for this group!

+

Refactoring

+
    +
  • Remove unused class EditCaseNotifyThread (Chenxiong Qi)
  • +
  • Remove model TestPlanActivity (Chenxiong Qi)
  • +
  • Remove many unused models and classes
  • +
  • Execute tests via manage.py test and drop py.test dependency
  • +
  • Remove useless TestTag.string_to_list method. Fixes + Issue #106
  • +
  • Use settings.AUTH_USER_MODEL in ForeignKey definitions. Fixes + Issue #143
  • +
+

Settings

+
    +
  • Rename EMAIL_FROM to DEFAULT_FROM_EMAIL. Fixes + Issue #128
  • +
  • Rename FILE_UPLOAD_DIR to MEDIA_ROOT
  • +
  • Rename MAX_UPLOAD_SIZE to FILE_UPLOAD_MAX_SIZE
  • +
  • New setting DELETE_ATTACHMENTS_FROM_DISK
  • +
  • Remove unused XMLRPC_TEMPLATE and TESTOPIA_XML_VERSION
  • +
+

Server side API

+
    +
  • Migrate to django-modern-rpc and remove home-grown XML-RPC handling code. + As part of this change the XML-RPC endpoint has been changed to /xml-rpc/. + There's also a new JSON-RPC endpoint at /json-rpc/!
  • +
  • Auth.login method now accepts positional parameters username, password + instead of dict
  • +
  • TestCaseRun.get method now accepts a query dict as parameter
  • +
  • TestCaseRun.get_bugs method now accepts a query dict as parameter
  • +
  • Remove Build.lookup_id_by_name, Build.lookup_name_by_id RPC methods
  • +
  • Remove Product.lookup_name_by_id, Product.lookup_id_by_name RPC methods
  • +
  • Remove Product.get_components, use Product.filter_components instead
  • +
  • Remove Product.get_plans, use TestPlan.filter instead
  • +
  • Remove Product.get_runs, use TestRun.filter instead
  • +
  • Remove Product.get_tag, use Tag.get_tags instead
  • +
  • Remove Product.get_versions, use Product.filter_versions instead
  • +
  • Remove TestCaseRun.filter_count, use TestCaseRun.filter instead
  • +
  • Remove TestCaseRun.get_s, use TestCaseRun.get instead
  • +
  • Remove TestCaseRun.get_bugs_s, use TestCaseRun.get_bugs instead
  • +
  • Remove TestCaseRun.get_case_run_status, use + TestCaseRun.get_case_run_status_by_name instead
  • +
  • Remove TestCaseRun.get_completion_time, TestCaseRun.get_completion_time_s + RPC methods. Instead calculate them on the client side
  • +
  • Rename TestCaseRun.check_case_run_status to TestCaseRun.get_case_run_status_by_name
  • +
  • TestCaseRun.detach_log will not raise exceptions when deleting logs from + non-existing TestCaseRun objects.
  • +
  • Remove User.get_me, instead use User.get without parameters
  • +
  • Remove Version. and Testopia. RPC modules
  • +
  • Update documentation for RPC methods in Auth, Build and Env namespaces. + Unformatted documentation is also available for the rest of the RPC methods
  • +
+

tcms-api changes since 1.4.0

+
    +
  • Update endpoint configuration, compatible with Kiwi TCMS 3.49
  • +
  • Drop support for Python 2
  • +
  • Remove the internal do_command method which eliminates use of eval()
  • +
  • Remove TCMSXmlrpc.get_me() and TCMSXmlrpc.build_get() methods
  • +
+

IMPORTANT: this release introduces new database migrations!

+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then

+
cd Kiwi/
+docker-compose down
+make docker-image
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+ + +

Happy testing!

+
+
+
+
+ +

Kiwi TCMS Python API client

+
+ + +
+ +
+

We are happy to announce the first official release of the +tcms-api package! +This is a Python client for Kiwi TCMS.

+

There are couple of main distinctions in this module:

+
    +
  • mutable vs. immutable types of objects
  • +
  • high-level class interface vs. low-level XML-RPC interface
  • +
+

For more information you should check-out the documentation +and the script_examples/ directory.

+

At the moment the API client is both Python2 and Python3 compatible, +however it is tested only under Python3!

+

A bit of history

+

The original API client, like Kiwi TCMS itself began its origin under a +different name and was created primarily by Petr Splichal. Since then +Kiwi TCMS has evolved and we've decided that the API module needs to evolve +as well. At the moment the tcms-api module is a bit rough around the edges, +its documentation is not really the best one and it's currently advisable +to spend some time reading the code to figure out how everything works.

+

We're going to improve on all of these areas and we need help from the community +to do so! Please download the tcms-api module, check it out, write and contribute +example scripts (you can use the demo site for this), send us bug reports, suggestions +and pull requests!

+

Happy testing!

+
+
+
+
+ +

Kiwi TCMS version 3.48

+
+ + +
+ +
+

We're proud to announce Kiwi TCMS version 3.48! +This is the first release to be announced on our blog and it is also an +important one!

+

Kiwi TCMS 3.48 introduces new versions of Django and Patternfly, +a Python API client library, many bug-fixes and updated documentation.

+

Changes since KiwiTCMS 3.44

+
    +
  • Update to Django 1.11.7 (Mr. Senko)
  • +
  • Update documentation including high level information + about how data is organized within Kiwi TCMS and how to work + with the system. (Mr. Senko)
  • +
  • Stop caching report views. (Mr. Senko)
  • +
  • Make test execution comments optional. Fixes + Issue #77. (Mr. Senko)
  • +
  • Escape special symbols when exporting JSON. + Fixes Issue #78. (Mr. Senko)
  • +
  • Remove Test Run export to XML functionality in favor of API. + Fixes Issue #79. (Mr. Senko)
  • +
  • Make it possible to search Test Runs via Env properties. + Fixes Issue #82. (Mr. Senko)
  • +
  • Display Environment properties in Test Run search results. (Mr. Senko)
  • +
  • Allow bulk update TestCase.default_tester via email. + Fixes Issue #85. (Mr. Senko)
  • +
  • Don't crash reports when there are untested TestCaseRuns. + Fixes Issue #88. (Mr. Senko)
  • +
  • Bind localhost:80 to container:80. + Fixes Issue #99. (Mr. Senko)
  • +
  • Enable testing with Python 3.6 in preparation for migration. (Mr. Senko)
  • +
  • If JIRA isn't fully configured then don't connect. Fixes + Fixes Issue #100. (Mr. Senko)
  • +
  • Pin patternfly version to 3.30 and update templates. + Fixes Issue #120. (Mr. Senko)
  • +
  • Show status name rather than status id in TestCaseRun change log. (Chenxiong Qi)
  • +
  • [api] Adds a Python API client with changes that make it possible to + execute on both Python 2 and Python 3. For now take a look at + tcms_api/script_examples/ for examples how to use it.
  • +
  • [api] Remove experimental support for Teiid. (Mr. Senko)
  • +
  • [api] Cache level defaults to CACHE_NONE if not set. (Mr. Senko)
  • +
  • [api] Remove persistent cache, in-memory caching is still available. (Mr. Senko)
  • +
  • [api] Remove multicall support. (Mr. Senko)
  • +
+

IMPORTANT: this release introduces new database migrations!

+

NOTE: the API client has been initially developed as the python-nitrate +project by Petr Splichal and other contributors! We've decided to fork their +code base into Kiwi's repository and continue further development in a central +place. This makes it easier testing the API server and client together and +allows us to move more rapidly!

+

As of now there isn't a lot of documentation +and examples on how to use the API client but we are looking to improve this. +Additional documentation and examples will be published in the project's +repository or on this blog!

+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then

+
cd Kiwi/
+docker-compose down
+make docker-image
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+ + +

Happy testing!

+
+
+
+
+ +

Testing, testing. It works!

+
+ + +
+ +
+

Welcome to the official website and blog of Kiwi TCMS. +We are happy to finally be online!

+

This website was built with the help of +Kaloyan Krastev, +Tsvetoslav Garkov and +Ivaylo Ivanov +who will be joining the project a bit later as well.

+

In this blog you can expect various news and progress reports around the project, +announcement of new releases and future plans. We would love to hear your +feedback so please use the comments form below.

+

Happy testing!

+
+
+ +
+ Newer Posts +

+ Page 6 / 6 +

+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/tags/bounty-program/index.html b/blog/tags/bounty-program/index.html new file mode 100644 index 00000000..b01c4bcf --- /dev/null +++ b/blog/tags/bounty-program/index.html @@ -0,0 +1,721 @@ + + + + + Kiwi TCMS - Articles with tag bounty-program + + + + + + + + + + + + + + + +
+

Articles with tag bounty-program

+ +
+
+ +

Kiwi TCMS is partnering with Vola Software

+
+ + +
+ +
+

We are happy to announce that Kiwi TCMS is going to partner with +Vola Software to provide 2 interns with +opportunities for hacking open source and bootstrapping their careers!

+

Vola Software is a custom software development company +in one of the poorest regions of the European Union and a long-time contributor +to their local ecosystem via +Vratsa Software Community. +They are located in Vratsa, Bulgaria.

+

Internship program

+

Alexander Tsvetanov and +Vladislav Ankov are joining the Kiwi TCMS team +for a 10 month adventure until the end of July 2021 with the opportunity +to continue for another year afterwards!

+

Both Sasho and Vladi are students in the Professional Technical Gymnasium +in Vratsa and are required to work part-time as junior software developers during the +last 2 years of their education. Given that they have very limited practical +experience and the additional red tape around hiring youngsters many software +companies directly avoid such kind of relationship. This creates a catch-22 +circle for both employers who are looking to hire somewhat experienced young people +and youngsters who are looking to advance their practical skills.

+

Here's where Kiwi TCMS steps-in! What better way to improve practical knowledge +than contributing to an actively used and actively maintained open source software! +We are nearing the 200K downloads mark on Docker Hub so changes made by +Sasho and Vladi will be visible to a very big pool of our users and customers!

+

Both have already started their open source adventure last week and are currently +going through some training. However they were faced with real problems which +resulted in +bug discovery +and a +pull request for +python-bugzilla underlined by a +20 years old issue in Python. +How's that for a start ?

+

Administrative

+

Vola Software is the direct employer for Sasho and Vladi because they have the +necessary permits and experience required for hiring youngsters. Kiwi TCMS is +the direct technical mentor and will be acting as a customer to Vola Software!

+

Vola Software will be paying a minimal salary to our interns as required by law. +Kiwi TCMS will reimburse the full amount while Vola Software +will be covering their accounting and administrative expenses. +Both Sasho and Vladi will also be eligible for our +open source bounty-program as an extra stimulation!

+

All expenses will be fully transparent and visible via +our Open Collective page!

+

Help us do more

+

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

+ +


+Thanks for reading and happy testing!

+
+
+
+
+ +

Kiwi TCMS is partnering with MLH Fellowship program

+
+ + +
+ +
+

We are happy to announce that Kiwi TCMS is going to partner with the +MLH Fellowship +open source program which is a 12 week internship alternative for +students interested in becoming software engineers.

+

Major League Hacking (MLH) is a mission-driven B-Corp focused +on empowering our next generation of technologists. Every year, more than +100,000 developers, designers, and makers join the MLH community to gain +hands-on experience and build their professional networks. +They are headquartered in the Greater New York Area, USA but operate world-wide.

+

Fellowship program

+

The Fall 2020 cohort runs between October 5 - December 21 and we're already +into the Contributing phase of the program. +Fellow students will be working on +open issues from our backlog with +a focus on tasks from our +open source bounty program +but they can really work on any open task!

+

Once a pull request has been made it will undergo first round code review +by Cory Massaro +who is the dedicated MLH Python mentor. Once Cory gives the +1 +each pull request will be reviewed by a member of the Kiwi TCMS core team like usual.

+

To minimize the risk of conflicts between contributors we are going to apply +the following rules:

+
    +
  • Each MLH fellow would add a comment on the issue they are + interested in (applies to other contributors too);
  • +
  • The issue will be assigned to them (new);
  • +
  • The issue will be labeled with the + MLH Fellowship + label (new);
  • +
  • The following comment will be added: + This issue/bounty has been assigned to an MLH fellow who is currently + working on it. Pull requests towards the same issue from other contributors + will not be considered at this time. Please pick something else to work on!
  • +
+

Upon successful completion of tasks all MLH fellows will be eligible to claim their +bounties via our Open Collective page. This is +the same process other contributors go through, there is no difference.

+

Kiwi TCMS commits 2 core-team members who will serve office hours +on the MLH Fellowship Discord server for +couple of hours per week in order to answer questions and keep the ball rolling. +We also commit to having bi-weekly meetings with MLH mentor(s) during the +duration of the program.

+

Kiwi TCMS would also like to thank our friend +Eddie Jaoude for putting us in touch with MLH +and helping bring this partnership to reality. Thank you Eddie!

+

Help us do more

+

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

+ +


+Thanks for reading and happy testing!

+
+
+
+ + +
+

Hello testers, as you know our +friends at Pionir +are working on physical hardware which can be used for interactive training and +explanation of the Black-box testing technique. The inspiration +comes from James Lyndsay’s Black Box Puzzles and +Claudiu Draghia.

+

We have the source code of 3 boxes already published at +https://github.com/kiwitcms/black-boxes but still missing bill of materials, +design files for 3D printing and some basic instructions how to put everything +together. There was a delay in delivery of some components but most of the work +is close to completion. You may subscribe to +issues for each box to follow +the progress! Here are some images & videos from the development process.

+

Wason 2-4-6 box

+

Wason 246 box

+ + +

Peltzman effect box

+

Peltzman effect box

+ + +

Salience bias box

+

Salience bias box

+ + +

According to Pionir's own words: +We are testing the salience box and trying to cause emotional effect of an element. +Vuk made a mistake and now he can't turn it off :D. How's that for dogfooding?

+

Help us do more

+

If you like what we're doing and how Kiwi TCMS supports the various communities +around us please nominate us as GitHub Stars!

+


+Thanks for reading and happy testing!

+
+
+
+
+ +

Kiwi TCMS is partnering up with Pionir

+
+ + +
+ +
+

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!

+
+
+
+
+ +

Kiwi TCMS open source bounty program, Round 02

+
+ + +
+ +
+

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 open source bounty program, Round 01

+
+ + +
+ +
+

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

+
    +
  • Program will be split into multiple rounds as we work to clearly define + what needs to be done and adjust priorities
  • +
  • News and updates will be posted at https://opencollective.com/kiwitcms/updates/
  • +
  • You are expected to mostly work alone on issues
  • +
  • Technical discussion will be happening via GitHub pull requests and/or GitHub issues + under https://github.com/kiwitcms/Kiwi unless indicated otherwise
  • +
  • Translation related discussion will be happening via Crowdin under + https://crowdin.com/project/kiwitcms/discussions when needed
  • +
  • Do not contact individual team members privately, we are going to ignore such messages
  • +
+

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

+
    +
  • pylint - + #1192
  • +
  • JavaScript: Add buttons for creating tables in text editor - + #1531
  • +
  • Migration from Travis CI to GitHub workflows - + #1550, + #1551, + #1552, + #1553, + #1554
  • +
+

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!

+
+
+ +
+

+ Page 1 / 1 +

+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/tags/community/index.html b/blog/tags/community/index.html new file mode 100644 index 00000000..5d408f43 --- /dev/null +++ b/blog/tags/community/index.html @@ -0,0 +1,1480 @@ + + + + + Kiwi TCMS - Articles with tag community + + + + + + + + + + + + + + + +
+

Articles with tag community

+ +
+ + +
+

"Cfp banner"

+

Attention testers! On behalf of +Testing and Automation devroom +we'd like to announce that call for participation is now open.

+

Important: devroom will take place 09:00 to 12:50, Sunday, February 5th 2023 at +ULB Solbosch Campus, Brussels, Belgium! +Presentations will be streamed online but all accepted speakers are required to deliver +their talks in person! The devroom will not host pre-recorded videos in 2023!

+

Here are some ideas for topics that are a good fit for this devroom:

+

Testing in the real, open source world

+
    +
  • War stories/strategies for testing large scale or complex projects
  • +
  • Demystify resource e.g. systems/device/cloud provisioning in a CI loop
  • +
  • Tools that extend the ability to test low-level code, e.g. bootloaders, init +systems, etc.
  • +
  • Projects that are introducing new/interesting ways of testing "systems"
  • +
  • Address the automated testing frameworks fragmentation
  • +
  • Lessons learned from testing
  • +
+

Cool Tools (good candidates for lightning talks)

+
    +
  • How your open source tool made developing quality software better
  • +
  • What tools do you use to setup your CI/CD
  • +
  • Combining projects/plugins/tools to build amazing things "Not enough people in +the open source community know how to use $X, but here's a tutorial on how to +use $X to make your project better."
  • +
+

In the past the devroom has seen both newbies/students and experienced professionals and +past speakers as part of the audience and talks covering from beginner/practical +to advanced/abstract topics. If you have doubts then submit your proposal and +leave a comment for the devroom managers and we'll get back to you.

+

Checkout +https://fosdem-testingautomation.github.io/ for more information!

+

Happy Testing!

+
+

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

+ +
+
+
+
+ +

Mejor Sitio Web 2022

+
+ + +
+ +
+

Kiwi TCMS is happy to announce that we have been awarded a "Best Website 2022" award +by Reviewbox.es, scoring 36/40 on their evaluation. +The review criteria can be found at https://www.reviewbox.es/los-mejores-sitios-web/.

+
+

Querido equipo de Kiwitcms,

+

¡Felicidades!

+

Habéis logrado lo que muchos otros desean:

+

Habéis acumulado 36/40 puntos en nuestra investigación de +mercado y por lo tanto calificasteis (mínimo 30 de 40 puntos necesarios) +para nuestro premio Mejor Sitio Web 2022.

+

Resultados y criterios de investigación

+

URL: Kiwitcms-Team

+

Puntos: 36/40

+
+

Our team is happy to accept this award, which comes exactly 2 years +after we became an OpenAwards winner.

+

Thank you and Happy testing!

+
+

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

+ +
+
+
+
+ +

Zaklina, welcome to the Kiwi TCMS team

+
+ + +
+ +
+

Kiwi TCMS is pleased to welcome Zaklina Stojnev to our team!

+

+

She holds an engineering degree in computer science and +has been working as a test engineer for more than 10 years. +In the last couple of years her main focus is automation in testing, +finding ways to improve testing process and tools that will support testing activities.

+

Zaklina will be the primary contact for our +History of Testing project where we are +compiling a database of people who influenced or made important contributions to our professional field.

+

With her prior experience as a conference organizer Zaklina will also be lending a much needed hand +in preparing the Testing and Automation devroom at FOSDEM and showcasing Kiwi TCMS at different +events.

+

You can find her on-boarding progress at TR-1190 and her +contributions on +GitHub.

+

Happy Testing!

+
+

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

+ +
+
+
+ + +
+

"Cfp banner"

+

Attention testers! On behalf of +Testing and Automation devroom +we'd like to announce that call for participation is now open.

+

Here are some ideas for topics that are a good fit for this devroom:

+

Testing in the real, open source world

+
    +
  • War stories/strategies for testing large scale or complex projects
  • +
  • Demystify resource e.g. systems/device/cloud provisioning in a CI loop
  • +
  • Tools that extend the ability to test low-level code, e.g. bootloaders, init +systems, etc.
  • +
  • Projects that are introducing new/interesting ways of testing "systems"
  • +
  • Address the automated testing frameworks fragmentation
  • +
  • Lessons learned from testing
  • +
+

Cool Tools (good candidates for lightning talks)

+
    +
  • How your open source tool made developing quality software better
  • +
  • What tools do you use to setup your CI/CD
  • +
  • Combining projects/plugins/tools to build amazing things "Not enough people in +the open source community know how to use $X, but here's a tutorial on how to +use $X to make your project better."
  • +
+

In the past the devroom has seen both newbies/students and experienced professionals and +past speakers as part of the audience and talks covering from beginner/practical +to advanced/abstract topics. If you have doubts then submit your proposal and +leave a comment for the devroom managers and we'll get back to you.

+

Checkout +https://fosdem-testingautomation.github.io/ for more information!

+

Happy Testing!

+
+

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

+ +
+
+
+
+ +

Announcing winners of 6 tickets for HackConf 2021

+
+ + +
+ +
+

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!

+ +
+
+
+
+ +

Please nominate Kiwi TCMS at MLH Open Source Awards

+
+ + +
+ +
+

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. +
  3. Click the Submit a Nomination button
  4. +
  5. Follow the instructions on screen!
  6. +
+

Expected results:

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

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!

+ +
+
+
+
+ +

Win 6 SUPERFAN tickets for HackConf 2021

+
+ + +
+ +
+

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!

+ +
+
+
+ + +
+

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

+ +
+
+
+
+ +

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!

+ +
+
+
+
+ +

Excellence in Innovation 2020 award for Kiwi TCMS

+
+ + +
+ +
+

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

+ +
+
+
+ + +
+

"Cfp banner"

+

Attention open source testers: Testing and Automation devroom at FOSDEM'21 +is happening next year! Call for participation is now open. +Checkout +https://fosdem-testingautomation.github.io/ for more information!

+

Happy Testing!

+
+

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

+ +
+
+
+
+ +

Kiwi TCMS celebrates 200K+ downloads

+
+ + +
+ +
+

"200K banner"

+

We are happy to announce that Kiwi TCMS has been downloaded more than +200000 times via Docker Hub! +You can check the real-time stats +here. +To celebrate with us subscribe for a +SaaS and/or +Enterprise +subscriptions using coupon code 200KOFF at checkout!

+

Thank you very much and Happy Testing!

+
+

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

+ +
+
+
+ + +
+

Hello testers, +recently we had a chat with +Gjore Zaharchev, +a QA manager at Seavus and Testing Coach at +SEDC Software Testing Academy in Skopje. Here is their story +and how they use Kiwi TCMS!

+

Seavus Educational and Development Center +is a private company as part of the Seavus Group and a specialized +training center for education of staff in the fields of programming, +design, computer networks and software testing. +Around 90 students pass through their software testing academy every year +with 60 students enrolled thus far. The training program is 6 months +and covers many basic IT skills, manual testing, ISTQB fundamentals and +automation testing. SEDC is located in Skopje, North Macedonia.

+

Hands-On Lab Activities

+

The study program includes multiple individual and team projects, intermediate +exams and a final project. These are intended to exercise the most commonly used +test design techniques and practice writing up the test scenarios. All +scenarios are written directly in Kiwi TCMS. We've even seen test plans and +test cases created during Christmas and the New Year holidays last year!

+

The software under test is usually the programs developed by students +from our Academy for Programming, says Gjore. +Later in the program we use real websites in order to show some bugs in the +wild, he continues. On occasion students have found interesting problems with the websites of +Booking.com and WizzAir. They've also managed to find a critical issue on +one of our local systems. These are the trials and tribulations of +teaching & testing in the wild.

+
+

Kiwi TCMS team still remembers one of Alex's training sessions where we used +the website of an actual cinema. Unfortunately they went out of business +and shutdown the victimized website right in the middle of the session. ;-)

+
+

Why did you decide to use Kiwi TCMS

+

When searching for a TCMS platform for the academy one of the decisive +factors was cost. By being open source Kiwi TCMS has the side benefit of +having zero initial usage cost which was very important for us. +Regardless of that Kiwi TCMS is very easy to install & setup using Docker, +very easy to on-board new users and generally well received by everyone.

+
+

This is a huge benefit for students because they can experiment with Kiwi TCMS +and immediately see how some items work when executing testing workflows. +For example they can visualize how a regression test run looks like compared +to a test run for a critical security fix; or they can simulate working in +groups to cover execution of a larger test plan.

+
+

What do your students say

+

Overall they like the workflow and can easily navigate within the user interface. +They feel very positive because there is no complexity in the system and +it is very intuitive. One of the areas which often receives questions is +the ability to record test automation results!

+

Answer: Kiwi TCMS has the ability to fetch names and test results directly, via +plugins for several +test automation frameworks +while others are on our backlog - +TestNG, +Jenkins, +C#/NUnit! +Anyone interested is welcome to Subscribe to each GitHub issue and follow the progress. +Some issues are also part of our +open source bounty program so we urge students to +take a look and contribute!

+

Anything you want to ask our team

+

At SEDC we'd like to know what are your plans for Kiwi TCMS in the future?

+

Answer: Our plans, like our software, are transparent, check-out posts +tagged roadmap! For 2020 this is refactoring of the +last remaining legacy bits, continue work on our Telemetry feature and +more work towards integration with various bug trackers and test automation +frameworks. An extension to that is tighter integration with the GitHub +platform!

+

Help us do more

+

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

+ +


+Thanks for reading and happy testing!

+
+
+
+
+ +

Kiwi TCMS is partnering with Vola Software

+
+ + +
+ +
+

We are happy to announce that Kiwi TCMS is going to partner with +Vola Software to provide 2 interns with +opportunities for hacking open source and bootstrapping their careers!

+

Vola Software is a custom software development company +in one of the poorest regions of the European Union and a long-time contributor +to their local ecosystem via +Vratsa Software Community. +They are located in Vratsa, Bulgaria.

+

Internship program

+

Alexander Tsvetanov and +Vladislav Ankov are joining the Kiwi TCMS team +for a 10 month adventure until the end of July 2021 with the opportunity +to continue for another year afterwards!

+

Both Sasho and Vladi are students in the Professional Technical Gymnasium +in Vratsa and are required to work part-time as junior software developers during the +last 2 years of their education. Given that they have very limited practical +experience and the additional red tape around hiring youngsters many software +companies directly avoid such kind of relationship. This creates a catch-22 +circle for both employers who are looking to hire somewhat experienced young people +and youngsters who are looking to advance their practical skills.

+

Here's where Kiwi TCMS steps-in! What better way to improve practical knowledge +than contributing to an actively used and actively maintained open source software! +We are nearing the 200K downloads mark on Docker Hub so changes made by +Sasho and Vladi will be visible to a very big pool of our users and customers!

+

Both have already started their open source adventure last week and are currently +going through some training. However they were faced with real problems which +resulted in +bug discovery +and a +pull request for +python-bugzilla underlined by a +20 years old issue in Python. +How's that for a start ?

+

Administrative

+

Vola Software is the direct employer for Sasho and Vladi because they have the +necessary permits and experience required for hiring youngsters. Kiwi TCMS is +the direct technical mentor and will be acting as a customer to Vola Software!

+

Vola Software will be paying a minimal salary to our interns as required by law. +Kiwi TCMS will reimburse the full amount while Vola Software +will be covering their accounting and administrative expenses. +Both Sasho and Vladi will also be eligible for our +open source bounty-program as an extra stimulation!

+

All expenses will be fully transparent and visible via +our Open Collective page!

+

Help us do more

+

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

+ +


+Thanks for reading and happy testing!

+
+
+
+
+ +

Kiwi TCMS is partnering with MLH Fellowship program

+
+ + +
+ +
+

We are happy to announce that Kiwi TCMS is going to partner with the +MLH Fellowship +open source program which is a 12 week internship alternative for +students interested in becoming software engineers.

+

Major League Hacking (MLH) is a mission-driven B-Corp focused +on empowering our next generation of technologists. Every year, more than +100,000 developers, designers, and makers join the MLH community to gain +hands-on experience and build their professional networks. +They are headquartered in the Greater New York Area, USA but operate world-wide.

+

Fellowship program

+

The Fall 2020 cohort runs between October 5 - December 21 and we're already +into the Contributing phase of the program. +Fellow students will be working on +open issues from our backlog with +a focus on tasks from our +open source bounty program +but they can really work on any open task!

+

Once a pull request has been made it will undergo first round code review +by Cory Massaro +who is the dedicated MLH Python mentor. Once Cory gives the +1 +each pull request will be reviewed by a member of the Kiwi TCMS core team like usual.

+

To minimize the risk of conflicts between contributors we are going to apply +the following rules:

+
    +
  • Each MLH fellow would add a comment on the issue they are + interested in (applies to other contributors too);
  • +
  • The issue will be assigned to them (new);
  • +
  • The issue will be labeled with the + MLH Fellowship + label (new);
  • +
  • The following comment will be added: + This issue/bounty has been assigned to an MLH fellow who is currently + working on it. Pull requests towards the same issue from other contributors + will not be considered at this time. Please pick something else to work on!
  • +
+

Upon successful completion of tasks all MLH fellows will be eligible to claim their +bounties via our Open Collective page. This is +the same process other contributors go through, there is no difference.

+

Kiwi TCMS commits 2 core-team members who will serve office hours +on the MLH Fellowship Discord server for +couple of hours per week in order to answer questions and keep the ball rolling. +We also commit to having bi-weekly meetings with MLH mentor(s) during the +duration of the program.

+

Kiwi TCMS would also like to thank our friend +Eddie Jaoude for putting us in touch with MLH +and helping bring this partnership to reality. Thank you Eddie!

+

Help us do more

+

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

+ +


+Thanks for reading and happy testing!

+
+
+
+ + +
+

Hello testers, as you know our +friends at Pionir +are working on physical hardware which can be used for interactive training and +explanation of the Black-box testing technique. The inspiration +comes from James Lyndsay’s Black Box Puzzles and +Claudiu Draghia.

+

We have the source code of 3 boxes already published at +https://github.com/kiwitcms/black-boxes but still missing bill of materials, +design files for 3D printing and some basic instructions how to put everything +together. There was a delay in delivery of some components but most of the work +is close to completion. You may subscribe to +issues for each box to follow +the progress! Here are some images & videos from the development process.

+

Wason 2-4-6 box

+

Wason 246 box

+ + +

Peltzman effect box

+

Peltzman effect box

+ + +

Salience bias box

+

Salience bias box

+ + +

According to Pionir's own words: +We are testing the salience box and trying to cause emotional effect of an element. +Vuk made a mistake and now he can't turn it off :D. How's that for dogfooding?

+

Help us do more

+

If you like what we're doing and how Kiwi TCMS supports the various communities +around us please nominate us as GitHub Stars!

+


+Thanks for reading and happy testing!

+
+
+
+
+ +

Please nominate @kiwitcms as a GitHub Star

+
+ + +
+ +
+

GitHub Star nomination

+

After our recent success +we again ask the community to support Kiwi TCMS.

+

Steps to reproduce:

+
    +
  1. Go to https://stars.github.com/
  2. +
  3. Click the Sign in button and Authorize the GitHub-Stars application
  4. +
  5. Make sure you are on the Nominate page, https://stars.github.com/nominate/
  6. +
  7. Type kiwitcms as the username. The @ character is provided automatically
  8. +
  9. Type the following text for your reasoning: + they took an abandoned project and turned it into the leading open source + test management system with more than 150k downloads with users & contributors + across the world!
  10. +
  11. Click on the checkbox to acknowledge your nomination
  12. +
  13. Click the Submit nomination button!
  14. +
+

Expected results:

+
    +
  1. You fit into the 180 characters provided for nomination
  2. +
  3. Your submission is recorded by GitHub
  4. +
+

Why are we doing this

+

GitHub Stars is a program that recognizes those who go above and beyond and help +inspire and educate their communities which is exactly what the +Kiwi TCMS team has been doing from our very start! +Checkout our community blog posts for more information!

+

This program will give us access to cool new features +on the GitHub platform and also let us showcase what we do before a larger audience!

+

Thank you for helping us and happy testing!

+
+
+
+
+ +

Kiwi TCMS is a finalist in the 2020 .eu Web Awards

+
+ + +
+ +
+

Click here to vote for Kiwi TCMS

+

Kiwi TCMS is happy to announce that our website https://kiwitcms.eu is a finalist +in the 2020 .eu Web Awards +in the Leaders category! Big Thank You to everyone who voted for us!

+

Our team is also very happy that we are not the only open source finalist. +Congratulations to the OpenScan project and their community!

+

We are still committed to keeping +our earlier promise +and use the award to represent the larger open source community! The decision +is now in the hands of the jury. Wish us good luck!

+
+
+ +
+

+ Page 1 / 3 +

+ Older Posts +
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/tags/community/index2.html b/blog/tags/community/index2.html new file mode 100644 index 00000000..44ae2c30 --- /dev/null +++ b/blog/tags/community/index2.html @@ -0,0 +1,1651 @@ + + + + + Kiwi TCMS - Articles with tag community + + + + + + + + + + + + + + + +
+

Articles with tag community

+ +
+
+ +

QGIS has chosen Kiwi TCMS

+
+ + +
+ +
+

We are happy to announce that QGIS has chosen Kiwi TCMS +for the basis of their Quality Assurance methodology and infrastructure +improvement program! +Kiwi TCMS will play a central role in storing test case definitions, +organizing test cycles, and assigning and tracking test executions by testers +from the QGIS community.

+
+ + +

+ QGIS is a free and open source geographic information system which contains + desktop, server, web and mobile applications for various operating systems. + It is an established project with very large and diverse community and also + one of the very well known open source GIS systems. +

+
+ +

The proposal +QEP#180 is the +highest voted proposal in the +2020 QGIS Grant Program +and has been awarded a budget of 5000€! +This grant will allow the proponents to spend significantly more time setting up the +infrastructure and planning a methodology for manual testing.

+

Scope of proposal

+

QEP#180 +aims to create the necessary infrastructure and methodology to organize and +encourage systematic testing before each QGIS release:

+
    +
  • Setup a test management system to organize test cycles, assign and track tests execution;
  • +
  • Elaborate and document a methodology to execute testing to help testers;
  • +
  • Resurrect and move the tester plugin to QGIS repositories. Publish it in the QGIS official repository
  • +
  • Create an initial set of relevant test cases;
  • +
  • Organize and execute the initial test cases for the next releases.
  • +
+

This effort will steer members & volunteers of the QGIS community towards a more systematic +and organized testing during a feature freeze period before a release. The focus here +is on integration testing, manual & semi-automated workflows for important functionality +that should never regress and is hard or impossible to cover via unit tests.

+

The proposal is lead by Alexandre Neto, Giovanni Manghi and Alexander Bruy!

+


+On behalf of the Kiwi TCMS community welcome aboard and happy testing!

+
+
+
+
+ +

Versioned releases of Kiwi TCMS

+
+ + +
+ +
+

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 is partnering up with Pionir

+
+ + +
+ +
+

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!

+
+
+
+
+ +

Kiwi TCMS open source bounty program, Round 02

+
+ + +
+ +
+

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 open source bounty program, Round 01

+
+ + +
+ +
+

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

+
    +
  • Program will be split into multiple rounds as we work to clearly define + what needs to be done and adjust priorities
  • +
  • News and updates will be posted at https://opencollective.com/kiwitcms/updates/
  • +
  • You are expected to mostly work alone on issues
  • +
  • Technical discussion will be happening via GitHub pull requests and/or GitHub issues + under https://github.com/kiwitcms/Kiwi unless indicated otherwise
  • +
  • Translation related discussion will be happening via Crowdin under + https://crowdin.com/project/kiwitcms/discussions when needed
  • +
  • Do not contact individual team members privately, we are going to ignore such messages
  • +
+

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

+
    +
  • pylint - + #1192
  • +
  • JavaScript: Add buttons for creating tables in text editor - + #1531
  • +
  • Migration from Travis CI to GitHub workflows - + #1550, + #1551, + #1552, + #1553, + #1554
  • +
+

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!

+
+
+
+
+ +

Please vote for Kiwi TCMS in 2020 .eu Web Awards

+
+ + +
+ +
+

+ 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 is Open Source Seed Award winner

+
+ + +
+ +
+

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!

+
+
+
+ + +
+

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!

+
+
+
+
+ +

Project roadmap 2020

+
+ + +
+ +
+

Hello testers, +the Kiwi TCMS team sat down together last week and talked about what we feel +is important for us during the upcoming year. This blog post outlines our +roadmap for 2020!

+

roadmap image 2020

+

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 several key areas:

+
1) Team
+2) Technical
+3) Community
+
+ + +

Team

+

Right now we have a core team with 6 newcomers on-boarding. +Engineering performance is all over the place with some people contributing +too much while others contributing too little. More importantly there is no +consistent pace of contributions which makes planning timely completion of +technical tasks impossible.

+

At the moment we do operate as a bunch of disconnected people who happen to +talk to each other from time to time.

+

We are going to adjust our internal processes and how we on-board new members. +In fact we did our first "scrum-like" meeting this week and agreed to change +our existing practice and strive to become better as a team!

+

Goal: to have a cohesive team at the end of the year which operates with +a predictable capacity.

+

Goal: 1 PR/week/person as broad measure of individual performance.

+

Technical

+

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

+

Goal: complete remaining Telemetry features.

+

Goal: complete +bug-tracker integration milestone.

+

Goal: all pylint issues resolved.

+

Goal: migrate all remaining legacy templates to Patternfly UI. See +patternfly-migration milestone.

+

Goal: where FE sends AJAX requests to BE views replace with JSON RPC API instead.

+

Extra: start tackling the JavaScript mess that we have. This depends and is related +to Patternfly migration and overall refactoring.

+

Extra: make it easier for downstream installations to extend and override parts +of Kiwi TCMS in order for users to adjust the system to their own needs. +The system is pretty flexible as-is but there have been requests, +both online and offline, to provide some extra features! We'll start looking +into them, likely making partial progress in the next 12 months.

+

Community

+

Last year Kiwi TCMS had massive success at every single conference that we've been to. +Both project and team have been well received. While we are going to continue +being part of various communities around the world we are trying to limit +extensive travel and focus on functionality and partnerships which will +increase Kiwi TCMS eco-system, make the project even more popular and +drive further adoption!

+

Goal: extended GitHub integration via +kiwitcms-github-app plugin.

+

Goal: release the following +test automation framework plugins +for Kiwi TCMS:

+ +

For more information see +test-automation-plugins milestone.

+

Ongoing: work with our partners from the proprietary and open source worlds. +This is hard to quantify and lots of it doesn't actually depend on the team. +However we are continuing to talk to them regularly. Expect new feedback to +become available under GitHub Issues.

+

Extra: see what we can do about testing productivity! This has always been +part of our mission but we have not been able to produce anything worth sharing. +We do have ideas in this space but we are generally looking for partnerships and collaborations. +It is very likely that there will not be very much progress on this front +because it is hard to define it properly :-(.

+

Summary

+

At the end of the day most of these goals compliment each other and help drive all of +them to completion. Many of the still on-boarding people have expressed desire to +improve their Python & Django skills. Working to resolve issues in the above specific +areas will give them this opportunity! I expect they will show good progress on their respective +tasks so we can write more about them on this blog.

+

Happy testing!

+
+
+
+
+ +

Roadmap status report for 2019

+
+ + +
+ +
+

Hello everyone, in this article I will outline the progress that the Kiwi TCMS +team has made towards achieving the goals on our +2019 roadmap. +TL,DR: last year we've made lots of big and visible changes in Kiwi TCMS. +This year less so. Progress has been slower than before and not so much +visible. Community and team is growing. More contributors are welcome.

+

Complete the internal refactoring

+

Status: small progress, needs help

+

CodeClimate progress is:

+
    +
  • -60 code smells
  • +
  • -55 duplications
  • +
  • -50 other issues
  • +
  • 4.4% technical debt improvement
  • +
  • -240 hrs remaining until issues are fixed
  • +
+

The trend is showing less issues remaining +but it has been a slow progress. As we fix the easier items the remaining ones +become harder to deal with.

+

We've done minor work related to fixing issues reported by pylint. Around +150 of them still remain!

+

We have not done any targeted work to resolve other issues reported by Scrutinizer, +remove vendored-in JavaScript libraries, JavaScript refactoring or +classification of issues in 3rd party dependencies.

+

Redesign the UI templates with the help of Patternfly

+

Status: 60% done, needs help

+

There are 22 HTML templates remaining to be redesigned (from 59). That's mostly +due to internal cleanup and some refactoring! Test plan and Test run pages are the +two major templates that still need to be redesigned with Patternfly.

+

Modernize reporting aka Telemetry

+

Status: 60% done, in progress, behind schedule

+

The specs for the new Telemetry system +have been defined after taking into account feedback on GitHub issues. Anton Sankov is +the leading developer for this feature. So far we have 4 telemetry reports merged: +testing break-down, status matrix, execution trends and flaky tests.

+

There are lots of minor issues or missing functionality in these first iterations +(compared to specification). Work continues on the other telemetry use-cases +and related items.

+

Plugins for 3rd party test automation frameworks

+

Status: good, needs help

+

UPDATE: no change in last 6 months.

+

If you'd like to see plugins for more test automation frameworks +and/or file formats please checkout the +documentation +for links and more info.

+

Redefine bug-tracker integration

+

Status: 66% complete, in progress, behind schedule

+

We've been making slow progress on this milestone lately. For more info +see +https://github.com/kiwitcms/Kiwi/milestone/1

+

GitHub flow integration

+

Status: done, awaiting deployment

+

Our team spent some time making Kiwi TCMS the first open source TCMS available +on the GitHub Marketplace. At the end +of this year we were able to create a small application that allows further +integration and extending the testing workflow to the GitHub platform.

+

This is waiting on a few more clarifications from GitHub before we deploy but +for now it can be considered as done. Future functionality will be tracked +and developed directly at +https://github.com/kiwitcms/github-app/issues.

+

Agile integration with Trello

+

Status: no progress, will drop

+

This will be dropped from roadmap for the next year until we can get more interest +from the community.

+

Improve engineering productivity

+

Status: no progress

+

Looking for external help here. This will stay as a low priority item on our +roadmap for 2020 until we can free more resources on the team.

+

Community

+

Status: great, on track, needs work

+

This is our strongest area during this year. We have a strong presence in +multiple communities, our event schedule is very busy and we are gaining more +recognition every day! Core team hit several big bumps this year and is still +recovering with a few more people onboarding.

+

Kiwi TCMS suffers from the problem that many of our users can't be contributors +or simply don't want to!

+

In short: it is important for us to follow our mission and develop our core team +so we can deliver on promises made in our roadmap! That requires a lot of time and +effort which reduces short-term productivity.

+

Happy testing!

+
+
+
+
+ +

Kiwi TCMS is going to FOSDEM 2020

+
+ + +
+ +
+

Stand at FOSDEM'19

+

Hello testers, Kiwi TCMS is going to FOSDEM 2020. +This is where you can find us:

+
    +
  • Fri Jan 31st: after 18:00 @ Delirium Café - + we are taking part of the FOSDEM Beer Event where all participants are invited. + Shout out with #KiwiTCMS on Twitter if you can't find us in the crowd
  • +
  • Sat Feb 1st: + Testing and Automation devroom - + we are proud to be co-hosting this devroom together with Linaro and SUSE. + CfP is open until Dec 10th 2019. Apply here!
  • +
  • Sun Feb 2nd: Open Source Test Management stand - + we will be together with our friends from SystemTestPortal and we are preparing + some real black-box testing for you!
  • +
+

We would like to meet with all of you and talk about software testing, test management and +test process organization. In case you are stuck for crazy ideas checkout +our project mission for inspiration.

+

Picture: FOSDEM'19 with Kiwi TCMS, ReportPortal & SystemTestPortal

+

Happy testing!

+
+
+
+
+ +

Open source sprints at PyCon Balkan in Belgrade

+
+ + +
+ +
+

Next month our team will be at +PyCon Balkan, Oct 3-5 in Belgrade. Together with +presentation and a workshop we are going to host open source sprints! +These will be an informal gathering where participants will be able to +learn more about how open source works and go through their first +contributions. This is ideal for students and less experienced people +but we welcome everyone. There will be tasks ranging from easy to very hard!

+

Who: 4 mentors from Kiwi TCMS and you!

+

What: full day of peer programming and contributing to Kiwi TCMS

+

Where: room will be announced on the days of the conference, + follow @KiwiTCMS for more info

+

Why: up your tech skills, build your GitHub profile and have fun together

+

Translate Kiwi TCMS

+

Difficulty: easy

+

We have enabled Serbian language in our translation system. To get started +checkout our +translation contribution +page. +Once strings are translated kiwitcms-bot will automatically open a pull +request with the new text.

+

Find unused CSS classes

+

Difficulty: easy

+

This should be relatively easy. For each class/selector defined in our CSS files +search (grep) if any of the HTML templates use it. If it is not in use then remove +it.

+

Find unused JavaScript code

+

Difficulty: easy

+

Similar to the above. We're not 100% certain but there could be legacy JavaScript +functions which are no longer in use. Find them and remove them! At the very least +you have confirmed that all functions are in use!

+

CodeClimate Minor severity issues

+

Difficulty: easy to moderate

+

Check-out the +list of Minor severity issues. +There are many of them:

+
    +
  • CSS lint issues (we suggest you start with this one)
  • +
  • functions longer than 25 lines of code
  • +
  • functions with bigger cognitive and cyclomatic complexity
  • +
  • modules longer than 250 LOC
  • +
+

Try fixing a few to see how it goes and continue if you feel confident. +Not everything may be an issue so if you have any questions ask someone from our team.

+

CodeClimate Major severity issues

+

Difficulty: moderate to hard

+

Check-out the +list of Major severity issues. +There are around 150 of them:

+
    +
  • identical and similar code blocks
  • +
  • big modules
  • +
  • big functions
  • +
+

Most of these require some sort of refactoring, either splitting snippets +of code into smaller pieces (functions or sub-modules) or using one function +in several places instead of 2 very similar but different functions, etc. +Ask our team members about which approach they prefer for fixing these issues +to minimize the effort spent here.

+

CodeClimate Critical severity issues

+

Difficulty: hard

+

Check-out the +list of Critical severity issues. +All of these are functions with high cognitive complexity and +the recommended way to deal with them is refactoring into +class based views.

+

Improve pylint health

+

Difficulty: easy

+

Execute pylint against the latest sources and start fixing the issues. +Looking at pylint logs the +following items are relatively easy to work on:

+
    +
  • Everything in module tcms.urls
  • +
  • Everything in module tcms.telemetry.api
  • +
  • Everything in module tcms.testruns.tests.test_views
  • +
  • Everything in module tcms.xmlrpc.forms
  • +
  • Everything in module tcms.testcases.tests.test_models
  • +
  • Everything in module tcms.core.forms.fields
  • +
  • Everything in module tcms.settings.common
  • +
  • Everything in module tcms.settings.test
  • +
  • All module-in-directory-without-init errors reported for module tcms.tests.__init__
  • +
+

Note: fixme, missing-permission-required and avoid-auto-field errors are usually harder +to resolve and will require more work/refactoring. If you feel confident go ahead and +fix them, if not skip to the next error message.

+

We also use a custom pylint checker which reports function based views. +If you are looking for something harder to work on, then give it a try +(see 3rd pylint line in Makefile) and refactor some of the existing +view functions into class based views.

+

Fix 3rd party security issues discovered by Bandit

+

Difficulty: moderate to hard

+

Bandit is a static analysis tool similar to pylint. It focuses on discovering +issues which may lead to security vulnerabilities. We have resolved all such +issues in our own source code but we also execute Bandit against the entire +Python dependency stack. There it finds thousands of issues, so much so that +the reporter crashes.

+

In CI there are around +130 issues reported. The best course of action here is to execute Bandit locally +against the offending library and then figure out what to do:

+
    +
  • report an issue upstream
  • +
  • send a pull request upstream
  • +
  • if these are test files maybe exclude them from the package (e.g. don't ship them for production)
  • +
+

Note: inside Travis CI we have all runtime and testing dependencies which is more +than what we have inside the official Docker image for Kiwi TCMS.

+

Work on reported issues

+

The following issues look suitable for a sprint and don't require lots of +background knowledge. You can also find them using the +PyConBalkan label on +GitHub:

+
    +
  • #212 - moderate - Convert jQ to $ - + this is an easy search & rename but will require more extensive manual testing
  • +
  • #431 - moderate to hard - Remove JavaScript fireEvent() - + 17 matches in static/js/. Must be replaced with direct function calls
  • +
  • #652 - easy - Removal of labels from form fields - + all labels must be included in the HTML template and marked for translation
  • +
  • #681, #682 - moderate - + Move API modules & their tests from xmlrpc/api/<app>.py to <app>/api.py. These have good test + coverage so you have to make sure you don't break anything
  • +
  • #971 - moderate - manage.py command for changing Site URL - + will help with automatic provisioning, e.g. Ansible. For howto see + Django docs
  • +
  • #1021 - moderate - Update TestCase page UI to allow adding TestPlans to cases - + use TestPlan.add_case() API method and refresh the widget. See how Tags and Components cards work + in the same page
  • +
  • #1070 - moderate - manage.py command for checking email settings - + will help with troubleshooting misconfigured email. Must raise exceptions if something fails. + For howto see + Django docs
  • +
  • #733, + #736, + #738, + #883, + #1089 - hard to very hard - New checkers for pylint - + Kiwi TCMS uses customized pylint checkers to discover various conditions. We need a few more + of them and/or update of the existing ones
  • +
+

We hope to see you in Belgrade. Until then: Happy testing!

+
+
+
+
+ +

Kiwi TCMS conference presence, AW2019

+
+ + +
+ +
+

Your favorite open source test case management system is going on tour again. +During the next several months we will be at:

+ +

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

+
+
+
+
+ +

Contributor profile: Aneta Petkova

+
+ + +
+ +
+

Happy Monday, testers! +In this series we are introducing the contributors behind Kiwi TCMS. +This is our community and these are their stories.

+
+ + Aneta Petkova - QA Chapter Lead at SumUp + + +

+ Aneta is a software engineer navigating the complex field of QA + since her first "grownup" job. She's been working in the area of + test automation for web applications using different programming languages and tools. + + Her mission is to inspire people to think about quality from the + very inception of ideas and to blur the line between developers and + QA specialists. +

+ + + + + + + + + + + + +
+ +

What is your professional background

+

I have an engineering degree in computer science and I've spend the last 8 years in Quality Assurance. +Java, TestNG and UI automation with Selenium WebDriver are my strongest technical skills but +I use different programming languages and tools.

+
+

I believe languages and tools should only support an engineer and never define them.

+
+

Currently I am the QA Chapter Lead at SumUp, +where I can work towards achieving my goals in an amazing team of people that do what they love.

+

When did you use open source for the first time

+

The first time I remember was in 2011, but I've probably used it before and just didn't pay attention. +To me it seemed the same as proprietary, and I guess that means it was good.

+

Describe your contributions to the project

+

I created kiwitcms-junit-plugin. +This is a native Java library which you can install via Maven Central. It +will discover your automated test suite and publish test execution results in +Kiwi TCMS. This plugin is very simple and requires only minimal configuration +before it is ready to work. +Check-out the example in TP-25!

+

editor comment: Aneta and Ivo (Kiwi TCMS) hosted the +"Git crash course" workshop at HackConf 2018. +Kiwi TCMS will be hosting 2 workshops this year so stay tuned!

+

Why did you decide to contribute to Kiwi TCMS

+

I had recently switched Java for Ruby and I was feeling nostalgic. +Also, I had spent my entire career so far in QA and I wanted to slip on +the developer shoes for at least a little bit.

+

Was there something which was hard for you during the contribution process

+

I'm used to working in a team and when I started working on this project +I was the only active Java developer. Luckily for me, I live in the time of StackOverflow, +so I managed to get most of my questions answered by strangers on the Internet.

+
+

I learned tons of stuff, but mostly I learned I can build software, not just test it!

+
+

Which is the best part of contributing to Kiwi TCMS

+

Doing something that has the potential to help others and that could be improved upon.

+

What is next for you in professional and open source plan

+

My current focus is moving slightly into DevOps direction and I am really overwhelmed +by the amount of things to learn. I feel there is so much I want to experiment with. +I am not really planning anything related to open source - it has never been a goal for me - +but when I come across a project I feel strongly about, I'd probably be tempted to contribute.

+

Thank you, Aneta! Happy testing!

+
+
+
+
+ +

Contributor profile: Primož Klemen

+
+ + +
+ +
+

In this new series we are going to introduce the contributors behind Kiwi TCMS. +This is our community and these are their stories.

+
+ + Primož Klemen - + QA tester, full time dad, Manchester United F.C. supporter + +

+ Primož is an early adopter and our Slovenian translator. He's been actively engaging + in GitHub issues, posted pull requests for improving documentation and follows us on + StackOverflow as well. +

+ + + + + + + + +
+ +

What is your professional background

+

I've started working in IT as tech support for the 2nd largest Slovenian ISP at the time. +Then I've been at leading software provider for fintech in the Balkans region in the same +role and gradually transitioned into QA role. Currently, I'm working as a QA tester for +Better (by Marand) and ensure, with help of my colleagues of course, +proper quality of administration application for health care sector.

+

When did you use open source for the first time

+

If I recall correctly that would be some 14 years ago when I ditched dreaded +Internet Explorer in favor of Mozilla Firefox browser. The whole Internet got better in +a matter of seconds.

+

What are your contributions to Kiwi TCMS

+

I mainly contribute via translating the application into my native language, Slovenian. +Currently there are +7 languages available for Kiwi TCMS so you are +more than welcome to join and add another one. +Translating via Crowdin +is very simple and requires no additional technical skills. I've also dabbled into project +documentation and proposed a few updates to it. I'm also the culprit for some +32 issues and counting, +the majority of them being proposals for future application enhancements and few UX/UI bugs +(déformation professionnelle :-)).

+

Why did you decide to contribute to Kiwi TCMS

+
+

The guys and gals from the Kiwi TCMS team provided us with an application which solved +our pain about building, maintaining and running manual regression tests.

+
+

They did all of that for free in their spare time! So I've decided to give something back to +the whole community. This was indeed my first +contribution to the open source world but not the last. Since then I've also +contributed to other projects which I use on a regular basis.

+
+

In hindsight, Kiwi TCMS converted me from an open source user to open source contributor!

+
+

Was there something which was hard for you during the contribution process

+

Contributing to the project, as a non-developer, is very easy and intuitive by +either opening issues on GitHub or translating via Crowdin or even committing +updated documentation to git repository through GitHub Desktop client. +All of the aforementioned was new to me and I've learned in depth how to use +these tools. I've also had the pleasure to familiarize myself with project documentation +- Sphinx and reStructuredText are my two new best friends.

+

Which is the best part of contributing to Kiwi TCMS

+

Being able to actively improve an application that we use on a daily basis in our +development process. Getting to know more people from all around the globe and see their +insights about software quality assurance thus learning something new every day.

+

What is next for you in professional and open source plan

+

Professionally I'm 100% committed to Better (by Marand) and helping us achieve +the best standard of quality for health care applications which also incorporates +using the knowledge gathered by following and/or contributing to open source. +I'm going to continue contributing to Kiwi TCMS and +Captura and if time allows maybe involve myself with some other interesting projects.

+

Thank you, Primož! Happy testing!

+
+
+
+
+ +

Mid-year roadmap status report

+
+ + +
+ +
+

Hello everyone, in this article I will outline the progress that the Kiwi TCMS +team has made towards achieving the goals on our +2019 mission and roadmap. +TL,DR: Kiwi TCMS has made progress since January, it's been tough and may not have been +very visible. I feel like we've been behind schedule till now! The greatest +positive thing has been community and team development!

+

Complete the internal refactoring

+

Status: minimal progress, needs help

+

CodeClimate progress is:

+
    +
  • -30 code smells
  • +
  • -40 duplications
  • +
  • -30 other issues
  • +
  • 4% technical debt improvement
  • +
  • -200 hrs remaining until issues are fixed
  • +
+

This is mostly the result of code reviews and minor fixes, not targeted work.

+

We have not done any targeted work to resolve other issues reported by Scrutinizer, +Pylint, remove vendored-in JavaScript libraries, JavaScript refactoring or +classification of issues in 3rd party dependencies.

+

There are new people onboarding in the team right now and our plan is for +them to start grinding at these issues very soon!

+

Redesign the UI templates with the help of Patternfly

+

Status: 50% done, needs help

+

There are 27 HTML templates remaining to be redesigned (from 59). That's mostly +due to internal cleanup than targeted refactoring. More work on this item +will probably follow towards the end of the year after we get more priority items out of +the way and get more of the new team members rolling!

+

Modernize reporting aka Telemetry

+

Status: in progress, a bit behind schedule

+

The specs for the new Telemetry system +have been defined after taking into account feedback on GitHub issues. Anton Sankov is +the leading developer for this feature. So far we have 2 telemetry reports merged: +testing break-down and status matrix. The next one will be execution trends.

+

There are lots of minor issues or missing functionality in these first iterations +(compared to specification). Our plan is to have the major use-cases satisfied first +and then work to refine all of the existing telemetry pages.

+

Plugins for 3rd party test automation frameworks

+

Status: good, needs help

+

Until now we have released TAP, junit.xml and native JUnit 5 plugins. There's also +a PHPUnit plugin which is more or less complete but unreleased yet. Both JUnit 5 +and PHPUnit plugins are developed by external contributors!

+

We often get asked for plugins for languages and frameworks we don't use or don't +even know! Given that our expertise is mostly in Python we will gladly accept your +pull requests if you decide to maintain or contribute to one of the plugins. This +will also help us get insight into what automation frameworks people are using +and how exactly you structure a test automation workflow around Kiwi TCMS.

+

Checkout the +documentation for links +and more info.

+

Redefine bug-tracker integration

+

Status: no progress

+

Last week, right after OpenExpo, we did a check-up session and this was one of the +areas identified with zero amount of progress. I have a strong preference to work +on this feature myself but have not been able to due to various other items that +need my attention.

+

The short version is that I'd prefer to remove all issue tracker specific code +and allow the tester to add arbitrary URLs to link to existing bugs. How to do +integration (even as simple as publishing a comment in the bug tracker) over +a generic interface still eludes me. In the next few weeks I will kick-off this +topic with a separate blog post/issue for everyone to comment on.

+

GitHub flow integration

+

Status: no progress

+

Our team spent some time making Kiwi TCMS the first open source TCMS available +on the GitHub Marketplace. We will +continue this integration effort and flow integration will emerge from that. +There's also many things that need to be done to satisfy GitHub's .

+

Agile integration with Trello

+

Status: no progress

+

Improve engineering productivity

+

Status: no progress

+

Our mission is to transform testing in your organization by providing +the tools for that via Kiwi TCMS. It is astonishing that so far nobody has provided +any kind of feedback in Issue #703 +wrt improving productivity in their teams!

+

We have some ideas which have been blocked by lack of resources on the team and +refactoring tasks. Because we've adopted this as our mission this is an important +item for us and we'll continue working on it as resources allow. +Progress is to be expected towards the end of the year.

+

Community

+

Status: great, on track, needs work

+

This is our strongest area during the year so far. We have a strong presence in +several communities, our event schedule is busy enough and we are gaining more +recognition every day!

+
    +
  • Hosted project stand at 3/5 conferences with 2 more on-track
  • +
  • Won the OpenAward for Best Tech Community
  • +
  • Hosted several presentations and workshops with few more on track
  • +
  • Found new talent to join the core team: 2 just ready to start contributing, 5 more in training
  • +
  • 1 more senior engineer as a mentor. We also have a few independent wanna-be contributors + and will be hosting qualification interviews for marketing assistant very soon
  • +
  • There are contributions and pull requests coming from users of Kiwi TCMS as well. + We'd like to see more of course.
  • +
  • There are a couple of open source projects and companies using Kiwi TCMS who + are friendly towards the project. We are working with them to get a public + endorsement on the website and engage in more technical work together. Of course + everyone has limited resources and is very busy :-(
  • +
  • Sponsors on OpenCollect are just + a few but we didn't have any previously so this is a good sign.
  • +
+

This is the moment to mention that not all is honey and roses in open source land. +Kiwi TCMS suffers from the problem that many of our users can't be contributors +or simply don't want to!

+

Manual testers can't program. This is a fact and a good sized chunk of our user base +actually performs manual testing. Those that can write automation and probably +code decently well may not be familiar with Python and Django. At least in Bulgaria +these two aren't very popular, definitely not among testers. That is to say this part +of the user-base simply doesn't have the necessary skills to contribute and the majority +of what we need is code contribution!

+

Another (fairly big IMO) group of users are coming from proprietary companies who +view open source and Kiwi TCMS as a zero cost option. Something that they take free +of charge and use it without ever contributing back. They don't understand nor really +care about the open source culture.

+

To make things worse we receive requests every single day via +our private email addresses or questions via IM despite our website clearly stating +community engagement rules. On a few occasions we have received very rude comments +of the sort "our company demands you fix this", "is this going to be ready this year" +(context implying entitlement), etc. To make things more ridiculous we've even received +support requests (via contact form) from companies and start-up +who get their return address wrong so we can't get in touch directly!

+

In short: don't demand anything from us unless you are ready to pay for it, work for it +yourself or propose a mutually beneficial scenario. We do try to keep the community +happy but more importantly follow our mission and develop our core team!

+

Happy testing!

+
+
+
+ + +
+

Image of the award

+

Kiwi TCMS is the winner at OpenAwards'19 category Best Tech Community! +Big thanks to the jury, our contributors and core-team and the larger +open source and quality assurance communities who voted for us and supported +the project during all of those years.

+

This award is the best present we could get to mark the 10th anniversary +of the project. More news of how we are progressing with current roadmap will +follow soon in a separate blog post.

+

Thank you & happy testing!

+
+
+
+ + +
+

Vote for Kiwi TCMS at OpenAwards 2019

+

Thanks to you, our community supporters, Anton Sankov and Alex Todorov +took the lead at OpenExpo 2019 CfP votes. +We need your help one more time. Our team has submitted participation in +'Best Tech Community' and 'Best Success Story' categories.

+

Unfortunately our submission into 'Best Success Story' has been pulled down! +We used that category to share the story from a dead open source project into +a thriving open source community with lots of users and contributors and to +highlight some of our milestones. Here's the short version:

+
    +
  • lots of technical updates and refactoring, latest everything, modern UI
  • +
  • the only open source test case management system on GitHub Marketplace
  • +
  • nearly 60000 downloads on Docker Hub
  • +
  • growing and active core team
  • +
  • active OSS contributors
  • +
+

Please help us gain more recognition:

+ +

Thanks you & happy testing!

+
+
+
+ + +
+

On Tuesday I hosted my pylint workshop during the regular +Django Bulgaria meetup. +This edition was the first which was practice based.

+

Attendance numbers were low but participation was very good. We managed to +create 4 new checkers for Kiwi TCMS:

+ +

Many thanks to all contributors. These new checkers have discovered quite a +few new issues with Kiwi TCMS so this is an area which our team is going to improve.

+

Those who missed the workshop will be able to catch up one of the next editions:

+
    +
  • 26-29 August, GUADEC, Thessaloniki - TBC (presentation)
  • +
  • end of September, Python meetup, Zagreb - TBA
  • +
  • 03-05 October, PyCon Balkan, Belgrade - TBC
  • +
  • 11-13 October, HackConf, Sofia
  • +
  • 15-17 October, TestCon Europe, Vilnius - TBC (backup presentation)
  • +
  • 23-25 October, Testwarez, Ossa, Poland - TBC (presentation)
  • +
  • 14-15 November, Software Engineering Conference Russia, Saint-Petersburg - TBC
  • +
  • 20-22 November, ConTEST, New York - TBC (workshop and/or presentation)
  • +
+

Happy testing!

+
+
+
+
+ +

Taking the lead at OpenExpo Europe CfP votes

+
+ + +
+ +
+

Vote for Kiwi TCMS at OpenExpo

+

We are happy to announce that Anton Sankov and Alex Todorov are currently taking +the lead at OpenExpo Europe's CfP votes!

+

Going to OpenExpo will be huge boost for Kiwi TCMS so please help us make this happen! +Voting is open until March 17th 2019! You can cast your vote via Facebook login +but remember to confirm your email address!

+ +

Thank you & happy testing!

+
+
+ +
+ Newer Posts +

+ Page 2 / 3 +

+ Older Posts +
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/tags/community/index3.html b/blog/tags/community/index3.html new file mode 100644 index 00000000..31a88519 --- /dev/null +++ b/blog/tags/community/index3.html @@ -0,0 +1,1274 @@ + + + + + Kiwi TCMS - Articles with tag community + + + + + + + + + + + + + + + +
+

Articles with tag community

+ +
+
+ +

Want to hack open source ?

+
+ + +
+ +
+

+

Have you ever wanted to be part of an open source team? +Have you ever wanted to contribute back the open source community ? +Have you ever wanted to see your code used by thousands of people ?

+

If yes now you have the opportunity! Read on to learn how you can help +Kiwi TCMS and how our team can help you.

+

Inexperienced Python developer(s)

+

It is fine not to have any experience at all! You will compensate with +commitment and hard work. Initially you are going to work on refactoring, +cleaning up pylint errors, removing duplicate code and other issues +reported by CodeClimate.

+

By doing this you will have the opportunity to learn git, Python, Django, +some CSS, JavaScript and Patternfly HTML of course. We are going to provide +you with all the learning materials plus help and guidance from existing team members.

+

Everyone on the team has gone though the same training procedure and grueling tasks +and so will you! Once you can demonstrate progress and learn the ropes you +will continue working on more complicated tasks.

+

Experienced Python developer(s)

+

So you have some experience already, you've probably contributed code before and are +now looking for more green stripes on your GitHub profile. We've got you covered!

+

There are many areas to choose from: issue tracker integration, GitHub integration, +GitLab integration, external API library, Kiwi TCMS plugins written in Python and +customized pylint linters! This is going to be where you get your hands dirty and +show your strengths. Our team is here to help if necessary but we expect you to +show progress by yourself.

+

A challenge for you will be to review pull requests from other contributors and +be patient with less experienced contributors and team members. This is an excellent +opportunity to work on your people skills as well.

+

Experienced non-Python developer(s) (with Java)

+

Kiwi TCMS is primarily looking for Java developers who will own our test automation +plugins. Currently we have a plugin for JUnit 5 and TestNG is in planning. Maybe +there will be a plugin for Jenkins as well. You are going to own these components +and work solely on them. Unless you decide to learn Python and Django that would +be a very easy job!

+

.NET, PHP, Ruby, JavaScript ? We don't have a lot of code written in these languages +but you can help change this. The main thing we'd like you to know +(or become familiar with) are the internals of popular test automation frameworks +for these languages and how to create plugins for them.

+

QA engineer with Python

+

You are going to test a lot! You are going to write test automation a lot! Ideally you +already have a medium level of experience in the software testing field and +want to improve your coding skills and/or get more experience into a different +application domain. We also have Linux and Docker in the mix, just for fun!

+

Your responsibility will be to design test scenarios for various features (new or existing), +write test automation scripts and help improve overall test coverage and quality +of Kiwi TCMS. You will also check-in on non-Python developers and +help them with test design when necessary.

+

There are other things that can be tested as well, for example Kiwi TCMS +performance and scalability. Here you will have to get down to the nitty-gritty +stuff and do some profiling to pin-point where the root cause of the problem is.

+

Security freak

+

We've got Coverity scan and +Snyk automatically inspecting our +code base. We do have some other tools as well and we know they can never be enough.

+

You will be responsible for triaging the numerous issues being reported by these +tools and help us decide if they are a real threat or a false positive. For example +Coverity reports hundreds of issues mostly coming from our Python and Node.js dependency +stack. We haven't had the time to classify them and work with upstream communities +to fix them thus the majority of your contributions will be outside of the +Kiwi TCMS code base.

+

Graphics designer

+

Your main job is going to be creating beautiful images for our website, +blog posts and promotional material. All the images we use are licensed under +Creative Commons which we then modify with the specific Kiwi TCMS look and +feel. This is not going to change, your work will remain under a permissive +license!

+

Marketing specialist

+

You will be directly responsible for driving more traffic to our website, +interpreting Google Analytics metrics and coming up with creative ideas +how to boost Kiwi TCMS popularity. This means, but not limited to blog posts, +collaborations with other projects and/or bloggers, professional magazines, etc. +You will also be in charge of events and conferences that we go to! Whenever +possible you will be coming with us as well!

+

A challenge for you will be to learn some technical jargon and learn more +about the software testing profession and software testers in general!

+

What's in it for you ?

+

You will sharpen your skills! You will use Kiwi TCMS as a platform to +improve your career. You will experience the gratification of our community of users.

+

This blog is the medium where you can share tips +and tricks and technical articles about interesting features in Kiwi TCMS. +If you'd rather have your personal blog working on Kiwi TCMS will give you lots +of topics to write about.

+

We go to conferences and meetups too. If public speaking is your thing +you will have plenty of topics to talk about. We can also help you +deliver your first presentation! Everyone on the team has done it!

+

Our existing team will help you learn and we will help you grow. Our personal time +is the most expensive item we can offer to you! In return we expect you to +fulfill your commitments and when you promise something will be done you will +make sure it is done!

+

How to apply ?

+

You can figure this out yourself.

+

Happy testing!

+
+
+
+
+ +

How to use Kiwi TCMS plugins, Pt. 1

+
+ + +
+ +
+

In +release notes for v6.5 +we announced several plugins which will fetch test names and execution results +from your automated test suite.

+

Plugins can be controlled via environment variables which will affect how +test results are recorded in the Kiwi TCMS database! This blog post is an introduction +how that works and what you can do with it! For this purpose I will be using the +plugin-demo repository, which simulates +real development work.

+

Full documentation and list of available plugins is available in chapter +Automation Frameworks Plugins!

+

Always create new TestRun by default

+

The default behavior is always to create a new TestRun if controlling variables +are not overridden! Product name, version and build will receive default values +if tests are running in Travis CI or Jenkins. For example +Travis Build #2 for +commit d455fb4 +creates TR-12 and +TP-10!

+
Product=kiwitcms/plugin-demo
+Version=d455fb42fb7c2aedadfd5f66de7d131109c03350
+Build=2
+
+ + +

Next we convert the README file from Markdown to reStructuredText which triggers +Travis Build #3 for +commit 418b80b. +This build again creates a new TestRun and new TestPlan for it. Respectively +TR-14 and +TP-12!

+
Product=kiwitcms/plugin-demo
+Version=418b80b3bbb65a799f695dc59d488c76f560fa2b
+Build=3
+
+ + +

Important: we can see that version is different which will affect how artifacts +are organized in Kiwi TCMS, possibly affect how you will report status to stakeholders!

+

Override ENV variables for more control

+

Let's say the QA team has decided that all test results must be reported under the +same TestPlan. This means version must be the same between various builds in Travis CI! +To control this we export TCMS_PRODUCT_VERSION=master in CI before executing +the TAP plugin! Checkout the commit on GitHub to see how it is done!

+

This triggers +Travis Build #4 for +commit e484e59. +Because this is the first time where Version == master the plugin creates +TP-14 and reports the results under +TR-16.

+
Product=kiwitcms/plugin-demo
+Version=master
+Build=4
+
+ + +

Right after that I realized we can make this configuration a bit more generic +because our team is planning to support multiple versions of the product and +development will be done in separate branches! +Travis Build #5 for +commit f1f2878 +still ends up with Version == master because we are still working on the master +branch! That is to say, the product is in active mode of development.

+

Results are reported in +TR-18 which is again part of +TP-14.

+
Product=kiwitcms/plugin-demo
+Version=master
+Build=5
+
+ + +

Travis Build #6 for +commit df6153b +adds the new functionality README badges and reports test results in +TR-20 which is again part of +TP-14.

+

More ENV overrides

+

While giving status reports back to stakeholders and developers the information that +we have in the TestRun is Build number! This follows the numbering scheme in Travis CI +(or Jenkins job number) and isn't very useful.

+

Let's define TCMS_BUILD to be the first 7 characters of the commit hash! When QA +tells devel that something isn't working and redirects them to the TestRun they can +immediately use the Build information and git checkout the offending variant of the product +for investigation.

+

This results in +Travis Build #7 for +commit bf75d0a, +TR-22, +TP-14.

+
Product=kiwitcms/plugin-demo
+Version=master
+Build=bf75d0a
+
+ + +

Report results in pre-existing TestRun

+

There are many reasons you may want to do this:

+
    +
  • include both manual and automation tests for the same build;
  • +
  • mix results from multiple test suites for the same build, + e.g. unit, functional, performance
  • +
  • mix results from multiple but similar platforms in the same build, + e.g. cross-platform application for iOS and Android
  • +
+

To do so I've created TR-24 beforehand and +configured TCMS_RUN_ID=24 in my CI environment. TR-24 also contains +TC-57: Verify we can report results from several plugins into the same TR. +this was created and added via the web interface.

+

Note: mixing additional test cases can be done either before or after +automation results are reported with the plugin!

+

Important: when reporting results to an existing TestRun Kiwi TCMS plugins +don't care in which TestPlan this TR is! In theory it is possible to report +the results for Product=kiwitcms/plugin-demo into any TP/TR pair! However we +don't want to do this crazy thing and instead I've created TR-24 inside the already +existing TP-14!

+

Note: because I don't know what is the git commit beforehand I've configured +TR-24 with Build=unspecified. If I wanted I could update this with the correct value +once I know the commit hash for the related changes I am testing.

+

Important: the plugin-demo repository uses both kiwitcms-tap-plugin and +kiwitcms-junit.xml-plugin at the same time! They differ in the way test names +are compiled! Both are reported in TR-24. See TC-57 text for information how to +distinguish between the two.

+

See +Travis Build #8 for +commit 85ad939, +TR-24, +TP-14.

+
Product=kiwitcms/plugin-demo
+Version=master
+Build=unspecified
+
+ + +

Also check-out comments in TR executions to see when and who had executed the test case.

+

So far there have been some tests which were failing (although Travis reports PASS) so +I decided to fix them. +Travis Build #9 for +commit a25b384 +is still configured with TCMS_RUN_ID=24. This means results will be reported in +TR-24, effectively overwriting previous results.

+

Check-out Change Log under each individual execution and you will see several +time stamps when status was updated! In other words, as long as TCMS_RUN_ID is +pointing to an existing TestRun this TR will keep the results of the last test suite execution!

+

Continue development, restore ENV configuration

+

Travis Build #10 for +commit c4f1ae5 +removes TCMS_RUN_ID! Results are reported in +TR-25, +TP-14.

+
Product=kiwitcms/plugin-demo
+Version=master
+Build=c4f1ae5
+
+ + +

Branch out for an LTS version

+

Our team has decided to make the first LTS release of the product. We branch out into +lts-v0 branch in git and cut the first NVR. This results in +Travis Build #11 for +commit 9f1ef71 +TR-27, +TP-16.

+
Product=kiwitcms/plugin-demo
+Version=lts-v0
+Build=9f1ef71
+
+ + +

Because this is the first time we are running tests for this product version +we end up with the newly created TP-16!

+

Note: see how version was populated with the correct value for the git branch! +This is because my CI config uses TCMS_PRODUCT_VERSION=$TRAVIS_BRANCH and no further +changes were required! I made this change back in Travis Build #5 anticipating what +will come in the future!

+

The product is now live and customers have reported critical bugs for it: +URLs for the badges in README are wrong! I fix those and add more tests of course, see: +Travis Build #12 for +commit 2d72754, +TR-29 for +TP-16.

+
Product=kiwitcms/plugin-demo
+Version=lts-v0
+Build=2d72754
+
+ + +

TR-29 contains the new TC-58!

+

cherry-pick between branches

+

In the lts-v0 branch customers have identified a serious issue. It doesn't exist on master +but the test is still valid so I cherry-pick it! In git you can backport or forwardport very +easily. Regardless of the direction Kiwi TCMS plugins will record the test results for you.

+

See +Travis Build #13 for +commit 31ae5b3, +TR-31 for +TP-14.

+

We can see that TC-58, which was originally implemented on the lts-v0 branch +is now present!

+

Summary

+

This is a very basic example of how you can organize collection and reporting for +your automation test suite results with Kiwi TCMS. The links here only refer to +artifacts created by kiwitcms-tap-plugin while in the DB we keep others as well.

+

There are feature requests for more ENV variables which will allow you to control +TestPlan creation and child/parent relationship between test plans. See +https://github.com/kiwitcms/tap-plugin/issues and vote with a :+1: reaction +to help us plan for these features.

+

Kiwi TCMS automation framework plugins are nothing more than result parsers +which talk back to a database. It is up to you to decide how to organize the +collection of test results and how to report on them later, when the need arises.

+

Future installments in this post series will take a look at workflows with +feature branches and pull requests and discuss possible organization scenarios. +You are welcome to share your ideas in the comments below.

+

Happy testing!

+
+
+
+
+ +

Kiwi TCMS is going to FOSDEM 2019

+
+ + +
+ +
+

Hello testers, Kiwi TCMS is going to FOSDEM this year. +This is where you can find us:

+

Kiwi TCMS sticker

+ +

We would like to meet with all of you and talk about test management and +test process organization. In case you are stuck for crazy ideas checkout +our project mission for inspiration.

+

Be part of the community

+

We are turning 10 years old and we have presents for you! You will have to perform +a small challenge and you can get your hands(errr, feet) on a pair of these:

+

Kiwi TCMS socks

+

Here's what else you can do to help us:

+ +

Happy testing!

+
+
+
+
+ +

Project mission and goals for 2019

+
+ + +
+ +
+

Hello testers, Kiwi TCMS has taken on a brave new +mission! We would like to transform the testing process by making it more +organized, transparent & accountable for everyone on your team. Our goal +is to improve engineering productivity and participation in +testing. The following blog post outlines how we would like to achieve +this and what goals we put before ourselves for this year.

+

Complete the internal refactoring

+

Last year we took on the challenge to bring a legacy code base up to modern +coding standard. We did not complete that effort but made very good progress +along the way. This is not a small task and that's why our team will continue +with it this year.

+

CodeClimate report

+
    +
  • CodeClimate: + 0 issues, 0% technical debt, health score A
  • +
  • Scrutinizer: + only A and B type issues
  • +
  • Pylint: 0 issues
  • +
  • Remove vendored-in Handlebars, jQuery, jQuery-UI and TableDnD JavaScript + libraries in favor of existing npm dependencies
  • +
  • Front-end uses the existing JSON-RPC instead of backend views that + are only used for AJAX requests. Tip: these are usually accessed via + postToURL() and jQ.ajax() on the front-end
  • +
  • Inspect and classify all 3rd party issues reported from + Coverity and + Bandit. Report and fix + what we can, ignore the rest that do not affect Kiwi TCMS.
  • +
+

Redesign the UI templates with the help of Patternfly

+

There are 59 templates remaining to be converted to a modern look and feel. +Along with them comes more refactoring and even redesign of the existing pages +and the workflow around them. Together with refactoring this will make Kiwi TCMS +easier to use and also to maintain.

+

Modernize reporting

+

We are planning to remove the existing reports feature because they are not well +designed. We will re-implement existing functionality that our community finds useful, +add new types of reports (incl. nicer graphics and UI) and make it possible for the +reporting sub-system to be more easily extendable.

+

Phase out is planned to begin after 1st March 2019! Until then we are looking for your +feedback. Please comment in +Issue #657!

+

Plugins for 3rd party test automation frameworks

+

These will make it easier to collect results from automated test suites into +Kiwi TCMS for later analysis. Instead of creating scripts that parse the +results and talk to our API you will only have to install an additional package +in your test environment and configure the test runner to use it! Automation +test results will then appear inside Kiwi TCMS.

+ +

If you would like to use such functionality leave your vote inside GitHub +issues! In case you would like to write a test-runner plugin you can find the +specification +here.

+

Redefine bug-tracker integration

+
+

Question: Does Kiwi TCMS integrate with JIRA?

+

Answer: Well, it does. How exactly do you want to integrate?

+

... silence ...

+
+

The following dialog happens every time someone asks me about bug-tracker +integration, especially with JIRA. The thing is integration is a specified +set of behavior which may or may not be desired in a particular team. As of now +Kiwi TCMS is able to open a URL to your bug-tracker with predefined field +values, add comments to bug reports and report a simple summary of bugs +inside a TestRun.

+

We recognize this may not be enough and together with the community we +really need to define what bug tracker integration means! The broader domain +of application lifecycle management tools (of which TCMS is a sub-set) have an +integrated bug tracking system. We can add something like this and save you +the trouble of using JIRA, however many teams have already invested in +integrating their infrastructure or just like other tools. For example we love +GitHub issues and our team regularly makes public reports about issues that +we find internally!

+ +

GitHub flow integration

+

Developers have their +GitHub PR flow and if they +have done the job of having unit tests then they will merge only when things +are green! This leaves additional testing efforts kind of to the side and +doesn't really help with transparency and visibility. I'm not going to mention +having an automatically deployed staging environment for every change +because very few teams actually have managed to do this effectively.

+

Kiwi TCMS statuses on GitHub PR

+
    +
  • Goal: Figure out how Kiwi TCMS can integrate with GitHub flow and bridge the gap. + Please share and +1 your wildest ideas in + Issue #700.
  • +
  • Follow up: depending on the results in #700 we will follow with other goals and + sub-tasks
  • +
+

Agile integration with Trello

+

Speaking of modern engineering flow is your team truly agile? When and how +do you plan your testing activities ? Before the devel sprint or afterwards? +How many testers take part in refining product backlog and working on user stories?

+

Similar to GitHub flow lots of teams and open source projects are using Trello +to effectively organize their development process. Testing should not be left +behind and Kiwi TCMS may be able to help.

+
    +
  • Goal: Figure out how Kiwi TCMS fits into the overall devel-test-planning + process for agile teams and what we can do to make this easier for testers. + Please share and +1 your wildest ideas in + Issue #701
  • +
  • Follow up: depending on the results in #701 we will follow with other goals and + sub-tasks
  • +
+

Improve engineering productivity

+

What makes a test engineer productive when they need to assess product risk and +new features, when mapping product requirements documents (PRD) to test plans and +test cases, when collaborating on user stories and behavior specification ? +What makes developers, product owners, designers and other professionals productive +when it comes to dealing with testing ?

+

For example consider the following workflow:

+
    +
  • Company has idea for a new product
  • +
  • In case this is a big product it may have its own mission, i.e. what kind + of problem is it trying to solve and for which group of customers
  • +
  • Product backlog is then created which outlines features that map + to the product mission
  • +
  • Then the team, together with test engineers perform example mapping + and discuss and refine the initial feature requirements. User stories + are created
  • +
  • Behavior specification may also be created
  • +
  • Test plans and test cases are the immediate product of BDD specs and + desired user stories
  • +
+

Later we iterate through the sprints and for each sprint something like +this happens:

+
    +
  • Desired product features are planned for development. They must be complete + at least in terms of requirements, specs and tests
  • +
  • Devel writes code, maybe some unit tests, testers can also write automated tests + and/or manually verify the current state of the feature being developed
  • +
  • Testing, including exploratory is performed before feature is merged
  • +
  • Rinse and repeat
  • +
+

Devel is also part of testing, right? Product owners, UX and interaction +designers as well. Producing quality software product is a team effort!

+

In every step of the way Kiwi TCMS can provide notification wizards, guidelines +and/or documentation for best practices, facilitate tooling, e.g. to write user stories +and assess them or map out an exploratory testing session, etc. The list +of ideas is virtually endless. We can even go into deep learning, AI and +blockchain but honestly who knows how to use them in testing ?

+

Our team is not quite sure how this goal will look like 3 months from now +but we are certain that testing needs to happen first, last and all the time +during the entire software development lifecycle. By providing the necessary +functionality and tools in Kiwi TCMS we can boost engineering productivity +and steer the testing process in your organization into a better, more productive +direction which welcomes participation from all engineering groups.

+

Let's consider another point of view: testing is a creative activity +which is benefited by putting your brain into a specific state of mind! +For example Gherkin (the Given-When-Then language) has the benefit of +forcing you to think about behavior and while doing so you are vocalizing +the various roles in the system, what kind of actions are accepted and +what sort of result is expected! Many times this will help you remember or +discover missing scenarios, edge cases and raise even more questions!

+

Crazy ideas, brain dumps and +1 as always are welcome in +Issue #703.

+

Community

+

Coding alone is not fun! Here's what you can do to help us:

+ +

We are also looking to expand our core team and the list of occasional +contributors. The following are mostly organizational goals:

+
    +
  • Goal: participate in 5 conferences with a project stand
  • +
  • Goal: define how we find, recruit and onboard new team members. The + foundation is already set in + TP-3
  • +
  • Goal: clearly mark GitHub issues which are suitable for external contributors + which don’t want to spend lots of time learning how Kiwi TCMS works under the hood. + We're going to tag all such issues with the + + GitHub help wanted + label
  • +
+

Development policy

+

Our team will be working on areas related to the goals above. A +1 +reaction on GitHub issues will help us prioritize what we work on!

+

GitHub +1

+

Bug fixes and other +issues will be occasionally slipped into the stream and pull requests from +non-team contributors will be reviewed and merged in a timely fashion.

+

There is at least 1 full day of work that goes behind the scenes when +a new version is officially released: compile changelog, build images and +upload them, create blog post and newsletter announcement, share on social +media, etc. We also deploy on our own Kiwi TCMS instance as a stop-gap +measure before making everything public!

+

New PyPI tarballs and Docker images will be released every few weeks as +we see fit, this has been our standard process. We try to align releases +with Django's release schedule and try to cut a new version when there are known +security vulnerabilities fixed. However we can't guarantee this will always +be the case!

+

If you are in a hurry and need something quickly the best option is to +send a pull request, build your own Docker image from source and +maybe consider +sponsoring us via Open Collective!

+

Happy testing!

+
+
+
+
+ +

Roadmap status report for 2018

+
+ + +
+ +
+

Hello everyone, in this article I will outline the progress that the Kiwi TCMS +team has made towards achieving the goals in our 2018 +roadmap +(mid-year update here). +TLDR; goals are completed at 62%. Refactoring legacy code is showing good results, +less so on the front-end side and there are items still in progress!

+

Make code easier to maintain

+

Status: good progress

+

Initially CodeClimate reported +a "D" rating with 600+ code smells and 600+ duplications and a 1 year estimation +to resolve these. We're now down to "C" rating with 171 smells and 203 duplications.

+

The level of technical debt has dropped from 32.5% down to 17.7% and we have removed +around 14000 lines of Python code and 8000 lines of JavaScript code without +losing significant functionality.

+

Checkout +the stats +for more info!

+

Use pylint and pylint-django

+

Status: almost finished

+

Both pylint and pylint-django have been integrated into our CI workflow. There are even +some custom built plugins that we use. The number of issues reported is down to 100 +from 4000+ initially. These are predominantly fixme comments which are also in parts +of the code that are scheduled for removal and refactoring.

+

Render HTML, return JSON

+

Status: moderate progress

+

Several views were modified to return pure JSON but we've not +done any targeted work to resolve this issue. A number of other views have been +removed in favor of using the existing JSON-RPC layer.

+

This is an internal refactoring effort which isn't very visible from the outside. +This is also one of the factors contributing to the high number of removed +source code.

+

Submit forms, post JSON, GET clean URLs

+

Status: no progress

+

Not much has been done in this area except the occasional refactoring to +JSON-RPC.

+

API layer

+

Status: complete

+

Documentation

+

Status: moderate progress, dropped

+

All RPC methods have been documented! The rest of the internals will be documented +as we go along.

+

No vendored JavaScript libraries

+

Status: good progress

+

We still carry around jQuery, jQuery-UI and Handlebars.js. They will be +removed once the pages using them are converted to use the Patternfly widgets +library.

+

Less HTML templates with better organization

+

Status: moderate progress

+

There are still over 50 HTML templates in tcms/templates/ that need to be +refactored into Patternfly. We've been working on them one at a time and will +focus more on this effort in the next couple of months.

+

Modern interface with Patternfly

+

Status: moderate progress

+

Some of the pages have been converted to use Patternfly. The most important pages +that still have a different look and feel are TestPlan view, TestCase view and +TestRun view. These are also the hardest to convert because they have lots of +tabs/components which pull information from various places. Our goal is to create +reusable widgets for the various components (e.g. a list of TestCases) and then +include these components into several different templates to minimize code +duplication.

+

JavaScript updates and front-end testing

+

Status: moderate progress

+

A number of JavaScript functions have been refactored and removed during the +past few releases but there are still thousands of lines of code left to deal with. +This effort is mostly happening in parallel with the Patternfly redesign. +We still don't have anything to test front-end JavaScript functionality!

+

Community efforts

+

Status: good progress

+

We are seeing a steady stream of new users registered on +https://public.tenant.kiwitcms.org and +there are several active contributors on GitHub. Most of our translators are +very active and keep their respective languages fresh and up to date!

+

Kiwi TCMS was represented at OSCAL Tirana, DjangoCon Heidelberg, PyCon Prague, +HackConf Sofia, PiterPy St. Petersburg and OpenFest Sofia. We've also been +approved for a project stand at FOSDEM 2019 so watch this blog for more news.

+

Happy testing!

+
+
+
+
+ +

Kiwi TCMS team updates

+
+ + +
+ +
+

I am happy to announce that our team is steadily growing! +As we work through our roadmap, +status update here, and +on-board new team members I start to feel the need for a bit more structure +and organization behind the scenes. I also wish for consistent contributions +to the project (commit early, commit often) so I can better estimate the resources +that we have!

+

I am also actively discussing Kiwi TCMS with lots of people at various conferences +and generate many ideas for the future. The latest SEETEST in Belgrade was particularly +fruitful. Some of these ideas are pulling into different directions and I need help +to keep them under control!

+

Development-wise sometimes I lose track of what's going on and who's doing what between +working on Kiwi TCMS, preparing for conferences and venues to promote the project, +doing code review of other team members, trying not to forget to check-in on +progress (especially by interns), recruiting fresh blood and thinking about +the overall future of the project. Our user base is growing and there are days +where I feel like everything is happening at once or that something +needs to be implemented ASAP (which is usually true anyway)!

+

+

Meet Rayna Stankova in the role of our team coach! +Reny is a director for Women Who Code Sofia, senior QA engineer at VMware, +mentor with CoderDojo Bulgaria and a long-time friend of mine. +Although she is an experienced QA in her own right she will be contributing +to the people side of Kiwi TCMS and less so technically!

+

Her working areas will be planning and organization:

+
    +
  • help us (re)define the project vision and goals
  • +
  • work with us on roadmaps and action plans so we can meet + the project goals faster
  • +
  • help us (self) organize so that we are more efficient, + including checking progress and blockers (aka enforcer) and + meet the aforementioned consistency point
  • +
  • serve as our professional coach, motivator and somebody who will + take care of team health (yes I really suck at motivating others)
  • +
+

and generally serving as another very experienced member of the team!

+

We did a quick brainstorming yesterday and started to produce results +(#smileyface)! We do have a team docs space to share information +(non-public for now, will open it gradually as we grow) and came up +with the idea to use Kiwi TCMS as a check-list for our on-boarding/internship +process!

+

I don't know how it will play out but I do expect from the +team to self-improve, be inspired, become more focused and more productive! +All of this also applies to myself, even more so!

+

Existing team members progress

+

Last year we started with 2 existing team members (Tony and myself) and 3 +new interns (Ivo, Kaloyan and Tseko) who built this website!

+

Tony is the #4 contributor to Kiwi TCMS in +terms of number of commits +and is on track to surpass one of the original authors (before Kiwi TCMS was forked)! +He's been working mostly on internal refactoring and resolving the thousands +of pylint errors that we had (down to around 500 I think). This summer Tony and I +visited the OSCAL conference in Tirana and hosted an info booth for the project.

+

Ivo is the #5 contributor in terms of numbers of commits. He did learn very +quickly and is working on getting rid of the remaining pylint errors. His ability +to adapt and learn is quite impressive actually. Last month he co-hosted a +git workshop at HackConf, a 1000+ people IT event in Sofia.

+

Kaloyan did most of the work on our website initially (IIRC). +Now he is studying in the Netherlands +and not active on the project. We are working to reboot his on-boarding +and I'm hoping he will find the time to contribute to Kiwi TCMS regularly.

+

From the starting team only Tseko decided to move on to other ventures after +he contributed to the website.

+

Internship program

+

At Kiwi TCMS we have a set of training +programs that teach all the necessary technical skills before we let anyone +actively work on the project, let alone become a team member.

+

Our new interns are Denitsa Uzunova and Desislava Koleva. Both of them are +coming from Vratsa Software Community and were mentors at the recently held +CodeWeek hackathon in their home city! I wish them fast learning and good luck!

+

Happy testing!

+
+
+
+
+ +

Kiwi TCMS winter conference presence

+
+ + +
+ +
+

We are happy to announce that OpenFest - the biggest +open source conference in Bulgaria has provided an info booth for our project. +This year the event will be held on 3rd and 4th of November at Sofia Tech Park!

+

Last time the team went to a conference together we had a lot of fun! Join us +at OpenFest to learn more about Kiwi TCMS and have fun with us!

+ + + + + + +

In case you are unable to visit Sofia, which you totally should, you can catch up with +us in Russia until the end of the year:

+ +

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

+
+
+ +
+
+ +

Mid-year roadmap status report

+
+ + +
+ +
+

Hello everyone, in this article I will outline the progress that the Kiwi TCMS +team has made towards achieving the goals on our +roadmap.

+

Make code easier to maintain

+

Status: moderate progress

+

Initially CodeClimate reported +a "D" rating with a 1 year estimated effort. Now it is still on "D" rating with +a 7 months estimated effort to bring the project back in shape. +Code smells have dropped from 600+ to 418, duplications have been reduced from 600+ to 359! +At the same time technical debt ratio has been decreased from 32,5% to 21,6% and +little over 10000 lines of code have been removed from the source code. +Checkout +the stats +for more info!

+

Use pylint and pylint-django

+

Status: good progress

+

Both pylint and pylint-django have been integrated into our CI workflow. There are even +a few custom built plugins that we use. The number of issues reported is down to around 900 +from 4000+ initially. The cleanup has been lead by Anton Sankov +with help from Ivaylo Ivanov and myself.

+

Render HTML, return JSON

+

Status: no progress

+

Several views were probably modified to return pure JSON in the meantime but we've not +done any targeted work to resolve this issue.

+

Submit forms, post JSON, GET clean URLs

+

Status: no progress

+

Same as above, not much has been done in this area.

+

API layer

+

Status: complete

+

After Kiwi TCMS v4.0 the server side API has been reorganized and updated +to follow the model/method names used internally.

+

After the recent version 5.0 the client side API library has been stripped +to its most basic form so that you can work directly with the responses from +the server.

+

There is no more duplication and ambiguity in names because there isn't +a lot of code left!

+

Documentation

+

Status: moderate progress, dropped

+

All RPC methods have been documented! The rest of the internals will be documented +as we go along.

+

No vendored JavaScript libraries

+

Status: moderate progress

+

Several JavaScript libraries have been removed but we still carry around jQuery +and Handlebars.js. No work has been done to convert Kiwi TCMS to use the jQuery +version provided with Django.

+

Less HTML templates with better organization

+

Status: minimal progress

+

There are still over 100 HTML templates in Kiwi TCMS. Some of the HTML templates +have been merged together, some email templates have been refactored and marked +as translatable but the majority of them have not been updated for a long time.

+

Modern interface with Patternfly

+

Status: no progress

+

JavaScript updates and front-end testing

+

Status: small progress

+

A number of JavaScript functions have been refactored and removed during the +past few releases but there are still thousands of lines of code left to deal with.

+

Community efforts

+

Status: moderate progress

+

We are seeing a steady stream of new users registered on +https://public.tenant.kiwitcms.org and +there are several active contributors (issues, translations).

+

Kiwi TCMS was represented at OSCAL Tirana, DjangoCon Heidelberg and PyCon Prague! +We're planning to attend HackConf and OpenFest in Sofia by the end of the year.

+

Happy testing!

+
+
+
+
+ +

Kiwi TCMS conference presence

+
+ + +
+ +
+

Kiwi TCMS is going on a small conference tour. This is where you can find us +in the next couple of months:

+ +

For all of the 3 conferences we're going to have a project presence. In addition +to that you can catch-up with Alex Todorov, Kiwi's project lead at: +TestCon Moscow(17-19 April, Moscow), +Romanian Testing Conference(9-11 May, Cluj-Napoca), +PyCon CZ(1-3 June, Prague) and +DEVit(10-11 June, Thessaloniki).

+

If you can ping us at @KiwiTCMS or look for the +kiwi bird logo and come to say hi!

+
+
+
+
+ +

Kiwi TCMS roadmap for 2018

+
+ + +
+ +
+

Hello everyone. As you know Kiwi TCMS has been around for a while and it has +gone through some big changes in the last year! It started as an abandoned +Django 1.6 project with broken test suite and is now currently running on the +latest Django 2.0.1 with Python 3.5! It is clearly a legacy code base!

+

We, the Kiwi TCMS team, have learned a lot more about the project and this +blog post describes our roadmap for 2018 in terms of technical work and community +engagement. The general technical direction is cleaner/simpler code, +improved UI/UX and more tests!

+

Make code easier to maintain

+

The current code is a bunch of very large modules and functions and classes +bundled together. It is also old and sometimes looks like spaghetti code. +CodeClimate gives us a "D" rating +for maintainability with a 1 year estimated effort to fix that. There are 600+ +code smells and 600+ duplications detected by CodeClimate. Our goal is to get this +number down to zero!

+

Use pylint and pylint-django

+

pylint is the standard static analyzer for Python and currently it reports over +4000 errors and warnings when executed against Kiwi TCMS. This is a huge number and +it needs to become zero! We've also identified interesting patterns that will +make it into pylint and pylint-django plugins!

+

Render HTML, return JSON

+

The current state of affairs is a mix and match of everything. There are views that +render HTML, others which return pure JSON, other which return HTML encoded as JSON string +and probably everything in between. Views that render pages need to do just that +and views that are used with AJAX calls from the UI need to return pure JSON! +A lot of these are hiding in plain sight and will come to light when we start +overhauling the user interface.

+

Submit forms, post JSON, GET clean URLs

+

There are lots of forms in Kiwi TCMS. Sometimes they are submitted by the user and +other times they are serialized and POSTed by some JavaScript code. This isn't +very easy to understand plus this entire home-grown utility code doesn't bring +anything useful to the project. All of these need to be identified and cleaned up. +JavaScript code needs to send or consume JSON, nothing else!

+

There are also lots of places where Kiwi issues GET requests with a number of +query parameters. Our goal is to minimize these and where possible have the +parameters as part of the Django urls scheme, not as query strings.

+

API layer

+

The current API module is a bit disorganized. API namespaces don't match the +names of the underlying DB models and the API client classes don't match any +of the other two! The way we pass parameters and what these parameters are +named should match between the client, the RPC method and the underlying model!

+

In earlier releases we've removed duplicate or similar RPC methods and we +think there are more of these that need our love.

+

Documentation

+

We've started producing documentation from doc-strings and most of the RPC +methods have such. However it is unformatted and barely readable, sometimes +even inaccurate. Previous releases made progress on this but there's a lot +more to cover.

+

All RPC methods should be documented first and then the rest of Kiwi's +internals to make development easier!

+

No vendored JavaScript libraries

+

There are 11 vendored-in JavaScript files that we carry around in Kiwi TCMS. +Most notable are jQuery plus a few addons and Handlebars.js. To the extent possible +our goal is to use jQuery provided by Django or installed via NPM dependencies!

+

Less HTML templates with better organization

+

There are over 100 HTML templates in Kiwi TCMS. There are also email and even +JavaScript templates. For example there are get_cases.html and get_review_cases.html +which are essentially the same. This is kind of also true for templates used in +new and edit views! Such templates should be unified!

+

Those JavaScript templates need to be totally gone!

+

All templates are stuffed together in a single directory and their names +are not very predictable. They need to be split per application and follow +some kind of naming convention.

+

Modern interface with Patternfly

+

The UI already uses the Patternfly library for some of its widgets. Most notably +the main navigation header. Our goal is for the entire UI to be ported to Patternfly +by updating widgets HTML and CSS where needed. +This will also help clean things up a lot. At the same time we'll be rethinking how +information is organized on screen and how the person interacts with it! Usability +suggestions are very welcome!

+

This move will also help us get rid of the Handlebars dependency which is now +used for pop-up dialogs.

+

JavaScript updates and front-end testing

+

There's lots of JavaScript code on the front-end and honestly we don't quite know +what it does or how it is organized. There are also no tests on the front-end +whatsoever!

+

It is our goal for this to change with the intention to not overdo the JavaScript +part and keep things very minimal. At the moment we're thinking about vanilla jQuery +that will act as a proxy between the browser and the back-end!

+

Community efforts

+

A year ago hardly anybody knew what Kiwi TCMS was, the project didn't even have +this name, there was 1 active contributor and hardly any users! Now the community +has started to slowly revitalize, we're seeing some contributions from our +junior team members (more on this in another blog post) and also seeing +folks installing and using Kiwi TCMS and reporting interesting bugs and feature +requests around it!

+

For the upcoming year our goal is to seek active engagement with other open source +projects that could make use of Kiwi TCMS and work with them. Kudos to +openSUSE for being the first +to propose such integration! +We're also planning couple of appearances at a few conferences but there's +nothing confirmed yet.

+

Every other contribution in terms of bug reports, new users and feature requests +is of course welcome but we're very conscious of the fact that there's tons +of work to be done and the team is still very small!

+

Team wise we'd like to get the existing team members up to speed and tackle +the above tasks with priority. This will also help us introduce bug fixes +and new features more quickly!

+

Happy testing!

+
+
+ +
+ Newer Posts +

+ Page 3 / 3 +

+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/tags/customization/index.html b/blog/tags/customization/index.html new file mode 100644 index 00000000..e63d9a32 --- /dev/null +++ b/blog/tags/customization/index.html @@ -0,0 +1,673 @@ + + + + + Kiwi TCMS - Articles with tag customization + + + + + + + + + + + + + + + +
+

Articles with tag customization

+ +
+ + +
+

Kiwi TCMS integration with 3rd party bug trackers supports the +1-click bug report feature. +However you may want to change how the initial information is structured or +even what exactly is written in the initial comment. This article +shows how to do this.

+

The default text used for 1-click bug reports gets compiled based on +information present in the TestExecution - Product, Version, TestCase.text, +etc. This is encapsulated in the +tcms.issuetracker.base.IssueTrackerType._report_comment() method. +You may extend the existing bug tracker integration code +with your own customizations. In this example I've extended the +KiwiTCMS bug tracker implementation but you can provide your own from +scratch

+
# filename: mymodule.py
+class ExtendedBugTracker(KiwiTCMS):
+    def _report_comment(self, execution):
+        comment = super()._report_comment(execution)
+
+        comment += "----- ADDITIONAL INFORMATION -----\n\n"
+        #
+        # fetch more info from other sources
+        #
+        comment += "----- END ADDITIONAL INFORMATION -----\n"
+        return comment
+
+ + +

Then override the EXTERNAL_BUG_TRACKERS setting to include your customizations:

+
EXTERNAL_BUG_TRACKERS.append('mymodule.ExtendedBugTracker')
+
+ + +

and change the bug tracker type, via https://tcms.example.com/admin/testcases/bugsystem/, +to mymodule.ExtendedBugTracker.

+

IMPORTANT

+
    +
  • Information how to change settings can be found + here
  • +
  • mymodule.py may live anywhere on the filesystem but Python must be + able to import it
  • +
  • It is best to bundle all of your customizations into a Python package and + pip3 install it into your customized docker image
  • +
  • API documentation for bug tracker integration can be found + here
  • +
  • Rebuilding the docker image is outside the scope of this article. Have a look + at this + Dockerfile + for inspiration
  • +
+

Happy testing!

+
+
+
+
+ +

How to override bug details in Kiwi TCMS

+
+ + +
+ +
+

Starting with version 7.0 Kiwi TCMS pages displaying URLs to bugs also +contain an info icon which shows additional information as tooltip. These +are designed to provide more contextual information about the bug. By default +the tooltip shows the OpenGraph metadata for that URL. This article +will explain how to override this in 2 different ways.

+

bug details shown

+

Option #1: using the caching layer

+

Additional bug information is cached on the application layer. The cache +key is the bug URL! By default Kiwi TCMS uses local-memory caching which +isn't accessible for external processes but can be reconfigured very easily. +This example changes the CACHES setting to use a directory on the +file system like so

+
CACHES = {
+    'default': {
+        'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',
+        'LOCATION': '/tmp/kiwi-cache',
+        'TIMEOUT': 3600,
+    }
+}
+
+ + +

Then you need to poll your 3rd party bug tracker (and/or other systems) and +update the cache for each URL

+
from django.core.cache import cache
+from tcms.core.contrib.linkreference.models import LinkReference
+
+for reference in LinkReference.objects.filter(is_defect=True):
+    # possibly filter objects coming only from your own bug tracker
+    # in case there are multiple trackers in use
+
+    # custom methods to grab more information. Must return strings
+    title = fetch_title_from_bug_tracker(reference.url)
+    description = fetch_description_from_bug_tracker(reference.url)
+
+    # store the information in Kiwi TCMS cache
+    cache.set(reference, {'title': title, 'description': description})
+
+ + +

Then execute the Python script above regularly. For example use the following +as your cron script

+
#!/bin/bash
+export VIRTUAL_ENV=/venv
+export PATH=/venv/bin:${PATH}
+cat /path/to/cache_updater.py | /Kiwi/manage.py shell
+
+ + +

bug details from customized cache

+

IMPORTANT

+
    +
  • Kiwi TCMS expires cache entries after an hour. Either change + the TIMEOUT setting shown above or run your script more frequently
  • +
  • How to modify default Kiwi TCMS settings is documented + here
  • +
  • The Python + Bash scripts above don't need to be on the same system where Kiwi TCMS + is hosted. However they need the same Python 3 virtualenv and cache settings as + Kiwi TCMS does
  • +
  • Information about Django's cache framework and available backends + can be found here
  • +
  • memcached is a supported cache backend option, see + here
  • +
  • django-elasticache is a + backend for Amazon ElastiCache which provides several configuration examples
  • +
  • Both django-redis and + django-redis-cache are good + libraries which support Redis
  • +
  • Any 3rd party libraries must be pip3 install-ed into your own docker image
  • +
+

Option #2: extend bug tracker integration

+

Let's say you are already running a customized Docker image of Kiwi TCMS. Then +you may opt-in to extend the existing bug tracker integration code which provides +the information shown in the tooltip. In this example I've extended the +KiwiTCMS bug tracker implementation but you can even provide your own from +scratch

+
class ExtendedBugTracker(KiwiTCMS):
+    def details(self, url):
+        result = super().details(url)
+
+        result['title'] = 'EXTENDED: ' + result['title']
+        result['description'] += '<h1>IMPORTANT</h1>'
+
+        return result
+
+ + +

Then import the new ExtendedBugTracker class inside +tcms/issuetracker/types.py like so

+
index 9ad90ac..2c76621 100644
+--- a/tcms/issuetracker/types.py
++++ b/tcms/issuetracker/types.py
+@@ -17,6 +17,9 @@ from django.conf import settings
+
+ from tcms.issuetracker.base import IssueTrackerType
+ from tcms.issuetracker.kiwitcms import KiwiTCMS  # noqa
++from tcms.issuetracker.kiwitcms import ExtendedBugTracker
+
+ + +

and change the bug tracker type, via https://tcms.example.com/admin/testcases/bugsystem/, +to ExtendedBugTracker.

+

bug details extended internally

+

IMPORTANT

+
    +
  • ExtendedBugTracker may live anywhere on the filesystem but Python must be + able to import it
  • +
  • It is best to bundle all of your customizations into a Python package and + pip3 install it into your customized docker image
  • +
  • ExtendedBugTracker must be imported into tcms/issuetracker/types.py in order + for the admin interface and other functions to find it. You may also place the + import at the bottom of tcms/issuetracker/types.py
  • +
  • API documentation for bug tracker integration can be found + here
  • +
  • Rebuilding the docker image is outside the scope of this article. Have a look + at this + Dockerfile + for inspiration
  • +
+

NOTE: starting with Kiwi TCMS v8.5 +external bug tracker integration classes are listed in the EXTERNAL_BUG_TRACKERS +setting. If you are using v8.5 or newer instead of +importing ExtendedBugTracker in tcms/issuetracker/types.py you should +override the list of available bug tracker integrations:

+
EXTERNAL_BUG_TRACKERS.append('mymodule.ExtendedBugTracker')
+
+ + +

Happy testing!

+
+
+
+
+ +

How to add API logging for Kiwi TCMS

+
+ + +
+ +
+

In this blog post I will show more ways to customize Kiwi TCMS by adding +logging capabilities to the API backend. Indeed this is a feature that +our team deemed not required for upstream and was removed in +PR #436.

+

Start by creating the following directory structure:

+
    api_logging/
+        __init__.py
+        handlers.py
+        models.py
+
+ + +

This is a small Django application that will log every call to the API backend. +Each file looks like this:

+
    # models.py contains DB schema for your new table
+    from django.db import models
+    from django.conf import settings
+
+    class ApiCallLog(models.Model):
+        executed_at = models.DateTimeField(auto_now_add=True)
+        user = models.ForeignKey(settings.AUTH_USER_MODEL, null=True, blank=True,
+                                 on_delete=models.CASCADE)
+        method = models.CharField(max_length=255)
+        args = models.TextField(blank=True)
+
+        def __str__(self):
+            return "%s: %s" % (self.user, self.method)
+
+ + +

Then

+
    # handlers.py overrides the RPC handlers coming from django-modernrpc
+    from modernrpc import handlers
+
+    from django.conf import settings
+    from django.contrib.auth import get_user_model
+
+    from .models import ApiCallLog
+
+    def log_call(request, method_name, args):
+        """ Log an RPC call to the database or stdout in DEBUG mode. """
+        request_user = request.user
+        if not request_user.is_authenticated:
+            # create an anonymous user object for logging purposes
+            request_user, _ = get_user_model().objects.get_or_create(
+                username='Anonymous',
+                is_active=False)
+
+        if method_name is None:
+            method_name = '--- method_name missing ---'
+
+        if settings.DEBUG:
+            print('API call:: user: {0}, method: {1}, args: {2}'.format(
+                request_user,
+                method_name,
+                args))
+        else:
+            ApiCallLog.objects.create(
+                user=request_user,
+                method=method_name,
+                args=str(args))
+
+    class XMLRPCHandler(handlers.XMLRPCHandler):
+        def process_request(self):
+            encoding = self.request.encoding or 'utf-8'
+            data = self.request.body.decode(encoding)
+            params, method_name = self.loads(data)
+
+            log_call(self.request, method_name, params)
+            return super().process_request()
+
+    class JSONRPCHandler(handlers.JSONRPCHandler):
+        def process_single_request(self, payload):
+            method_name = payload.get('method', None)
+            params = payload.get('params')
+
+            log_call(self.request, method_name, params)
+            return super().process_single_request(payload)
+
+ + +

NOTE: +You will have to execute ./manage.py makemigrations api_logging to create the +initial migration for Django. This could be easier if you place the above directory +into existing Django application or craft the migration file by hand!

+

The last thing you want to do is create a local_settings.py file which will override +Kiwi TCMS defaults:

+
    # local_settings.py
+    from django.conf import settings
+
+    settings.INSTALLED_APPS += [
+        'api_logging',
+    ]
+
+    MODERNRPC_HANDLERS = ['api_logging.handlers.XMLRPCHandler',
+                          'api_logging.handlers.JSONRPCHandler']
+
+ + +

Then place everything in Dockerfile like so:

+
    FROM kiwitcms/kiwi
+
+    COPY ./api_logging/ /venv/lib64/python3.6/site-packages/api_logging/
+    COPY local_settings.py /venv/lib64/python3.6/site-packages/tcms/settings/
+
+ + +

Kiwi TCMS will import your local_settings.py and enable the logging application. +Now build your customized Docker image and use it for deployment!

+

Happy testing!

+
+
+
+
+ +

How to override templates for Kiwi TCMS

+
+ + +
+ +
+

This is the first publication in our customization series. It will show you +how to override any template used by Kiwi TCMS. As an example we will override +the email template that is used when registering new account. By default the +email text looks like this:

+
    Welcome {{ user }},
+    thank you for signing up for an {{ site_domain }} account!
+
+    To activate your account, click this link:
+    {{ confirm_url }}
+
+ + +

https://public.tenant.kiwitcms.org +runs a custom Docker image based on +kiwitcms/kiwi. For this image the confirmation email looks like this

+
    Welcome {{ user }},
+    thank you for signing up for our Kiwi TCMS demo!
+
+    To activate your account, click this link:
+    {{ confirm_url }}
+
+    GDPR no longer allows us to automatically subscribe you to
+    our newsletter. If you wish to keep in touch and receive emails
+    with news and updates around Kiwi TCMS please subscribe at:
+    https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&id=c970a37581
+
+    --
+    Happy testing!
+    The Kiwi TCMS team
+    http://kiwitcms.org
+
+ + +

The file that we want to override is tcms/templates/email/confirm_registration.txt.

+

Create a local directory (git repository) which will hold customization configuration +and create a file named templates.d/email/confirm_registration.txt with your text!

+

Next you want to make this file available inside your docker image so your Dockerfile +should look like this:

+
    FROM kiwitcms/kiwi
+
+    COPY ./templates.d/ /venv/lib64/python3.6/site-packages/tcms/overridden_templates/
+    COPY local_settings.py /venv/lib64/python3.6/site-packages/tcms/settings/
+
+ + +

where local_settings.py contains

+
    import os
+    from django.conf import settings
+
+    settings.TEMPLATES[0]['DIRS'].insert(0, os.path.join(settings.TCMS_ROOT_PATH, 'overridden_templates'))
+
+ + +

The following code states instruct Django to look into overridden_templates first and +use any templates it finds there; also make my files available in that specific location +inside the docker image.

+

This approach can be used for all templates that you wish to override. Take into +account that file names must match (Django searches templates by directory path). +Now build your customized Docker image and use that for deployment!

+

Happy testing!

+
+
+
+
+ +

How to backup Docker volumes for Kiwi TCMS

+
+ + +
+ +
+

When you start Kiwi TCMS by running docker-compose up +(see here) +it will automatically create 2 volumes: kiwi_db_data and kiwi_uploads. +This blog post will outline how to backup these docker volumes.

+

Note: in the instructions below kiwi_db is the container name and kiwi is the +database name used inside the docker-compose.yml file!

+

MariaDB/MySQL database

+

To export all contents from the docker container execute the command:

+
docker exec -u 0 -i kiwi_db mysqldump kiwi > backup.sql
+
+ + +

This will create a file named backup.sql in the current directory, outside of the running container!

+

You can restore the database contents by using the following command:

+
cat backup.sql | docker exec -u 0 -i kiwi_db mysql -v kiwi
+
+ + +

Notes:

+
    +
  1. The commands above using -u 0 are executed with root privileges inside the + container. In this way you don't need to type-in the database password!
  2. +
  3. Depending on your scenario you may want to remove the existing volume + (docker-compose down && docker volume rm kiwi_db_data) before restoring the database!
  4. +
+

Postgres database

+

To export all contents from the docker container execute the command:

+
docker exec -i kiwi_db pg_dump --dbname=kiwi -F c > backup.bak
+
+ + +

This will create a file named backup.bak in the current directory, outside of the running container. +This is a PostgreSQL custom database dump format which contains all data and schema definitions. +That is a binary file which can be read with the pg_restore command!

+

To drop and restore the entire database execute:

+
docker exec -i kiwi_db psql -c "DROP DATABASE IF EXISTS kiwi;"
+cat backup.bak | docker exec -i kiwi_db pg_restore --dbname=template1 -vcC
+
+ + +

Multi-tenant database

+

The kiwitcms-tenant add-on and/or +Kiwi TCMS Enterprise work only on +Postgres! Each tenant (aka name-space) uses a separate database schema. +The first schema name is public.

+

The backup and restore instructions shown above operate on all tenants together! +If you want to [drop and] restore an individual tenant then use the commands:

+
docker exec -it kiwi_db psql --dbname=kiwi
+
+kiwi=> DROP SCHEMA $tenant_name CASCADE;
+....
+DROP SCHEMA
+kiwi=> CREATE SCHEMA $tenant_name;
+CREATE SCHEMA
+kiwi=>Ctrl+D
+
+cat backup.bak | docker exec -i kiwi_db pg_restore --dbname=kiwi -v --schema $tenant_name
+
+ + +

Backing up file uploads

+

Uploaded files can easily be backed up with:

+
docker exec -i kiwi_web /bin/tar -cP /Kiwi/uploads > uploads.tar
+
+ + +

and then restored with:

+
cat uploads.tar | docker exec -i kiwi_web /bin/tar -x
+
+ + +

You may also try the rsync command but be aware that it is not installed +by default!

+

Note: +the same approach may be used to backup /var/lib/mysql/ or /var/lib/pgsql/data +from the kiwi_db container.

+

Backing up multi-tenant uploads

+

By default multi-tenant file uploads are stored under /Kiwi/uploads/tenant/$tenant_name. +You can archive all contents with the same procedure above. If you wish to restore +files per tenant you will have to upload the $tenant_name directory into the +docker volume.

+

Alternatives

+

By default both docker volumes created for Kiwi TCMS use the local driver +and are available under /var/lib/docker/volumes/<volume_name> on the host +running your containers. You can try backing them up from there as well.

+

Another alternative is to use the +docker-lvm-plugin +and create these volumes as LVM2 block devices. Then use +lvcreate -s command to create a snapshot volume. For more information see +chapter 2.3.5. Snapshot Volumes +from the LVM Administrator Guide for Red Hat Enterprise Linux 7.

+

Happy testing!

+
+
+ +
+

+ Page 1 / 1 +

+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/tags/events/index.html b/blog/tags/events/index.html new file mode 100644 index 00000000..103cea45 --- /dev/null +++ b/blog/tags/events/index.html @@ -0,0 +1,1304 @@ + + + + + Kiwi TCMS - Articles with tag events + + + + + + + + + + + + + + + +
+

Articles with tag events

+ +
+ + +
+

"Cfp banner"

+

Attention testers! On behalf of +Testing and Automation devroom +we'd like to announce that call for participation is now open.

+

Important: devroom will take place 09:00 to 12:50, Sunday, February 5th 2023 at +ULB Solbosch Campus, Brussels, Belgium! +Presentations will be streamed online but all accepted speakers are required to deliver +their talks in person! The devroom will not host pre-recorded videos in 2023!

+

Here are some ideas for topics that are a good fit for this devroom:

+

Testing in the real, open source world

+
    +
  • War stories/strategies for testing large scale or complex projects
  • +
  • Demystify resource e.g. systems/device/cloud provisioning in a CI loop
  • +
  • Tools that extend the ability to test low-level code, e.g. bootloaders, init +systems, etc.
  • +
  • Projects that are introducing new/interesting ways of testing "systems"
  • +
  • Address the automated testing frameworks fragmentation
  • +
  • Lessons learned from testing
  • +
+

Cool Tools (good candidates for lightning talks)

+
    +
  • How your open source tool made developing quality software better
  • +
  • What tools do you use to setup your CI/CD
  • +
  • Combining projects/plugins/tools to build amazing things "Not enough people in +the open source community know how to use $X, but here's a tutorial on how to +use $X to make your project better."
  • +
+

In the past the devroom has seen both newbies/students and experienced professionals and +past speakers as part of the audience and talks covering from beginner/practical +to advanced/abstract topics. If you have doubts then submit your proposal and +leave a comment for the devroom managers and we'll get back to you.

+

Checkout +https://fosdem-testingautomation.github.io/ for more information!

+

Happy Testing!

+
+

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

+ +
+
+
+
+ +

Meet Kiwi TCMS at WebSummit 2022 in Lisbon

+
+ + +
+ +
+

Kiwi TCMS is happy to announce that we're taking part in +WebSummit 2022, Nov 01-04 in Lisbon, Portugal. +We're joining as a featured startup +in the Enterprise Software Solutions category.

+

Kiwi TCMS will have an on-site presence on +Wednesday, Nov 02 at Pavilion 4, Stand A709. Check-out the map for more details: +venue map

+

For engineers

+

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. We've got new stickers too!

+

Alex and Zaklina will be there to answer all of your questions regarding +open source, community, support, various integrations and the differences between +Self-Support, SaaS and Enterprise subscriptions!

+

"black boxes"

+

IMPORTANT: We've previously announced participation in +Testing Portigal at the end of November. +Unfortunately this had to be canceled due to personal reasons. If you are a test or +QA engineer please swing by and Alex can tell you a bit about his presentation!

+

For partners

+

If you are another ISV providing engineering tools, a product outsourcing company +or a devel/testing services venture we've got a partnership proposal for you!

+

We're interested in partners where we can integrate other products with Kiwi TCMS +and provide a better offering; provide extra services (e.g. managed hosting) and/or +provide more transparency to your own customers (e.g. allow them to see how their products +are being tested).

+

Message us via the WebSummit mobile app and request a meeting or better yet, +find our team on-site!

+

After hours

+

The Kiwi TCMS team will be joining the following after-hours events:

+ +

Catch-up with us for a beer and let's talk testing and open source!

+
+

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

+ +
+
+
+
+ +

Meet Kiwi TCMS at Collision 2022 in Toronto

+
+ + +
+ +
+

Kiwi TCMS is happy to announce that we're taking part in +Collision 2022, Jun 20-23 in Toronto, Canada. +We're joining as a featured startup +in the Enterprise Software Solutions category.

+

Kiwi TCMS will have an on-site presence on +Thursday, Jun 23, Stand A3201. Check-out the map for more details: +venue map

+

For engineers

+

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 +Self-Support, SaaS and Enterprise subscriptions!

+

"black boxes"

+

If you are a test or QA engineer please answer our survey +https://forms.gle/LTYnimNjbUaSmTeL8. Participants may claim a small surprise at our booth!

+

For startups

+

We know that in a startup, the major strength of the people is that they are multitaskers. +And it is often the case that the founders will perform some functional and acceptance testing +because they know all the important use-cases.

+

Still you need to document and organize your testing activities early on. You need to +start collecting information about which features of the product have been tested and +how they have been tested. That's the basis on which you can scale your QA team and +future testing activities.

+

If you are a fellow startup exhibitor please swing by out stand to talk about +organizing your product testing with Kiwi TCMS. We know the drill because we're in +the same boat!

+

For partners

+

If you are another ISV providing engineering tools, a product outsourcing company +or a devel/testing service venture we've got a partnership proposal for you!

+

We're interested in partners where we can integrate other products with Kiwi TCMS +and provide a better offering; provide extra services (e.g. managed hosting) and/or +provide more transparency to your own customers (e.g. allow them to see how their products +are being tested).

+

Message us via the Collision app +and request a meeting or better yet, find our team on-site!

+

Virtual press conference

+

If you aren't around in Toronto please join us for a pre 2022 Collision News Conference (VIRTUAL) on +Wednesday, June 15, 1:00 - 2:00 p.m. EDT / 17:00 - 18:00 UTC.

+

For more information see +https://www.eventbrite.com/e/pre-collision-press-conference-1-of-2-hosted-by-brotmanwinterfried-tickets-365110534437

+

After hours

+

The Kiwi TCMS team will be joining the following after-hours events:

+ +

For media

+

If you have any questions, need additional information or would like to schedule an interview, +please email Steve Winter at swinter @ aboutbwf.com (remove spaces) or call 202-468-8100.

+
+

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

+ +
+
+
+ + +
+

"Cfp banner"

+

Attention testers! On behalf of +Testing and Automation devroom +we'd like to announce that call for participation is now open.

+

Here are some ideas for topics that are a good fit for this devroom:

+

Testing in the real, open source world

+
    +
  • War stories/strategies for testing large scale or complex projects
  • +
  • Demystify resource e.g. systems/device/cloud provisioning in a CI loop
  • +
  • Tools that extend the ability to test low-level code, e.g. bootloaders, init +systems, etc.
  • +
  • Projects that are introducing new/interesting ways of testing "systems"
  • +
  • Address the automated testing frameworks fragmentation
  • +
  • Lessons learned from testing
  • +
+

Cool Tools (good candidates for lightning talks)

+
    +
  • How your open source tool made developing quality software better
  • +
  • What tools do you use to setup your CI/CD
  • +
  • Combining projects/plugins/tools to build amazing things "Not enough people in +the open source community know how to use $X, but here's a tutorial on how to +use $X to make your project better."
  • +
+

In the past the devroom has seen both newbies/students and experienced professionals and +past speakers as part of the audience and talks covering from beginner/practical +to advanced/abstract topics. If you have doubts then submit your proposal and +leave a comment for the devroom managers and we'll get back to you.

+

Checkout +https://fosdem-testingautomation.github.io/ for more information!

+

Happy Testing!

+
+

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

+ +
+
+
+
+ +

Catch up with Kiwi TCMS at WebSummit 2021 Lisbon

+
+ + +
+ +
+

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!

+ +
+
+
+
+ +

Announcing winners of 6 tickets for HackConf 2021

+
+ + +
+ +
+

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!

+ +
+
+
+
+ +

Meet Kiwi TCMS at WebSummit 2021 in Lisbon

+
+ + +
+ +
+

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!

+ +
+
+
+
+ +

Win 6 SUPERFAN tickets for HackConf 2021

+
+ + +
+ +
+

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!

+ +
+
+
+ + +
+

"Cfp banner"

+

Attention open source testers: Testing and Automation devroom at FOSDEM'21 +is happening next year! Call for participation is now open. +Checkout +https://fosdem-testingautomation.github.io/ for more information!

+

Happy Testing!

+
+

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

+ +
+
+
+ + +
+

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!

+
+
+
+
+ +

Kiwi TCMS is going to FOSDEM 2020

+
+ + +
+ +
+

Stand at FOSDEM'19

+

Hello testers, Kiwi TCMS is going to FOSDEM 2020. +This is where you can find us:

+
    +
  • Fri Jan 31st: after 18:00 @ Delirium Café - + we are taking part of the FOSDEM Beer Event where all participants are invited. + Shout out with #KiwiTCMS on Twitter if you can't find us in the crowd
  • +
  • Sat Feb 1st: + Testing and Automation devroom - + we are proud to be co-hosting this devroom together with Linaro and SUSE. + CfP is open until Dec 10th 2019. Apply here!
  • +
  • Sun Feb 2nd: Open Source Test Management stand - + we will be together with our friends from SystemTestPortal and we are preparing + some real black-box testing for you!
  • +
+

We would like to meet with all of you and talk about software testing, test management and +test process organization. In case you are stuck for crazy ideas checkout +our project mission for inspiration.

+

Picture: FOSDEM'19 with Kiwi TCMS, ReportPortal & SystemTestPortal

+

Happy testing!

+
+
+
+
+ +

Open source sprints at PyCon Balkan in Belgrade

+
+ + +
+ +
+

Next month our team will be at +PyCon Balkan, Oct 3-5 in Belgrade. Together with +presentation and a workshop we are going to host open source sprints! +These will be an informal gathering where participants will be able to +learn more about how open source works and go through their first +contributions. This is ideal for students and less experienced people +but we welcome everyone. There will be tasks ranging from easy to very hard!

+

Who: 4 mentors from Kiwi TCMS and you!

+

What: full day of peer programming and contributing to Kiwi TCMS

+

Where: room will be announced on the days of the conference, + follow @KiwiTCMS for more info

+

Why: up your tech skills, build your GitHub profile and have fun together

+

Translate Kiwi TCMS

+

Difficulty: easy

+

We have enabled Serbian language in our translation system. To get started +checkout our +translation contribution +page. +Once strings are translated kiwitcms-bot will automatically open a pull +request with the new text.

+

Find unused CSS classes

+

Difficulty: easy

+

This should be relatively easy. For each class/selector defined in our CSS files +search (grep) if any of the HTML templates use it. If it is not in use then remove +it.

+

Find unused JavaScript code

+

Difficulty: easy

+

Similar to the above. We're not 100% certain but there could be legacy JavaScript +functions which are no longer in use. Find them and remove them! At the very least +you have confirmed that all functions are in use!

+

CodeClimate Minor severity issues

+

Difficulty: easy to moderate

+

Check-out the +list of Minor severity issues. +There are many of them:

+
    +
  • CSS lint issues (we suggest you start with this one)
  • +
  • functions longer than 25 lines of code
  • +
  • functions with bigger cognitive and cyclomatic complexity
  • +
  • modules longer than 250 LOC
  • +
+

Try fixing a few to see how it goes and continue if you feel confident. +Not everything may be an issue so if you have any questions ask someone from our team.

+

CodeClimate Major severity issues

+

Difficulty: moderate to hard

+

Check-out the +list of Major severity issues. +There are around 150 of them:

+
    +
  • identical and similar code blocks
  • +
  • big modules
  • +
  • big functions
  • +
+

Most of these require some sort of refactoring, either splitting snippets +of code into smaller pieces (functions or sub-modules) or using one function +in several places instead of 2 very similar but different functions, etc. +Ask our team members about which approach they prefer for fixing these issues +to minimize the effort spent here.

+

CodeClimate Critical severity issues

+

Difficulty: hard

+

Check-out the +list of Critical severity issues. +All of these are functions with high cognitive complexity and +the recommended way to deal with them is refactoring into +class based views.

+

Improve pylint health

+

Difficulty: easy

+

Execute pylint against the latest sources and start fixing the issues. +Looking at pylint logs the +following items are relatively easy to work on:

+
    +
  • Everything in module tcms.urls
  • +
  • Everything in module tcms.telemetry.api
  • +
  • Everything in module tcms.testruns.tests.test_views
  • +
  • Everything in module tcms.xmlrpc.forms
  • +
  • Everything in module tcms.testcases.tests.test_models
  • +
  • Everything in module tcms.core.forms.fields
  • +
  • Everything in module tcms.settings.common
  • +
  • Everything in module tcms.settings.test
  • +
  • All module-in-directory-without-init errors reported for module tcms.tests.__init__
  • +
+

Note: fixme, missing-permission-required and avoid-auto-field errors are usually harder +to resolve and will require more work/refactoring. If you feel confident go ahead and +fix them, if not skip to the next error message.

+

We also use a custom pylint checker which reports function based views. +If you are looking for something harder to work on, then give it a try +(see 3rd pylint line in Makefile) and refactor some of the existing +view functions into class based views.

+

Fix 3rd party security issues discovered by Bandit

+

Difficulty: moderate to hard

+

Bandit is a static analysis tool similar to pylint. It focuses on discovering +issues which may lead to security vulnerabilities. We have resolved all such +issues in our own source code but we also execute Bandit against the entire +Python dependency stack. There it finds thousands of issues, so much so that +the reporter crashes.

+

In CI there are around +130 issues reported. The best course of action here is to execute Bandit locally +against the offending library and then figure out what to do:

+
    +
  • report an issue upstream
  • +
  • send a pull request upstream
  • +
  • if these are test files maybe exclude them from the package (e.g. don't ship them for production)
  • +
+

Note: inside Travis CI we have all runtime and testing dependencies which is more +than what we have inside the official Docker image for Kiwi TCMS.

+

Work on reported issues

+

The following issues look suitable for a sprint and don't require lots of +background knowledge. You can also find them using the +PyConBalkan label on +GitHub:

+
    +
  • #212 - moderate - Convert jQ to $ - + this is an easy search & rename but will require more extensive manual testing
  • +
  • #431 - moderate to hard - Remove JavaScript fireEvent() - + 17 matches in static/js/. Must be replaced with direct function calls
  • +
  • #652 - easy - Removal of labels from form fields - + all labels must be included in the HTML template and marked for translation
  • +
  • #681, #682 - moderate - + Move API modules & their tests from xmlrpc/api/<app>.py to <app>/api.py. These have good test + coverage so you have to make sure you don't break anything
  • +
  • #971 - moderate - manage.py command for changing Site URL - + will help with automatic provisioning, e.g. Ansible. For howto see + Django docs
  • +
  • #1021 - moderate - Update TestCase page UI to allow adding TestPlans to cases - + use TestPlan.add_case() API method and refresh the widget. See how Tags and Components cards work + in the same page
  • +
  • #1070 - moderate - manage.py command for checking email settings - + will help with troubleshooting misconfigured email. Must raise exceptions if something fails. + For howto see + Django docs
  • +
  • #733, + #736, + #738, + #883, + #1089 - hard to very hard - New checkers for pylint - + Kiwi TCMS uses customized pylint checkers to discover various conditions. We need a few more + of them and/or update of the existing ones
  • +
+

We hope to see you in Belgrade. Until then: Happy testing!

+
+
+
+
+ +

Kiwi TCMS conference presence, AW2019

+
+ + +
+ +
+

Your favorite open source test case management system is going on tour again. +During the next several months we will be at:

+ +

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

+
+
+
+ + +
+

Image of the award

+

Kiwi TCMS is the winner at OpenAwards'19 category Best Tech Community! +Big thanks to the jury, our contributors and core-team and the larger +open source and quality assurance communities who voted for us and supported +the project during all of those years.

+

This award is the best present we could get to mark the 10th anniversary +of the project. More news of how we are progressing with current roadmap will +follow soon in a separate blog post.

+

Thank you & happy testing!

+
+
+
+ + +
+

Vote for Kiwi TCMS at OpenAwards 2019

+

Thanks to you, our community supporters, Anton Sankov and Alex Todorov +took the lead at OpenExpo 2019 CfP votes. +We need your help one more time. Our team has submitted participation in +'Best Tech Community' and 'Best Success Story' categories.

+

Unfortunately our submission into 'Best Success Story' has been pulled down! +We used that category to share the story from a dead open source project into +a thriving open source community with lots of users and contributors and to +highlight some of our milestones. Here's the short version:

+
    +
  • lots of technical updates and refactoring, latest everything, modern UI
  • +
  • the only open source test case management system on GitHub Marketplace
  • +
  • nearly 60000 downloads on Docker Hub
  • +
  • growing and active core team
  • +
  • active OSS contributors
  • +
+

Please help us gain more recognition:

+ +

Thanks you & happy testing!

+
+
+
+ + +
+

On Tuesday I hosted my pylint workshop during the regular +Django Bulgaria meetup. +This edition was the first which was practice based.

+

Attendance numbers were low but participation was very good. We managed to +create 4 new checkers for Kiwi TCMS:

+ +

Many thanks to all contributors. These new checkers have discovered quite a +few new issues with Kiwi TCMS so this is an area which our team is going to improve.

+

Those who missed the workshop will be able to catch up one of the next editions:

+
    +
  • 26-29 August, GUADEC, Thessaloniki - TBC (presentation)
  • +
  • end of September, Python meetup, Zagreb - TBA
  • +
  • 03-05 October, PyCon Balkan, Belgrade - TBC
  • +
  • 11-13 October, HackConf, Sofia
  • +
  • 15-17 October, TestCon Europe, Vilnius - TBC (backup presentation)
  • +
  • 23-25 October, Testwarez, Ossa, Poland - TBC (presentation)
  • +
  • 14-15 November, Software Engineering Conference Russia, Saint-Petersburg - TBC
  • +
  • 20-22 November, ConTEST, New York - TBC (workshop and/or presentation)
  • +
+

Happy testing!

+
+
+
+
+ +

Taking the lead at OpenExpo Europe CfP votes

+
+ + +
+ +
+

Vote for Kiwi TCMS at OpenExpo

+

We are happy to announce that Anton Sankov and Alex Todorov are currently taking +the lead at OpenExpo Europe's CfP votes!

+

Going to OpenExpo will be huge boost for Kiwi TCMS so please help us make this happen! +Voting is open until March 17th 2019! You can cast your vote via Facebook login +but remember to confirm your email address!

+ +

Thank you & happy testing!

+
+
+
+
+ +

Kiwi TCMS is going to FOSDEM 2019

+
+ + +
+ +
+

Hello testers, Kiwi TCMS is going to FOSDEM this year. +This is where you can find us:

+

Kiwi TCMS sticker

+ +

We would like to meet with all of you and talk about test management and +test process organization. In case you are stuck for crazy ideas checkout +our project mission for inspiration.

+

Be part of the community

+

We are turning 10 years old and we have presents for you! You will have to perform +a small challenge and you can get your hands(errr, feet) on a pair of these:

+

Kiwi TCMS socks

+

Here's what else you can do to help us:

+ +

Happy testing!

+
+
+
+
+ +

Kiwi TCMS winter conference presence

+
+ + +
+ +
+

We are happy to announce that OpenFest - the biggest +open source conference in Bulgaria has provided an info booth for our project. +This year the event will be held on 3rd and 4th of November at Sofia Tech Park!

+

Last time the team went to a conference together we had a lot of fun! Join us +at OpenFest to learn more about Kiwi TCMS and have fun with us!

+ + + + + + +

In case you are unable to visit Sofia, which you totally should, you can catch up with +us in Russia until the end of the year:

+ +

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

+
+
+
+
+ +

Kiwi TCMS conference presence

+
+ + +
+ +
+

Kiwi TCMS is going on a small conference tour. This is where you can find us +in the next couple of months:

+ +

For all of the 3 conferences we're going to have a project presence. In addition +to that you can catch-up with Alex Todorov, Kiwi's project lead at: +TestCon Moscow(17-19 April, Moscow), +Romanian Testing Conference(9-11 May, Cluj-Napoca), +PyCon CZ(1-3 June, Prague) and +DEVit(10-11 June, Thessaloniki).

+

If you can ping us at @KiwiTCMS or look for the +kiwi bird logo and come to say hi!

+
+
+ +
+

+ Page 1 / 1 +

+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/tags/index.html b/blog/tags/index.html new file mode 100644 index 00000000..c4902d9b --- /dev/null +++ b/blog/tags/index.html @@ -0,0 +1,158 @@ + + + + + Kiwi TCMS - Kiwi TCMS - Tags + + + + + + + + + + + + + + + +

Tags for Kiwi TCMS

+ + + + + + + + + + + + + \ No newline at end of file diff --git a/blog/tags/plugins/index.html b/blog/tags/plugins/index.html new file mode 100644 index 00000000..01762e67 --- /dev/null +++ b/blog/tags/plugins/index.html @@ -0,0 +1,556 @@ + + + + + Kiwi TCMS - Articles with tag plugins + + + + + + + + + + + + + + + +
+

Articles with tag plugins

+ +
+
+ +

How to use Kiwi TCMS plugins, Pt. 1

+
+ + +
+ +
+

In +release notes for v6.5 +we announced several plugins which will fetch test names and execution results +from your automated test suite.

+

Plugins can be controlled via environment variables which will affect how +test results are recorded in the Kiwi TCMS database! This blog post is an introduction +how that works and what you can do with it! For this purpose I will be using the +plugin-demo repository, which simulates +real development work.

+

Full documentation and list of available plugins is available in chapter +Automation Frameworks Plugins!

+

Always create new TestRun by default

+

The default behavior is always to create a new TestRun if controlling variables +are not overridden! Product name, version and build will receive default values +if tests are running in Travis CI or Jenkins. For example +Travis Build #2 for +commit d455fb4 +creates TR-12 and +TP-10!

+
Product=kiwitcms/plugin-demo
+Version=d455fb42fb7c2aedadfd5f66de7d131109c03350
+Build=2
+
+ + +

Next we convert the README file from Markdown to reStructuredText which triggers +Travis Build #3 for +commit 418b80b. +This build again creates a new TestRun and new TestPlan for it. Respectively +TR-14 and +TP-12!

+
Product=kiwitcms/plugin-demo
+Version=418b80b3bbb65a799f695dc59d488c76f560fa2b
+Build=3
+
+ + +

Important: we can see that version is different which will affect how artifacts +are organized in Kiwi TCMS, possibly affect how you will report status to stakeholders!

+

Override ENV variables for more control

+

Let's say the QA team has decided that all test results must be reported under the +same TestPlan. This means version must be the same between various builds in Travis CI! +To control this we export TCMS_PRODUCT_VERSION=master in CI before executing +the TAP plugin! Checkout the commit on GitHub to see how it is done!

+

This triggers +Travis Build #4 for +commit e484e59. +Because this is the first time where Version == master the plugin creates +TP-14 and reports the results under +TR-16.

+
Product=kiwitcms/plugin-demo
+Version=master
+Build=4
+
+ + +

Right after that I realized we can make this configuration a bit more generic +because our team is planning to support multiple versions of the product and +development will be done in separate branches! +Travis Build #5 for +commit f1f2878 +still ends up with Version == master because we are still working on the master +branch! That is to say, the product is in active mode of development.

+

Results are reported in +TR-18 which is again part of +TP-14.

+
Product=kiwitcms/plugin-demo
+Version=master
+Build=5
+
+ + +

Travis Build #6 for +commit df6153b +adds the new functionality README badges and reports test results in +TR-20 which is again part of +TP-14.

+

More ENV overrides

+

While giving status reports back to stakeholders and developers the information that +we have in the TestRun is Build number! This follows the numbering scheme in Travis CI +(or Jenkins job number) and isn't very useful.

+

Let's define TCMS_BUILD to be the first 7 characters of the commit hash! When QA +tells devel that something isn't working and redirects them to the TestRun they can +immediately use the Build information and git checkout the offending variant of the product +for investigation.

+

This results in +Travis Build #7 for +commit bf75d0a, +TR-22, +TP-14.

+
Product=kiwitcms/plugin-demo
+Version=master
+Build=bf75d0a
+
+ + +

Report results in pre-existing TestRun

+

There are many reasons you may want to do this:

+
    +
  • include both manual and automation tests for the same build;
  • +
  • mix results from multiple test suites for the same build, + e.g. unit, functional, performance
  • +
  • mix results from multiple but similar platforms in the same build, + e.g. cross-platform application for iOS and Android
  • +
+

To do so I've created TR-24 beforehand and +configured TCMS_RUN_ID=24 in my CI environment. TR-24 also contains +TC-57: Verify we can report results from several plugins into the same TR. +this was created and added via the web interface.

+

Note: mixing additional test cases can be done either before or after +automation results are reported with the plugin!

+

Important: when reporting results to an existing TestRun Kiwi TCMS plugins +don't care in which TestPlan this TR is! In theory it is possible to report +the results for Product=kiwitcms/plugin-demo into any TP/TR pair! However we +don't want to do this crazy thing and instead I've created TR-24 inside the already +existing TP-14!

+

Note: because I don't know what is the git commit beforehand I've configured +TR-24 with Build=unspecified. If I wanted I could update this with the correct value +once I know the commit hash for the related changes I am testing.

+

Important: the plugin-demo repository uses both kiwitcms-tap-plugin and +kiwitcms-junit.xml-plugin at the same time! They differ in the way test names +are compiled! Both are reported in TR-24. See TC-57 text for information how to +distinguish between the two.

+

See +Travis Build #8 for +commit 85ad939, +TR-24, +TP-14.

+
Product=kiwitcms/plugin-demo
+Version=master
+Build=unspecified
+
+ + +

Also check-out comments in TR executions to see when and who had executed the test case.

+

So far there have been some tests which were failing (although Travis reports PASS) so +I decided to fix them. +Travis Build #9 for +commit a25b384 +is still configured with TCMS_RUN_ID=24. This means results will be reported in +TR-24, effectively overwriting previous results.

+

Check-out Change Log under each individual execution and you will see several +time stamps when status was updated! In other words, as long as TCMS_RUN_ID is +pointing to an existing TestRun this TR will keep the results of the last test suite execution!

+

Continue development, restore ENV configuration

+

Travis Build #10 for +commit c4f1ae5 +removes TCMS_RUN_ID! Results are reported in +TR-25, +TP-14.

+
Product=kiwitcms/plugin-demo
+Version=master
+Build=c4f1ae5
+
+ + +

Branch out for an LTS version

+

Our team has decided to make the first LTS release of the product. We branch out into +lts-v0 branch in git and cut the first NVR. This results in +Travis Build #11 for +commit 9f1ef71 +TR-27, +TP-16.

+
Product=kiwitcms/plugin-demo
+Version=lts-v0
+Build=9f1ef71
+
+ + +

Because this is the first time we are running tests for this product version +we end up with the newly created TP-16!

+

Note: see how version was populated with the correct value for the git branch! +This is because my CI config uses TCMS_PRODUCT_VERSION=$TRAVIS_BRANCH and no further +changes were required! I made this change back in Travis Build #5 anticipating what +will come in the future!

+

The product is now live and customers have reported critical bugs for it: +URLs for the badges in README are wrong! I fix those and add more tests of course, see: +Travis Build #12 for +commit 2d72754, +TR-29 for +TP-16.

+
Product=kiwitcms/plugin-demo
+Version=lts-v0
+Build=2d72754
+
+ + +

TR-29 contains the new TC-58!

+

cherry-pick between branches

+

In the lts-v0 branch customers have identified a serious issue. It doesn't exist on master +but the test is still valid so I cherry-pick it! In git you can backport or forwardport very +easily. Regardless of the direction Kiwi TCMS plugins will record the test results for you.

+

See +Travis Build #13 for +commit 31ae5b3, +TR-31 for +TP-14.

+

We can see that TC-58, which was originally implemented on the lts-v0 branch +is now present!

+

Summary

+

This is a very basic example of how you can organize collection and reporting for +your automation test suite results with Kiwi TCMS. The links here only refer to +artifacts created by kiwitcms-tap-plugin while in the DB we keep others as well.

+

There are feature requests for more ENV variables which will allow you to control +TestPlan creation and child/parent relationship between test plans. See +https://github.com/kiwitcms/tap-plugin/issues and vote with a :+1: reaction +to help us plan for these features.

+

Kiwi TCMS automation framework plugins are nothing more than result parsers +which talk back to a database. It is up to you to decide how to organize the +collection of test results and how to report on them later, when the need arises.

+

Future installments in this post series will take a look at workflows with +feature branches and pull requests and discuss possible organization scenarios. +You are welcome to share your ideas in the comments below.

+

Happy testing!

+
+
+
+
+ +

Test runner plugin specification

+
+ + +
+ +
+

Happy Monday testers! Kiwi TCMS needs your help! We are looking for developers who +wish to create plugins for popular test runners that will record test results +in Kiwi TCMS! Initially we are looking for plugins for Python's unittest, +Django +and JUnit!

+

What is a test runner?

+

When working with automated testing you have several components:

+
    +
  • A test module (or test script), e.g. test_models.py which contains + tests for your software;
  • +
  • A test framework, e.g. Python nose, which provides the structure + for test classes and methods and assert methods to use;
  • +
  • A test runner, which knows how to discover your test scripts, load them, + execute the testing scenarios inside of them and report the results.
  • +
+

Very often all of the components above live together inside the testing framework +but don't need to. For example the standard unittest module in Python +provides a test runner but there are also nose and py.test and Django provides +its own test runner that knows how to work with the database.

+

Workflow organization

+

Once you agree to writing a plugin we are going to create a separate GitHub +repository where you will be granted write privileges making you an independent +contributor to the Kiwi TCMS project!

+

Design and architecture of the plugin is up to you, following the practices +established by the testing framework in question. You will also have to create +a test suite for your plugin based on the specification below.

+

You are expected to use +public.tenant.kiwitcms.org while working on the +plugin and afterwards. This is known as eating your own dog food!

+

For Python we provide the tcms-api module which already takes care of the +communications layer. For other languages you will have to create this layer or +depend on other open source libraries that provide a XML-RPC or JSON-RPC +client!

+

You can use +this gist +for inspiration!

+

Behavior Specification

+

Please use the comments section to discuss unclear behavior and missing scenarios!

+
    SUMMARY: Will use configuration file if it exists
+    GIVEN: the file ~/.tcms.conf exists
+    WHEN: plugin initializes
+    THEN: the plugin will log an info message, read the file and
+    THEN: configure TCMS_API_URL, TCMS_USERNAME, TCMS_PASSWORD
+          variables with the respective values
+
+
+    SUMMARY: Will use ENVIRONMENT if configuration file doesn't exist
+    GIVEN: the file ~/.tcms.conf does not exists
+    WHEN: plugin initializes
+    THEN: the plugin will read configuration from environment and configure
+          the following variables/class members:
+          TCMS_API_URL, TCMS_USERNAME and TCMS_PASSWORD
+
+
+    SUMMARY: Will exit if TCMS_API_URL not configured
+    GIVEN: TCMS_API_URL variable is empty
+    WHEN: plugin initializes
+    THEN: log a warning message and exit
+    AND: depending on the test runner framework set exist status 1
+
+
+    SUMMARY: Will exit if TCMS_USERNAME not configured
+    GIVEN: TCMS_USERNAME is empty
+    WHEN: plugin initializes
+    THEN: log a warning message and exit
+    AND: depending on the test runner framework set exist status 1
+
+
+    SUMMARY: Will exit if TCMS_PASSWORD not configured
+    GIVEN: TCMS_PASSWORD is empty
+    WHEN: plugin initializes
+    THEN: log a warning message and exit
+    AND: depending on the test runner framework set exist status 1
+
+
+    SUMMARY: Will re-use existing TestPlan if configured
+    GIVEN: TCMS_RUN_ID environment variable is not empty
+    WHEN: plugin initializes
+    THEN:  this will be the Current_TestRun record to which the plugin is
+           going to add test execution results
+    AND: Current_TestPlan document in which the plugin will
+           search for test cases becomes Current_TestRun.plan
+
+
+    SUMMARY: Will create new TestPlan & TestRun if TCMS_RUN_ID not configured
+    GIVEN: TCMS_RUN_ID environment variable is empty
+    THEN: plugin will create a new TestPlan in Kiwi TCMS with attributes:
+        name='Automated test plan for %(product)'
+        product='%(product)'
+        product_version='%(version)'
+        type='Unit'
+    WHERE: %(product) is a placeholder for TCMS_PRODUCT==TRAVIS_REPO_SLUG==JOB_NAME
+           %(version) is a placeholder for TCMS_PRODUCT_VERSION==TRAVIS_COMMIT==TRAVIS_PULL_REQUEST_SHA==GIT_COMMIT
+    THEN: plugin will crate a new TestRun in Kiwi TCMS with attributes:
+        summary='Automated test run ....'
+        plan=Current TestPlan
+        build='%(build)'
+        manager=TCMS_USERNAME
+    WHERE: %(build) is a placeholder for TCMS_BUILD==TRAVIS_BUILD_NUMBER==BUILD_NUMBER
+    Environment variables are specified in:
+    https://docs.travis-ci.com/user/environment-variables#default-environment-variables
+    https://wiki.jenkins.io/display/JENKINS/Building+a+software+project#Buildingasoftwareproject-belowJenkinsSetEnvironmentVariables
+
+    SUMMARY: Will not create duplicate Product, Version & Build if they already exist
+    GIVEN: TCMS_RUN_ID is not configured
+    AND: %(product) exists
+    AND: %(version) exists
+    AND: %(build) exists
+    WHEN: plugin tries to auto-create TestPlan and TestRun
+    THEN: plugin will re-use %(product), %(version) and %(build) from the database
+    AND: not try to auto-create them
+
+
+    SUMMARY: Will auto-create Product, Version & Build if they don't exist
+    GIVEN: TCMS_RUN_ID is not configured
+    AND: %(product) doesn't exist
+    AND: %(version) doesn't exist
+    AND: %(build) doesn't exist
+    WHEN: plugin tries to auto-create TestPlan and TestRun
+    THEN: %(product), %(version) and %(build) be created automatically
+
+
+    SUMMARY: Unit test names are added to TestPlan
+    GIVEN: we have good plugin configuration
+    WHEN: plugin loops over unit tests emitted by the test runner
+    THEN: plugin will check Current_TestPlan for a TestCase with the same name
+    AND: if test case doesn't exist in Current_TestPlan
+    THEN: it will be added to Current_TestPlan
+    hint: it is probably best to process all unit test results at the end!
+
+
+    SUMMARY: Unit test names are added to TestRun
+    GIVEN: we have good plugin configuration
+    WHEN: plugin loops over unit tests emitted by the test runner
+    THEN: plugin will check Current_TestRun for a TestCaseRun object which matches
+          the current unit test name
+    hint: (or Current_TestCase object from previous scenario, depending on implementation)
+    AND: if such TestCaseRun doesn't exist in Current_TestRun
+    THEN: it will be added to Current_TestRun
+    hint: it is probably best to process all unit test results at the end!
+
+
+    SUMMARY: Current_TestRun is updated with unit test results
+    GIVEN: we have good plugin configuration
+    WHEN: plugin loops over unit tests emitted by the test runner
+    THEN: plugin will check Current_TestRun for a TestCaseRun object which matches
+          the current unit test name
+    hint: (or Current_TestCase object from previous scenario, depending on implementation)
+    AND: if TestCaseRun object exists in Current_TestRun
+    THEN: its status will be updated with the execution result coming from the test runner
+    hint: it is probably best to process all unit test results at the end!
+
+ + +

Happy testing!

+
+
+ +
+

+ Page 1 / 1 +

+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/tags/releases/index.html b/blog/tags/releases/index.html new file mode 100644 index 00000000..a1142bd5 --- /dev/null +++ b/blog/tags/releases/index.html @@ -0,0 +1,3530 @@ + + + + + Kiwi TCMS - Articles with tag releases + + + + + + + + + + + + + + + +
+

Articles with tag releases

+ +
+
+ +

Kiwi TCMS 11.6

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 11.6! This is our first release +after the very positive reception we had at +WebSummit 2022!

+

IMPORTANT: this is a small release which contains security updates, +general improvements, bug fixes and 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)
+
+
+

---

+
+

Upstream container images (x86_64):

+
+kiwitcms/kiwi   latest  9773335a58d1    612MB
+
+
+

IMPORTANT: version tagged and multi-arch +container images are available only to +subscribers!

+
+

Changes since Kiwi TCMS 11.5

+
+

Security

+ +
+
+

Improvements

+
    +
  • Update django-extensions from 3.2.0 to 3.2.1

    +
  • +
  • Update jira from 3.4.0 to 3.4.1

    +
  • +
  • Update psycopg2 from 2.9.3 to 2.9.5

    +
  • +
  • Update pygithub from 1.55 to 1.57

    +
  • +
  • Update python-gitlab from 3.9.0 to 3.11.0

    +
  • +
  • Update tzdata from 2022.2 to 2022.6

    +
  • +
  • Container is now built on top of Red Hat Enteroprise Linux 9 and Python 3.9

    +

    Warning:

    +
    +

    There is high risk of breaking downstream containers. Pay attention to +bind-mounted settings files. Inspect downstream Dockerfile & docker-compose.yml +files !!!

    +
    +
  • +
  • Unify some translation strings

    +
  • +
  • Document add-on issue tracker integrations

    +
  • +
  • Rename Properties to Parameters because "test case parameters" is +more widely used

    +
  • +
+
+
+

Bug fixes

+
    +
  • JIRA.get_issue_type_from_jira() now accepts a second argument. Fixes +Issue #2929 (@cmbahadir)
  • +
  • Fix typo in documentation (Christian Clauss)
  • +
  • Trim white-space after splitting parameter values. For example the inputs +'OS=Linux' and 'OS = Windows ' will result in +Key: 'OS', Values: ['Linux', 'Windows']
  • +
+
+
+

Refactoring and testing

+
    +
  • Update Fedora from 32 to 36 in /tests/bugzilla
  • +
  • Remove Travis CI config b/c we don't use it anymore
  • +
  • Add Coverity Scan as a GitHub action
  • +
  • Don't scan devel dependencies with Coverity Scan
  • +
  • Redirect to where we came from in case posting a comment results in invalid +form
  • +
  • Configure Dependabot to update Docker containers and try tightening security +around docker containers used during testing
  • +
  • Use npm audit fix to automatically update some Node.js dependecies
  • +
  • Execute npm audit signatures when installing Node.js packages
  • +
  • Start using find_namespace_packages() to resolve +'Package would be ignored' warnings from setuptools
  • +
  • Add missing field in setup() to avoid a warning
  • +
+
+ +
+
+

Kiwi TCMS Enterprise v11.6-mt

+
    +
  • Based on Kiwi TCMS v11.6

    +
  • +
  • Update containers for RHEL 9, CentOS Stream 9 and Python 3.9

    +
  • +
  • Update actions/checkout from 2 to 3

    +
  • +
  • Update django-ses from 3.1.2 to 3.2.2

    +
  • +
  • Update kiwitcms-tenants from 2.3.1 to 2.3.2

    +
  • +
  • Update kiwitcms-trackers-integration from 0.2.0 to 0.3.0. +Supports integration with OpenProject and Mantis BT. +Closes Issue #2203 and +Issue #879

    +
    +

    Private images:

    +
    +quay.io/kiwitcms/version            11.6 (aarch64)          cf244e2f1dac    08 Nov 2022     636MB
    +quay.io/kiwitcms/version            11.6 (x86_64)           9773335a58d1    08 Nov 2022     612MB
    +quay.io/kiwitcms/enterprise         11.6-mt (aarch64)       55cf76524ebd    08 Nov 2022     858MB
    +quay.io/kiwitcms/enterprise         11.6-mt (x86_64)        61f48a62666b    08 Nov 2022     832MB
    +
    +
    +
  • +
+

IMPORTANT: version tagged, multi-arch 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 upgrade
+
+

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

+ +
+ +
+
+
+
+ +

Kiwi TCMS 11.5

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 11.5!

+

IMPORTANT: +This is a small release which contains several improvements, bug fixes +and 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)
+
+
+

---

+
+

Upstream container images (x86_64):

+
+kiwitcms/kiwi   latest  66c51b64e0a6    608MB
+
+
+

IMPORTANT: version tagged and multi-arch +container images are available only to +subscribers!

+
+

Changes since Kiwi TCMS 11.4

+
+

Improvements

+
    +
  • Update jira from 3.3.1 to 3.4.0
  • +
  • Update pygments from 2.12.0 to 2.13.0
  • +
  • Update python-gitlab from 3.7.0 to 3.9.0
  • +
  • Update tzdata from 2022.1 to 2022.2
  • +
  • Add Product drop down field in Build admin page. Closes +Issue #2818
  • +
  • Add 'prune' argument required for Django 4.1 compatibility
  • +
  • Improve documentation around DEFAULT_GROUPS
  • +
  • Update docs about language preferences and add a Change language menu item. Closes +Issue #2901, +Issue #2902, +Issue #2903
  • +
  • Performance improvement for Status matrix telemetry
  • +
  • Performance improvement for Execution trends telemetry
  • +
  • Display a spinner widget while telemetry data is still loading. Closes +Issue #1801
  • +
+
+
+

Bug fixes

+
    +
  • Fix error Jquery deferred: No length property of null object (@cmbahadir)
  • +
+
+
+

Refactoring and testing

+
    +
  • Add test for AnonymousViewBackend & auth. permissions
  • +
  • Exclude auth.view_ permissions from AnonymousViewBackend
  • +
  • Specify 30 seconds timeout for internal requests via the requests library
  • +
+
+ +
+
+

Kiwi TCMS Enterprise v11.5-mt

+
    +
  • Based on Kiwi TCMS v11.5

    +
  • +
  • Update django-python3-ldap from 0.15.2 to 0.15.3

    +
  • +
  • Update django-ses from 3.1.0 to 3.1.2

    +
  • +
  • Update kiwitcms-tenants from 2.1.1 to 2.3.0

    +
  • +
  • Update kiwitcms-github-app from 1.3.3 to 1.4.0

    +
    +

    Private images:

    +
    +quay.io/kiwitcms/version            11.5 (aarch64)          4be7894de8ae    06 Sep 2022     638MB
    +quay.io/kiwitcms/version            11.5 (x86_64)           66c51b64e0a6    06 Sep 2022     608MB
    +quay.io/kiwitcms/enterprise         11.5-mt (aarch64)       82d64398d8bf    06 Sep 2022     862MB
    +quay.io/kiwitcms/enterprise         11.5-mt (x86_64)        8a5b0b58bcca    06 Sep 2022     829MB
    +
    +
    +
  • +
+

IMPORTANT: version tagged, multi-arch 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 upgrade
+
+

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

+ +
+ +
+
+
+
+ +

Kiwi TCMS 11.4

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 11.4!

+

IMPORTANT: +This is a medium sized release which contains security related updates, +multiple improvements, database and API changes, new settings, bug fixes +and 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)
+
+
+

---

+
+

Upstream container images (x86_64):

+
+kiwitcms/kiwi   latest  8c8356c0268d    610MB
+
+
+

IMPORTANT: version tagged and multi-arch +container images are available only to +subscribers!

+
+

Changes since Kiwi TCMS 11.3

+
+

Security

+ +
+
+

Improvements

+
    +
  • Update bleach from 5.0.0 to 5.0.1
  • +
  • Update django-colorfield from 0.6.3 to 0.7.2
  • +
  • Update django-extensions from 3.1.5 to 3.2.0
  • +
  • Update django-tree-queries from 0.9.0 to 0.11.0
  • +
  • Update jira from 3.2.0 to 3.3.1
  • +
  • Update markdown from 3.3.6 to 3.4.1
  • +
  • Update mysqlclient from 2.1.0 to 2.1.1
  • +
  • Update python-gitlab from 3.3.0 to 3.7.0
  • +
  • Update node_modules/marked from 4.0.14 to 4.0.18
  • +
  • Relax docutils requirement. Use latest version
  • +
  • Add template block which will allow logo customizations (Ivajlo Karabojkov)
  • +
  • Don't show PLUGINS menu when no plugins are installed. References +Issue #2729
  • +
  • Add information about Kiwi TCMS user to 1-click bug reports. Closes +Issue #2591
  • +
  • Use a better icon to signify a manual test inside the user interface
  • +
  • Change UserAdmin to be permission based instead of being role-based. +Fixes Issue #2496
  • +
  • Allow post-processing of automatically created issues. Closes +Issue #2383
  • +
  • Allow more customization over issue type discovery for Jira. Closes +Issue #2833
  • +
  • Allow more customization over project discovery for Jira
  • +
  • Allow more customization over Redmine tracker. Closes +Issue #2382
  • +
  • Allow DB settings to be read from Docker Secret files. Fixes +Issue #2606
  • +
  • Add filter on TestRun page to show test executions assigned to the +current user. Closes +Issue #333
  • +
  • Add URL for creating new TestRun from a TestPlan. The format is +/runs/from-plan/<plan-id>/. Closes +Issue #274
  • +
  • Add bug.Severity attribute which is fully customizeable. Closes +Issue #2703
  • +
  • Update documentation around TCMS_ environment variables +used by automation plugins
  • +
  • Update documentation to denote that pytest plugin is now generally available
  • +
  • Document necessary permissions for adding new users. References +Issue #2496
  • +
+
+
+

Database

+
    +
  • New migration for bug.Severity model
  • +
+
+
+

Settings

+ +
+
+

API

+
    +
  • If default_tester field is not specified for TestRun.create() method +then use the currently logged-in user.
  • +
  • Return value for method TestExecution.filter() now contains fields +expected_duration and actual_duration. Closes +Issue #1924
  • +
  • Return value for method Bug.filter() now contains fields +severity__name, severity__icon and severity__color
  • +
+
+
+

Bug fixes

+
    +
  • Adjust field name when rendering test execution on TestRun page. Fixes +Issue #2794
  • +
  • Render rich text editor preview via backend API:
      +
    • Makes display on HTML pages and editor preview the same. Fixes +Issue #2659
    • +
    • Fixes a bug with markdown rendered in JavaScript. Fixes +Issue #2711
    • +
    +
  • +
  • Stop propagation of HTML unescape which causes display issues with +code snippets that contain XML values. Fixes +Issue #2800
  • +
  • Show bug text only when creating new records, not when editing
  • +
  • Properly display & validate related form fields when editing bugs
  • +
  • Don't send duplicate emails when editing bugs. Fixes +Issue #2782
  • +
+
+
+

Refactoring and testing

+
    +
  • Convert two assignment statements to augmented source code. Closes +Issue #2610 (Markus Elfring)

    +
  • +
  • Rename method IssueTrackerType.report_issue_from_testexecution():

    +
      +
    • Rename to _report_issue() which returns tuple of (object, str)
    • +
    • In case new issue was not created automatically and the method falls +back to manual creation the return value will be (None, str)
    • +
    • report_issue_from_testexecution() will call _report_issue() +internally and handle the change in return type
    • +
    +
    +

    Note

    +
      +
    • This change is backwards compatible!
    • +
    • For customized issue tracker integration you will have to apply +the same changes to your customized code if you wish new functionality, +like post-processing of automatically created issues to work.
    • +
    +
    +
  • +
  • Add tests for backup & restore commands. Closes +Issue #2695

    +
  • +
  • Update versions of several CI tools

    +
  • +
  • Updates around new version of pylint

    +
  • +
  • Use codecov-action to upload coverage results

    +
  • +
  • Remove setuptools and other workarounds in tests

    +
  • +
  • Don't special case dependencies which already provide wheel packages

    +
  • +
  • Workaround an issue with setuptools_git_archive introduced by jira==3.2.0

    +
  • +
  • Workaround the fact that django-ranged-response doesn't provide wheels

    +
  • +
  • Report test results via kiwitcms-django-plugin. Closes +Issue #1757

    +
  • +
+
+
+

Translations

+ +
+
+
+

Kiwi TCMS Enterprise v11.4-mt

+
    +
  • Based on Kiwi TCMS v11.4

    +
  • +
  • Update django-python3-ldap from 0.13.1 to 0.15.2

    +
  • +
  • Update django-ses from 3.0.1 to 3.1.0

    +
  • +
  • Update dj-database-url from 0.5.0 to 1.0.0

    +
  • +
  • Add more icons for extra GitHub login backends

    +
  • +
  • Add images for various Google login backends

    +
    +

    Private images:

    +
    +quay.io/kiwitcms/enterprise         11.4-mt (aarch64)       f5720d030612    03 Aug 2022     862MB
    +quay.io/kiwitcms/enterprise         11.4-mt (x86_64)        8ffd5a64a4d1    03 Aug 2022     829MB
    +quay.io/kiwitcms/version            11.4 (aarch64)          62207c605dcf    03 Aug 2022     639MB
    +quay.io/kiwitcms/version            11.4 (x86_64)           8c8356c0268d    03 Aug 2022     610MB
    +
    +
    +
  • +
+

IMPORTANT: version tagged, multi-arch 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 upgrade
+
+

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

+ +
+ +
+
+
+
+ +

New versions of automation framework plugins

+
+ + +
+ +
+

Kiwi TCMS is pleased to announce new versions of our plugins for different +test automation frameworks:

+ +

These new versions are compatible with Kiwi TCMS v11.x and include several improvements +and bug fixes. Check-out the pages above for individual information and instructions on +how to use them.

+

Happy testing!

+

---

+

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

+ + +
+
+
+
+ +

Kiwi TCMS 11.3

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 11.3 which is the 100th tagged version +in our git repository!

+

IMPORTANT: +This is a small release which contains security related updates, several improvements, +bug fixes and new translations! Most importantly the kiwitcms-tenants plugin now supports +tenant groups and permissions!

+

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

---

+
+

Upstream container images (x86_64):

+
+kiwitcms/kiwi   latest  58dcfa91e816    629MB
+
+
+

IMPORTANT: version tagged and multi-arch +container images are available only to +subscribers!

+
+

Changes since Kiwi TCMS 11.2

+
+

Security

+ +
+
+

Improvements

+
    +
  • Update bleach from 4.1.0 to 5.0.0
  • +
  • Update django-tree-queries from 0.7.0 to 0.9.0
  • +
  • Update jira from 3.1.1 to 3.2.0
  • +
  • Update pygments from 2.11.2 to 2.12.0
  • +
  • Update python-gitlab from 3.2.0 to 3.3.0
  • +
  • Update tzdata from 2021.5 to 2022.1
  • +
  • Update node_modules/marked from 4.0.12 to 4.0.14
  • +
  • Update node_modules/prismjs from 1.27.0 to 1.28.0
  • +
  • Allow overriding of Azure Boards API version. Closes +Issue #2717
  • +
  • If tenant_groups is enabled then refresh_permissions command will +update default tenant groups too
  • +
  • Document tenant-group permissions
  • +
+
+
+

Settings

+
    +
  • New setting AZURE_BOARDS_API_VERSION, defaults to 6.0. Can be overriden +directly in settings or via environment variable with the same name
  • +
+
+
+

Bug fixes

+
    +
  • Patch for repositories under GitLab subgroups. Fixes +Issue #2643 (@cmeissl)
  • +
  • Don't crash if a comment user has been removed. Fixes +KIWI-TCMS-HZ
  • +
+
+
+

Refactoring

+
    +
  • Split Users & Groups menu items under ADMIN entry in navigation
  • +
  • [pre-commit.ci] updates
  • +
  • pylint adjustments
  • +
+
+
+

Translations

+ +
+
+
+

Kiwi TCMS Enterprise v11.3.1-mt

+
    +
  • Based on Kiwi TCMS v11.3

    +
  • +
  • Update django-ses from 2.6.0 to 3.0.1

    +
  • +
  • Update kiwitcms-tenants from 1.11.0 to 2.1.1 for +tenant groups support

    +
    +

    Private images:

    +
    +quay.io/kiwitcms/enterprise         11.3.1-mt (aarch64  58a53d616105    27 Apr 2022     894MB
    +quay.io/kiwitcms/enterprise         11.3.1-mt (x86_64)  3b5e7fbd234a    27 Apr 2022     847MB
    +quay.io/kiwitcms/version            11.3 (aarch64)      e9f34a86cd0b    27 Apr 2022     671MB
    +quay.io/kiwitcms/version            11.3 (x86_64)       58dcfa91e816    27 Apr 2022     627MB
    +
    +
    +
  • +
+

IMPORTANT: version tagged, multi-arch 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 upgrade
+
+

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

+ +
+ +
+
+
+
+ +

Kiwi TCMS 11.2

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 11.2.

+

IMPORTANT: +This is a small release which contains several improvements, new API methods, +internal refactoring and new translations! This is the first release to ship +aarch64 container images!

+

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

---

+
+

Upstream container images (x86_64):

+
+kiwitcms/kiwi   latest  bcc4c658440a    622MB
+
+
+

IMPORTANT: version tagged and multi-arch +container images are available only to +subscribers!

+
+

Changes since Kiwi TCMS 11.1

+
+

Improvements

+
    +
  • Update django from 4.0.2 to 4.0.3
  • +
  • Update django-grappelli from 3.0.2 to 3.0.3
  • +
  • Update django-simple-captcha from 0.5.14 to 0.5.17
  • +
  • Update python-bugzilla from 3.1.0 to 3.2.0
  • +
  • Update python-gitlab from 3.1.1 to 3.2.0
  • +
  • Update node_modules/prismjs from 1.26.0 to 1.27.0
  • +
  • Add new command to perform a collection of post-upgrade tasks. +Kiwi TCMS admins are advised to replace +manage.py migrate with manage.py upgrade (Ivajlo Karabojkov)
  • +
+
+
+

API

+
    +
  • New API method Category.create(). Fixes +Issue #2705 (Erik Heeren)
  • +
  • New API method Classification.create(). Fixes +Issue #2705 (Erik Heeren)
  • +
+
+
+

Refactoring and testing

+
    +
  • Add docker build & push automation
  • +
  • Fix Bandit exclusion rule
  • +
  • Test and build on aarch64
  • +
  • Apply auto fixes fro pre-commit.ci
  • +
  • Apply auto fixes from Deepsource
  • +
  • Update versions of several GitHub Actions
  • +
  • Use the appropriate path to package.json for Dependabot
  • +
  • Remove old Telemetry link in menu to avoid confusion
  • +
+
+ +
+
+

Kiwi TCMS Enterprise v11.2-mt

+
    +
  • Based on Kiwi TCMS v11.2

    +
  • +
  • Update django-ses from 2.4.0 to 2.6.0

    +
  • +
  • Update python3-saml from 1.13.0 to 1.14.0

    +
  • +
  • Revert "Use django.contrib.staticfiles.storage from Django==3.2.12". +Instead use the implementation from latest Django version. Closes +Issue #140

    +
  • +
  • Start building kiwitcms/enterprise on aarch64

    +
  • +
  • Add changelog check & docker release automation

    +
  • +
  • Add test for PSA login URLs on login page. References +Issue #83

    +
  • +
  • Add SAML & Azure AD logo images

    +
  • +
  • Update GitHub Actions

    +
  • +
  • Hard-code testing with Keycloak 16.1.1 to workaround significant differences +with Keycloak v17 container

    +
    +

    Private images:

    +
    +quay.io/kiwitcms/enterprise         11.2-mt (aarch64)   fe5e869e36f6    09 Mar 2022    890MB
    +quay.io/kiwitcms/enterprise         11.2-mt (x86_64)    134320d5fb7c    09 Mar 2022    841MB
    +quay.io/kiwitcms/version            11.2 (aarch64)      3b782830d19d    09 Mar 2022    665MB
    +quay.io/kiwitcms/version            11.2 (x86_64)       bcc4c658440a    09 Mar 2022    620MB
    +
    +
    +
  • +
+

IMPORTANT: version tagged, multi-arch 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 upgrade
+
+

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 11.1

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 11.1.

+

IMPORTANT: +This is a small release which contains security related updates, several improvements, +bug fixes and 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)
+
+
+

---

+
+

Container images:

+
+kiwitcms/kiwi       latest  72099aa8ee93    629 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
+
+
+

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

+
+

Changes since Kiwi TCMS 11.0

+
+

Security

+
    +
  • Update Django from 3.2.10 to 4.0.2 to fix several fulnerabilities: +CVE-2022-22818, CVE-2022-23833, CVE-2021-45115, CVE-2021-45116, +CVE-2021-45452. Of those we believe that only +CVE-2022-23833: Denial-of-service possibility in file uploads may directly +impact Kiwi TCMS
  • +
+
+
+

Improvements

+
    +
  • Update django-contrib-comments from 2.1.0 to 2.2.0
  • +
  • Update django-uuslug from 1.2.0 to 2.0.0
  • +
  • Update python-gitlab from 3.1.0 to 3.1.1
  • +
  • Update node_modules/marked from 4.0.10 to 4.0.12
  • +
+
+
+

Database

+
    +
  • New migration for django-simple-captcha
  • +
+
+
+

Settings

+
    +
  • RECAPTCHA_PUBLIC_KEY, RECAPTCHA_PRIVATE_KEY and RECAPTCHA_USE_SSL +are no longer in use
  • +
  • New setting USE_CAPTCHA, defaults to True
  • +
  • The string "captcha" is added to INSTALLED_APPS
  • +
+
+
+

Bug fixes

+
    +
  • Fix inappropriate RPC calls causing Version and Build dropdown widgets to +display no values. Fixes +Issue #2704
  • +
+
+
+

Refactoring and testing

+
    +
  • Add tzdata to requirements
  • +
  • Replace django-recaptcha with django-simple-captcha
  • +
  • Adjust /init-db view to reliably detect when applying database migrations +is complete and not exit prematurely
  • +
+
+
+

Translations

+ +
+
+
+

Kiwi TCMS Enterprise v11.1-mt

+
    +
  • Based on Kiwi TCMS v11.1

    +
  • +
  • Update kiwitcms-github-app from 1.3.2 to 1.3.3

    +
  • +
  • Update django-ses from 2.3.1 to 2.4.0

    +
  • +
  • Update python3-saml from 1.12.0 to 1.13.0

    +
  • +
  • Workaround UnicodeDecodeError while building the docker image

    +
    +

    Private images:

    +
    +quay.io/kiwitcms/enterprise         11.1-mt         df5ce509fd41   854 MB
    +quay.io/kiwitcms/version            11.1            72099aa8ee93   629 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 11.0

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 11.0.

+

IMPORTANT: +This is a new major release which contains security related updates, several improvements, +API changes, bug fixes and 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)
+
+
+

---

+
+

Container images:

+
+kiwitcms/kiwi       latest  6600bc56a544    622 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
+
+
+

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

+
+

Changes since Kiwi TCMS 10.5

+
+

Improvements

+
    +
  • Update Django to 3.2.11
  • +
  • Update django-colorfield from 0.4.5 to 0.6.3
  • +
  • Update django-grappelli from 2.15.3 to 3.0.2
  • +
  • Update psycopg2 from 2.9.2 to 2.9.3
  • +
  • Update pygments from 2.10.0 to 2.11.2
  • +
  • Update python-gitlab from 2.10.1 to 3.1.0
  • +
  • Update node_modules/prismjs from 1.25.0 to 1.26.0
  • +
  • Update node_modules/marked from 2.1.3 to 4.0.10
  • +
  • Admin panel now allows to view, add, edit and delete Environment records
  • +
  • Allow selection of environment when creating new TestRun and display the chosen +values inside the TestRun page. Closes +Issue #1344
  • +
  • Creating a TestRun will now generate test execution matrix based on the available +environment and test case properties. Closes +Issue #1843
  • +
  • When generating a test execution matrix the supported algorithms are +"full" and "pairwise". Closes +Issue #1931
      +
    • Feature is enabled for test runs which contain test cases. This +feature is not shown when creating an empty test run
    • +
    • This feature isn't supported when subsequently adding new test cases +to test run
    • +
    +
  • +
  • Record a random hex number under /Kiwi/uploads/installation-id
  • +
+

Detailed information about properties, environments and test matrix generation +can be found +in a separate article.

+
+
+

Database

+
    +
  • New model testrun.Environment
  • +
  • New model testrun.EnvironmentProperty
  • +
  • New model testrun.Property
  • +
+

Warning:

+
+

These newly added models create additional permission labels with names +testruns | environment | Can .... environment, +testruns | property | Can .... property, +testruns | environment property | Can .... environment 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!

+
+
+
+

Settings

+
    +
  • Update the value of MODERNRPC_METHODS_MODULES setting to include +modules with the new API methods
  • +
+
+
+

API

+
    +
  • Method TestRun.add_case will now return a list.

    +
    +

    Warning

    +

    This breaks API compatibility with older versions and will break +all plugins which rely on this method. Use plugins v11 or greater!

    +
    +
  • +
  • Method TestRun.add_case return value will now include a field named +properties

    +
  • +
  • New methods Environment.properties, Environment.add_property and +Environment.remove_property

    +
  • +
  • New method TestRun.properties

    +
  • +
+
+
+

Bug fixes

+
    +
  • Send e-mail notification when adding comments to bugs. Fixes +Issue #2232 (@cmbahadir)
  • +
  • Disable the "+" button when there is no related element selected. Fixes +Issue #2561 (@cmbahadir)
  • +
  • When cloning test plans keep the existing test case sort order inside +the resulting test plan. Fixes +Issue #2218 (Nicolas Gelot)
  • +
  • Configure en_US.UTF-8 locale inside container. Allows upload of files with +unicode names. Fixes +Issue #2600
  • +
+
+
+

Refactoring and testing

+
    +
  • Refresh logo design
  • +
  • Pylint fixes
  • +
  • Pin setuptools b/c of problem with django-extensions
  • +
  • Remove redundant test scenario
  • +
  • Shell script refactoring
  • +
+
+ +
+
+

Kiwi TCMS Enterprise v11.0-mt

+
    +
  • Based on Kiwi TCMS v11.0

    +
  • +
  • Update kiwitcms-tenants from 1.8.0 to 1.11.0

    +
    +

    Private images:

    +
    +quay.io/kiwitcms/enterprise         11.0-mt         a730291750f8   846 MB
    +quay.io/kiwitcms/version            11.0            6600bc56a544   622 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 Enterprise 10.5.1

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS Enterprise version 10.5.1!

+

IMPORTANT: +this is a small release which contains minor improvements and bug-fixes.

+

You can explore everything at +https://public.tenant.kiwitcms.org!

+
+

Kiwi TCMS Enterprise v10.5.1-mt

+
    +
  • Based on Kiwi TCMS v10.5

    +
  • +
  • Update django-python3-ldap from 0.13.0 to 0.13.1

    +
  • +
  • Update kiwitcms-github-app from 1.3.1 to 1.3.2

    +
    +

    Private images:

    +
    +quay.io/kiwitcms/enterprise         10.5.1-mt       c4d745bd914c   806MB
    +
    +
    +
  • +
+

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!

+ +
+ +
+
+
+
+ +

New versions of automation frameworks plugins

+
+ + +
+ +
+

Kiwi TCMS is pleased to announce new versions of our plugins for different +test automation frameworks:

+ +

The new versions are future compatible with upcoming Kiwi TCMS v11 and also with existing +Kiwi TCMS v10.x installations. Check-out the pages above for individual instructions.

+

Happy testing!

+

---

+

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

+ + +
+
+
+
+ +

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

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

+
+

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

+
    +
  • Add tests for missing coverage in kiwi_auth.admin. References +Issue #1607 +(Mariyan Garvanski)
  • +
  • Fix some eslint issues and formatting in testcases/js/get.js
  • +
  • Use shorter URL when cloning test cases from TP page. References +Issue #1054
  • +
  • Limit URI size to 10KiB. This alone should allow for more than 1000 PKs +specified for cloning. In addition Django itself limits the maximum number of +GET/POST fields to 1000 via the DATA_UPLOAD_MAX_NUMBER_FIELDS setting, +see https://docs.djangoproject.com/en/3.2/ref/settings/#data-upload-max-number-fields. +Closes +Issue #1054
  • +
+
+ +
+
+

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!

+ +
+ +
+
+
+
+ +

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

Translations

+ +
+
+
+

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

+ +
+ +
+
+
+
+ +

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!

+ +
+ +
+
+
+
+ +

Kiwi TCMS 8.8

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 8.8!

+

IMPORTANT: this release includes many improvements, +API changes, bug fixes, translation updates, new tests and internal refactoring. +It is the sixth release to include contributions via our +open source bounty program. +You can explore everything at +https://public.tenant.kiwitcms.org!

+

This is also the first 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  4b31ecf8ab5b    654 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.7

+
+

Improvements

+
    +
  • Update bleach from 3.1.5 to 3.2.1
  • +
  • Update django-extensions from 3.0.8 to 3.0.9
  • +
  • Update django from 3.1.1 to 3.1.3
  • +
  • Update django-simple-history from 2.11.0 to 2.12.0
  • +
  • Update markdown from 3.2.2 to 3.3.3
  • +
  • Update pygments from 2.7.0 to 2.7.2
  • +
  • Update python-bugzilla from 2.5.0 to 3.0.1
  • +
  • Update node_modules/marked from 1.1.1 to 1.2.3
  • +
  • Update node_modules/prismjs from 1.21.0 to 1.22.0
  • +
  • Add management command refresh_permission. Closes +Issue #1137 (Ivajlo Karabojkov)
  • +
  • Add bug tracker integration for Azure Boards. Closes +Issue #1979 (@cmbahadir)
  • +
  • Add autosave configuration to web editor. Closes +Issue #1958 (Mfon Eti-mfon)
  • +
  • Change ON/OFF buttons messages to Yes/No for several buttons (Alexander Tsvetanov)
  • +
  • Add support for object-level permissions for TestCase, +TestPlan, TestRun and Bug objects via django-guardian
  • +
  • Complete redesign of Test Plan page to match the rest of Kiwi TCMS:
      +
    • modern look and feel using the PatternFly UI library
    • +
    • remove unused legacy code & HTML templates
    • +
    • closes +Issue #663, +Issue #1977
    • +
    +
  • +
  • Enable Markdown support for strike-through text
  • +
  • Always pull latest RPMs when building container images
  • +
  • Update documentation and images
  • +
+
+
+

Settings

+
    +
  • AUTHENTICATION_BACKENDS setting is now explicitly specified because of +django-guardian. Take care to include the default backends if you +override this setting. See tcms/settings/common.py for more information.
  • +
+
+
+

Database

+
    +
  • Add index to TestCase.summary field
  • +
  • Additional migrations from django-guardian around object-level permissions
  • +
  • New AnonymousUser record added by django-guardian
  • +
  • Start using django-tree-queries which improves how tree based structures +are stored in the database.
  • +
+

important:

+
+Requires PostgreSQL, sqlite3 >= 3.8.3, MariaDB >= 10.2.2 or +MySQL >= 8.0 (if running without ONLY_FULL_GROUP_BY).
+

warning:

+
+Supports only trees with max. 50 levels on MySQL/MariaDB, since those databases +do not support arrays and require us to provide a maximum length upfront. +This means up to 50 levels of nested child-parent test plans!
+
+
+

API

+
    +
  • Method TestExecution.update() will now modify field close_date +depending on test execution status. Fixes +Issue #1820
  • +
  • Method TestCase.add_comment() now returns the created comment
  • +
  • Method TestExecution.add_comment() now returns the created comment
  • +
  • Method TestPlan.add_case() now returns the newly added test case
  • +
  • Add method TestCase.sortkeys(). Fixes +Issue #444
  • +
  • Add method Markdown.render()
  • +
  • Add method TestCase.comments()
  • +
  • Add method TestPlan.tree()
  • +
+
+
+

Bug fixes

+
    +
  • Fix url formatting. Fixes +Issue #1806 (Rosen Sasov)
  • +
  • When deleting TestExecutionStatus check that there will be at least 1 left +before deleting! Closes +Issue #1978
  • +
  • Update typeahead definitions for test case components, tags and +for adding test plans to test cases. Fixes +Issue #882
  • +
  • Add option to filter by reviewer in Test Plan page. Fixes +Issue #564
  • +
  • Pass the number of disabled test cases to HTML template when +creating a new test run. Fixes +Issue #718
  • +
+
+
+

Refactoring & testing

+
    +
  • New linter to warn against GenericForeignKey fields in models. Closes +Issue #1303 (Bryan Mutai)
  • +
  • Add tests for assign_default_group_permissions() (Ivajlo Karabojkov)
  • +
  • Add tests for TestExecutionStatusAdmin. Refs +Issue #1618 (Mariyan Garvanski)
  • +
  • Add tests for tcms.bugs.views.Search. Closes +Issue #1601 (Mfon Eti-mfon)
  • +
  • Add tests for tcms.rpc.api.testrun. Closes +Issue #1628 (@lcmtwn)
  • +
  • Add tests for tcms.rpc.api.classification. Closes +Issue #1621 (Abhishek Chaurasia)
  • +
  • Add tests for tcms.rpc.api.priority. Closes +Issue #1622 (Abhishek Chaurasia)
  • +
  • Add tests for tcms.rpc.api.testcasestatus. Closes +Issue #1624 (Abhishek Chaurasia)
  • +
  • Add tests for tcms.rpc.api.attachment. Closes +Issue #1619 (@awalvie)
  • +
  • Add tests for tcms.rpc.api.testexecution.remove_comment. Closes +Issue #1625 (@awalvie)
  • +
  • Add tests for tcms.rpc.api.testexecutionstatus. Closes +Issue #1626 (@awalvie)
  • +
  • Add tests for TestRun.add_case_run() method and rename it to +TestRun.create_execution()
  • +
  • libkrb5-dev is not needed anymore in CI with newer tcms-api
  • +
  • Use Fedora 32 to build Bugzilla docker image in CI
  • +
  • Update signature for overriden class to match Django 3.1
  • +
  • Move SimpleMDE initialization to simplemde_security_overide.js
  • +
  • Move post_save.send() from bugs.views to comments.add_comment()
  • +
+
+ +
+
+

Kiwi TCMS Enterprise v8.8-mt

+
    +
  • Based on Kiwi TCMS v8.7
  • +
  • Update kiwitcms-github-app from 1.2 to 1.2.
  • +
+

For more info see +https://github.com/kiwitcms/enterprise#v88-mt-07-nov-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 / 4 +

+ Older Posts +
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/tags/releases/index2.html b/blog/tags/releases/index2.html new file mode 100644 index 00000000..a05edada --- /dev/null +++ b/blog/tags/releases/index2.html @@ -0,0 +1,3123 @@ + + + + + Kiwi TCMS - Articles with tag releases + + + + + + + + + + + + + + + +
+

Articles with tag releases

+ +
+
+ +

Kiwi TCMS 8.7

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 8.7!

+

IMPORTANT: this is a medium sized release which includes +improvements, API changes, bug fixes, translation updates and +new tests. It is the fifth 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  1f2461b1facd    643 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.6

+
+

Improvements

+
    +
  • Update Django from 3.0.9 to 3.1.1

    +
  • +
  • Update django-attachments from 1.6 to 1.8

    +
  • +
  • Update django-extensions from 3.0.5 to 3.0.8

    +
  • +
  • Update psycopg2 from 2.8.5 to 2.8.6

    +
  • +
  • Update pygments from 2.6.1 to 2.7.0

    +
  • +
  • Update python-gitlab from 2.4.0 to 2.5.0

    +
  • +
  • Make it possible to use reCAPTCHA during registration. If you want to enable +this then add the following to your settings:

    +
    +if 'captcha' not in INSTALLED_APPS:
    +    INSTALLED_APPS.append('captcha')
    +
    +    RECAPTCHA_PUBLIC_KEY = '......'
    +    RECAPTCHA_PRIVATE_KEY = '.....'
    +    RECAPTCHA_USE_SSL = True
    +
    +

    For more info see https://www.google.com/recaptcha/admin/

    +
  • +
  • Replace GlobalLoginRequiredMiddleware with +tcms.kiwi_auth.backends.AnonymousViewBackend for anonymous read-only +functionality. See section +Anonymous read-only access +in the documentation

    +
  • +
  • Replace the ... in navigation bar with a 3 cogs icon to make the +object-level menu more visible

    +
  • +
+
+
+

Settings

+
    +
  • Remove setting PUBLIC_VIEWS
  • +
+
+
+

API

+
    +
  • Remove TestCase.get_components() in favor of Component.filter()
  • +
  • Bug.details() method will now return {} instead of failing if +it can't find an issue tracker from an URL
  • +
+
+
+

Bug fixes

+
    +
  • Remove documentation references to non-existing environment
  • +
  • Don't fail internal calls if Kiwi TCMS bug tracker can't find a bug
  • +
+
+
+

Refactoring & testing

+
    +
  • Add tests for tcms.core.templatetags. Closes +Issue #1602 (Mariyan Garvanski)
  • +
  • Add tests for tcms.bugs.views.Edit. Closes +Issue #1599 (Mfon Eti-mfon)
  • +
  • Add tests for tcms.bugs.views.AddComment. Closes +Issue #1600 (Mfon Eti-mfon)
  • +
  • Make paths used in migrations & settings platform aware in order to +enable development mode on Windows (Mfon Eti-mfon)
  • +
  • Add new linter checker to check for use of db_column argument in +model field definition. Closes +Issue #736 (Bryan Mutai)
  • +
  • Add tests for Bug.details API method
  • +
  • Replace deprecated ifequal/ifnotequal template tags
  • +
  • Adjust migrations_order for Django 3.1 compatibility
  • +
  • Add npm audit check in CI
  • +
  • Resolve several pylint issues
  • +
+
+ +
+
+

Kiwi TCMS Enterprise v8.7-mt

+
    +
  • Based on Kiwi TCMS v8.7
  • +
  • Overrides for setting PUBLIC_VIEWS have been removed
  • +
  • Update django-ses from 1.0.2 to 1.0.3
  • +
  • Update kiwitcms-github-app from 1.1 to 1.2
  • +
  • Update kiwitcms-tenants from 1.2.1 to 1.3.1
  • +
+

For more info see +https://github.com/kiwitcms/enterprise/#v87-mt-16-sep-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!

+
+ +
+
+
+
+ +

Kiwi TCMS 8.6

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 8.6!

+

IMPORTANT: this is a high severity security update which includes +improvements, bug fixes, database migrations, API changes, translation updates and +new tests. It is the fourth 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  f2c21b370cd9    639 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.5

+
+

Security

+
    +
  • A high severity vulnerability which allows unprivileged data access +via JSON-RPC endpoints has been fixed:
      +
    • Affects all previous versions of Kiwi TCMS
    • +
    • Instances on public networks, such as Amazon EC2, are at higher risk
    • +
    • Instances on private networks are still vulnerable to anyone who can +access the same network
    • +
    • This vulnerability has been disclosed by Michael Longmire (ShastaQA) +and Stone Pack (ShastaQA)
    • +
    +
  • +
  • Update marked from 0.8.2 to 1.1.1 for a medium severity vulnerability, see +SNYK-JS-MARKED-584281
  • +
+
+
+

Improvements

+
    +
  • Update django from 3.0.8 to 3.0.9

    +
  • +
  • Update django-attachments from 1.5 to 1.6

    +
  • +
  • Update prismjs from 1.20.0 to 1.21.0

    +
  • +
  • Update pygithub from 1.51 to 1.53

    +
  • +
  • Replace deprecated bleach-whitelist with bleach-allowlist

    +
  • +
  • Make django-extensions a production dependency because it provides +many useful manage.py commands

    +
  • +
  • Enable syntax highlight for code blocks

    +
  • +
  • Remove file attachments when related objects are deleted

    +
  • +
  • Add image and file upload buttons to text editor. Fixes +Issue #977

    +
  • +
  • Require auth.view_user permission when trying to view user profiles. +Fixes Issue #1685

    +
  • +
  • Multiple pages now explicitly require view permissions before displaying read-only +information. This gives administrators a finer grained control:

    +
      +
    • /bugs/<id>/ -> bugs.view_bug
    • +
    • /bugs/search/ -> bugs.view_bug
    • +
    • /cases/search/ -> testcases.view_testcase
    • +
    • /case/<id>/ -> testcases.view_testcase
    • +
    • /plans/search/ -> testplans.view_testplan
    • +
    • /plan/<id>/* -> testplans.view_testplan
    • +
    • /runs/search/ -> testruns.view_testrun
    • +
    • /runs/<id>/ -> testruns.view_testrun
    • +
    +

    Previously these pages only required the user to be logged in

    +
  • +
+

Warning:

+
+The auth.view_user permission is not granted by default because the +profile page contains personal information like names and email address. +Administrators can grant this permission on a group or individual basis +if they are OK with sharing this information.
+
+
+

Database

+
    +
  • Migrations which manipulate data (contain RunPython) can now be +rollbacked. See ./manage.py migrate --plan for the order in which +migrations are applied (Bryan Mutai)
  • +
  • Increase Product.name size from 64 to 255 characters
  • +
+
+
+

API

+
    +
  • Remove method TestExecution.create() in favor of TestRun.add_case()
  • +
  • Add method User.add_attachment()
  • +
  • Multiple API methods now explicitly require view permissions before returning +read-only information. This is in-sync with the per-page changes listed above:
      +
    • Bug.filter() -> bugs.view_bug
    • +
    • Bug.report() -> testruns.view_testexecution
    • +
    • Build.filter() -> management.view_build
    • +
    • Category.filter() -> testcases.view_category
    • +
    • Classification.filter() -> management.view_classification
    • +
    • Component.filter() -> management.view_component
    • +
    • PlanType.filter() -> testplans.view_plantype
    • +
    • Priority.filter() -> management.view_priority
    • +
    • Product.filter() -> management.view_product
    • +
    • Tag.filter() -> management.view_tag
    • +
    • TestCase.get_components() -> testcases.view_testcase
    • +
    • TestCase.get_notification_cc() -> testcases.view_testcase
    • +
    • TestCase.filter() -> testcases.view_testcase
    • +
    • TestCaseStatus.filter() -> testcases.view_testcasestatus
    • +
    • TestExecution.filter() -> testruns.view_testexecution
    • +
    • TestExecution.get_links() -> linkreference.view_linkreference
    • +
    • TestExecutionStatus.filter() -> testruns.view_testexecutionstatus
    • +
    • TestPlan.filter() -> testplans.view_testplan
    • +
    • TestRun.get_cases() -> testruns.view_testrun
    • +
    • TestRun.filter() -> testruns.view_testrun
    • +
    • User.filter() -> auth.view_user
    • +
    • Version.filter() -> management.view_version
    • +
    +
  • +
+
+
+

Bug fixes

+
    +
  • Update documentation to reflect that test cases cannot be rearranged from +within a TestRun but only from a TestPlan. Fixes +Issue #1805 (@Prome88)
  • +
  • Incorrect code formatting for HTML <pre> tags. Closes +Issue #1300
  • +
  • Fix a bug with the history handler when importing objects with ID field set. +Resolves a crash when trying to restore backup data
  • +
  • Delete comments when Bug is removed
  • +
+
+
+

Refactoring & testing

+
    +
  • Add linter to warn about missing backwards migrations callable in RunPython +and fix all pylint offenses. Fixes +Issue #1774 (Bryan Mutai)
  • +
  • Teach linter to check API for @permissions_required. Fixes +Issue #1089
  • +
  • Refactor NewExecutionForm to use ModelForm (Rosen Sasov)
  • +
  • Refactor UpdateExecutionForm to use ModelForm (Rosen Sasov)
  • +
  • Add tests for tcms.bugs.api. Closes +Issue #1597 (Mfon Eti-mfon)
  • +
  • Add tests for tcms.bugs.views.New. Closes +Issue #1598 (Mfon Eti-mfon)
  • +
  • Add tests for tcms.rpc.api.testplan. Closes +Issue #1627 (@lcmtwn)
  • +
  • Add tests for percentage() function References +Issue #1602 (Mariyan Garvanski)
  • +
  • Add the migrations_order command to help test rollbacks
  • +
  • Adjust code for deprecation warnings from Django 3.1
  • +
  • Use Python 3 style super() without arguments
  • +
  • Update login page to match our new website design
  • +
+
+ +
+
+

Kiwi TCMS Enterprise v8.6-mt

+
    +
  • Based on Kiwi TCMS v8.6
  • +
+

For more info see +https://github.com/kiwitcms/enterprise/#v86-mt-23-aug-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!

+
+ +
+
+
+ + +
+

Hello testers, we have very important news around how container images +for Kiwi TCMS will be distributed! Recently Docker has announced +several changes in their storage plans which makes it less viable for +our team to continue using their services in full!

+

Information about official upstream container images

+

The official upstream Kiwi TCMS container image will continue to be +publicly available via Docker Hub +as before. In addition all existing and new images will be available via +Quay.io. +These images are available as

+ +

Content is exactly the same between the two registries and you may use +the one which you like best!

+

Warning: after November 1st 2020 older versions will not be available from +Docker Hub, only from Quay.io! The reason is that Docker is enforcing a +6 month image retention limit +for free plans!

+

Information about private containers for subscribers

+

Subscribers enjoy the benefit of having read-only access to tagged versions of the +upstream Kiwi TCMS container images as well as access to tagged versions of +Kiwi TCMS Enterprise container images! Previously these containers were distributed +via Docker Hub and are now available via Quay.io:

+
    +
  • mrsenko/kiwitcms -> quay.io/kiwitcms/version (version tagged upstream images)
  • +
  • mrsenko/kiwitcms-enterprise -> quay.io/kiwitcms/enterprise (enterprise images)
  • +
+

Important: existing subscribers have been notified and granted access +to the new repositories on Quay.io. We advise you to update your +docker-compose.yml files and start using the new images at your earliest convenience!

+

Warning: existing subscribers will continue having access to private +repositories on Docker Hub until December 31st 2020! Private repositories on +Docker Hub will become unavailable after January 31st, 2021 when Docker's new +storage plans will be forced into effect!

+

Why did we chose Quay.io

+

There are multiple container registry services available! We think Quay.io +delivers the best price/quality ratio for our own use-case. In particular +we like the billing model around number of private repositories instead the +one around the number of users in your organization. That's very similar +to how we provide access to Kiwi TCMS via our own subscriptions!

+

Also it just looks cool if you employ your imagination, especially +for non-native English speakers: quay -> qu-ai -> QA!

+


+Thanks for reading and happy testing!

+
+
+
+
+ +

Kiwi TCMS Enterprise v8.5.2-mt

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS Enterprise version 8.5.2-mt +and extended support hours for subscribers in America.

+

Note: this is only available to customers with an active +Enterprise subscription!

+

Docker images:

+
+mrsenko/kiwitcms-enterprise   8.5.2-mt      633291dd5219    887MB
+
+
+

Changes since Kiwi TCMS Enterprise v8.5.1-mt

+
    +
  • Based on Kiwi TCMS v8.5
  • +
  • Update django-ses from 1.0.1 to 1.0.2
  • +
  • Update kiwitcms-github-app from 1.0 to 1.1
  • +
+

This release includes improvements and bug-fixes for +kiwitcms-github-app.

+

An important change is how issues reported via our 1-click bug report feature +are presented on GitHub. For public repositories issues reported via +Kiwi TCMS + GitHub App integration +will be opened by @kiwitcms-bot with Kiwi TCMS as shown below:

+ +
+
+

Extended support hours

+

Working hours have been updated as follows:

+
    +
  • 09-21 UTC/Mon-Fri with response within 24 hours for Enterprise subscribers
  • +
  • 09-17 UTC/Mon-Fri with response within 72 hours for Private Tenant subscribers
  • +
+

Happy testing!

+
+ +
+
+
+
+ +

Kiwi TCMS 8.5

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 8.5!

+

IMPORTANT: this is a medium sized release which includes many improvements, +database migrations, translation updates and new tests. +It is the third 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  4379e2438e43    636 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.4

+
+

Improvements

+
    +
  • Update django from 3.0.7 to 3.0.8
  • +
  • Update django-colorfield from 0.3.0 to 0.3.2
  • +
  • Update django-modern-rpc from 0.12.0 to 0.12.1
  • +
  • Update django-simple-history from 2.10.0 to 2.11.0
  • +
  • Update mysqlclient from 1.4.6 to 2.0.1
  • +
  • Update python-gitlab from 2.2.0 to 2.4.0
  • +
  • Update python-bugzilla from 2.3.0 to 2.5.0
  • +
  • Add middleware to warn for unapplied migrations. Fixes +Issue #1696 (Bryan Mutai)
  • +
  • Add "insert table" button to SimpleMDE toolbar. References +Issue #1531 (Bryan Mutai)
  • +
  • Implement kiwitcms-django-plugin. +Resolves Issue #693 (Bryan Mutai)
  • +
  • Add missing permission check for TestExecution.add_link() API method (Rosen Sasov)
  • +
  • Add missing permission check for TestExecution.remove_link() API method (Rosen Sasov)
  • +
  • Admin interface will now appear translated
  • +
  • Propagate server side API errors to the browser. Closes +Issue #625, +Issue #1333
  • +
  • Improvements for Status Matrix telemetry page:
      +
    • Make the horizontal scroll bar at the bottom always visible
    • +
    • Make the header row always visible
    • +
    • Add button to show columns in reverse. Fixes +Issue #1682
    • +
    • Make it possible to display TestExecutions from child TestPlans. Fixes +Issue #1683
    • +
    +
  • +
+
+
+

Database

+
    +
  • Update existing Bug tracker records to match the changes introduced with +the new EXTERNAL_BUG_TRACKERS setting
  • +
+
+
+

Settings

+
    +
  • Add EXTERNAL_BUG_TRACKERS setting which is a list of dotted class paths +representing external bug tracker integrations. Plugins and Kiwi TCMS admins +can now more easily include customized integrations
  • +
+
+
+

Refactoring & testing

+
    +
  • Add new linter to check for label arguments in form field classes. Fixes +Issue #738 (Bryan Mutai)
  • +
  • Add new linter to check if all forms inherit from ModelForm. Fixes +Issue #1384 (Bryan Mutai)
  • +
  • Enable pylint plugin pylint.extensions.docparams and resolve errors. Fixes +Issue #1192 (Bryan Mutai)
  • +
  • Migrate 'test-for-missing-migrations' from Travis CI to GitHub workflow. Fixes +Issue #1553 (Bryan Mutai)
  • +
  • Add tests for tcms.bugs.api.add_tag(). References +Issue #1597 (Mfon Eti-mfon)
  • +
  • Add tests for tcms.bugs.api.remove_tag(). References +Issue #1597 (Mfon Eti-mfon)
  • +
  • Add test for tcms.testplans.views.Edit. References +Issue #1617 (@cmbahadir)
  • +
  • Add tests for markdown2html(). Fixes +Issue #1659 (Mariyan Garvanski)
  • +
  • Add test for Cyrillic support with MariaDB. References +Issue #1770
  • +
+
+ +
+
+

Kiwi TCMS Enterprise v8.5-mt

+
    +
  • Based on Kiwi TCMS v8.5
  • +
  • Update django-ses from 0.8.14 to 1.0.1
  • +
  • Update kiwitcms-tenants from 1.1.1 to 1.2
  • +
  • Update social-auth-app-django from 3.4.0 to 4.0.0
  • +
  • Start tagging non-Enterprise images of kiwitcms/kiwi - will be provided +via separate private repository for enterprise customers. See +here
  • +
+

For more info see +https://github.com/MrSenko/kiwitcms-enterprise/#v85-mt-10-july-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-compose pull
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Refer to +our documentation +for more details!

+

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!

+ +
+
+
+
+ +

Versioned releases of Kiwi TCMS

+
+ + +
+ +
+

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 &amp; 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!

+
+ +
+
+
+
+ +

Robot Framework plugin for Kiwi TCMS

+
+ + +
+ +
+

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

+
+ +
+
+
+
+ +

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"
  • +
+
+
+

Translations

+ +
+
+
+

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

Translations

+ +
+
+
+

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!

+
+ +
+
+
+
+ +

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. +
    3. docker-compose down

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

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

      +
    8. +
    9. 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

      +
    10. +
    11. Proceed to upgrade your Kiwi TCMS container !

      +
    12. +
    +
  • +
+

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

Translations

+ +
+
+
+

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!

+
+ +
+
+
+
+ +

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

Translations

+ +
+
+
+

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!

+
+ +
+
+
+
+ +

Kiwi TCMS is migrating from OAuth to GitHub App

+
+ + +
+ +
+

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

+
    +
  • Go to https://public.tenant.kiwitcms.org and + click the GitHub login icon, follow through with the process;
  • +
  • Go to https://github.com/apps/kiwi-tcms and + click the Install button, select account & repositories and complete the + process;
  • +
  • Share this blog post with friends, co-workers and other testers who might be + interested to help!
  • +
+

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

Translations

+ +
+
+
+

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!

+
+ +
+
+
+
+ +

Kiwi TCMS 7.1

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 7.1! +This is a small improvement update which includes +database schema and API changes, several other improvements, +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  c8cf36ac5ca5    602 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.0

+
+

Improvements

+
    +
  • Update django from 2.2.5 to 2.2.6
  • +
  • Update python-gitlab from 1.11.0 to 1.12.1
  • +
  • Update pygithub from 1.43.8 to 1.44
  • +
  • Update psycopg2 from 2.8.3 to 2.8.4
  • +
  • Add help tooltips in all telemetry pages
  • +
  • Better styling for checkboxes in 'Add hyperlink' dialog, +part of TestRun page
  • +
  • Add hyperlink validation. Fixes +Issue #1147
  • +
+
+
+

Database migrations

+
    +
  • Add bugs permissions to Tester group. Will make any difference +only if upgrading from existing installation
  • +
+
+
+

API

+
    +
  • New method Bug.remove()
  • +
+
+
+

Bug fixes

+
    +
  • Always build with the latest versions of translations
  • +
  • Add 'Delete' menu item in Bugs page. Fixes #1153 +Issue #1153
  • +
  • When deleting hyperlink from TestExecution hide the actual UI +elements from the page
  • +
  • Fix failure to delete TCs when the number of TCs inside TP is greater +than 100. Fixes +Issue #1149 and +Sentry KIWI-TCMS-8F
  • +
+
+
+

Refactoring

+
    +
  • Rename directory xmlrpc to rpc and pylint updates. Refs +Issue #682 +(Matej Aleksandrov, Sinergise)
  • +
  • Remove labels from form fields, Refs +Issue #652 (Azmi YÜKSEL)
  • +
  • New base class for tests around permissions (Svetlomir Balevski)
  • +
  • New "blueprint" test case around permissions to make testing in this area more +robust
  • +
  • Refactor many views from function based to class based
  • +
  • Update stale tests in tcms/core/tests/ and make sure they aren't ignored +by the test runner
  • +
  • Remove empty class XMLRPCBaseCaseForm
  • +
  • Remove XMLRPCNewCaseForm, duplicate of NewCaseForm
  • +
  • Remove rpc.forms.UpdateCaseForm in favor of XMLRPCUpdateCaseForm
  • +
  • Update only English sources with new strings as a temporary workaround b/c +Crowdin uses different formatting heuristics than gettext. This will minimize +the number of .po format changes
  • +
  • A few pylint fixes
  • +
+
+
+

Translations

+ +
+
+
+

Acknowledgments

+

A special "thank you" goes to our friends from +PyCon Balkan in Belgrade who allowed us to host +an open source coding sprint in Belgrade during the conference!

+

A second "thank you" goes to +Open Labs Hackerspace who hosted a localization +sprint in Tirana and contributed to several different languages!

+

Thank you for being part of our community. Version 7.1 includes all of your +contributions.

+
+
+

Website updates

+

We're using the opportunity to share that website is now serving via SSL courtesy +of GitHub and Let's encrypt.

+

Our main page has also been updated to showcase some of our customers: +Better (Slovenia), Minds, Inc. (USA), Musala Soft (Bulgaria). If you would like to +feature your corporate logo and tell us how you use Kiwi TCMS then +drop us an email!

+
+
+

Upcoming conferences

+

The next two events we are going to participate are:

+ +

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

+
+
+

Upcoming FOSDEM 2020

+

We are happy to announce that our team, together with SUSE and Linaro will be +hosting the +Testing and Automation Developer Room +at FOSDEM in Brussels next February.

+

Call for papers is open until December 10th 2019. Anything related to +software testing and open source is welcome. Apply from the link above.

+
+
+

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!

+
+ +
+
+
+
+ +

Kiwi TCMS 7.0

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 7.0! +This is a major release which includes security updates, +significant database schema and API changes, many improvements, +removed functionality, bug fixes, substantial internal refactoring and +several new languages. You can explore everything at +https://public.tenant.kiwitcms.org!

+

The 7.0 version number happily coincides with the fact that we've surpassed +70000 downloads from 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  d34dc6d896bf    584 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 6.11

+
+

Security

+
    +
  • API method BugSystem.filter() has been removed (now unused) but +it was possible to use this method to steal passwords or keys used for +Issue Tracker integration. This vulnerability could be exploited by +users logged into Kiwi TCMS and is classified as medium severity! +We advise you to change your integration API keys and passwords +immediately!
  • +
+
+
+

Improvements

+
    +
  • Update Django from 2.2.4 to 2.2.5
  • +
  • Update django-uuslug from 1.1.8 to 1.1.9
  • +
  • Update mysqlclient from 1.4.2.post1 to 1.4.4
  • +
  • Update python-bugzilla from 2.2.0 to 2.3.0
  • +
  • Update python-gitlab from 1.10.0 to 1.11.0
  • +
  • Update patternfly from 3.59.3 to 3.59.4
  • +
  • Reduce docker image size from 1.01 GB to under 600 MB
  • +
  • Add TestCase Health telemetry
  • +
  • Add support for Redmine issue tracker. Fixes +Issue #41 (Jesse C. Lin)
  • +
  • Add breathing room around HTML form's submit buttons (Rady Madjev)
  • +
  • New TestRun page action: bulk-add hyperlinks to TestExecution(s)
  • +
  • Make it possible to disable HTTPS by specifying the +KIWI_DONT_ENFORCE_HTTPS environment variable! Fixes +Issue #1036 (Marco Descher)
  • +
  • Documentation updates, including internal style checker. Fixes +Issue #1000 (Prome88)
  • +
  • When linking a TestExecution to a defect and choosing to update the +Issue Tracker Kiwi TCMS will not add a comment pointing back to +TR ID/summary/URL and TE ID/summary. This provides more detailed information +about the reproducer instead of just linking to a TestCase without any +specific execution details like we did in the past
  • +
  • Display additional defect information via Issue Tracker integration. +On Patternfly pages which show defect URLs this is accessible via a +small info icon. Fixes +Issue #117
  • +
  • Add minimalistic defect tracker functionality. Fixes +Issue #699
      +
    • integrated with Issue Tracker integration layer as if it was +an external system
    • +
    • when adding hyperlink to TestExecition (also via API method +TestExecution.add_link()) this is special cased and the +references between Bug and TestExecution are always updated
    • +
    • when clicking 'Report bug' from inside Test Execution the new +defect is reported automatically and a new browser window opens to +display the information
    • +
    +
  • +
+
+
+

Database migrations

+
    +
  • Tell the migration planner to apply +testruns.0006_rename_test_case_run_to_test_execution after +linkreference.0001_squashed. This enables subsequent migrations +and new functionality to be applied without crashing.

    +
    +
    +

    Warning

    +

    Django should be able to handle this automatically both for +existing installations and for new ones. In any case make sure +you backup your data first and make a dry-run to verify that +nothing breaks!

    +
    +
    +
  • +
  • Remove fields url_reg_exp, validate_reg_exp and description from +BugSystem model

    +
  • +
  • Update the following fields in LinkReference model:

    +
      +
    • rename test_case_run to execution
    • +
    • add indexing for created_on and url
    • +
    • add is_defect field
    • +
    +
  • +
  • Apply LinkReference permissions to default group Tester. Fixes +Issue #881

    +
    +
    +

    Warning

    +

    Administrators of existing applications will need to +apply these permissions by hand via the Admin section.

    +
    +
    +
  • +
  • Remove testcases.Bug model, replaced with LinkReference. +Closes Issue #1029 and +obsoletes Issue #320.

    +
    +
    +

    Note

    +

    Linking bugs to TestExecution is now performed via URLs instead of +keeping a reference to BUG-ID and trying to reconstruct the URL +on the fly.

    +
    +
    +

    Warning

    +

    The model named Bug which is added by subsequent migrations +refers to defects reported into Kiwi TCMS minimalistic defect tracker!

    +
    +
    +
  • +
  • New model bugs.Bug is now available. Permissions of type +bugs | bug | Can ... will be applied to the default group named +Tester only for new installations.

    +
    +
    +

    Warning

    +

    Administrators of existing applications will need to +apply these permissions by hand via the Admin section.

    +
    +
    +
  • +
+
+
+

API

+
    +
  • TestExecution.add_link() method now returns serialized +LinkReference object.
  • +
  • TestExecution.remove_link() method now accepts one parameter of type +dict used to filter the objects which to remove
  • +
  • TestExecution.get_links() method now accepts one parameter of type +dict instead of int
  • +
  • TestExecution.add_link() method signature changed from +(int, str, str) to (dict), where the single parameter holds field values for +the LinkReference model
  • +
  • Remove TestExecution.add_bug() method, use TestExecution.add_link()
  • +
  • Remove TestExecution.remove_bug() method, use +TestExecution.remove_link()
  • +
  • Remove TestCase.add_bug() method
  • +
  • Remove TestCase.remove_bug() method
  • +
  • Remove Bug.remove() method, use TestExecution.remove_link()
  • +
  • Remove Bug.create() method, use TestExecution.add_link()
  • +
  • Add method Bug.details() which together with the underlying +IssueTracker.details() is the foundation of how Kiwi TCMS fetches +extra details from the issue tracking system. The default implementation +uses OpenGraph protocol to collect the data that will be shown. You may +override .details() for each issue tracker (or add your own IT) to +extend this functionality. Information is cached for 1 hour by default. +References +Issue #117
  • +
  • Add methods Bug.add_tag() and Bug.remove_tag()
  • +
  • Existing method with name Bug.filter() has changed behavior. It is +now used to query objects from Kiwi TCMS minimalistic defect tracker
  • +
+
+
+

Removed functionality

+
    +
  • Remove IssueTrackerType.all_issues_link() method. This was used in +TestRun Report page to show a single link that will open all bugs in the +Issue Tracker. Most trackers don't support this and the UI portion has +been rewritten
  • +
  • Remove LinkOnly issue tracker - obsolete because all defects are +now added to TestExecutions via their URLs
  • +
  • Remove bulk-add/bulk-remove of bugs in TestRun page, replaced by bulk-add +for hyperlinks
  • +
+
+
+

Settings

+
    +
  • Respect the CACHES setting, see +Django docs +for more info. Initially this setting is used to cache defect details received +via Issue Tracker integration. See +Issue #117
  • +
+
+
+

Bug fixes

+
    +
  • Don't auto-download FontAwesome for SimpleMDE. Resolves icons disappearing +on pages which have the markdown editor. Fixes +Issue #905
  • +
  • Reorder HTML elements so Delete button is still visible in TestCase review +comment section. Fixes +Issue #1013 (Rady Madjev)
  • +
  • Remove section that displays bugs in TestExecution container. Bugs are now +denoted by a small icon next to their hyperlink. Closes +Issue #475
  • +
  • Cache Issue Tracker connections per base_url. Fixes +Issue #290
  • +
+
+
+

Refactoring

+
    +
  • Lots of refactoring from function based views to class based views (Rady Madjev)
  • +
  • Use JavaScript and the API to remove case execution instead of dedicated +backend function (Rady Madjev)
  • +
  • Update pylint directives around missing permissions (Svetlomir Balevski)
  • +
  • Fix typo in identifier. Fixes +CID 344186
  • +
  • Use TestExecution.add_link() and TestExecution.remove_link() in UI +instead of dedicated backend function.
  • +
  • Remove unused LinkReference views, forms and tests modules
  • +
+
+
+

Translations

+ +

For more information check-out +all supported languages. +To request new language +click here!

+
+
+
+

junit.xml-plugin v0.4

+

A few days ago we have also released +kiwitcms-junit.xml-plugin +v0.4 with the following changes:

+
    +
  • Update junitparser from 1.3.2 to 1.3.4
  • +
  • Also support XML files with <testsuites> root tag (Katalon Studio). Fixes +Issue #9
  • +
+
+
+

tap-plugin v0.4

+

We have also released +kiwitcms-tap-plugin +v0.4 with the following changes:

+
    +
  • Include traceback from TAP file as TestExecution comment. Fixes +Issue #7 +(Christophe CHAUVET)
  • +
+
+
+

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!

+
+ +
+
+
+
+ +

Kiwi TCMS 6.11

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 6.11! +This is a security and improvement release which updates +many internal dependencies, adds 2 new Telemetry reports, updates +TestPlan and TestCase cloning pages and provides several other +improvements 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  6a8249d23a67    1.011 GB
+kiwitcms/kiwi       6.2     7870085ad415    957.6 MB
+kiwitcms/kiwi       6.1.1   49fa42ddfe4d    955.7 MB
+kiwitcms/kiwi       6.1     b559123d25b0    970.2 MB
+kiwitcms/kiwi       6.0.1   87b24d94197d    970.1 MB
+kiwitcms/kiwi       5.3.1   a420465852be    976.8 MB
+
+
+

Changes since Kiwi TCMS 6.10

+
+

Security

+ +
+
+

Improvements

+
    +
  • Update python-gitlab from 1.8.0 to 1.10.0
  • +
  • Update django-grappelli from 2.12.3 to 2.13.1
  • +
  • Update django-simple-history from 2.7.2 to 2.7.3
  • +
  • Update django-attachments to 1.4.1
  • +
  • Update PyGithub from 1.43.7 to 1.43.8
  • +
  • Update patternfly to version 3.59.3
  • +
  • Update prismjs to version 1.17.0
  • +
  • Add Testing Status Matrix telemetry
  • +
  • Add Testing Execution Trends telemetry
  • +
  • Make it possible to attach files directly inside Test Plan page
  • +
  • Make it possible to attach files directly inside Test Execution widget
  • +
  • Convert Clone TestPlan page to Patternfly, greatly simplify the UI +and update behavior:
      +
    • Cloned TP author will always be set to the current user
    • +
    • Cloned TC author will always be set to the current user
    • +
    • Always keep the original default tester for test cases when cloning
    • +
    • Refactor to class based view
    • +
    • Fix a problem where Version values failed form validation b/c +we've been trying to filter based on non-existing field +product_id instead of just product
    • +
    • Fixes a problem where erroneous Version value was shown in the UI
    • +
    +
  • +
  • Convert Clone TestCase page to Patternfly, greatly simplify the UI +and update behavior. Fixes +Issue #838:
      +
    • Allow cloning into multiple test plans
    • +
    • Remove 'Filter another plan' option. Will be replaced by +'Add TP to TC', see +Issue #1021
    • +
    • Always update sortkey. Cloned TC will show at the bottom of the +TestPlan
    • +
    • Cloned TC author will always be set to the current user
    • +
    • Always keep the original default tester
    • +
    +
  • +
+
+
+

API

+
    +
  • First parameter of RPC method Bug.report() +has been renamed from test_case_run_id to execution_id. This may +break existing API scripts which try to pass this argument by name +instead of by position!
  • +
+
+
+

Settings

+
    +
  • Allow ENV variables KIWI_USE_TZ and KIWI_TIME_ZONE to control +settings USE_TZ and TIME_ZONE. Fixes +Issue #982 (Jason Yi)
  • +
+
+
+

Bug fixes

+
    +
  • Fix wrong permission label when deleting comments. Fixes +Issue #1010
  • +
+
+
+

Refactoring

+
    +
  • Disable unnecessary pylint messages for missing-permission-required +checker (Svetlomir Balevski)
  • +
  • Remove unnecessary from_plan URL variable making cleaner URLs
  • +
  • kiwi_lint: Don't check nested functions for permissions
  • +
  • Remove and regroup JavaScript functions
  • +
  • Instruct pyup-bot to monitor requirements/tarballs.txt for updates
  • +
+
+
+

Translations

+ +
+
+
+

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!

+
+ +
+
+
+
+ +

Kiwi TCMS 6.10

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 6.10! +This is a small security and improvement update. +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  bbb581d60ed1    1.005 GB
+kiwitcms/kiwi       6.2     7870085ad415    957.6 MB
+kiwitcms/kiwi       6.1.1   49fa42ddfe4d    955.7 MB
+kiwitcms/kiwi       6.1     b559123d25b0    970.2 MB
+kiwitcms/kiwi       6.0.1   87b24d94197d    970.1 MB
+kiwitcms/kiwi       5.3.1   a420465852be    976.8 MB
+
+
+

Changes since Kiwi TCMS 6.9

+
+

Security

+
    +
  • Update Django from 2.2.1 to 2.2.2 for medium severity +CVE-2019-12308 (XSS), CVE-2019-11358 (jQuery). +More info
  • +
  • Add missing permission checks for menus in Test run page UI template. +Permission check added for TestExecution status and comment menu. +References Issue #716
  • +
  • Re-enable static analysis with bandit and Coverity Scan in +Travis CI (Svetlomir Balevski)
  • +
+
+
+

Improvements

+
    +
  • Update psycopg2 from 2.8.2 to 2.8.3
  • +
  • Update markdown from 3.1 to 3.1.1
  • +
  • Update patternfly to version 3.59.2
  • +
  • Override PasswordResetForm because Site.objects.get_current() +didn't produce correct results when working with kiwitcms-tenants
  • +
  • Show column is_active in user admin page
  • +
+
+
+

Refactoring

+
    +
  • Add test for email_case_deletion() (Rik)
  • +
  • New linter to warn about usage of AutoField. Fixes +Issue #737 (Ivo Donchev, HackSoft)
  • +
  • New linter to discover empty classed. Fixes +Issue #739 (Daniel Goshev)
  • +
  • New linter to warn about usage of OneToOneField. Fixes +Issue #735 (George Goranov)
  • +
  • New linter to warn about usage of function based views. Fixes +Issue #734 (Yavor Lulchev, Uber)
  • +
  • New linter to discover Python files in directories without __init__.py. Fixes +Issue #790
  • +
+
+
+
+

Join us at OpenExpo in Madrid

+

Kiwi TCMS is exhibitor at OpenExpo Europe +on June 20th in Madrid. We will be hosting an info booth and 2 technical +presentations delivered by +Anton Sankov and +Alex Todorov.

+

Kiwi TCMS is also the leading finalist in the +Best Tech Community +category at Open Awards 2019!

+

Use OE19SPEAKERINVITE 100% discount code! Get your ticket +here!

+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+

WARNING: kiwitcms/kiwi:latest and docker-compose.yml will +always point to the latest available version! If you have to upgrade in steps, +e.g. between several intermediate releases, you have to modify the above workflow:

+
+# starting from an older Kiwi TCMS version
+docker-compose down
+docker pull kiwitcms/kiwi:<next_upgrade_version>
+edit docker-compose.yml to use kiwitcms/kiwi:<next_upgrade_version>
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+# repeat until you have reached latest
+
+

Happy testing!

+
+ +
+
+ +
+ Newer Posts +

+ Page 2 / 4 +

+ Older Posts +
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/tags/releases/index3.html b/blog/tags/releases/index3.html new file mode 100644 index 00000000..21d295d1 --- /dev/null +++ b/blog/tags/releases/index3.html @@ -0,0 +1,2949 @@ + + + + + Kiwi TCMS - Articles with tag releases + + + + + + + + + + + + + + + +
+

Articles with tag releases

+ +
+
+ +

Kiwi TCMS 6.9

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 6.9! +This is a small improvement and bug-fix update which introduces +our first telemetry report: testing breakdown. 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  a01eaeddf213    1.001 GB
+kiwitcms/kiwi       6.2     7870085ad415    957.6 MB
+kiwitcms/kiwi       6.1.1   49fa42ddfe4d    955.7 MB
+kiwitcms/kiwi       6.1     b559123d25b0    970.2 MB
+kiwitcms/kiwi       6.0.1   87b24d94197d    970.1 MB
+kiwitcms/kiwi       5.3.1   a420465852be    976.8 MB
+
+
+

Changes since Kiwi TCMS 6.8

+
+

Improvements

+
    +
  • Update mysqlclient from 1.4.2 to 1.4.2.post1
  • +
  • Ship with prism.js so it can be used for syntax highlighting
  • +
  • Add Testing Breakdown telemetry
  • +
  • Mark more strings for translations
  • +
  • Add delete_user() function which can delete data across +Postgre schemas (if kiwitcms-tenants add-on is installed)
  • +
+
+
+

API

+
    +
  • Remove deprecated TestCaseRun. API methods. Use the new +TestExecution. methods introduced in v6.7. Fixes +Issue #889
  • +
+
+
+

Bug fixes

+
    +
  • Fix typos in documentation (@Prome88)
  • +
  • Fix TemplateParseError in email templates when removing test cases. +On-delete email notification is now sent properly
  • +
+
+
+

Refactoring

+
    +
  • Add more tests around TestRun/TestExecution menu permissions
  • +
  • Minor pylint fixes
  • +
+
+
+

Translations

+ +
+
+
+

Join us at OpenExpo in Madrid

+

Kiwi TCMS is exhibitor at OpenExpo Europe +on June 20th in Madrid. We will be hosting an info booth and 2 technical +presentations delivered by Anton Sankov and Alex Todorov.

+

Next week we are going to announce 100% discount tickets +for our guests at the conference. If you are interested in coming +subscribe to our newsletter +and don't miss the announcement!

+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+

WARNING: kiwitcms/kiwi:latest and docker-compose.yml will +always point to the latest available version! If you have to upgrade in steps, +e.g. between several intermediate releases, you have to modify the above workflow:

+
+# starting from an older Kiwi TCMS version
+docker-compose down
+docker pull kiwitcms/kiwi:<next_upgrade_version>
+edit docker-compose.yml to use kiwitcms/kiwi:<next_upgrade_version>
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+# repeat until you have reached latest
+
+

Happy testing!

+
+ +
+
+
+
+ +

Kiwi TCMS 6.8

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 6.8! +This is a small improvement and bug-fix update. +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  fca095f95475    994.8 MB
+kiwitcms/kiwi       6.2     7870085ad415    957.6 MB
+kiwitcms/kiwi       6.1.1   49fa42ddfe4d    955.7 MB
+kiwitcms/kiwi       6.1     b559123d25b0    970.2 MB
+kiwitcms/kiwi       6.0.1   87b24d94197d    970.1 MB
+kiwitcms/kiwi       5.3.1   a420465852be    976.8 MB
+
+
+

Changes since Kiwi TCMS 6.7

+
+

Improvements

+
    +
  • Update Django from 2.2 to 2.2.1
  • +
  • Update django-simple-history from 2.7.0 to 2.7.2
  • +
  • Update django-grappelli from 2.12.2 to 2.12.3
  • +
  • Update psycopg2 from 2.8 to 2.8.2
  • +
  • Update pygithub from 1.43.6 to 1.43.7
  • +
  • Upgrade pip and setuptools inside Docker image
  • +
  • Update documentation with newer screenshots and updated Tutotial. Fixes +Issue #837 (@Prome88)
  • +
  • Document how to enable public read-only views
  • +
  • Remove deprecated documentation section about Bugzilla authentication
  • +
  • Install PostgreSQL libraries in Docker image which makes it easier to +switch the DB backend without rebuilding the entire image
  • +
  • Remove npm, libxml2-devel and libxslt-devel from Docker image
  • +
  • Database engine configuration now respects the KIWI_DB_ENGINE environment +variable which defaults to django.db.backends.mysql. This will make it +easier for admins to change DB engine by updating their docker-compose.yml
  • +
+
+
+

Bug fixes

+
    +
  • Pin bootstrap-switch to version 3.3.4 in package.json. Fixes +Issue #916
  • +
+
+
+

Translations

+ +
+
+

Refactoring

+
    +
  • Don't use Site.objects.get_current() because it has an internal cache +and causes email notifications from tenants to use the wrong URL
  • +
  • More changes around renaming of TestCaseRun to TestExecution
  • +
+
+
+
+

GitHub Marketplace

+

During the past week we have silently launched Kiwi TCMS on +GitHub Marketplace. Free plans +will be redirected to +public.tenant.kiwitcms.org +while paid plans will be hosted under *.tenant.kiwitcms.org sub-domains!

+

Our team is still working on all requirements for GitHub integration and we will +issue a formal statement when ready!

+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+

WARNING: kiwitcms/kiwi:latest and docker-compose.yml will +always point to the latest available version! If you have to upgrade in steps, +e.g. between several intermediate releases, you have to modify the above workflow:

+
+# starting from an older Kiwi TCMS version
+docker-compose down
+docker pull kiwitcms/kiwi:<next_upgrade_version>
+edit docker-compose.yml to use kiwitcms/kiwi:<next_upgrade_version>
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+# repeat until you have reached latest
+
+

Happy testing!

+
+ +
+
+
+
+ +

Kiwi TCMS 6.7

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 6.7! +This is a small improvement and bug-fix update. +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  702a78976de7    993.5 MB
+kiwitcms/kiwi       6.2     7870085ad415    957.6 MB
+kiwitcms/kiwi       6.1.1   49fa42ddfe4d    955.7 MB
+kiwitcms/kiwi       6.1     b559123d25b0    970.2 MB
+kiwitcms/kiwi       6.0.1   87b24d94197d    970.1 MB
+kiwitcms/kiwi       5.3.1   a420465852be    976.8 MB
+
+
+

Changes since Kiwi TCMS 6.6

+
+

Improvements

+
    +
  • Update Django from 2.1.7 to 2.2
  • +
  • Update markdown from 3.0.1 to 3.1
  • +
  • Update psycopg2 from 2.7.7 to 2.8
  • +
  • Update pygithub from 1.43.5 to 1.43.6
  • +
  • Update bleach-whitelist from 0.0.9 to 0.0.10
  • +
  • Update marked(.js) to version 0.6.2
  • +
  • Support arbitrary depth for MENU_ITEMS setting
  • +
  • Support auto-discovery of 3rd party Telemetry plugins, see +documentation
  • +
+
+
+

Database migrations

+
    +
  • Rename TestCaseRun to TestExecution including renaming existing +permissions
  • +
  • Rename TestCaseRunStatus to TestExecutionStatus
  • +
+
+
+

API

+
    +
  • Rename TestCaseRun.* to TestExecution.*
  • +
  • Rename TestCaseRunStatus.* to TestExecution.*
  • +
  • This version keeps the old names for backwards compatibility reasons but they +will be removed in +Issue #889
  • +
+
+
+

Bug fixes

+
    +
  • Prompt user before deleting attachments. Fixes +Issue #867 (Martin Jordanov)
  • +
  • email_case_deletion() format error fixed so notifications when +test cases are deleted are not sent (Rik)
  • +
+
+
+

Refactoring

+
    +
  • Remove unused images
  • +
  • Install node_modules/ under tcms/ and include it inside PyPI tarball
  • +
+
+
+

Translations

+ +
+
+
+

Native JUnit 5 plugin

+

Our team is happy to announce the availability of +kiwitcms-junit-plugin. +This is a native JUnit 5 plugin which will read the results from your +automated test suite and send them back to Kiwi TCMS.

+

Version 1.0.3 and the latest changes in master branch are still to be considered +Beta quality. They are available for early preview and feedback.

+

Many thanks to Aneta Petkova who is the +main contributor behind this plugin!

+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+

WARNING: kiwitcms/kiwi:latest and docker-compose.yml will +always point to the latest available version! If you have to upgrade in steps, +e.g. between several intermediate releases, you have to modify the above workflow:

+
+# starting from an older Kiwi TCMS version
+docker-compose down
+docker pull kiwitcms/kiwi:<next_upgrade_version>
+edit docker-compose.yml to use kiwitcms/kiwi:<next_upgrade_version>
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+# repeat until you have reached latest
+
+

Happy testing!

+
+ +
+
+
+
+ +

Kiwi TCMS 6.6

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 6.6! This is a +medium severity security update, improvement and bug-fix update. +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  c4734f98ca37    971.3 MB
+kiwitcms/kiwi       6.2     7870085ad415    957.6 MB
+kiwitcms/kiwi       6.1.1   49fa42ddfe4d    955.7 MB
+kiwitcms/kiwi       6.1     b559123d25b0    970.2 MB
+kiwitcms/kiwi       6.0.1   87b24d94197d    970.1 MB
+kiwitcms/kiwi       5.3.1   a420465852be    976.8 MB
+
+
+

Changes since Kiwi TCMS 6.5.3

+
+

Security

+
    +
  • Explicitly require marked v0.6.1 to fix medium severity ReDoS vulnerability. See +SNYK-JS-MARKED-73637
  • +
+
+
+

Improvements

+
    +
  • Update python-gitlab from 1.7.0 to 1.8.0
  • +
  • Update django-contrib-comments from 1.9.0 to 1.9.1
  • +
  • More strings marked as translatable (Christophe CHAUVET)
  • +
  • When creating new TestCase you can now change notification settings. +Previously this was only possible during editing
  • +
  • Document import-export approaches. Closes +Issue #795
  • +
  • Document available test automation plugins
  • +
  • Improve documentation around Docker customization and SSL termination
  • +
  • Add documentation example of reverse rroxy configuration for HAProxy (Nicolas Auvray)
  • +
  • TestPlan.add_case() will now set the sortkey to highest in plan + 10 (Rik)
  • +
  • Add LinkOnly issue tracker. Fixes +Issue #289
  • +
  • Use the same HTML template for both TestCase new & edit
  • +
  • New API methods for adding, removing and listing attachments. Fixes +Issue #446:
      +
    • TestPlan.add_attachment()
    • +
    • TestCase.add_attachment()
    • +
    • TestPlan.list_attachments()
    • +
    • TestCase.list_attachments()
    • +
    • Attachments.remove_attachment()
    • +
    +
  • +
+
+
+

Database migrations

+
    +
  • Populate missing TestCase.text history. +In version 6.5 the TestCase model was updated to store the text +into a single field called text instead of 4 separate fields. +During that migration historical records were updated to have +the new text field but values were not properly assigned.

    +

    The "effect" of this is that in TestCaseRun records you were not +able to see the actual text b/c it was None.

    +

    This change ammends 0006_merge_text_field_into_testcase_model for +installations which have not yet migrated to 6.5 or later. We also +provide the data-only migration 0009_populate_missing_text_history +which will inspect the current state of the DB and copy the text to +the last historical record.

    +
  • +
+
+
+

Removed functionality

+
    +
  • Remove legacy reports. Closes +Issue #657

    +
  • +
  • Remove "Save & Continue" functionality from TestCase edit page

    +
  • +
  • Renamed API methods:

    +
      +
    • TestCaseRun.add_log() -> TestCaseRun.add_link()
    • +
    • TestCaseRun.remove_log() -> TestCaseRun.remove_link()
    • +
    • TestCaseRun.get_logs() -> TestCaseRun.get_links()
    • +
    +

    These methods work with URL links, which can be added or removed to +test case runs.

    +
  • +
+
+
+

Bug fixes

+
    +
  • Remove hard-coded timestamp in TestCase page template, References +Issue #765
  • +
  • Fix handling of ?from_plan URL parameter in TestCase page
  • +
  • Make TestCase.text occupy 100% width when rendered. Fixes +Issue #798
  • +
  • Enable markdown.extensions.tables. Fixes +Issue #816
  • +
  • Handle form erros and default values for TestPlan new/edit. Fixes +Issue #864
  • +
  • Tests + fix for failing TestCase rendering in French
  • +
  • Show color-coded statuses on dashboard page when seen with non-English +language
  • +
  • Refactor check for confirmed test cases when editting to work with +translations
  • +
  • Fix form values when filtering test cases inside TestPlan. Fixes +Issue #674 (@marion2016)
  • +
  • Show delete icon for attachments. Fixes +Issue #847
  • +
+
+
+

Refactoring

+
    +
  • Remove unused .current_user instance attribute
  • +
  • Remove EditCaseForm and use NewCaseForm instead, References +Issue #708, +Issue #812
  • +
  • Fix "Select All" checkbox. Fixes +Issue #828 (Rady)
  • +
+
+
+

Translations

+ +
+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+

WARNING: kiwitcms/kiwi:latest and docker-compose.yml will +always point to the latest available version! If you have to upgrade in steps, +e.g. between several intermediate releases, you have to modify the above workflow:

+
+# starting from an older Kiwi TCMS version
+docker-compose down
+docker pull kiwitcms/kiwi:<next_upgrade_version>
+edit docker-compose.yml to use kiwitcms/kiwi:<next_upgrade_version>
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+# repeat until you have reached latest
+
+

Happy testing!

+
+ +
+
+
+
+ +

Kiwi TCMS 6.5.3

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 6.5.3! This is a +security, improvement and bug-fix update that includes new +versions of Django, includes several database migrations and fixes several bugs. +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  b9355cf85833    1.039 GB
+kiwitcms/kiwi       6.2     7870085ad415    957.6 MB
+kiwitcms/kiwi       6.1.1   49fa42ddfe4d    955.7 MB
+kiwitcms/kiwi       6.1     b559123d25b0    970.2 MB
+kiwitcms/kiwi       6.0.1   87b24d94197d    970.1 MB
+kiwitcms/kiwi       5.3.1   a420465852be    976.8 MB
+
+
+

Changes since Kiwi TCMS 6.5

+
+

Security

+
    +
  • Update Django from 2.1.5 to 2.1.7. Fixes CVE-2019-6975: +Memory exhaustion in django.utils.numberformat.format()
  • +
+
+
+

Improvements

+
    +
  • Update mysqlclient from 1.4.1 to 1.4.2
  • +
  • Multiple template strings marked as translatable (Christophe CHAUVET)
  • +
+
+
+

Database migrations

+
    +
  • Email notifications for TestPlan and TestCase now default to True
  • +
  • Remove TestPlanEmailSettings.is_active field
  • +
+
+
+

API

+
    +
  • New method Bug.report(), References +Issue #18
  • +
  • Method Bug.create() now accepts parameter auto_report=False
  • +
+
+
+

Translations

+ +
+
+

Bug fixes

+
    +
  • Show the user who actually tested a TestCase instead of hard-coded value. Fixes +Issue #765
  • +
  • Properly handle pagination button states and page numbers. Fixes +Issue #767
  • +
  • Add TestCase to TestPlan if creating from inside a TestPlan. Fixes +Issue #777
  • +
  • Made TestCase text more readable. Fixes +Issue #764
  • +
  • Include missing templates and static files from PyPI tarball
  • +
+
+
+

Refactoring

+
    +
  • Use find_packages() when building PyPI tarball
  • +
  • Install Kiwi TCMS as tarball package inside Docker image instead of copying +from the source directory
  • +
  • Pylint fixes
  • +
  • Remove testcases.views.ReturnActions() which is now unused
  • +
  • Refactor New TestCase to class-based view and add tests
  • +
+
+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+

WARNING: kiwitcms/kiwi:latest and docker-compose.yml will +always point to the latest available version! If you have to upgrade in steps, +e.g. between several intermediate releases, you have to modify the above workflow:

+
+# starting from an older Kiwi TCMS version
+docker-compose down
+docker pull kiwitcms/kiwi:<next_upgrade_version>
+edit docker-compose.yml to use kiwitcms/kiwi:<next_upgrade_version>
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+# repeat until you have reached latest
+
+

Happy testing!

+
+ +
+
+
+
+ +

Kiwi TCMS 6.5

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 6.5! This is a minor security, +improvement and bug-fix update that includes new +versions of Django and other dependencies, removes some database fields, +includes backend API updates and fixes several bugs. +You can explore everything at +https://public.tenant.kiwitcms.org!

+

Together with this release we announce:

+ +

Both of these are implemented in Python and should work on standard TAP and +junit.xml files generated by various tools!

+

Additionally 3 more plugins are currently under development by contributors:

+ +

Supported upgrade paths:

+
+5.3   (or older) -> 5.3.1
+5.3.1 (or newer) -> 6.0.1
+6.0.1            -> 6.1
+6.1              -> 6.1.1
+6.1.1            -> 6.2 (or newer)
+
+

Docker images:

+
+kiwitcms/kiwi       latest  7ca4fda602fc    1.002 GB
+kiwitcms/kiwi       6.2     7870085ad415    957.6 MB
+kiwitcms/kiwi       6.1.1   49fa42ddfe4d    955.7 MB
+kiwitcms/kiwi       6.1     b559123d25b0    970.2 MB
+kiwitcms/kiwi       6.0.1   87b24d94197d    970.1 MB
+kiwitcms/kiwi       5.3.1   a420465852be    976.8 MB
+
+
+

Changes since Kiwi TCMS 6.4

+
+

Security

+
    +
  • Better override of SimpleMDE markdown rendering to prevent XSS vulnerabilities +in SimpleMDE
  • +
+
+
+

Improvements

+
    +
  • Update patternfly to version 3.59.1
  • +
  • Update bleach from 3.0.2 to 3.1.0
  • +
  • Update django-vinaigrette from 1.1.1 to 1.2.0
  • +
  • Update django-simple-history from 2.6.0 to 2.7.0
  • +
  • Update django-grappelli from 2.12.1 to 2.12.2
  • +
  • Update mysqlclient from 1.3.14 to 1.4.1
  • +
  • Update psycopg2 from 2.7.6.1 to 2.7.7
  • +
  • Update pygithub from 1.43.4 to 1.43.5
  • +
  • Convert TestCase page to Patternfly
      +
    • page menu is under ... in navigation bar
    • +
    • Test plans card is missing the old 'add plan' functionality b/c we are not +at all sure if adding plans to test cases is used at all. Can bring it back +upon user request!
    • +
    • Bugs card is missing the add/remove functionality for b/c we are not +quite sure how that functionality is used outside test runs!
    • +
    +
  • +
  • Convert new TestCase page to Patternfly and provide Given-When-Then text +template. This prompts the author to use a BDD style definition for their +scenarios. We believe this puts the tester into a frame of mind more +suitable for expressing what needs to be tested
  • +
  • Add a favicon. Fixes +Issue #532
  • +
  • Sort Component, Product and Version objects alphabetically. Fixes +Issue #633
  • +
  • Search test case page now shows Components and Tags
  • +
  • Search test case page now allows filtering by date. Fixes +Issue #715
  • +
  • Search test case page now uses radio buttons to filter by automation status
  • +
  • Small performance improvement when searching test plans and test cases
  • +
  • Search test run page now allows to filter by Product but still continue to +display all Builds in the selected Product
  • +
  • Updated doc-string formatting for some tcms modules
  • +
+
+
+

Database migrations

+

Known issues: on our demo installation we have observed that permission +labels were skewed after applying migrations. The symptom is that labels for +removed models are still available, labels for some models may have been removed +from groups/users or there could be permission labels appearing twice in the +database.

+

This may affect only existing installations, new installations do not have +this problem!

+

We are not certain what caused this but a quick fix is to remove all permissions +from the default Tester group and re-add them again!

+
    +
  • Remove TestCase.alias
  • +
  • Remove TestCaseRun.running_date
  • +
  • Remove TestCaseRun.notes
  • +
  • Remove TestCase.is_automated_proposed
  • +
  • Remove TestCaseText model, merge into TestCase.text field. Closes +Issue #198
  • +
  • Remove Priority.sortkey
  • +
  • Remove Build.description
  • +
  • Remove Classification.sortkey and Classification.description
  • +
  • Convert TestCase.is_automated from int to bool
  • +
  • Rename TestCaseRun.case_run_status to status
  • +
+
+
+

API

+
    +
  • New method TestCaseRunStatus.filter()
  • +
  • New method Product.create()
  • +
  • New method Classification.filter()
  • +
  • New method BugSystem.filter()
  • +
  • Changes to TestCase.add_component():
      +
    • now accepts component name instead of id
    • +
    • now fails if trying to add components linked to another Product.
    • +
    • now returns serialized TestCase object
    • +
    +
  • +
+
+
+

Translations

+ +
+
+

Bug fixes

+
    +
  • Fix for missing migrations from django-simple-history, see +DSH #512 and +StackOverflow #54177838
  • +
  • Fix cloning of test cases by surrounding bootstrap-selectpicker call with +try-catch. Fixes +Issue #695
  • +
  • Fix a traceback with TestRun report page when the RPC connection to Bugzilla +can't be established
  • +
+
+
+

Refactoring

+
    +
  • Remove unused form classes, methods, fields and label attributes
  • +
  • Remove unused or duplicate methods from TestCase model
  • +
  • Remove useless methods from BaseCaseForm()
  • +
  • Add test for discovering missing migrations
  • +
  • Add test for sanity checking PyPI packages which will always +build tarball and wheel packages
  • +
+
+
+
+

tcms-api 5.2 (30 Jan 2019)

+
    +
  • Add plugin_helpers.Backend which implements our test runner plugin +specification +in Python
  • +
  • Add dependency to kerberos (Aniello Barletta)
  • +
+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+

WARNING: kiwitcms/kiwi:latest and docker-compose.yml will +always point to the latest available version! If you have to upgrade in steps, +e.g. between several intermediate releases, you have to modify the above workflow:

+
+# starting from an older Kiwi TCMS version
+docker-compose down
+docker pull kiwitcms/kiwi:<next_upgrade_version>
+edit docker-compose.yml to use kiwitcms/kiwi:<next_upgrade_version>
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+# repeat until you have reached latest
+
+

Happy testing!

+
+ +
+
+
+
+ +

Kiwi TCMS 6.4

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 6.4! This is a security, +improvement and bug-fix update that includes new versions of Django, +Patternfly and other dependencies. 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  39fcb88182bb    963.4 MB
+kiwitcms/kiwi       6.2     7870085ad415    957.6 MB
+kiwitcms/kiwi       6.1.1   49fa42ddfe4d    955.7 MB
+kiwitcms/kiwi       6.1     b559123d25b0    970.2 MB
+kiwitcms/kiwi       6.0.1   87b24d94197d    970.1 MB
+kiwitcms/kiwi       5.3.1   a420465852be    976.8 MB
+
+
+

Changes since Kiwi TCMS 6.3

+
+

Security

+
    +
  • Update Django from 2.1.4 to 2.1.5, which deals with CVE-2019-3498: +Content spoofing possibility in the default 404 page
  • +
  • Update Patternfly to version 3.59.0, which deals with XSS issue in bootstrap. +See CVE-2018-14041
  • +
  • By default session cookies will expire after 24 hours. This can be controlled +via the SESSION_COOKIE_AGE setting. Fixes +Issue #556
  • +
+
+
+

Improvements

+
    +
  • Update mysqlclient from 1.3.13 to 1.3.14
  • +
  • Update python-gitlab from 1.6.0 to 1.7.0
  • +
  • Update django-simple-history from 2.5.1 to 2.6.0
  • +
  • Update pygithub from 1.43.3 to 1.43.4
  • +
  • New API method TestCase.remove(). Initially requested as +SO #53844380
  • +
  • Drop down select widges in Patternfly pages are now styled with +bootstrap-select giving them more consistent look and feel with +the rest of the page (Anton Sankov)
  • +
  • Create new TestPlan page now includes toggles to control notifications +and whether or not the test plan is active. This was previously available +only in edit page (Anton Sankov)
  • +
  • By default TestPlan notification toggles are turned on. Previously they +were off (Anton Sankov)
  • +
  • Create and Edit TestPlan pages now look the same (Anton Sankov)
  • +
  • Kiwi TCMS is now accepting donations via +Open Collective
  • +
+
+
+

Removed functionality

+
    +
  • Remove TestPlan page -> Run menu -> Add cases to run action. +This is the same as TestRun page -> Cases menu -> Add action
  • +
  • Legacy reports will be removed after 1st March 2019. Provide your +feedback in +Issue #657
  • +
  • The /run/ URL path has been merged with /runs/ due to configuration +refactoring. This may break your bookmarks or permalinks!
  • +
+
+
+

Bug fixes

+
    +
  • Don't traceback if markdown text is None. Originally reported as +SO #53662887
  • +
  • Show loading spinner when searching. Fixes +Issue #653
  • +
  • Quick fix: when viewing TestPlan cases make TC summary link to the test case. +Previously the summary column was a link to nowhere.
  • +
+
+
+

Translations

+ +
+
+

Refactoring

+
    +
  • Pylint fixes
  • +
  • New and updated internal linters
  • +
  • Refactor testplans.views.new to class based view (Anton Sankov)
  • +
  • Refactor TestCase -> Bugs tab -> Remove to JSON-RPC. References +Issue #18
  • +
  • Refactor removeCaseRunBug() to JSON-RPC, References +Issue #18
  • +
  • Remove unused render_form() methods
  • +
  • Remove unnecessary string-to-int conversion (Ivaylo Ivanov)
  • +
  • Remove obsolete label fields. References +Issue #652 (Anton Sankov)
  • +
  • Remove JavaScript that duplicates requestOperationUponFilteredCases()
  • +
  • Remove QuerySetIterationProxy class - not used anymore
  • +
+
+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+

WARNING: kiwitcms/kiwi:latest and docker-compose.yml will +always point to the latest available version! If you have to upgrade in steps, +e.g. between several intermediate releases, you have to modify the above workflow:

+
+# starting from an older Kiwi TCMS version
+docker-compose down
+docker pull kiwitcms/kiwi:<next_upgrade_version>
+edit docker-compose.yml to use kiwitcms/kiwi:<next_upgrade_version>
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+# repeat until you have reached latest
+
+

Happy testing!

+
+ +
+
+
+
+ +

Kiwi TCMS 6.3

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 6.3! This is a medium severity +security update that includes new versions of Django and Patternfly, +new database migrations, lots of improvements, bug fixes and internal +refactoring. This version also introduces integration with GitLab issue +tracker! 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  8135624fdca2    960.3 MB
+kiwitcms/kiwi       6.2     7870085ad415    957.6 MB
+kiwitcms/kiwi       6.1.1   49fa42ddfe4d    955.7 MB
+kiwitcms/kiwi       6.1     b559123d25b0    970.2 MB
+kiwitcms/kiwi       6.0.1   87b24d94197d    970.1 MB
+kiwitcms/kiwi       5.3.1   a420465852be    976.8 MB
+
+
+

Changes since Kiwi TCMS 6.2.1

+
+

Security

+
    +
  • Resolve medium severity XSS vulnerability which can be exploited when +previewing malicious text in Simple MDE editor. See +CVE-2018-19057, +SNYK-JS-SIMPLEMDE-72570
  • +
  • Use mozilla/bleach before rendering Markdown to the user as a second layer +of protection against the previously mentioned XSS vulnerability
  • +
+
+
+

Improvements

+
    +
  • Update to Django 2.1.4
  • +
  • Update to Patternfly 3.58.0
  • +
  • Make docker container restartable (Maik Opitz, Adam Hall)
  • +
  • Add GitLab issue tracker integration. Fixes +Issue #176 +(Filipe Arruda, Federal Institute of Pernambuco)
  • +
  • Convert Create new TestPlan page to Patternfly (Anton Sankov)
  • +
  • Upon successful registration show the list of super-users in case new +accounts must be activated manually. This can be the same or expanded +version of the addresses in the ADMIN setting. Include super-users +in email notifications sent via tcms.signals.notify_admins().
  • +
  • Don't include admin/js/*.js files in templates when not +necessary. Results in faster page load. Fixes +Issue #209
  • +
  • Enable nl2br Markdown extension which allows newline characters +to be rendered as <br> tags in HTML. Visually the rendered +text will look closer to what you seen in the text editor. Fixes +Issue #623
  • +
  • Use auto-complete for adding components to TestCase
  • +
+
+
+

Removed functionality

+
    +
  • Bulk-update of Category for selected TestCase(s) inside of +TestPlan
  • +
  • Bulk-update of Components for selected TestCase(s) inside of +TestPlan
  • +
  • Bulk-update of automated status for selected TestCase(s) inside of +TestPlan
  • +
  • Bulk-remove for TestCase Component tab
  • +
+

These actions have always been a bit broken and didn't check the +correct permission labels. You can still update items individually!

+
    +
  • Selection of Components when creating new TestCase. Closes +Issue #565. +Everywhere else Kiwi TCMS doesn't allow selection of many-to-many +relationships when creating or editing objects. Tags, Bugs, Components, +TestPlans can be added via dedicated tabs once the object has been saved.
  • +
+
+
+

Bug fixes

+
    +
  • Hide KiwiUserAdmin.password field from super-user. Fixes +Issue #610
  • +
  • Don't show inactive Priority. Fixes +Issue #637
  • +
  • Don't traceback when adding new users via Admin. Fixes +Issue #642
  • +
  • Teach TestRun.update() API method to process the stop_date +field. Fixes +Issue #554 (Anton Sankov)
  • +
  • Previously when reporting issues to Bugzilla, directly from a TestRun, +Kiwi TCMS displayed the error Enable reporting to this Issue Tracker by +configuring its base_url although that has already been configured. +This is now fixed. See +Stack Overflow #53434949
  • +
+
+
+

Database

+
    +
  • Remove TestPlan.owner field, duplicates TestPlan.author
  • +
+
+
+

Translations

+ +
+
+

Refactoring

+
    +
  • Remove fmt_queries(). Fixes +Issue #330 (Anton Sankov)
  • +
  • Remove unused parameter from plan_from_request_or_none(). Refers to +Issue #303 (Anton Sankov)
  • +
  • Remove ComponentActions() class. Fixes +Issue #20
  • +
  • Convert lots of AJAX calls to JSON-RPC
  • +
  • Remove lots of unused Python, JavaScript and templates. Both after migration +to JSON RPC and other leftovers
  • +
  • Pylint fixes (Alexander Todorov, Anton Sankov)
  • +
+
+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+

WARNING: kiwitcms/kiwi:latest and docker-compose.yml will +always point to the latest available version! If you have to upgrade in steps, +e.g. between several intermediate releases, you have to modify the above workflow:

+
+# starting from an older Kiwi TCMS version
+docker-compose down
+docker pull kiwitcms/kiwi:<next_upgrade_version>
+edit docker-compose.yml to use kiwitcms/kiwi:<next_upgrade_version>
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+# repeat until you have reached latest
+
+

Happy testing!

+
+ +
+
+
+
+ +

Kiwi TCMS 6.2.1

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 6.2.1! This is a small release +that includes some improvements 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  24338088bf46    956.8 MB
+kiwitcms/kiwi       6.2     7870085ad415    957.6 MB
+kiwitcms/kiwi       6.1.1   49fa42ddfe4d    955.7 MB
+kiwitcms/kiwi       6.1     b559123d25b0    970.2 MB
+kiwitcms/kiwi       6.0.1   87b24d94197d    970.1 MB
+kiwitcms/kiwi       5.3.1   a420465852be    976.8 MB
+
+
+

Changes since Kiwi TCMS 6.2

+
+

Improvements

+ +
+
+

Bug fixes

+
    +
  • Fix InvalidQuery, field TestCase.default_tester cannot be both deferred and +traversed using select_related at the same time. References +Issue #346
  • +
+
+
+

Refactoring

+
    +
  • Pylint fixes (Ivaylo Ivanov)
  • +
  • Remove JavaScript and Python functions in favor of existing JSON-RPC
  • +
  • Remove vendored-in js/lib/jquery.dataTables.js which is now replaced by +the npm package datatables.net (required by Patternfly)
  • +
+
+
+

Translations

+ +
+
+

Misc

+
    +
  • https://public.tenant.kiwitcms.org is +using a new SSL certificate with serial number +46:78:80:EA:80:A4:FC:65:17:E4:59:EC:1D:C2:27:47
  • +
  • Version 6.2.1 has been published to +PyPI to facilitate people who want +to deploy Kiwi TCMS on Heroku. Important: PyPI package will be provided +as a convenience for those who know what they are doing. Valid bugs and +issues will be dealth with accordingly. As we do not deploy from a PyPI +tarball we ask you to provide all the necessary +details when reporting issues! If you have no idea what all of this means +then stick to the official Docker images!
  • +
+
+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+

WARNING: kiwitcms/kiwi:latest and docker-compose.yml will +always point to the latest available version! If you have to upgrade in steps, +e.g. between several intermediate releases, you have to modify the above workflow:

+
+# starting from an older Kiwi TCMS version
+docker-compose down
+docker pull kiwitcms/kiwi:<next_upgrade_version>
+edit docker-compose.yml to use kiwitcms/kiwi:<next_upgrade_version>
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+# repeat until you have reached latest
+
+

Happy testing!

+
+ +
+
+
+
+ +

Kiwi TCMS 6.2

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 6.2! This is a small release +that removes squashed migrations from previous releases and includes a few +improvements. You can explore everything at +https://public.tenant.kiwitcms.org or +find our info booth at OpenFest in Sofia during +the weekend and do a live demo with the team!

+

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 (latest)
+
+

Docker images:

+
+kiwitcms/kiwi       latest  7870085ad415    957.6 MB
+kiwitcms/kiwi       6.2     7870085ad415    957.6 MB
+kiwitcms/kiwi       6.1.1   49fa42ddfe4d    955.7 MB
+kiwitcms/kiwi       6.1     b559123d25b0    970.2 MB
+kiwitcms/kiwi       6.0.1   87b24d94197d    970.1 MB
+kiwitcms/kiwi       5.3.1   a420465852be    976.8 MB
+
+
+

Changes since Kiwi TCMS 6.1.1

+
+

Improvements

+
    +
  • Update to Django 2.1.3
  • +
  • Update Apache config to print logs on the console. Fixes +Issue #549
  • +
  • https://public.tenant.kiwitcms.org now +allows email associations when logging via GitHub. If you have an existing +account which shares the same email address with your GitHub profile you +will be redirected to that account upon logging in via GitHub! +This also resolves a problem where existing users trying to login via GitHub +were presented with error message that their email exists in the database! +Fixes +Issue #573
  • +
+
+
+

Database

+
    +
  • Remove old variants of squashed migrations from earlier releases
  • +
+
+
+

Translations

+ +
+
+

Refactoring

+
    +
  • Update tcms.tests.factories.BugFactory (Ivaylo Ivanov)
  • +
  • Add test for tcms.testcases.views.group_case_bugs (Ivaylo Ivanov)
  • +
  • Pylint fixes (Ivaylo Ivanov)
  • +
  • Remove unused JavaScript and re-use the existing JSON RPC methods
  • +
+
+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+

WARNING: kiwitcms/kiwi:latest and docker-compose.yml will +always point to the latest available version! If you have to upgrade in steps, +e.g. between several intermediate releases, you have to modify the above workflow:

+
+# starting from an older Kiwi TCMS version
+docker-compose down
+docker pull kiwitcms/kiwi:<next_upgrade_version>
+edit docker-compose.yml to use kiwitcms/kiwi:<next_upgrade_version>
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+# repeat until you have reached latest
+
+
+
+

Subscription based online service

+

We are planning to convert +https://public.tenant.kiwitcms.org into +a subscription based service for people who don't want to bother installing +Kiwi TCMS on their own systems and just want to use it for test collaboration +with their team.

+

The income from this service will go towards covering operating costs and +supporting the +development team. Watch this +blog for further announcements about this. Meanwhile you may share your +thoughts via +Issue #515.

+
+
+

Plans to remove deprecated functionality

+

TestRun.product_version will be removed from the database schema in favor of +TestRun.plan.product_version! With the latest web interface it is not possible +to select a product version different than the one selected in the Test Plan. +Test runs should only be able to select product builds (after +Issue #246 is fixed).

+
+ +
+
+
+
+ +

Kiwi TCMS 6.1.1

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 6.1.1! This release +squashes database migrations and removes +older migrations that have been squashed in previous releases, a few +improvements 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
+
+

Docker images:

+
+kiwitcms/kiwi       latest  49fa42ddfe4d    955.7 MB
+kiwitcms/kiwi       6.1.1   49fa42ddfe4d    955.7 MB
+kiwitcms/kiwi       6.1     b559123d25b0    970.2 MB
+kiwitcms/kiwi       6.0.1   87b24d94197d    970.1 MB
+kiwitcms/kiwi       5.3.1   a420465852be    976.8 MB
+
+
+

Changes since Kiwi TCMS 6.1

+
+

Improvements

+
    +
  • Dashboard will now show TestRuns which have test cases assigned to current +user. Fixes +Issue #520
  • +
  • API method TestRun.add_case() now returns a serialized TestCaseRun object. +Previously this method returned None
  • +
+
+
+

Bug fixes

+
    +
  • Don't show disabled Priority records in UI. Fixes +Issue #334
  • +
+
+
+

Translations

+ +
+
+

Refactoring

+
    +
  • Fix some pylint errors (Ivaylo Ivanov)
  • +
+
+
+

Database

+
    +
  • Remove old squashed migrations for management, testplans, +testcases and testruns apps
  • +
  • Squash the remaining migrations for management, testplans, +testcases and testruns apps
  • +
+
+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+
+
+

Subscription based online service

+

We are planning to convert +https://public.tenant.kiwitcms.org into +a subscription based service for people who don't want to bother installing +Kiwi TCMS on their own systems and just want to use it for test collaboration +with their team.

+

The income from this service will go towards covering operating costs and +supporting the +development team. Watch this +blog for further announcements about this. Meanwhile you may share your +thoughts via +Issue #515.

+
+
+

Plans to remove deprecated functionality

+

TestRun.product_version will be removed from the database schema in favor of +TestRun.plan.product_version! With the latest web interface it is not possible +to select a product version different than the one selected in the Test Plan. +Test runs should only be able to select product builds (after +Issue #246 is fixed).

+
+ +
+
+
+
+ +

Kiwi TCMS 6.1

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 6.1! This release +introduces new database migrations, +internal updates and bug fixes. It is a small release designed +to minimize the number of database migrations by squashing them together. +You can explore everything at +https://public.tenant.kiwitcms.org.

+

NOTE: there is the 6.0.1 release which resolves an upgrade problem +caused by non-applied migrations which have been later squashed and +released in the same release! It is best to jump through the intermediate +releases to ensure a smooth upgrade!

+

Supported upgrade paths:

+
+5.3   (or older) -> 5.3.1
+5.3.1 (or newer) -> 6.0.1
+6.0.1            -> 6.1
+
+

Docker images:

+
+kiwitcms/kiwi       latest  b559123d25b0    970.2 MB
+kiwitcms/kiwi       6.1     b559123d25b0    970.2 MB
+kiwitcms/kiwi       6.0.1   87b24d94197d    970.1 MB
+kiwitcms/kiwi       5.3.1   a420465852be    976.8 MB
+
+
+

Changes since Kiwi TCMS 6.0

+
+

Improvements

+
    +
  • Update Jira from 1.0.10 to 2.0.0
  • +
  • Update to Patternfly 3.55.0
  • +
  • Use button instead of HTML link for deleting test plan (Oleg Kainov)
  • +
  • New middleware that will check missing settings. At the moment will only +check Base URL configuration which often gets forgotten!
  • +
+
+
+

Bug fixes

+
    +
  • Hot-fix for error caused by the API method TestRun.update. Error was +initially reported on +StackOverflow. +This patch makes it possible to use the API without crashing however the +TestRun.update method doesn't handle the stop_date field at the moment!
  • +
+
+
+

Translations

+ +
+
+

Refactoring

+
    +
  • Fix pylint errors (Ivaylo Ivanov)
  • +
  • Remove unused TestRun.list and TestCase.list_confirmed methods
  • +
  • Remove unused plan_by_id_or_name() and is_int(). Fixes +Issue #269
  • +
+
+
+

Database

+
    +
  • Rename tcms.core.contrib.auth to tcms.kiwi_auth
  • +
  • Remove field user from TestCaseTag, TestRunTag and TestPlanTag +models
  • +
  • Squash migrations for management app
  • +
  • Squash migrations for testcases app
  • +
  • Squash migrations for testplans app
  • +
  • Squash migrations for testruns app
  • +
+
+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+
+
+

Subscription based online service

+

We are planning to convert +https://public.tenant.kiwitcms.org into +a subscription based service for people who don't want to bother installing +Kiwi TCMS on their own systems and just want to use it for test collaboration +with their team.

+

The income from this service will go towards covering operating costs and +supporting the +development team. Watch this +blog for further announcements about this. Meanwhile you may share your +thoughts via +Issue #515.

+
+
+

Plans to remove deprecated functionality

+

TestRun.product_version will be removed from the database schema in favor of +TestRun.plan.product_version! With the latest web interface it is not possible +to select a product version different than the one selected in the Test Plan. +Test runs should only be able to select product builds (after +Issue #246 is fixed).

+
+ +
+
+
+
+ +

Kiwi TCMS 6.0

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 6.0! This release +introduces new database migrations, removal of +environment properties in favor of tags, internal updates and bug fixes. +You can explore everything at +https://public.tenant.kiwitcms.org.

+

This release removes squashed migrations. Direct upgrades from versions +< 5.3.1 to 6.0 will break without an intermediate upgrade to 5.3.1!

+

Docker images:

+
+kiwitcms/kiwi       latest  cd087297f349    991.3 MB
+
+
+

Changes since Kiwi TCMS 5.3.1

+
+

Improvements

+
    +
  • Update to Django 2.1.2 +due to high severity security issue
  • +
  • Update to Patternfly 3.54.8
  • +
  • Tag objects are now shown in Admin panel
  • +
  • Add autocomplete when adding tags to TestRun via UI
  • +
+
+
+

Removed functionality

+
    +
  • TestCase new and edit views no longer allow editing of tags. Tags can be +added/removed from the Tags tab which also makes sure to properly account +for permissions
  • +
  • Remove EnvGroup, EnvProperty and EnvValue models in favor of tags. +Existing values and properties are converted into tags and automatically added +to test runs!
  • +
  • Convert squashed database migrations to regular ones and remove older migrations. +WARNING: upgrade from versions <= 5.3.1 to 6.0 will break without an intermediate +upgrade to kiwitcms/kiwi:5.3.1 a420465852be.
  • +
  • Remove deprecated TestCase.estimated_time and TestRun.estimated_time. Fixes +Issue #514
  • +
+
+
+
+

Backend API

+
    +
  • No longer use product_version for TestRun.create. Fixes +Issue #522
      +
    • 'product' is no longer required
    • +
    • 'product_version' is no longer required
    • +
    • 'manager' and 'default_tester' can be usernames or IDs
    • +
    +
  • +
  • TestCase.create no longer accepts 'tag' values
  • +
  • TestRun.add_tag and TestRun.remove_tag now return list of tags. +Previously these methods returned None! +This is the list of tags assigned to the TestRun that is being modified!
  • +
+
+

Bug fixes

+
    +
  • Fix mismatched HTML tag in plan/get.html template (Oleg Kainov)
  • +
  • Don't use |slugify filter in templates which breaks HTML links with non-ASCII +TestPlan names. Fixes +Sentry KIWI-TCMS-38
  • +
+
+
+

Refactoring

+
    +
  • Fix pylint errors (Ivaylo Ivanov, Anton Sankov)
  • +
  • Use existing JSON-RPC methods to add/remove tags via webUI and remove specialized +backend methods that handled these requests. Also make sure to obey respective +permissions
  • +
+
+
+

Translations

+ +
+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+
+
+

Subscription based online service

+

We are planning to convert +https://public.tenant.kiwitcms.org into +a subscription based service for people who don't want to bother installing +Kiwi TCMS on their own systems and just want to use it for test collaboration +with their team.

+

The income from this service will go towards covering operating costs and +supporting the +development team. Watch this +blog for further announcements about this. Meanwhile you may share your +thoughts via +Issue #515.

+
+
+

Plans to remove deprecated functionality

+

TestRun.product_version will be removed from the database schema in favor of +TestRun.plan.product_version! With the latest web interface it is not possible +to select a product version different than the one selected in the Test Plan. +Test runs should only be able to select product builds (after +Issue #246 is fixed).

+
+ +
+
+
+
+ +

Kiwi TCMS 5.3.1

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 5.3.1! This release +brings lots of UI updates and removal of unused +and/or duplicated functionality and source code. Many pages have been redesigned +with the Patternfly library to have a modern look and feel which you can +experience at https://public.tenant.kiwitcms.org.

+

This will be the last release to carry around squashed migrations. In version +6.0 older migrations will be deleted and replaced with their squashed equivalents. +Upgrades from versions < 5.3 to 6.0 will break without an intermediate upgrade to 5.3.1!

+

Use kiwitcms/kiwi:5.3.1 from Docker Hub when upgrading at some point in the future!

+

Docker images:

+
+kiwitcms/kiwi        5.3.1               a420465852be        976.8 MB
+kiwitcms/kiwi        latest              a420465852be        976.8 MB
+
+
+

Changes since Kiwi TCMS 5.2

+
+

Improvements

+
    +
  • Update to Django 2.1.1
  • +
  • Update Patternfly version. Fixes +Issue #381
  • +
  • Replace TinyMCE with SimpleMDE markdown editor. Used for TestPlan text and +TestCase action, setup, breakdown, effect fields
  • +
  • Allow downstream builds to customize the login templates by +providing registration/custom_login.html template. It can either +override the entire login page or provide additional information inside +the custom_login block!
  • +
+
+
+

Known issues

+
    +
  • You may need to strip existing texts from HTML tags that were generated by +TinyMCE. Either do this manually as you go along and use/edit records or in bulk via +the API and tools like html2text. +We strongly advise you to backup +your database before attempting to automatically edit text fields!
  • +
+
+
+

Visual changes

+
    +
  • Remove breadcrumbs at the top of pages. Only admin pages still have them
  • +
  • Convert login and registration templates to Patternfly. Fixes +Issue #211
  • +
  • Convert 404 and 500 templates to Patternfly
  • +
  • Convert dashboard page to Patternfly
  • +
  • Convert TestRun new, edit and clone pages to Patternfly. Fixes +Issue #17
  • +
  • Convert Search Test Plans page to Patternfly
  • +
  • Convert Search Test Runs page to Patternfly
  • +
  • Convert Search Test Cases page to Patternfly
  • +
  • TestPlan view page, Runs tab now re-uses the search form for test runs +which is built using Patternfly
  • +
  • Added pagination controls to pages with search results
  • +
+
+
+

Removed functionality

+
    +
  • When creating or editing TestRun
      +
    • field estimated_time is scheduled for removal and is not shown
    • +
    • product_version is scheduled for removal in favor of +TR.plan.product_version
    • +
    • Product & Version can't be edited anymore. Must be set on the parent +TestPlan instead. Still allows to specify builds
    • +
    +
  • +
  • Remove the ability to clone multiple TestPlans from search results
  • +
  • Remove the ability to upload TestPlan document files in favor of +the existing API
  • +
  • Remove TestCase export to XML in favor of existing API
  • +
  • Remove Advanced Search functionality. Fixes +Issue #448, +Issue #108
  • +
  • Remove tech preview feature: Django Report Builder
  • +
+
+
+

Translations

+ +
+
+

Bug fixes

+
    +
  • Don't use get_full_url() where not needed. Closes +Issue #380
  • +
  • Remove unused templates. Fixes +Issue #114
  • +
  • Submit filter form when clicking on tag value. Fixes +Issue #426
  • +
  • Update TestCaseRun.tested_by when setting status. Fixes +Issue #459
  • +
  • Add tests for KiwiUserAdmin. Closes +Issue #489
  • +
+
+
+

Settings

+
    +
  • The following settings have been removed MOTD_LOGIN, WELCOME_MESSAGE +and TINYMCE_DEFAULT_CONFIG
  • +
+
+
+

Refactoring

+
    +
  • Fix pylint errors (Anton Sankov, Ivaylo Ivanov)
  • +
  • Remove lots of unused functions and classes
  • +
  • Remove old or unnecessary templates
  • +
  • Remove html2text dependency
  • +
  • Remove unused CSS and vendored-in JavaScript libraries
  • +
  • Add JavaScript JSON-RPC client which is now used by the front-end to +communicate with the existing JSON-RPC API on the back-end. This +replaces many 'ajax' views which are only used to render the UI and were +duplicating functionality with existing API
  • +
  • Non dist/ files are no longer removed from node_modules/ when building +a docker image because packages like moment.js and bootstrap-datetimepicker.js +don't ship their files in dist/
  • +
  • Convert TestPlans.TreeView to JSON RPC
  • +
+
+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+
+
+

Ask your questions on StackOverflow

+

Kiwi TCMS is now using the +'kiwi-tcms' +tag on StackOverflow to track questions. Please submit your support requests +and general questions to +StackOverflow tagged +with the 'kiwi-tcms' tag! Support requests via GitHub or email will not be answered +anymore (GitHub issues are for bugs or feature discussions only)!

+
+
+

Subscription based online service

+

We are planning to convert +https://public.tenant.kiwitcms.org into +a subscription based service for people who don't want to bother installing +Kiwi TCMS on their own systems and just want to use it for test collaboration +with their team.

+

The income from this service will go towards covering operating costs and +supporting the +development team. Watch this +blog for further announcements about this. Meanwhile you may share your +thoughts via +Issue #515.

+
+
+

Plans to remove deprecated functionality

+

TestRun.product_version will be removed from the database schema in favor of +TestRun.plan.product_version! With the latest web interface it is not possible +to select a product version different than the one selected in the Test Plan. +Test runs should only be able to select product builds (after +Issue #246 is fixed).

+

TestRun.estimated_time is scheduled for removal if not used. Objections +and use-cases must be shared via +Issue #514.

+

EnvGroup and EnvProperty models are scheduled for removal in favor +of Tag. Internally tags are referenced in more places inside Kiwi TCMS' +source code and they appear to be more fully developed. On the other hand +while environment appears very similar to tags it is not exactly the same. +Ongoing discussion is happening via +Issue #484.

+
+ +
+
+
+
+ +

Kiwi TCMS 5.2

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 5.2! This release +introduces new database migrations and converts +the Docker image to a non-root user with uid 1001. You may have to adjust +ownership/permissions on the kiwi_uploads Docker volume!

+

The new kiwitcms/kiwi:latest docker image has Image ID 6bc4e3124fd4. +https://public.tenant.kiwitcms.org +has also been updated!

+
+

Changes since Kiwi TCMS 5.1

+
+

Enhancements

+
    +
  • Upgrade to Django 2.1
  • +
  • Upgrade to django-report-builder 6.2.2, compatible with Django 2.1
  • +
  • Docker image now executes with uid 1001 instead of root
      +
    • image based on centos7 image instead of centos/httpd
    • +
    • image now exposes ports 8080 and 8443
    • +
    • Apache logs now printed on Docker console
    • +
    • SSL certificates copied to /Kiwi/ssl inside Docker image instead of being bind-mounted
    • +
    • uploads dir changed to /Kiwi/uploads
    • +
    • static dir changed to /Kiwi/static
    • +
    • /Kiwi is now owned by uid 1001
    • +
    • /venv is now owned by uid 1001
    • +
    • docker-compose.yml is updated to match
    • +
    +
  • +
  • Fix pylint errors (Ivaylo Ivanov)
  • +
  • Allow users to see other profiles via Admin
  • +
  • Use password change form from Admin instead of custom one
  • +
  • product.py will try to import local_settings.py if available in the +same directory. This can be used to customize settings in downstream +distributions
  • +
  • Updated Slovenian translation
  • +
+
+
+

Bug fixes

+
    +
  • Make password reset views public
  • +
  • Don't crash when adding new users via Admin
  • +
+
+
+

Refactoring

+
    +
  • Remove UserProfile model. Kiwi TCMS doesn't needs extra information +about users so we remove this part of the application. Custom installations +may choose to define their own profiles if they wish
  • +
  • Remove custom DBModelBackend authentication backend
  • +
  • Remove unused tcms.core.context_processors.auth_backend_processor
  • +
  • Remove unused get_using_backend(). Fixes +Issue #261
  • +
  • Remove dj_pagination. Fixes +Issue #110
  • +
+
+
+

Settings

+
    +
  • AUTHENTICATION_BACKENDS is removed
  • +
  • PAGINATION_DEFAULT_PAGINATION is removed
  • +
  • Navigation menu links are now defined in MENU_ITEMS and can be redefined
  • +
+
+
+

Signals

+
    +
  • USER_REGISTERED_SIGNAL now doesn't receive the backend parameter
  • +
+
+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+
+ +
+
+
+
+ +

Kiwi TCMS 5.1

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 5.1! This release +introduces new database migrations, an experimental reporting feature, +deprecated functionality and bug fixes.

+

The new kiwitcms/kiwi:latest docker image has Image ID cc9b55aa664d. +https://public.tenant.kiwitcms.org +has also been updated!

+
+

Changes since Kiwi TCMS 5.0

+
+

Enhancements

+
    +
  • Integrate with Django Report Builder as tech-preview. This makes it possible +for power users and administrators to generate +tabular reports. +You will have to know the existing DB schema if you want to create your own reports. +See http://kiwitcms.readthedocs.io/en/latest/db.html. This feature is in +tech-preview and it may be removed if it doesn't work out. Please comment at: +Issue #452.
  • +
  • Allow using manage.py dumpdata|loaddata|sqlflush|dbshell for backups, see +blog post
  • +
  • In TestCase view page add a link to delete the current test case
  • +
  • In TestCase Admin page the + Add TestCase button now allows to create new +test case
  • +
  • The version menu item in the helper menu now links to +Changelog
  • +
+
+
+

Deprecated functionality

+
    +
  • Start showing deprecation warning for Advanced search, see +Issue #448
  • +
+
+
+

Bug fixes

+
    +
  • Allows Product/Version/Build to be shown in Testing Report. Fixes +Sentry KIWI-TCMS-2C
  • +
  • Default to https:// links if not running locally. Fixes +Issue #450
  • +
  • Apply missing CSS class for object history table so it can be displayed nicely
  • +
+
+
+

Refactoring

+
    +
  • Squash some database migrations
  • +
  • Fix a number of pylint issues
  • +
  • Remove unused testruns.views::view_caseruns(). References +Issue #316
  • +
  • Remove unused template report/caserun.html
  • +
  • Handle TestRun deletion via admin not home grown code
  • +
+
+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+

Don't forget to backup +before upgrade!

+
+
+

Help us make Kiwi TCMS better

+

According to our 2018 roadmap update +the Kiwi TCMS team is investing a great deal of our time to make the code base more +maintainable! For the past few releases we've been balancing code refactoring +with bug-fixing and enhancements and we have lots of ideas down the line.

+

We want to hear your voice! Tell us how you use Kiwi TCMS inside your organization. +We want to know what works for you and what doesn't so we can make it better. Feel +free to comment below, file GitHub issues or send us an email.

+

Happy testing!

+
+ +
+
+
+
+ +

Kiwi TCMS 5.0

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS and tcms-api version 5.0! This release +introduces object history tracking, removal of old functionality and unused code, +lots of internal updates and bug fixes.

+

The new kiwitcms/kiwi:latest docker image has Image ID 468de0abe8a8. +https://public.tenant.kiwitcms.org has also been updated!

+
+

Changes since Kiwi TCMS 4.2

+
+

Settings

+
    +
  • Remove CACHE because not used
  • +
  • Remove PLAN_EMAIL_TEMPLATE, CASE_EMAIL_TEMPLATE and +CASE_DELETE_EMAIL_TEMPLATE. Templates can still be overridden if desired
  • +
+
+
+

Enhancements

+
    +
  • Upgrade to Django 2.0.7
  • +
  • Allow to delete TestPlan. Fixes +Issue #273
  • +
  • Don't include username in dashboard URL
  • +
  • Copy latest TestPlan text when cloning
  • +
  • Always require users to be logged in. Anonymous users will not be allowed +access by default. Read-only access to some views (e.g. get TestPlan or TestRun) +can be enabled by disabling GlobalLoginRequiredMiddleware! Fixes +Issue #230
  • +
  • Start tracking change history for TestPlan, TestCase, TestRun and TestCaseRun. +Fixes Issue #294
  • +
  • History changes are recorded as unified diff which is a universally recognized format
  • +
  • Show the actual changes in email notifications. Fixes +Issue #199
  • +
+
+
+

Bug fixes

+
    +
  • Fix UnboundLocalError local variable 'message' referenced before assignment. Fixes +Sentry KIWI-TCMS-1S
  • +
  • Make email address unique when adding users via admin panel. Fixes +Issue #352 and +Issue #68
  • +
  • Fix unsupported operand type(s) for +=: 'int' and 'datetime.timedelta' by +initializing timedelta variable properly. Fixes +Sentry KIWI-TCMS-1Y
  • +
  • Remove core.models.fields with MySQL time conversions. Fixes +Issue #390
  • +
  • Fix bad JavaScript comparison. Fixes Coverity #289956
  • +
  • Remove expression with no effect. Fixes Coverity #289974
  • +
  • Rewrite request_host_link() to fix Coverity #289987
  • +
  • Fix Coverity #289923 - Typo in identifier
  • +
  • Don't send emails for changes performed by myself. Fixes +Issue #216
  • +
+
+
+

Refactoring

+
    +
  • Fix pylint issues in several modules (Anton Sankov & Ivaylo Ivanov)
  • +
  • Fix wrong Plan Type template variable in advanced search form
  • +
  • Do not use Model.objects.update() because it doesn't respect history
  • +
  • Use the standard ModelChoiceField instead of custom one
  • +
  • Use updateRunStatus() instead of deprecated updateObject()
  • +
  • Simplify JavaScript function getInfo() and use it multiple times
  • +
  • Simplify previewPlan() by removing unused parameters
  • +
  • Unify addChildPlan() and removeChildPlan()
  • +
  • Unify getInfoAndUpdateObject() with changeCaseRunAssignee()
  • +
  • Unify onTestCaseStatusChange() with changeTestCaseStatus()
  • +
  • Convert TestCaseEmailSettings.cc_list to string field
  • +
  • Merge report/caseruns_table.html with reports/caseruns.html
  • +
  • Rename model UserActivateKey to UserActivationKey. Fixes +Issue #276
  • +
  • Remove cached_entities(). Fixes +Issue #307
  • +
  • Remove TestPlanText.checksum field
  • +
  • Remove checksum fields for TestCaseText model
  • +
  • Remove unused and home-grown template tags
  • +
  • Remove unused fields auto_blinddown, description, sortkey from +TestCaseRunStatus model. Fixes +Issue #186
  • +
  • Remove Meta.db_name effectively renaming all tables. New names will use +Django's default naming scheme
  • +
  • Remove RawSQL queries. We are now 100% ORM based. Fixes +Issue #36
  • +
  • Remove duplicate MultipleEmailField definition
  • +
  • Remove TCMSLog view, TCMSLogManager, TCMSLogModel
  • +
  • Remove TestPlanText model, use TestPlan.text instead
  • +
  • Remove unused JavaScript files +- lib/detetmine_type.js +- lib/hole.js +- lib/scriptaculous-controls.js.patch +- lib/validations.js +- static/js/index.js
  • +
  • Remove constructPlanParentPreviewDialog()
  • +
  • Remove changeCasePriority()
  • +
  • Remove changeCaseRunOrder()
  • +
  • Remove debug_output() from JavaScript files
  • +
  • Remove deprecated /ajax/update/ end-point
  • +
  • Remove taggleSortCaseRun()
  • +
  • Remove strip_parameters()
  • +
  • Remove _InfoObjects.users()
  • +
  • Remove get_value_by_type()
  • +
  • Remove testcases.views.get_log()
  • +
  • Remove mail_scene() methods and related templates
  • +
+
+
+

Removed functionality

+
    +
  • TestRun completion status is no longer updated automatically. You can still +update the status manually via the 'Set Finished' or 'Set Running' links! +Fixes Issue #367
  • +
  • Remove bookmarks functionality. There are many great bookmark manager apps +and if the user is keen on bookmarks they should use one of them. Closes +Issue #67 and +Issue #210
  • +
  • Don't track & display history of changes for EnvGroup model
  • +
  • Remove Disable/Enable buttons from TestPlan page. Enabling and disabling +can still be done via the edit page
  • +
  • Remove changeParentPlan() and the ability to change TestPlan parents +from the 'Tree View' tab. This can be done via the edit page
  • +
  • When viewing a TestPlan the user is no longer able to specify a sorkey for a +particular TestCase. Instead they can use the Re-order cases button and +move around the entire row of cases to adjust the sort order
  • +
  • When working with test case results, inside a TestRun you will not be allowed +to change the order of execution. Order should be defined inside the TestPlan +instead
  • +
  • Remove XmlRpcLog() model. Kiwi TCMS will no longer log RPC calls to the +database. This leads to a small performance boost and can be overridden on +individual basis if you need to do so.
  • +
+
+
+

Translations

+
    +
  • More source strings marked as translatable
  • +
  • New translations for Chinese Simplified, Chinese Traditional, German and Slovenian
  • +
  • Stop keeping compiled translations under git. Fixes +Issue #387
  • +
+
+
+
+

tcms-api changes since 4.2

+
    +
  • Requires Python 3.6 or newer because it fixes bugs related to Django's +disabling of keep-alive connections. See https://bugs.python.org/issue26402
  • +
  • The rpc client is now accessed via TCMS().exec.<Server-Method>
  • +
  • Leave only XML-RPC transport classes! This removes the top-level interface +behind the API client and the consuming side is left to work with Python +dictionaries instead of objects.
  • +
  • Remove the interactive tcms script
  • +
  • Remove tcms_api.config module
  • +
  • Remove logging class
  • +
  • Remove script_examples/ directory. These were never tested and maintained
  • +
+
+
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then:

+
+cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+docker exec -it kiwi_web /Kiwi/manage.py populate_history --auto
+
+
+
+

Help us make Kiwi TCMS better

+

According to our 2018 roadmap the +Kiwi TCMS team is investing a great deal of our time to make the code base more +maintainable! For the past few releases we've been balancing code refactoring +with bug-fixing and minor enhancements and we have lots of ideas down the line.

+

We want to hear your voice! Tell us how you use Kiwi TCMS inside your organization. +We want to know what works for you and what doesn't so we can make it better. Feel +free to comment below, file GitHub issues or send us an email.

+

Happy testing!

+
+ +
+
+
+
+ +

Kiwi TCMS 4.2

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS and tcms-api version 4.2! +This is a security, bug-fix and enhancement update which upgrades to the latest +Django version under Python 3.6. +We've pushed new kiwitcms/kiwi:latest docker image to Docker Hub and updated the +demo instance at https://public.tenant.kiwitcms.org!

+

This version also includes GDPR related changes which affect our project. Read below +for the details.

+

Changes since Kiwi TCMS 4.1.4

+

IMPORTANT: this release introduces new database migrations

+

Security

+ +

Settings

+
    +
  • BUGZILLA_AUTH_CACHE_DIR is a new setting that may be specified to control + where Bugzilla auth cookies are saved! It is not specified by default and + Kiwi TCMS uses a temporary directory each time we try to login into Bugzilla!
  • +
+

Enhancements

+
    +
  • Upgrade to Python 3.6. Fixes + Issue #91
  • +
  • Upgrade to Django 2.0.6
  • +
  • Fix around 100 pylint issues (Anton Sankov)
  • +
  • Update email confirmation template for newly registered users and make the + text translatable
  • +
  • Display Last login column in User admin page
  • +
  • Add tests for tcms.management.views (Anton Sankov)
  • +
  • Remove unused CSS selectors
  • +
  • Remove unnecessary templates/comments/comments.html
  • +
+

Bug fixes

+
    +
  • Remove unused deferred field product_version. Fixes + Sentry KIWI-TCMS-1C
  • +
  • Rename left-over get_url() to get_full_url(). Fixes + Sentry KIWI-TCMS-1B
  • +
  • Fix empty TestPlan url and Product fields in TestRun email notification. Fixes + Issue #353 (Matt Porter, Konsulko Group)
  • +
+

Translations

+
    +
  • Updated translations for Chinese Simplified
  • +
  • Updated translations for Chinese Traditional
  • +
  • New language and translations for Slovenian
  • +
+

Documentation

+
    +
  • Added git clone command to documentation. Fixes + Issue #344 (Anton Sankov)
  • +
+

Models and database migrations

+
    +
  • Increase checksum fields size to hold the new checksum values
  • +
  • Increase activation_key field size to 64 chars
  • +
+

GDPR related

+
    +
  • Allow users to delete their accounts. Link is present on My profile page. + This will also delete any related objects using cascade delete
  • +
  • Try not to be so obvious when it comes to displaying email addresses across + the web interface. Instead show username and link to profile
  • +
+

In addition the following changes were deployed to our infrastructure:

+
    +
  • On our website the Subscribe to our newsletter is now a link, instead of + embedded form because embedded forms can't display GDPR compliance fields. + If you wish to receive email from Kiwi TCMS you need to select the Email + checkbox when signing up for the newsletter.
  • +
  • Double opt-in is now enabled when subscribing to our newsletter
  • +
  • All newsletter addresses that have been unsubscribed have been deleted
  • +
  • Upon registration for https://public.tenant.kiwitcms.org + you are no longer subscribed + to the newsletter. Now we send a welcome email with a link to the newsletter + so you can subscribe if you want
  • +
  • https://public.tenant.kiwitcms.org + now runs a cron job which deletes inactive accounts + and all of their related data. The cron job runs weekly
  • +
+

We're trying to be respectful to your private data and not expose that to any +3rd parties or use it for means other than making Kiwi TCMS better open source +software. If you spot areas for improvement please +report an issue so we can take +a look at it!

+

tcms-api changes since 4.0.0

+
    +
  • Remove coloring. Fixes + Issue #185
  • +
  • Fix using the API client against https:// URLs (Adam Łoszyn, Samsung)
  • +
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then

+
cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+ + +

Help us make Kiwi TCMS better

+

According to our 2018 roadmap the +Kiwi TCMS team is investing a great deal of our time to make the code base more +maintainable! For the past few releases we've been balancing code refactoring +with bug-fixing and minor enhancements and we have lots of ideas down the line.

+

We want to hear your voice! Tell us how you use Kiwi TCMS inside your organization. +We want to know what works for you and what doesn't so we can make it better. Feel +free to comment below, file GitHub issues or send us an email.

+

Happy testing!

+
+
+
+
+ +

Kiwi TCMS 4.1.4

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 4.1.4! +This is a bug-fix and enhancement update which upgrades to the latest Django +version, resolves several issues and includes lots of internal code updates.

+

We've pushed new kiwitcms/kiwi docker image to Docker Hub and updated the +demo instance at +https://public.tenant.kiwitcms.org!

+

Changes since Kiwi TCMS 4.1.3

+

Enhancements

+
    +
  • Upgrade to Django 2.0.4
  • +
  • Enable pylint and fix around 700 issues (Anton Sankov)
  • +
  • Add pylint plugin to check docstrings for triple double quotes. Fixes + Issue #296
  • +
  • Add pylint plugin to check for list comprehensions. Fixes + Issue #270
  • +
  • Add pylint plugin to check for class attributes enclosed with double underscores. + These are dunders and are reserved for Python!
  • +
+

Signals

+

BREAKING CHANGES:

+
    +
  • Renamed user_registered to USER_REGISTERED_SIGNAL and + post_update to POST_UPDATE_SIGNAL!
  • +
+

Bug fixes

+ +

Refactoring

+
    +
  • Move Bugzilla and Kerberos backends code into their own repositories. Fixes + Issue #239
  • +
  • Remove cache from TestCaseRunStatus. Fixes + Issue #279
  • +
  • Rewrite UrlMixin. Fixes + Issue #157 (Chenxiong Qi)
  • +
  • Remove unused split_as_option template tag
  • +
  • Internal refactoring and more tests in tcms/core/ajax.py
  • +
  • Delete unused file tcms/core/forms/widgets.py
  • +
  • Merge case/form/filter.html into plan/get_cases.html
  • +
  • Remove unused TestCaseStatus.id_to_string()
  • +
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then

+
cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+ + +

Help us make Kiwi TCMS better

+

According to our 2018 roadmap the +Kiwi TCMS team is investing a great deal of our time to make the code base more +maintainable! For the past few releases we've been balancing code refactoring +with bug-fixing and minor enhancements and we have lots of ideas down the line.

+

We want to hear your voice! Tell us how you use Kiwi TCMS inside your organization. +We want to know what works for you and what doesn't so we can make it better. Feel +free to comment below, file GitHub issues or send us an email.

+

Happy testing!

+
+
+
+
+ +

Kiwi TCMS 4.1.3

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 4.1.3! +This is a bug-fix and enhancement update which upgrades to the latest Django +version, provides easier way for Docker administrators to override SSL certificates +and access httpd log files and resolves several issues. This release also includes +lots of internal code refactoring which removes code duplication and brings down +CodeClimate metrics +to 26.9% of technical debt or 10 months to fix.

+

We've pushed the new kiwitcms/kiwi docker image to Docker Hub and updated the +demo instance at +https://public.tenant.kiwitcms.org. +Starting forward the demo will use +the info-at-kiwitcms.org email address for all communication sent. There are real +people behind this address so if you write to us we will reply!

+

Changes since Kiwi TCMS 4.1.0

+

Enhancements

+
    +
  • Upgrade to Django 2.0.3
  • +
  • Show date_joined column for user admin
  • +
  • Expose httpd logs to the host running docker. Fixes + Issue #191
  • +
+

Bug fixes

+
    +
  • Move SSL keys under common directory in the container. Fixes + Issue #231
  • +
  • Always select active builds for TestRun. Fixes + Issue #245
  • +
  • Swap escape and escapejs filters. Fixes + Issue #234
  • +
  • Globally disable delete_selected action in Admin, this removes the + drop down selection widget! Fixes + Issue #221
  • +
  • Fix error in TestCase view when from_plan is empty string. Fixes + Sentry KIWI-TCMS-Z
  • +
  • Fix sorting issue when None is compared to int. Fixes + Sentry KIWI-TCMS-V
  • +
  • Validate form field as integer, not char. Fixes + Sentry KIWI-TCMS-W
  • +
  • [docs] Remove information about importing test cases via XML. This functionality + was removed in version 3.49
  • +
+

Refactoring

+
    +
  • Refactor inner class CaseActions. Fixes + Issue #21 (Chenxiong Qi)
  • +
  • Only use get_cases.html template. Fixes + Issue #176
  • +
  • Unify get_details_review.html and get_details.html templates
  • +
  • Remove internal Prompt.render class and replace with Django messages
  • +
  • Remove mail/delete_plan.txt template
  • +
  • Remove handle_emails_pre_plan_delete signal handler
  • +
  • Remove the Export button from TestPlan view, use Case->Export sub-menu + item in the Cases tab. Also remove the export buttons from search and advanced + search result templates. If you'd like to export the cases from a given + plan you have to open it in a new browser window and use the menu
  • +
  • Remove the Print button from plan search form
  • +
  • Remove TestRun cloning from search results and plan details, use sub-menu
  • +
  • Remove unnecessary JavaScript handling for EnvGroup edit view
  • +
+

Settings

+
    +
  • Remove PLAN_DELELE_EMAIL_TEMPLATE setting (not used)
  • +
+

Models and database migrations

+
    +
  • Use Django's own DurationField, instead of custom one. Fixes + Issue #183
  • +
+

API clients must now send values for estimated_time which must be in a +format that parse_duration() understands, for example 'DD HH:MM:SS'! See +https://docs.djangoproject.com/en/2.0/ref/utils/#django.utils.dateparse.parse_duration

+

IMPORTANT: this release introduces new database migrations!

+

Translations

+

There are new translatable strings introduced with this release! At this moment +translating Kiwi TCMS in languages other than English is purely a +community effort. If you'd like to help consult our +translations contribution page.

+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then

+
cd Kiwi/
+git pull
+docker-compose down
+docker pull kiwitcms/kiwi
+docker pull centos/mariadb
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+ + +

Help us make Kiwi TCMS better

+

According to our 2018 roadmap the +Kiwi TCMS team is investing a great deal of our time to make the code base more +maintainable! For the past few releases we've been balancing code refactoring +with bug-fixing and minor enhancements and we have lots of ideas down the line.

+

We want to hear your voice! Tell us how you use Kiwi TCMS inside your organization. +We want to know what works for you and what doesn't so we can make it better. Feel +free to comment below, file GitHub issues or send us an email.

+

Happy testing!

+
+
+ +
+ Newer Posts +

+ Page 3 / 4 +

+ Older Posts +
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/tags/releases/index4.html b/blog/tags/releases/index4.html new file mode 100644 index 00000000..5222cd7b --- /dev/null +++ b/blog/tags/releases/index4.html @@ -0,0 +1,763 @@ + + + + + Kiwi TCMS - Articles with tag releases + + + + + + + + + + + + + + + +
+

Articles with tag releases

+ +
+
+ +

Kiwi TCMS 4.1.0

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 4.1.0! +This is a bug-fix and enhancement update centered around providing more +flexibility for administrators to configure the user approval process. +Refer to the documentation for more information about +signals handling +in Kiwi TCMS.

+

Changes since Kiwi TCMS 4.0.0

+

Enhancements and bug fixes

+
    +
  • Add tests for tcms.core.ajax.tag (Anton Sankov)
  • +
  • Remove unused code from tcms.core.ajax.tag (Anton Sankov)
  • +
  • Refactor tcms.core.ajax.tag to work with only one object. Fixes + Issue #135 (Anton Sankov)
  • +
  • Add test for tcms_api.TestRun. Closes + Issue #194
  • +
  • Send the user_registered signal when new users are registered
  • +
  • Add signal handler to notify admins on new users. Fixes + Issue #205
  • +
  • Add is_superuser column to User admin. Fixes + Issue #206
  • +
  • Properly pass variables to blocktrans tag. Fixes + Issue #225
  • +
  • Minor documentation updates
  • +
+

Refactoring

+
    +
  • Remove double thread when sending email on post_save signal
  • +
  • Remove unused EmailBackend authentication backend
  • +
  • Remove unused tcms.core.models.signals module
  • +
  • Consolidate all signals and handlers in tcms.signals
  • +
  • Make use of django_messages during account registration
  • +
+

Settings

+
    +
  • Remove LISTENING_MODEL_SIGNAL (internal setting)
  • +
  • New setting AUTO_APPROVE_NEW_USERS. Fixes + Issue #203
  • +
+

Models and database migrations

+
    +
  • Remove unused fields from Product model: + disallow_new, max_vote_super_bug, vote_super_user, + field votes_to_confirm, default_milestone, milestone_url
  • +
  • Remove unused Milestone model
  • +
+

IMPORTANT: this release introduces new database migrations!

+

Translations

+

There are new translatable strings introduced with this release, +including translations of a few email templates! At this moment +translating Kiwi TCMS in languages other than English is purely a +community effort. If you'd like to help consult our +translations contribution page.

+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then

+
cd Kiwi/
+docker-compose down
+docker pull kiwitcms/kiwi
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+ + +

Happy testing!

+
+
+
+
+ +

Kiwi TCMS & tcms-api version 4.0.0

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 4.0.0 +and the corresponding tcms-api version 4.0.0! This is a very big release +which introduces tons of backwards incompatible changes to the RPC layer +as well as several bug-fixes and enhancements!

+

With this release Kiwi TCMS meets one of our +milestones for 2018! All XML-RPC +namespaces now match DB model names and the API client class names. Lots of +similar and duplicate methods were removed and existing ones were simplified. +We've also reduced code duplication and technical debth by 1 month +according to stats by CodeClimate.

+

IMPORTANT: this is also the first release to officially publish the +kiwitcms/kiwi image on Docker Hub!

+

WARNING: upgrading to Kiwi TCMS 4.0.0 means you will have to upgrade +the tcms-api client as well. None of the 4.x releases is compatible with +older releases due to the massive ammount of changes in the RPC layer.

+

Changes since Kiwi TCMS 3.50

+

Enhancements and bug fixes

+
    +
  • Upgrade to Django 2.0.2 which patches a security issue
  • +
  • Pin JIRA client version to 1.0.10. Fixes + Issue #195
  • +
  • Generate api-docs for model classes
  • +
  • Updated documentation for all RPC methods
  • +
  • Use Grappelli jQuery initialization, fixes popup windows
  • +
  • Unify RPC namespaces, API client class names and server-side model names. + Fixes Issue #153
  • +
+

Settings

+
    +
  • Remove ADMIN_PREFIX setting
  • +
+

RPC methods refactoring

+
    +
  • Remove Build.check_build, use Build.filter
  • +
  • Remove Build.get, use Build.filter
  • +
  • Remove Build.get_caseruns, use TestCaseRun.filter
  • +
  • +

    Remove Build.get_runs, use TestRun.filter

    +
  • +
  • +

    Rename Env.filter_groups, use Env.Group.filter

    +
  • +
  • Rename Env.filter_properties, use Env.Property.filter
  • +
  • +

    Rename Env.filter_values, use Env.Value.filter

    +
  • +
  • +

    Remove Product.add_component, use Component.create

    +
  • +
  • Remove Product.add_version, use Version.create
  • +
  • Remove Product.check_category, use Category.filter
  • +
  • Remove Product.check_component, use Component.filter
  • +
  • Remove Product.check_product, use Product.filter
  • +
  • Remove Product.filter_categories, use Category.filter
  • +
  • Remove Product.filter_components, use Component.filter
  • +
  • Remove Product.filter_versions, use Version.filter
  • +
  • Remove Product.get, use Product.filter
  • +
  • Remove Product.get_builds, use Build.filter
  • +
  • Remove Product.get_cases, use TestCase.filter
  • +
  • Remove Product.get_categories, use Category.filter
  • +
  • Remove Product.get_category, use Category.filter
  • +
  • Remove Product.get_component, use Component.filter
  • +
  • +

    Remove Product.update_component, use Component.update

    +
  • +
  • +

    Rename Tag.get_tags to Tag.filter

    +
  • +
  • +

    Remove TestCase.add_comment

    +
  • +
  • Update signature for TestCase.add_component
  • +
  • Update signature for TestCase.add_tag
  • +
  • Remove TestCase.add_to_run, use TestRun.add_case
  • +
  • Remove TestCase.attach_bug, use Bug.create
  • +
  • Remove TestCase.calculate_average_estimated_time
  • +
  • Remove TestCase.calculate_total_estimated_time
  • +
  • Remove TestCase.check_case_status, use TestCaseStatus.filter
  • +
  • Remove TestCase.check_priority, use Priority.filter
  • +
  • Update signature for TestCase.create, no longer accepts plan, + component and bug dict attributes. Instead use + TestPlan.add_case, TestCase.add_component and Bug.create
  • +
  • Remove TestCase.detach_bug, use Bug.remove
  • +
  • Remove TestCase.filter_count
  • +
  • Remove TestCase.get, use TestCase.filter
  • +
  • Remove TestCase.get_bugs, use Bug.filter({'case': ?})
  • +
  • Remove TestCase.get_bug_systems
  • +
  • Remove TestCase.get_case_status, use TestCaseStatus.filter
  • +
  • Update signature for TestCase.get_components
  • +
  • Remove TestCase.get_plans, use TestPlan.filter({'case': ?})
  • +
  • Remove TestCase.get_priority, use Priority.filter
  • +
  • Remove TestCase.get_tags, use Tag.filter({'case': ?})
  • +
  • Remove TestCase.get_text, use TestCase.filter
  • +
  • Remove TestCase.link_plan, use TestPlan.add_case
  • +
  • Rename TestCase.notification_add_cc to TestCase.add_notification_cc + and update signature
  • +
  • Rename TestCase.notification_get_cc_list to TestCase.get_notification_cc + and update signature
  • +
  • Rename TestCase.notification_remove_cc to TestCase.remove_notification_cc + and update signature
  • +
  • Update signature for TestCase.remove_component
  • +
  • Update signature for TestCase.remove_tag
  • +
  • Remove TestCase.store_text, use TestCase.update with + setup, breakdown, action and effect attributes in the parameter dict
  • +
  • +

    Remove TestCase.unlink_plan, use TestPlan.remove_case

    +
  • +
  • +

    Remove TestCasePlan.get

    +
  • +
  • +

    Remove TestCasePlan.update

    +
  • +
  • +

    Update TestCaseRun.add_comment to accept a single ID as first parameter

    +
  • +
  • Remove TestCaseRun.attach_bug, use Bug.create
  • +
  • Rename TestCaseRun.attach_log to TestCaseRun.add_log
  • +
  • Remove TestCaseRun.detach_bug, use Bug.remove
  • +
  • Rename TestCaseRun.detach_log to TestCaseRun.remove_log
  • +
  • Remove TestCaseRun.get, use TestCaseRun.filter
  • +
  • Remove TestCaseRun.get_bugs, use Bug.filter({'case_run': ?})
  • +
  • Remove TestCaseRun.get_case_run_status_by_name
  • +
  • +

    Update signature for TestCaseRun.update

    +
  • +
  • +

    Remove TestPlan.add_component

    +
  • +
  • Update signature for TestPlan.add_tag
  • +
  • Remove TestPlan.check_plan_type, use PlanType.filter
  • +
  • Remove TestPlan.filter_count
  • +
  • Remove TestPlan.get, use TestPlan.filter
  • +
  • Remove TestPlan.get_all_cases_tags
  • +
  • Remove TestPlan.get_components
  • +
  • Remove TestPlan.get_env_groups, use Env.Group.filter({'testplan': ?})
  • +
  • Remove TestPlan.get_plan_type, use PlanType.filter
  • +
  • Remove TestPlan.get_product, use Product.filter({'plan': ?})
  • +
  • Remove TestPlan.get_tags, use Tag.filter({'plan': ?})
  • +
  • Remove TestPlan.get_test_cases, use TestCase.filter({'plan': ?})
  • +
  • Remove TestPlan.get_test_runs, use TestRun.filter({'plan': ?})
  • +
  • Remove TestPlan.get_text, use TestPlan.filter
  • +
  • Rename TestPlan.link_env_value to TestPlan.add_env_value + and update signature
  • +
  • Remove TestPlan.remove_component
  • +
  • Update signature for TestPlan.remove_tag
  • +
  • Remove TestPlan.store_text, use TestPlan.update with + a text attribute in the parameter values
  • +
  • +

    Rename TestPlan.unlink_env_value to TestPlan.remove_env_value + and update signature

    +
  • +
  • +

    Rename TestRun.add_cases to TestRun.add_case and update signature

    +
  • +
  • Update signature for TestRun.add_tag
  • +
  • Update signature for TestRun.create, no longer accepts case + dict attribute. Instead use TestRun.add_case
  • +
  • Remove TestRun.filter_count
  • +
  • Remove TestRun.get, use TestRun.filter
  • +
  • Remove TestRun.get_bugs
  • +
  • Remove TestRun.get_env_values, use Env.Value.filter({'testrun': ?})
  • +
  • Remove TestRun.get_tags, use Tag.filter({'run': ?})
  • +
  • Rename TestRun.get_test_cases to TestRun.get_cases
  • +
  • Remove TestRun.get_test_case_runs, use TestCaseRun.filter({'run': ?})
  • +
  • Remove TestRun.get_test_plan, use TestPlan.filter({'run': ?})[0]
  • +
  • Rename TestRun.remove_cases to TestRun.remove_case and update signature
  • +
  • Update signature for TestRun.remove_tag
  • +
  • +

    Update signature for TestRun.update

    +
  • +
  • +

    Rename User.get to User.filter

    +
  • +
  • Rename User.join to User.join_group
  • +
  • Update signature for User.update
  • +
+

Models and database migrations

+
    +
  • Remove model TestEnvironment
  • +
  • Remove model TestEnvironmentCategory
  • +
  • Remove model TestEnvironmentElement
  • +
  • Remove model TestEnvironmentMap
  • +
  • Remove model TestEnvironmentProperty
  • +
  • Remove model TestPlanComponent
  • +
  • Remove TestPlan.get_text_with_version()
  • +
  • Remove TestRun.get_previous_or_next()
  • +
+

IMPORTANT: this release introduces new database migrations!

+

tcms-api changes since 1.5.1

+
    +
  • Make the code compatible with Kiwi TCMS XML-RPC v4.0.0
  • +
  • Rename Status to TestCaseRunStatus
  • +
  • Rename CaseRun to TestCaseRun
  • +
  • Remove PlanStatus, use TestPlan.is_active
  • +
  • Remove RunStatus, use TestRun.finished
  • +
  • Remove TestPlan.components container
  • +
  • Update signature for TestPlan. Now accept text kwarg in constructor + instead of document.
  • +
+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then

+
cd Kiwi/
+docker-compose down
+docker pull kiwitcms/kiwi
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+ + +

Happy testing!

+
+
+
+
+ +

Kiwi TCMS version 3.50

+
+ + +
+ +
+

We're happy to announce Kiwi TCMS version 3.50 +and the corresponding tcms-api version 1.5.1! This is a bug-fix and +enhancement release and we advise you to upgrade as soon as possible!

+

Changes since Kiwi TCMS 3.49

+

Enhancements and bug fixes

+
    +
  • Update documentation for XML-RPC and positional arguments, translations, + environment groups
  • +
  • Enable translations. Fixes + Issue #129
  • +
  • Register models for DB translations. Fixes + Issue #182
  • +
  • New German translations (@xbln)
  • +
  • Require django-attachments>=1.3 and restore attachments count in tabs
  • +
  • Fix missing tag names in TestPlan page
  • +
  • Hide admin forms for some models not supposed to be edited by users. Fixes + Issue #174
  • +
  • Use django-grappelli for the admin templates: modern look and feel and + less template files overridden by Kiwi TCMS
  • +
  • Load values for default property in TestRun 'Add Property' dialog. Fixes + Issue #142
  • +
  • Correctly find property ID when renaming environment properties. Fixes + Issue #167
  • +
  • Convert request body to string. Fixes + Issue #177
  • +
+

Refactoring

+
    +
  • Remove batch tag Add/Remove sub-menu in TestPlan view (Anton Sankov)
  • +
  • Remove Edit tag button in Tag tab (Anton Sankov)
  • +
  • Remove template functions. Fixes + Issue #107
  • +
  • Remove custom HttpJSONResponse classes
  • +
  • Remove unused and duplicate code
  • +
+

tcms-api changes since 1.5.0

+
    +
  • Fix order of TestCaseRun statuses. Fixes + Issue #184
  • +
+

IMPORTANT: this release introduces new database migrations!

+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then

+
cd Kiwi/
+docker-compose down
+make docker-image
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+ + +

Happy testing!

+
+
+
+
+ +

Kiwi TCMS version 3.49

+
+ + +
+ +
+

Happy New Year to everyone. We're happy to announce Kiwi TCMS version 3.49 +and the corresponding tcms-api version 1.5.0! This release includes a fair +amount of bug fixes and many changes related to Kiwi's RPC layer!

+

Most importantly Kiwi is updated to Django 2.0.1, the API client no longer +supports Python 2 and many RPC methods have been removed or updated. +https://public.tenant.kiwitcms.org +has also been updated so you can explore the new version.

+

Changes since Kiwi TCMS 3.48

+

Enhancements and bug fixes

+
    +
  • Upgrade to Django 2.0.1
  • +
  • Don't log passwords sent via RPC
  • +
  • Log XML-RPC requests from anonymous users. Fixes + Issue #126
  • +
  • Order TCMSEnvValue records by property name and value. Fixes + Issue #155
  • +
  • flake8 fixes (Anton Sankov)
  • +
  • Start building source code documentation from Python doc strings
  • +
  • Properly urlencode emails in personal menu links
  • +
  • Remove test case import via XML files
  • +
  • Use django-attachments for user uploaded files. Fixes + Issue #160 + As part of this change we no longer copy Plan and Case attachments when + cloning these objects.
  • +
+

NOTE: Since django-attachments introduces new permission objects + you will have to adjust default permissions for existing users! + In order for them to be able to upload/delete their own files they + need to have attachments.add_attachment and atachments.delete_attachment + permissions.

+

These same permissions are added by default to the 'Tester' group. + If you are running an existing installation registering a new user + with Kiwi TCMS will update the default permissions for this group!

+

Refactoring

+
    +
  • Remove unused class EditCaseNotifyThread (Chenxiong Qi)
  • +
  • Remove model TestPlanActivity (Chenxiong Qi)
  • +
  • Remove many unused models and classes
  • +
  • Execute tests via manage.py test and drop py.test dependency
  • +
  • Remove useless TestTag.string_to_list method. Fixes + Issue #106
  • +
  • Use settings.AUTH_USER_MODEL in ForeignKey definitions. Fixes + Issue #143
  • +
+

Settings

+
    +
  • Rename EMAIL_FROM to DEFAULT_FROM_EMAIL. Fixes + Issue #128
  • +
  • Rename FILE_UPLOAD_DIR to MEDIA_ROOT
  • +
  • Rename MAX_UPLOAD_SIZE to FILE_UPLOAD_MAX_SIZE
  • +
  • New setting DELETE_ATTACHMENTS_FROM_DISK
  • +
  • Remove unused XMLRPC_TEMPLATE and TESTOPIA_XML_VERSION
  • +
+

Server side API

+
    +
  • Migrate to django-modern-rpc and remove home-grown XML-RPC handling code. + As part of this change the XML-RPC endpoint has been changed to /xml-rpc/. + There's also a new JSON-RPC endpoint at /json-rpc/!
  • +
  • Auth.login method now accepts positional parameters username, password + instead of dict
  • +
  • TestCaseRun.get method now accepts a query dict as parameter
  • +
  • TestCaseRun.get_bugs method now accepts a query dict as parameter
  • +
  • Remove Build.lookup_id_by_name, Build.lookup_name_by_id RPC methods
  • +
  • Remove Product.lookup_name_by_id, Product.lookup_id_by_name RPC methods
  • +
  • Remove Product.get_components, use Product.filter_components instead
  • +
  • Remove Product.get_plans, use TestPlan.filter instead
  • +
  • Remove Product.get_runs, use TestRun.filter instead
  • +
  • Remove Product.get_tag, use Tag.get_tags instead
  • +
  • Remove Product.get_versions, use Product.filter_versions instead
  • +
  • Remove TestCaseRun.filter_count, use TestCaseRun.filter instead
  • +
  • Remove TestCaseRun.get_s, use TestCaseRun.get instead
  • +
  • Remove TestCaseRun.get_bugs_s, use TestCaseRun.get_bugs instead
  • +
  • Remove TestCaseRun.get_case_run_status, use + TestCaseRun.get_case_run_status_by_name instead
  • +
  • Remove TestCaseRun.get_completion_time, TestCaseRun.get_completion_time_s + RPC methods. Instead calculate them on the client side
  • +
  • Rename TestCaseRun.check_case_run_status to TestCaseRun.get_case_run_status_by_name
  • +
  • TestCaseRun.detach_log will not raise exceptions when deleting logs from + non-existing TestCaseRun objects.
  • +
  • Remove User.get_me, instead use User.get without parameters
  • +
  • Remove Version. and Testopia. RPC modules
  • +
  • Update documentation for RPC methods in Auth, Build and Env namespaces. + Unformatted documentation is also available for the rest of the RPC methods
  • +
+

tcms-api changes since 1.4.0

+
    +
  • Update endpoint configuration, compatible with Kiwi TCMS 3.49
  • +
  • Drop support for Python 2
  • +
  • Remove the internal do_command method which eliminates use of eval()
  • +
  • Remove TCMSXmlrpc.get_me() and TCMSXmlrpc.build_get() methods
  • +
+

IMPORTANT: this release introduces new database migrations!

+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then

+
cd Kiwi/
+docker-compose down
+make docker-image
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+ + +

Happy testing!

+
+
+
+
+ +

Kiwi TCMS Python API client

+
+ + +
+ +
+

We are happy to announce the first official release of the +tcms-api package! +This is a Python client for Kiwi TCMS.

+

There are couple of main distinctions in this module:

+
    +
  • mutable vs. immutable types of objects
  • +
  • high-level class interface vs. low-level XML-RPC interface
  • +
+

For more information you should check-out the documentation +and the script_examples/ directory.

+

At the moment the API client is both Python2 and Python3 compatible, +however it is tested only under Python3!

+

A bit of history

+

The original API client, like Kiwi TCMS itself began its origin under a +different name and was created primarily by Petr Splichal. Since then +Kiwi TCMS has evolved and we've decided that the API module needs to evolve +as well. At the moment the tcms-api module is a bit rough around the edges, +its documentation is not really the best one and it's currently advisable +to spend some time reading the code to figure out how everything works.

+

We're going to improve on all of these areas and we need help from the community +to do so! Please download the tcms-api module, check it out, write and contribute +example scripts (you can use the demo site for this), send us bug reports, suggestions +and pull requests!

+

Happy testing!

+
+
+
+
+ +

Kiwi TCMS version 3.48

+
+ + +
+ +
+

We're proud to announce Kiwi TCMS version 3.48! +This is the first release to be announced on our blog and it is also an +important one!

+

Kiwi TCMS 3.48 introduces new versions of Django and Patternfly, +a Python API client library, many bug-fixes and updated documentation.

+

Changes since KiwiTCMS 3.44

+
    +
  • Update to Django 1.11.7 (Mr. Senko)
  • +
  • Update documentation including high level information + about how data is organized within Kiwi TCMS and how to work + with the system. (Mr. Senko)
  • +
  • Stop caching report views. (Mr. Senko)
  • +
  • Make test execution comments optional. Fixes + Issue #77. (Mr. Senko)
  • +
  • Escape special symbols when exporting JSON. + Fixes Issue #78. (Mr. Senko)
  • +
  • Remove Test Run export to XML functionality in favor of API. + Fixes Issue #79. (Mr. Senko)
  • +
  • Make it possible to search Test Runs via Env properties. + Fixes Issue #82. (Mr. Senko)
  • +
  • Display Environment properties in Test Run search results. (Mr. Senko)
  • +
  • Allow bulk update TestCase.default_tester via email. + Fixes Issue #85. (Mr. Senko)
  • +
  • Don't crash reports when there are untested TestCaseRuns. + Fixes Issue #88. (Mr. Senko)
  • +
  • Bind localhost:80 to container:80. + Fixes Issue #99. (Mr. Senko)
  • +
  • Enable testing with Python 3.6 in preparation for migration. (Mr. Senko)
  • +
  • If JIRA isn't fully configured then don't connect. Fixes + Fixes Issue #100. (Mr. Senko)
  • +
  • Pin patternfly version to 3.30 and update templates. + Fixes Issue #120. (Mr. Senko)
  • +
  • Show status name rather than status id in TestCaseRun change log. (Chenxiong Qi)
  • +
  • [api] Adds a Python API client with changes that make it possible to + execute on both Python 2 and Python 3. For now take a look at + tcms_api/script_examples/ for examples how to use it.
  • +
  • [api] Remove experimental support for Teiid. (Mr. Senko)
  • +
  • [api] Cache level defaults to CACHE_NONE if not set. (Mr. Senko)
  • +
  • [api] Remove persistent cache, in-memory caching is still available. (Mr. Senko)
  • +
  • [api] Remove multicall support. (Mr. Senko)
  • +
+

IMPORTANT: this release introduces new database migrations!

+

NOTE: the API client has been initially developed as the python-nitrate +project by Petr Splichal and other contributors! We've decided to fork their +code base into Kiwi's repository and continue further development in a central +place. This makes it easier testing the API server and client together and +allows us to move more rapidly!

+

As of now there isn't a lot of documentation +and examples on how to use the API client but we are looking to improve this. +Additional documentation and examples will be published in the project's +repository or on this blog!

+

How to upgrade

+

If you are using Kiwi TCMS as a Docker container then

+
cd Kiwi/
+docker-compose down
+make docker-image
+docker-compose up -d
+docker exec -it kiwi_web /Kiwi/manage.py migrate
+
+ + +

Happy testing!

+
+
+ +
+ Newer Posts +

+ Page 4 / 4 +

+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/tags/roadmap/index.html b/blog/tags/roadmap/index.html new file mode 100644 index 00000000..6049641c --- /dev/null +++ b/blog/tags/roadmap/index.html @@ -0,0 +1,1189 @@ + + + + + Kiwi TCMS - Articles with tag roadmap + + + + + + + + + + + + + + + +
+

Articles with tag roadmap

+ +
+
+ +

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!

+ +
+
+
+
+ +

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!

+ +
+
+
+
+ +

Project roadmap 2020

+
+ + +
+ +
+

Hello testers, +the Kiwi TCMS team sat down together last week and talked about what we feel +is important for us during the upcoming year. This blog post outlines our +roadmap for 2020!

+

roadmap image 2020

+

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 several key areas:

+
1) Team
+2) Technical
+3) Community
+
+ + +

Team

+

Right now we have a core team with 6 newcomers on-boarding. +Engineering performance is all over the place with some people contributing +too much while others contributing too little. More importantly there is no +consistent pace of contributions which makes planning timely completion of +technical tasks impossible.

+

At the moment we do operate as a bunch of disconnected people who happen to +talk to each other from time to time.

+

We are going to adjust our internal processes and how we on-board new members. +In fact we did our first "scrum-like" meeting this week and agreed to change +our existing practice and strive to become better as a team!

+

Goal: to have a cohesive team at the end of the year which operates with +a predictable capacity.

+

Goal: 1 PR/week/person as broad measure of individual performance.

+

Technical

+

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

+

Goal: complete remaining Telemetry features.

+

Goal: complete +bug-tracker integration milestone.

+

Goal: all pylint issues resolved.

+

Goal: migrate all remaining legacy templates to Patternfly UI. See +patternfly-migration milestone.

+

Goal: where FE sends AJAX requests to BE views replace with JSON RPC API instead.

+

Extra: start tackling the JavaScript mess that we have. This depends and is related +to Patternfly migration and overall refactoring.

+

Extra: make it easier for downstream installations to extend and override parts +of Kiwi TCMS in order for users to adjust the system to their own needs. +The system is pretty flexible as-is but there have been requests, +both online and offline, to provide some extra features! We'll start looking +into them, likely making partial progress in the next 12 months.

+

Community

+

Last year Kiwi TCMS had massive success at every single conference that we've been to. +Both project and team have been well received. While we are going to continue +being part of various communities around the world we are trying to limit +extensive travel and focus on functionality and partnerships which will +increase Kiwi TCMS eco-system, make the project even more popular and +drive further adoption!

+

Goal: extended GitHub integration via +kiwitcms-github-app plugin.

+

Goal: release the following +test automation framework plugins +for Kiwi TCMS:

+ +

For more information see +test-automation-plugins milestone.

+

Ongoing: work with our partners from the proprietary and open source worlds. +This is hard to quantify and lots of it doesn't actually depend on the team. +However we are continuing to talk to them regularly. Expect new feedback to +become available under GitHub Issues.

+

Extra: see what we can do about testing productivity! This has always been +part of our mission but we have not been able to produce anything worth sharing. +We do have ideas in this space but we are generally looking for partnerships and collaborations. +It is very likely that there will not be very much progress on this front +because it is hard to define it properly :-(.

+

Summary

+

At the end of the day most of these goals compliment each other and help drive all of +them to completion. Many of the still on-boarding people have expressed desire to +improve their Python & Django skills. Working to resolve issues in the above specific +areas will give them this opportunity! I expect they will show good progress on their respective +tasks so we can write more about them on this blog.

+

Happy testing!

+
+
+
+
+ +

Roadmap status report for 2019

+
+ + +
+ +
+

Hello everyone, in this article I will outline the progress that the Kiwi TCMS +team has made towards achieving the goals on our +2019 roadmap. +TL,DR: last year we've made lots of big and visible changes in Kiwi TCMS. +This year less so. Progress has been slower than before and not so much +visible. Community and team is growing. More contributors are welcome.

+

Complete the internal refactoring

+

Status: small progress, needs help

+

CodeClimate progress is:

+
    +
  • -60 code smells
  • +
  • -55 duplications
  • +
  • -50 other issues
  • +
  • 4.4% technical debt improvement
  • +
  • -240 hrs remaining until issues are fixed
  • +
+

The trend is showing less issues remaining +but it has been a slow progress. As we fix the easier items the remaining ones +become harder to deal with.

+

We've done minor work related to fixing issues reported by pylint. Around +150 of them still remain!

+

We have not done any targeted work to resolve other issues reported by Scrutinizer, +remove vendored-in JavaScript libraries, JavaScript refactoring or +classification of issues in 3rd party dependencies.

+

Redesign the UI templates with the help of Patternfly

+

Status: 60% done, needs help

+

There are 22 HTML templates remaining to be redesigned (from 59). That's mostly +due to internal cleanup and some refactoring! Test plan and Test run pages are the +two major templates that still need to be redesigned with Patternfly.

+

Modernize reporting aka Telemetry

+

Status: 60% done, in progress, behind schedule

+

The specs for the new Telemetry system +have been defined after taking into account feedback on GitHub issues. Anton Sankov is +the leading developer for this feature. So far we have 4 telemetry reports merged: +testing break-down, status matrix, execution trends and flaky tests.

+

There are lots of minor issues or missing functionality in these first iterations +(compared to specification). Work continues on the other telemetry use-cases +and related items.

+

Plugins for 3rd party test automation frameworks

+

Status: good, needs help

+

UPDATE: no change in last 6 months.

+

If you'd like to see plugins for more test automation frameworks +and/or file formats please checkout the +documentation +for links and more info.

+

Redefine bug-tracker integration

+

Status: 66% complete, in progress, behind schedule

+

We've been making slow progress on this milestone lately. For more info +see +https://github.com/kiwitcms/Kiwi/milestone/1

+

GitHub flow integration

+

Status: done, awaiting deployment

+

Our team spent some time making Kiwi TCMS the first open source TCMS available +on the GitHub Marketplace. At the end +of this year we were able to create a small application that allows further +integration and extending the testing workflow to the GitHub platform.

+

This is waiting on a few more clarifications from GitHub before we deploy but +for now it can be considered as done. Future functionality will be tracked +and developed directly at +https://github.com/kiwitcms/github-app/issues.

+

Agile integration with Trello

+

Status: no progress, will drop

+

This will be dropped from roadmap for the next year until we can get more interest +from the community.

+

Improve engineering productivity

+

Status: no progress

+

Looking for external help here. This will stay as a low priority item on our +roadmap for 2020 until we can free more resources on the team.

+

Community

+

Status: great, on track, needs work

+

This is our strongest area during this year. We have a strong presence in +multiple communities, our event schedule is very busy and we are gaining more +recognition every day! Core team hit several big bumps this year and is still +recovering with a few more people onboarding.

+

Kiwi TCMS suffers from the problem that many of our users can't be contributors +or simply don't want to!

+

In short: it is important for us to follow our mission and develop our core team +so we can deliver on promises made in our roadmap! That requires a lot of time and +effort which reduces short-term productivity.

+

Happy testing!

+
+
+
+
+ +

Mid-year roadmap status report

+
+ + +
+ +
+

Hello everyone, in this article I will outline the progress that the Kiwi TCMS +team has made towards achieving the goals on our +2019 mission and roadmap. +TL,DR: Kiwi TCMS has made progress since January, it's been tough and may not have been +very visible. I feel like we've been behind schedule till now! The greatest +positive thing has been community and team development!

+

Complete the internal refactoring

+

Status: minimal progress, needs help

+

CodeClimate progress is:

+
    +
  • -30 code smells
  • +
  • -40 duplications
  • +
  • -30 other issues
  • +
  • 4% technical debt improvement
  • +
  • -200 hrs remaining until issues are fixed
  • +
+

This is mostly the result of code reviews and minor fixes, not targeted work.

+

We have not done any targeted work to resolve other issues reported by Scrutinizer, +Pylint, remove vendored-in JavaScript libraries, JavaScript refactoring or +classification of issues in 3rd party dependencies.

+

There are new people onboarding in the team right now and our plan is for +them to start grinding at these issues very soon!

+

Redesign the UI templates with the help of Patternfly

+

Status: 50% done, needs help

+

There are 27 HTML templates remaining to be redesigned (from 59). That's mostly +due to internal cleanup than targeted refactoring. More work on this item +will probably follow towards the end of the year after we get more priority items out of +the way and get more of the new team members rolling!

+

Modernize reporting aka Telemetry

+

Status: in progress, a bit behind schedule

+

The specs for the new Telemetry system +have been defined after taking into account feedback on GitHub issues. Anton Sankov is +the leading developer for this feature. So far we have 2 telemetry reports merged: +testing break-down and status matrix. The next one will be execution trends.

+

There are lots of minor issues or missing functionality in these first iterations +(compared to specification). Our plan is to have the major use-cases satisfied first +and then work to refine all of the existing telemetry pages.

+

Plugins for 3rd party test automation frameworks

+

Status: good, needs help

+

Until now we have released TAP, junit.xml and native JUnit 5 plugins. There's also +a PHPUnit plugin which is more or less complete but unreleased yet. Both JUnit 5 +and PHPUnit plugins are developed by external contributors!

+

We often get asked for plugins for languages and frameworks we don't use or don't +even know! Given that our expertise is mostly in Python we will gladly accept your +pull requests if you decide to maintain or contribute to one of the plugins. This +will also help us get insight into what automation frameworks people are using +and how exactly you structure a test automation workflow around Kiwi TCMS.

+

Checkout the +documentation for links +and more info.

+

Redefine bug-tracker integration

+

Status: no progress

+

Last week, right after OpenExpo, we did a check-up session and this was one of the +areas identified with zero amount of progress. I have a strong preference to work +on this feature myself but have not been able to due to various other items that +need my attention.

+

The short version is that I'd prefer to remove all issue tracker specific code +and allow the tester to add arbitrary URLs to link to existing bugs. How to do +integration (even as simple as publishing a comment in the bug tracker) over +a generic interface still eludes me. In the next few weeks I will kick-off this +topic with a separate blog post/issue for everyone to comment on.

+

GitHub flow integration

+

Status: no progress

+

Our team spent some time making Kiwi TCMS the first open source TCMS available +on the GitHub Marketplace. We will +continue this integration effort and flow integration will emerge from that. +There's also many things that need to be done to satisfy GitHub's .

+

Agile integration with Trello

+

Status: no progress

+

Improve engineering productivity

+

Status: no progress

+

Our mission is to transform testing in your organization by providing +the tools for that via Kiwi TCMS. It is astonishing that so far nobody has provided +any kind of feedback in Issue #703 +wrt improving productivity in their teams!

+

We have some ideas which have been blocked by lack of resources on the team and +refactoring tasks. Because we've adopted this as our mission this is an important +item for us and we'll continue working on it as resources allow. +Progress is to be expected towards the end of the year.

+

Community

+

Status: great, on track, needs work

+

This is our strongest area during the year so far. We have a strong presence in +several communities, our event schedule is busy enough and we are gaining more +recognition every day!

+
    +
  • Hosted project stand at 3/5 conferences with 2 more on-track
  • +
  • Won the OpenAward for Best Tech Community
  • +
  • Hosted several presentations and workshops with few more on track
  • +
  • Found new talent to join the core team: 2 just ready to start contributing, 5 more in training
  • +
  • 1 more senior engineer as a mentor. We also have a few independent wanna-be contributors + and will be hosting qualification interviews for marketing assistant very soon
  • +
  • There are contributions and pull requests coming from users of Kiwi TCMS as well. + We'd like to see more of course.
  • +
  • There are a couple of open source projects and companies using Kiwi TCMS who + are friendly towards the project. We are working with them to get a public + endorsement on the website and engage in more technical work together. Of course + everyone has limited resources and is very busy :-(
  • +
  • Sponsors on OpenCollect are just + a few but we didn't have any previously so this is a good sign.
  • +
+

This is the moment to mention that not all is honey and roses in open source land. +Kiwi TCMS suffers from the problem that many of our users can't be contributors +or simply don't want to!

+

Manual testers can't program. This is a fact and a good sized chunk of our user base +actually performs manual testing. Those that can write automation and probably +code decently well may not be familiar with Python and Django. At least in Bulgaria +these two aren't very popular, definitely not among testers. That is to say this part +of the user-base simply doesn't have the necessary skills to contribute and the majority +of what we need is code contribution!

+

Another (fairly big IMO) group of users are coming from proprietary companies who +view open source and Kiwi TCMS as a zero cost option. Something that they take free +of charge and use it without ever contributing back. They don't understand nor really +care about the open source culture.

+

To make things worse we receive requests every single day via +our private email addresses or questions via IM despite our website clearly stating +community engagement rules. On a few occasions we have received very rude comments +of the sort "our company demands you fix this", "is this going to be ready this year" +(context implying entitlement), etc. To make things more ridiculous we've even received +support requests (via contact form) from companies and start-up +who get their return address wrong so we can't get in touch directly!

+

In short: don't demand anything from us unless you are ready to pay for it, work for it +yourself or propose a mutually beneficial scenario. We do try to keep the community +happy but more importantly follow our mission and develop our core team!

+

Happy testing!

+
+
+
+
+ +

Project mission and goals for 2019

+
+ + +
+ +
+

Hello testers, Kiwi TCMS has taken on a brave new +mission! We would like to transform the testing process by making it more +organized, transparent & accountable for everyone on your team. Our goal +is to improve engineering productivity and participation in +testing. The following blog post outlines how we would like to achieve +this and what goals we put before ourselves for this year.

+

Complete the internal refactoring

+

Last year we took on the challenge to bring a legacy code base up to modern +coding standard. We did not complete that effort but made very good progress +along the way. This is not a small task and that's why our team will continue +with it this year.

+

CodeClimate report

+
    +
  • CodeClimate: + 0 issues, 0% technical debt, health score A
  • +
  • Scrutinizer: + only A and B type issues
  • +
  • Pylint: 0 issues
  • +
  • Remove vendored-in Handlebars, jQuery, jQuery-UI and TableDnD JavaScript + libraries in favor of existing npm dependencies
  • +
  • Front-end uses the existing JSON-RPC instead of backend views that + are only used for AJAX requests. Tip: these are usually accessed via + postToURL() and jQ.ajax() on the front-end
  • +
  • Inspect and classify all 3rd party issues reported from + Coverity and + Bandit. Report and fix + what we can, ignore the rest that do not affect Kiwi TCMS.
  • +
+

Redesign the UI templates with the help of Patternfly

+

There are 59 templates remaining to be converted to a modern look and feel. +Along with them comes more refactoring and even redesign of the existing pages +and the workflow around them. Together with refactoring this will make Kiwi TCMS +easier to use and also to maintain.

+

Modernize reporting

+

We are planning to remove the existing reports feature because they are not well +designed. We will re-implement existing functionality that our community finds useful, +add new types of reports (incl. nicer graphics and UI) and make it possible for the +reporting sub-system to be more easily extendable.

+

Phase out is planned to begin after 1st March 2019! Until then we are looking for your +feedback. Please comment in +Issue #657!

+

Plugins for 3rd party test automation frameworks

+

These will make it easier to collect results from automated test suites into +Kiwi TCMS for later analysis. Instead of creating scripts that parse the +results and talk to our API you will only have to install an additional package +in your test environment and configure the test runner to use it! Automation +test results will then appear inside Kiwi TCMS.

+ +

If you would like to use such functionality leave your vote inside GitHub +issues! In case you would like to write a test-runner plugin you can find the +specification +here.

+

Redefine bug-tracker integration

+
+

Question: Does Kiwi TCMS integrate with JIRA?

+

Answer: Well, it does. How exactly do you want to integrate?

+

... silence ...

+
+

The following dialog happens every time someone asks me about bug-tracker +integration, especially with JIRA. The thing is integration is a specified +set of behavior which may or may not be desired in a particular team. As of now +Kiwi TCMS is able to open a URL to your bug-tracker with predefined field +values, add comments to bug reports and report a simple summary of bugs +inside a TestRun.

+

We recognize this may not be enough and together with the community we +really need to define what bug tracker integration means! The broader domain +of application lifecycle management tools (of which TCMS is a sub-set) have an +integrated bug tracking system. We can add something like this and save you +the trouble of using JIRA, however many teams have already invested in +integrating their infrastructure or just like other tools. For example we love +GitHub issues and our team regularly makes public reports about issues that +we find internally!

+ +

GitHub flow integration

+

Developers have their +GitHub PR flow and if they +have done the job of having unit tests then they will merge only when things +are green! This leaves additional testing efforts kind of to the side and +doesn't really help with transparency and visibility. I'm not going to mention +having an automatically deployed staging environment for every change +because very few teams actually have managed to do this effectively.

+

Kiwi TCMS statuses on GitHub PR

+
    +
  • Goal: Figure out how Kiwi TCMS can integrate with GitHub flow and bridge the gap. + Please share and +1 your wildest ideas in + Issue #700.
  • +
  • Follow up: depending on the results in #700 we will follow with other goals and + sub-tasks
  • +
+

Agile integration with Trello

+

Speaking of modern engineering flow is your team truly agile? When and how +do you plan your testing activities ? Before the devel sprint or afterwards? +How many testers take part in refining product backlog and working on user stories?

+

Similar to GitHub flow lots of teams and open source projects are using Trello +to effectively organize their development process. Testing should not be left +behind and Kiwi TCMS may be able to help.

+
    +
  • Goal: Figure out how Kiwi TCMS fits into the overall devel-test-planning + process for agile teams and what we can do to make this easier for testers. + Please share and +1 your wildest ideas in + Issue #701
  • +
  • Follow up: depending on the results in #701 we will follow with other goals and + sub-tasks
  • +
+

Improve engineering productivity

+

What makes a test engineer productive when they need to assess product risk and +new features, when mapping product requirements documents (PRD) to test plans and +test cases, when collaborating on user stories and behavior specification ? +What makes developers, product owners, designers and other professionals productive +when it comes to dealing with testing ?

+

For example consider the following workflow:

+
    +
  • Company has idea for a new product
  • +
  • In case this is a big product it may have its own mission, i.e. what kind + of problem is it trying to solve and for which group of customers
  • +
  • Product backlog is then created which outlines features that map + to the product mission
  • +
  • Then the team, together with test engineers perform example mapping + and discuss and refine the initial feature requirements. User stories + are created
  • +
  • Behavior specification may also be created
  • +
  • Test plans and test cases are the immediate product of BDD specs and + desired user stories
  • +
+

Later we iterate through the sprints and for each sprint something like +this happens:

+
    +
  • Desired product features are planned for development. They must be complete + at least in terms of requirements, specs and tests
  • +
  • Devel writes code, maybe some unit tests, testers can also write automated tests + and/or manually verify the current state of the feature being developed
  • +
  • Testing, including exploratory is performed before feature is merged
  • +
  • Rinse and repeat
  • +
+

Devel is also part of testing, right? Product owners, UX and interaction +designers as well. Producing quality software product is a team effort!

+

In every step of the way Kiwi TCMS can provide notification wizards, guidelines +and/or documentation for best practices, facilitate tooling, e.g. to write user stories +and assess them or map out an exploratory testing session, etc. The list +of ideas is virtually endless. We can even go into deep learning, AI and +blockchain but honestly who knows how to use them in testing ?

+

Our team is not quite sure how this goal will look like 3 months from now +but we are certain that testing needs to happen first, last and all the time +during the entire software development lifecycle. By providing the necessary +functionality and tools in Kiwi TCMS we can boost engineering productivity +and steer the testing process in your organization into a better, more productive +direction which welcomes participation from all engineering groups.

+

Let's consider another point of view: testing is a creative activity +which is benefited by putting your brain into a specific state of mind! +For example Gherkin (the Given-When-Then language) has the benefit of +forcing you to think about behavior and while doing so you are vocalizing +the various roles in the system, what kind of actions are accepted and +what sort of result is expected! Many times this will help you remember or +discover missing scenarios, edge cases and raise even more questions!

+

Crazy ideas, brain dumps and +1 as always are welcome in +Issue #703.

+

Community

+

Coding alone is not fun! Here's what you can do to help us:

+ +

We are also looking to expand our core team and the list of occasional +contributors. The following are mostly organizational goals:

+
    +
  • Goal: participate in 5 conferences with a project stand
  • +
  • Goal: define how we find, recruit and onboard new team members. The + foundation is already set in + TP-3
  • +
  • Goal: clearly mark GitHub issues which are suitable for external contributors + which don’t want to spend lots of time learning how Kiwi TCMS works under the hood. + We're going to tag all such issues with the + + GitHub help wanted + label
  • +
+

Development policy

+

Our team will be working on areas related to the goals above. A +1 +reaction on GitHub issues will help us prioritize what we work on!

+

GitHub +1

+

Bug fixes and other +issues will be occasionally slipped into the stream and pull requests from +non-team contributors will be reviewed and merged in a timely fashion.

+

There is at least 1 full day of work that goes behind the scenes when +a new version is officially released: compile changelog, build images and +upload them, create blog post and newsletter announcement, share on social +media, etc. We also deploy on our own Kiwi TCMS instance as a stop-gap +measure before making everything public!

+

New PyPI tarballs and Docker images will be released every few weeks as +we see fit, this has been our standard process. We try to align releases +with Django's release schedule and try to cut a new version when there are known +security vulnerabilities fixed. However we can't guarantee this will always +be the case!

+

If you are in a hurry and need something quickly the best option is to +send a pull request, build your own Docker image from source and +maybe consider +sponsoring us via Open Collective!

+

Happy testing!

+
+
+
+
+ +

Roadmap status report for 2018

+
+ + +
+ +
+

Hello everyone, in this article I will outline the progress that the Kiwi TCMS +team has made towards achieving the goals in our 2018 +roadmap +(mid-year update here). +TLDR; goals are completed at 62%. Refactoring legacy code is showing good results, +less so on the front-end side and there are items still in progress!

+

Make code easier to maintain

+

Status: good progress

+

Initially CodeClimate reported +a "D" rating with 600+ code smells and 600+ duplications and a 1 year estimation +to resolve these. We're now down to "C" rating with 171 smells and 203 duplications.

+

The level of technical debt has dropped from 32.5% down to 17.7% and we have removed +around 14000 lines of Python code and 8000 lines of JavaScript code without +losing significant functionality.

+

Checkout +the stats +for more info!

+

Use pylint and pylint-django

+

Status: almost finished

+

Both pylint and pylint-django have been integrated into our CI workflow. There are even +some custom built plugins that we use. The number of issues reported is down to 100 +from 4000+ initially. These are predominantly fixme comments which are also in parts +of the code that are scheduled for removal and refactoring.

+

Render HTML, return JSON

+

Status: moderate progress

+

Several views were modified to return pure JSON but we've not +done any targeted work to resolve this issue. A number of other views have been +removed in favor of using the existing JSON-RPC layer.

+

This is an internal refactoring effort which isn't very visible from the outside. +This is also one of the factors contributing to the high number of removed +source code.

+

Submit forms, post JSON, GET clean URLs

+

Status: no progress

+

Not much has been done in this area except the occasional refactoring to +JSON-RPC.

+

API layer

+

Status: complete

+

Documentation

+

Status: moderate progress, dropped

+

All RPC methods have been documented! The rest of the internals will be documented +as we go along.

+

No vendored JavaScript libraries

+

Status: good progress

+

We still carry around jQuery, jQuery-UI and Handlebars.js. They will be +removed once the pages using them are converted to use the Patternfly widgets +library.

+

Less HTML templates with better organization

+

Status: moderate progress

+

There are still over 50 HTML templates in tcms/templates/ that need to be +refactored into Patternfly. We've been working on them one at a time and will +focus more on this effort in the next couple of months.

+

Modern interface with Patternfly

+

Status: moderate progress

+

Some of the pages have been converted to use Patternfly. The most important pages +that still have a different look and feel are TestPlan view, TestCase view and +TestRun view. These are also the hardest to convert because they have lots of +tabs/components which pull information from various places. Our goal is to create +reusable widgets for the various components (e.g. a list of TestCases) and then +include these components into several different templates to minimize code +duplication.

+

JavaScript updates and front-end testing

+

Status: moderate progress

+

A number of JavaScript functions have been refactored and removed during the +past few releases but there are still thousands of lines of code left to deal with. +This effort is mostly happening in parallel with the Patternfly redesign. +We still don't have anything to test front-end JavaScript functionality!

+

Community efforts

+

Status: good progress

+

We are seeing a steady stream of new users registered on +https://public.tenant.kiwitcms.org and +there are several active contributors on GitHub. Most of our translators are +very active and keep their respective languages fresh and up to date!

+

Kiwi TCMS was represented at OSCAL Tirana, DjangoCon Heidelberg, PyCon Prague, +HackConf Sofia, PiterPy St. Petersburg and OpenFest Sofia. We've also been +approved for a project stand at FOSDEM 2019 so watch this blog for more news.

+

Happy testing!

+
+
+
+
+ +

Mid-year roadmap status report

+
+ + +
+ +
+

Hello everyone, in this article I will outline the progress that the Kiwi TCMS +team has made towards achieving the goals on our +roadmap.

+

Make code easier to maintain

+

Status: moderate progress

+

Initially CodeClimate reported +a "D" rating with a 1 year estimated effort. Now it is still on "D" rating with +a 7 months estimated effort to bring the project back in shape. +Code smells have dropped from 600+ to 418, duplications have been reduced from 600+ to 359! +At the same time technical debt ratio has been decreased from 32,5% to 21,6% and +little over 10000 lines of code have been removed from the source code. +Checkout +the stats +for more info!

+

Use pylint and pylint-django

+

Status: good progress

+

Both pylint and pylint-django have been integrated into our CI workflow. There are even +a few custom built plugins that we use. The number of issues reported is down to around 900 +from 4000+ initially. The cleanup has been lead by Anton Sankov +with help from Ivaylo Ivanov and myself.

+

Render HTML, return JSON

+

Status: no progress

+

Several views were probably modified to return pure JSON in the meantime but we've not +done any targeted work to resolve this issue.

+

Submit forms, post JSON, GET clean URLs

+

Status: no progress

+

Same as above, not much has been done in this area.

+

API layer

+

Status: complete

+

After Kiwi TCMS v4.0 the server side API has been reorganized and updated +to follow the model/method names used internally.

+

After the recent version 5.0 the client side API library has been stripped +to its most basic form so that you can work directly with the responses from +the server.

+

There is no more duplication and ambiguity in names because there isn't +a lot of code left!

+

Documentation

+

Status: moderate progress, dropped

+

All RPC methods have been documented! The rest of the internals will be documented +as we go along.

+

No vendored JavaScript libraries

+

Status: moderate progress

+

Several JavaScript libraries have been removed but we still carry around jQuery +and Handlebars.js. No work has been done to convert Kiwi TCMS to use the jQuery +version provided with Django.

+

Less HTML templates with better organization

+

Status: minimal progress

+

There are still over 100 HTML templates in Kiwi TCMS. Some of the HTML templates +have been merged together, some email templates have been refactored and marked +as translatable but the majority of them have not been updated for a long time.

+

Modern interface with Patternfly

+

Status: no progress

+

JavaScript updates and front-end testing

+

Status: small progress

+

A number of JavaScript functions have been refactored and removed during the +past few releases but there are still thousands of lines of code left to deal with.

+

Community efforts

+

Status: moderate progress

+

We are seeing a steady stream of new users registered on +https://public.tenant.kiwitcms.org and +there are several active contributors (issues, translations).

+

Kiwi TCMS was represented at OSCAL Tirana, DjangoCon Heidelberg and PyCon Prague! +We're planning to attend HackConf and OpenFest in Sofia by the end of the year.

+

Happy testing!

+
+
+
+
+ +

Kiwi TCMS roadmap for 2018

+
+ + +
+ +
+

Hello everyone. As you know Kiwi TCMS has been around for a while and it has +gone through some big changes in the last year! It started as an abandoned +Django 1.6 project with broken test suite and is now currently running on the +latest Django 2.0.1 with Python 3.5! It is clearly a legacy code base!

+

We, the Kiwi TCMS team, have learned a lot more about the project and this +blog post describes our roadmap for 2018 in terms of technical work and community +engagement. The general technical direction is cleaner/simpler code, +improved UI/UX and more tests!

+

Make code easier to maintain

+

The current code is a bunch of very large modules and functions and classes +bundled together. It is also old and sometimes looks like spaghetti code. +CodeClimate gives us a "D" rating +for maintainability with a 1 year estimated effort to fix that. There are 600+ +code smells and 600+ duplications detected by CodeClimate. Our goal is to get this +number down to zero!

+

Use pylint and pylint-django

+

pylint is the standard static analyzer for Python and currently it reports over +4000 errors and warnings when executed against Kiwi TCMS. This is a huge number and +it needs to become zero! We've also identified interesting patterns that will +make it into pylint and pylint-django plugins!

+

Render HTML, return JSON

+

The current state of affairs is a mix and match of everything. There are views that +render HTML, others which return pure JSON, other which return HTML encoded as JSON string +and probably everything in between. Views that render pages need to do just that +and views that are used with AJAX calls from the UI need to return pure JSON! +A lot of these are hiding in plain sight and will come to light when we start +overhauling the user interface.

+

Submit forms, post JSON, GET clean URLs

+

There are lots of forms in Kiwi TCMS. Sometimes they are submitted by the user and +other times they are serialized and POSTed by some JavaScript code. This isn't +very easy to understand plus this entire home-grown utility code doesn't bring +anything useful to the project. All of these need to be identified and cleaned up. +JavaScript code needs to send or consume JSON, nothing else!

+

There are also lots of places where Kiwi issues GET requests with a number of +query parameters. Our goal is to minimize these and where possible have the +parameters as part of the Django urls scheme, not as query strings.

+

API layer

+

The current API module is a bit disorganized. API namespaces don't match the +names of the underlying DB models and the API client classes don't match any +of the other two! The way we pass parameters and what these parameters are +named should match between the client, the RPC method and the underlying model!

+

In earlier releases we've removed duplicate or similar RPC methods and we +think there are more of these that need our love.

+

Documentation

+

We've started producing documentation from doc-strings and most of the RPC +methods have such. However it is unformatted and barely readable, sometimes +even inaccurate. Previous releases made progress on this but there's a lot +more to cover.

+

All RPC methods should be documented first and then the rest of Kiwi's +internals to make development easier!

+

No vendored JavaScript libraries

+

There are 11 vendored-in JavaScript files that we carry around in Kiwi TCMS. +Most notable are jQuery plus a few addons and Handlebars.js. To the extent possible +our goal is to use jQuery provided by Django or installed via NPM dependencies!

+

Less HTML templates with better organization

+

There are over 100 HTML templates in Kiwi TCMS. There are also email and even +JavaScript templates. For example there are get_cases.html and get_review_cases.html +which are essentially the same. This is kind of also true for templates used in +new and edit views! Such templates should be unified!

+

Those JavaScript templates need to be totally gone!

+

All templates are stuffed together in a single directory and their names +are not very predictable. They need to be split per application and follow +some kind of naming convention.

+

Modern interface with Patternfly

+

The UI already uses the Patternfly library for some of its widgets. Most notably +the main navigation header. Our goal is for the entire UI to be ported to Patternfly +by updating widgets HTML and CSS where needed. +This will also help clean things up a lot. At the same time we'll be rethinking how +information is organized on screen and how the person interacts with it! Usability +suggestions are very welcome!

+

This move will also help us get rid of the Handlebars dependency which is now +used for pop-up dialogs.

+

JavaScript updates and front-end testing

+

There's lots of JavaScript code on the front-end and honestly we don't quite know +what it does or how it is organized. There are also no tests on the front-end +whatsoever!

+

It is our goal for this to change with the intention to not overdo the JavaScript +part and keep things very minimal. At the moment we're thinking about vanilla jQuery +that will act as a proxy between the browser and the back-end!

+

Community efforts

+

A year ago hardly anybody knew what Kiwi TCMS was, the project didn't even have +this name, there was 1 active contributor and hardly any users! Now the community +has started to slowly revitalize, we're seeing some contributions from our +junior team members (more on this in another blog post) and also seeing +folks installing and using Kiwi TCMS and reporting interesting bugs and feature +requests around it!

+

For the upcoming year our goal is to seek active engagement with other open source +projects that could make use of Kiwi TCMS and work with them. Kudos to +openSUSE for being the first +to propose such integration! +We're also planning couple of appearances at a few conferences but there's +nothing confirmed yet.

+

Every other contribution in terms of bug reports, new users and feature requests +is of course welcome but we're very conscious of the fact that there's tons +of work to be done and the team is still very small!

+

Team wise we'd like to get the existing team members up to speed and tackle +the above tasks with priority. This will also help us introduce bug fixes +and new features more quickly!

+

Happy testing!

+
+
+ +
+

+ Page 1 / 1 +

+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/blog/tags/team/index.html b/blog/tags/team/index.html new file mode 100644 index 00000000..9a93f889 --- /dev/null +++ b/blog/tags/team/index.html @@ -0,0 +1,393 @@ + + + + + Kiwi TCMS - Articles with tag team + + + + + + + + + + + + + + + +
+

Articles with tag team

+ +
+
+ +

Zaklina, welcome to the Kiwi TCMS team

+
+ + +
+ +
+

Kiwi TCMS is pleased to welcome Zaklina Stojnev to our team!

+

+

She holds an engineering degree in computer science and +has been working as a test engineer for more than 10 years. +In the last couple of years her main focus is automation in testing, +finding ways to improve testing process and tools that will support testing activities.

+

Zaklina will be the primary contact for our +History of Testing project where we are +compiling a database of people who influenced or made important contributions to our professional field.

+

With her prior experience as a conference organizer Zaklina will also be lending a much needed hand +in preparing the Testing and Automation devroom at FOSDEM and showcasing Kiwi TCMS at different +events.

+

You can find her on-boarding progress at TR-1190 and her +contributions on +GitHub.

+

Happy Testing!

+
+

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

+ +
+
+
+
+ +

Want to hack open source ?

+
+ + +
+ +
+

+

Have you ever wanted to be part of an open source team? +Have you ever wanted to contribute back the open source community ? +Have you ever wanted to see your code used by thousands of people ?

+

If yes now you have the opportunity! Read on to learn how you can help +Kiwi TCMS and how our team can help you.

+

Inexperienced Python developer(s)

+

It is fine not to have any experience at all! You will compensate with +commitment and hard work. Initially you are going to work on refactoring, +cleaning up pylint errors, removing duplicate code and other issues +reported by CodeClimate.

+

By doing this you will have the opportunity to learn git, Python, Django, +some CSS, JavaScript and Patternfly HTML of course. We are going to provide +you with all the learning materials plus help and guidance from existing team members.

+

Everyone on the team has gone though the same training procedure and grueling tasks +and so will you! Once you can demonstrate progress and learn the ropes you +will continue working on more complicated tasks.

+

Experienced Python developer(s)

+

So you have some experience already, you've probably contributed code before and are +now looking for more green stripes on your GitHub profile. We've got you covered!

+

There are many areas to choose from: issue tracker integration, GitHub integration, +GitLab integration, external API library, Kiwi TCMS plugins written in Python and +customized pylint linters! This is going to be where you get your hands dirty and +show your strengths. Our team is here to help if necessary but we expect you to +show progress by yourself.

+

A challenge for you will be to review pull requests from other contributors and +be patient with less experienced contributors and team members. This is an excellent +opportunity to work on your people skills as well.

+

Experienced non-Python developer(s) (with Java)

+

Kiwi TCMS is primarily looking for Java developers who will own our test automation +plugins. Currently we have a plugin for JUnit 5 and TestNG is in planning. Maybe +there will be a plugin for Jenkins as well. You are going to own these components +and work solely on them. Unless you decide to learn Python and Django that would +be a very easy job!

+

.NET, PHP, Ruby, JavaScript ? We don't have a lot of code written in these languages +but you can help change this. The main thing we'd like you to know +(or become familiar with) are the internals of popular test automation frameworks +for these languages and how to create plugins for them.

+

QA engineer with Python

+

You are going to test a lot! You are going to write test automation a lot! Ideally you +already have a medium level of experience in the software testing field and +want to improve your coding skills and/or get more experience into a different +application domain. We also have Linux and Docker in the mix, just for fun!

+

Your responsibility will be to design test scenarios for various features (new or existing), +write test automation scripts and help improve overall test coverage and quality +of Kiwi TCMS. You will also check-in on non-Python developers and +help them with test design when necessary.

+

There are other things that can be tested as well, for example Kiwi TCMS +performance and scalability. Here you will have to get down to the nitty-gritty +stuff and do some profiling to pin-point where the root cause of the problem is.

+

Security freak

+

We've got Coverity scan and +Snyk automatically inspecting our +code base. We do have some other tools as well and we know they can never be enough.

+

You will be responsible for triaging the numerous issues being reported by these +tools and help us decide if they are a real threat or a false positive. For example +Coverity reports hundreds of issues mostly coming from our Python and Node.js dependency +stack. We haven't had the time to classify them and work with upstream communities +to fix them thus the majority of your contributions will be outside of the +Kiwi TCMS code base.

+

Graphics designer

+

Your main job is going to be creating beautiful images for our website, +blog posts and promotional material. All the images we use are licensed under +Creative Commons which we then modify with the specific Kiwi TCMS look and +feel. This is not going to change, your work will remain under a permissive +license!

+

Marketing specialist

+

You will be directly responsible for driving more traffic to our website, +interpreting Google Analytics metrics and coming up with creative ideas +how to boost Kiwi TCMS popularity. This means, but not limited to blog posts, +collaborations with other projects and/or bloggers, professional magazines, etc. +You will also be in charge of events and conferences that we go to! Whenever +possible you will be coming with us as well!

+

A challenge for you will be to learn some technical jargon and learn more +about the software testing profession and software testers in general!

+

What's in it for you ?

+

You will sharpen your skills! You will use Kiwi TCMS as a platform to +improve your career. You will experience the gratification of our community of users.

+

This blog is the medium where you can share tips +and tricks and technical articles about interesting features in Kiwi TCMS. +If you'd rather have your personal blog working on Kiwi TCMS will give you lots +of topics to write about.

+

We go to conferences and meetups too. If public speaking is your thing +you will have plenty of topics to talk about. We can also help you +deliver your first presentation! Everyone on the team has done it!

+

Our existing team will help you learn and we will help you grow. Our personal time +is the most expensive item we can offer to you! In return we expect you to +fulfill your commitments and when you promise something will be done you will +make sure it is done!

+

How to apply ?

+

You can figure this out yourself.

+

Happy testing!

+
+
+
+
+ +

Kiwi TCMS team updates

+
+ + +
+ +
+

I am happy to announce that our team is steadily growing! +As we work through our roadmap, +status update here, and +on-board new team members I start to feel the need for a bit more structure +and organization behind the scenes. I also wish for consistent contributions +to the project (commit early, commit often) so I can better estimate the resources +that we have!

+

I am also actively discussing Kiwi TCMS with lots of people at various conferences +and generate many ideas for the future. The latest SEETEST in Belgrade was particularly +fruitful. Some of these ideas are pulling into different directions and I need help +to keep them under control!

+

Development-wise sometimes I lose track of what's going on and who's doing what between +working on Kiwi TCMS, preparing for conferences and venues to promote the project, +doing code review of other team members, trying not to forget to check-in on +progress (especially by interns), recruiting fresh blood and thinking about +the overall future of the project. Our user base is growing and there are days +where I feel like everything is happening at once or that something +needs to be implemented ASAP (which is usually true anyway)!

+

+

Meet Rayna Stankova in the role of our team coach! +Reny is a director for Women Who Code Sofia, senior QA engineer at VMware, +mentor with CoderDojo Bulgaria and a long-time friend of mine. +Although she is an experienced QA in her own right she will be contributing +to the people side of Kiwi TCMS and less so technically!

+

Her working areas will be planning and organization:

+
    +
  • help us (re)define the project vision and goals
  • +
  • work with us on roadmaps and action plans so we can meet + the project goals faster
  • +
  • help us (self) organize so that we are more efficient, + including checking progress and blockers (aka enforcer) and + meet the aforementioned consistency point
  • +
  • serve as our professional coach, motivator and somebody who will + take care of team health (yes I really suck at motivating others)
  • +
+

and generally serving as another very experienced member of the team!

+

We did a quick brainstorming yesterday and started to produce results +(#smileyface)! We do have a team docs space to share information +(non-public for now, will open it gradually as we grow) and came up +with the idea to use Kiwi TCMS as a check-list for our on-boarding/internship +process!

+

I don't know how it will play out but I do expect from the +team to self-improve, be inspired, become more focused and more productive! +All of this also applies to myself, even more so!

+

Existing team members progress

+

Last year we started with 2 existing team members (Tony and myself) and 3 +new interns (Ivo, Kaloyan and Tseko) who built this website!

+

Tony is the #4 contributor to Kiwi TCMS in +terms of number of commits +and is on track to surpass one of the original authors (before Kiwi TCMS was forked)! +He's been working mostly on internal refactoring and resolving the thousands +of pylint errors that we had (down to around 500 I think). This summer Tony and I +visited the OSCAL conference in Tirana and hosted an info booth for the project.

+

Ivo is the #5 contributor in terms of numbers of commits. He did learn very +quickly and is working on getting rid of the remaining pylint errors. His ability +to adapt and learn is quite impressive actually. Last month he co-hosted a +git workshop at HackConf, a 1000+ people IT event in Sofia.

+

Kaloyan did most of the work on our website initially (IIRC). +Now he is studying in the Netherlands +and not active on the project. We are working to reboot his on-boarding +and I'm hoping he will find the time to contribute to Kiwi TCMS regularly.

+

From the starting team only Tseko decided to move on to other ventures after +he contributed to the website.

+

Internship program

+

At Kiwi TCMS we have a set of training +programs that teach all the necessary technical skills before we let anyone +actively work on the project, let alone become a team member.

+

Our new interns are Denitsa Uzunova and Desislava Koleva. Both of them are +coming from Vratsa Software Community and were mentors at the recently held +CodeWeek hackathon in their home city! I wish them fast learning and good luck!

+

Happy testing!

+
+
+ +
+

+ Page 1 / 1 +

+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/community/index.html b/community/index.html new file mode 100644 index 00000000..3d82aca8 --- /dev/null +++ b/community/index.html @@ -0,0 +1,170 @@ + + + + + Kiwi TCMS - Community + + + + + + + + + + + + + + + +
+

Community

+ +

Contributing

+

We welcome community contributions! Please see the contribution page for instructions on how to submit changes. If you are planning on making more elaborate or controversial changes, please discuss them on the issue tracker before sending a pull request.

+

Code of Conduct

+

To make Kiwi TCMS a welcoming and harassment-free experience for everyone, we follow the CNCF Code of Conduct.

+

Credits

+

Kiwi TCMS was initially started by Red Hat, Inc. under the name Nitrate. +It was intended as a replacement for Mozilla's Testopia and has grown on its own +since then. +Latest development is done by +the Kiwi TCMS team and its +contributors.

+

The Kiwi TCMS logo has been designed by Milos Babic.

+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/containers/index.html b/containers/index.html new file mode 100644 index 00000000..fcba720a --- /dev/null +++ b/containers/index.html @@ -0,0 +1,273 @@ + + + + + Kiwi TCMS - Container information + + + + + + + + + + + + + + + +
+

Upstream containers

+

The official upstream Kiwi TCMS container image is publicly available via +Docker Hub and +Red Hat Quay.io. It is +free of charge and anyone can download and use it via the docker pull +command! See +Running Kiwi TCMS as a Docker container +to get started!

+

Warning: after November 1st 2020 older versions may not be available from +Docker Hub! The reason is a +6 month image retention limit +enforced by Docker Inc.!

+

Private containers for subscribers

+

Subscribers enjoy the benefit of having read-only access to tagged versions of the +upstream Kiwi TCMS container images as well as access to tagged versions of +Kiwi TCMS Enterprise container images! These images are available as:

+ +

Important: you can find your Docker credentials at the +subscriptions page, +PLUGINS -> Subscriptions. To authenticate try

+
$ docker login -u="USERNAME" -p "PASSWORD-TOKEN" quay.io
+# or
+$ echo "PASSWORD-TOKEN" | docker login -u="USERNAME" --password-stdin quay.io
+
+ + +

Image versions

+

Changelog information can be found under the releases tag!

+
quay.io/kiwitcms/version            11.6 (aarch64)          cf244e2f1dac    08 Nov 2022     636MB
+quay.io/kiwitcms/version            11.6 (x86_64)           9773335a58d1    08 Nov 2022     612MB
+quay.io/kiwitcms/version            11.5 (aarch64)          4be7894de8ae    06 Sep 2022     638MB
+quay.io/kiwitcms/version            11.5 (x86_64)           66c51b64e0a6    06 Sep 2022     608MB
+quay.io/kiwitcms/version            11.4 (aarch64)          62207c605dcf    03 Aug 2022     639MB
+quay.io/kiwitcms/version            11.4 (x86_64)           8c8356c0268d    03 Aug 2022     610MB
+quay.io/kiwitcms/version            11.3 (aarch64)          e9f34a86cd0b    27 Apr 2022     671MB
+quay.io/kiwitcms/version            11.3 (x86_64)           58dcfa91e816    27 Apr 2022     627MB
+quay.io/kiwitcms/version            11.2 (aarch64)          3b782830d19d    09 Mar 2022     665MB
+quay.io/kiwitcms/version            11.2 (x86_64)           bcc4c658440a    09 Mar 2022     620MB
+quay.io/kiwitcms/version            11.1                    72099aa8ee93    02 Feb 2022     627MB
+quay.io/kiwitcms/version            11.0                    6600bc56a544    24 Jan 2022     620MB
+quay.io/kiwitcms/version            10.5                    0574b19b5d66    25 Nov 2021     581MB
+quay.io/kiwitcms/version            10.4                    10eb8f04cccd    04 Oct 2021     588MB
+quay.io/kiwitcms/version            10.3                    bd28c4b064f5    11 Aug 2021     577MB
+quay.io/kiwitcms/version            10.2                    71b5c2a3dee4    11 Jul 2021     970MB
+quay.io/kiwitcms/version            10.1                    788af5c3f067    18 May 2021     798MB
+quay.io/kiwitcms/version            10.0                    9f23186803d5    02 Mar 2021     734MB
+quay.io/kiwitcms/version            9.0.1                   c6492d498703    14 Jan 2021     694MB
+quay.io/kiwitcms/version            9.0                     f98908772a2a    12 Jan 2021     694MB
+quay.io/kiwitcms/version            8.9                     9bcfea3a532e    07 Dec 2020     651MB
+quay.io/kiwitcms/version            8.8                     4b31ecf8ab5b    07 Nov 2020     653MB
+quay.io/kiwitcms/version            8.7                     1f2461b1facd    16 Sep 2020     642MB
+quay.io/kiwitcms/version            8.6                     f2c21b370cd9    23 Aug 2020     638MB
+quay.io/kiwitcms/version            8.5                     4379e2438e43    10 Jul 2020     635MB
+quay.io/kiwitcms/version            8.4                     602dddcf41a7    03 Jun 2020     645MB
+quay.io/kiwitcms/version            8.3                     7b4e0fbe4aea    27 Apr 2020     551MB
+quay.io/kiwitcms/version            8.2                     55ff30b351fe    03 Apr 2020     552MB
+quay.io/kiwitcms/version            8.1                     dbcf37258d15    04 Mar 2020     551MB
+quay.io/kiwitcms/version            8.0                     16489020f5f8    12 Feb 2020     551MB
+quay.io/kiwitcms/version            7.3                     34028e9d16fc    16 Jan 2020     550MB
+quay.io/kiwitcms/version            7.2.1                   7250ab605c9b    23 Dec 2019     550MB
+quay.io/kiwitcms/version            7.2                     9b0678efa915    08 Dec 2019     550MB
+quay.io/kiwitcms/version            7.1                     9e9673fa84d6    29 Oct 2019     613MB
+quay.io/kiwitcms/version            7.0                     b9a2c2013af2    24 Sep 2019     590MB
+quay.io/kiwitcms/version            6.11                    3c9cd1094c44    02 Aug 2019     970MB
+quay.io/kiwitcms/version            6.10                    2ad9a57fc762    18 Jun 2019     972MB
+quay.io/kiwitcms/version            6.9                     a004729760bd    15 May 2019     972MB
+quay.io/kiwitcms/version            6.8                     4c03a023ff80    03 May 2019     966MB
+quay.io/kiwitcms/version            6.7                     a9f959a53519    06 Apr 2019     1.05GB
+quay.io/kiwitcms/version            6.6                     253803a55cc3    19 Mar 2019     1.04GB
+quay.io/kiwitcms/version            6.5.3                   fe28a6b0d35a    11 Feb 2019     1.04GB
+quay.io/kiwitcms/version            6.5.1                   3bf08817da8d    01 Feb 2019     1.04GB
+quay.io/kiwitcms/version            6.2.1                   048826206038    12 Nov 2018     1.15GB
+quay.io/kiwitcms/version            6.2                     7870085ad415    02 Nov 2018     958MB
+quay.io/kiwitcms/version            6.1.1                   49fa42ddfe4d    29 Oct 2018     956MB
+quay.io/kiwitcms/version            6.1                     b559123d25b0    20 Oct 2018     970MB
+quay.io/kiwitcms/version            6.0.1                   87b24d94197d    20 Oct 2018     970MB
+quay.io/kiwitcms/version            6.0                     44787161a4d1    04 Oct 2018     1.1GB
+quay.io/kiwitcms/version            5.3.1                   a420465852be    04 Sep 2018     977MB
+=================================================================================================
+quay.io/kiwitcms/enterprise         11.6-mt (aarch64)       55cf76524ebd    08 Nov 2022     858MB
+quay.io/kiwitcms/enterprise         11.6-mt (x86_64)        61f48a62666b    08 Nov 2022     832MB
+quay.io/kiwitcms/enterprise         11.5.1-mt (aarch64)     9fc726a593fe    10 Sep 2022     862MB
+quay.io/kiwitcms/enterprise         11.5.1-mt (x86_64)      17821dc87456    10 Sep 2022     829MB
+quay.io/kiwitcms/enterprise         11.5-mt (aarch64)       82d64398d8bf    06 Sep 2022     862MB
+quay.io/kiwitcms/enterprise         11.5-mt (x86_64)        8a5b0b58bcca    06 Sep 2022     829MB
+quay.io/kiwitcms/enterprise         11.4-mt (aarch64)       f5720d030612    03 Aug 2022     862MB
+quay.io/kiwitcms/enterprise         11.4-mt (x86_64)        8ffd5a64a4d1    03 Aug 2022     829MB
+quay.io/kiwitcms/enterprise         11.3.1-mt (aarch64)     58a53d616105    27 Apr 2022     894MB
+quay.io/kiwitcms/enterprise         11.3.1-mt (x86_64)      3b5e7fbd234a    27 Apr 2022     847MB
+quay.io/kiwitcms/enterprise         11.3-mt (aarch64)       42fd6e3b45fc    27 Apr 2022     894MB
+quay.io/kiwitcms/enterprise         11.3-mt (x86_64)        f2b22f3037ff    27 Apr 2022     846MB
+quay.io/kiwitcms/enterprise         11.2-mt (aarch64)       fe5e869e36f6    09 Mar 2022     890MB
+quay.io/kiwitcms/enterprise         11.2-mt (x86_64)        134320d5fb7c    09 Mar 2022     841MB
+quay.io/kiwitcms/enterprise         11.1-mt                 df5ce509fd41    02 Feb 2022     852MB
+quay.io/kiwitcms/enterprise         11.0-mt                 a730291750f8    24 Jan 2022     843MB
+quay.io/kiwitcms/enterprise         10.5.1-mt               c4d745bd914c    05 Jan 2022     803MB
+quay.io/kiwitcms/enterprise         10.5-mt                 3e597c91d057    25 Nov 2021     801MB
+quay.io/kiwitcms/enterprise         10.4.1-mt               3f0504d0d724    05 Oct 2021     806MB
+quay.io/kiwitcms/enterprise         10.4-mt                 db6c57b8a04a    04 Oct 2021     806MB
+quay.io/kiwitcms/enterprise         10.3-mt                 841d83502eef    11 Aug 2021     791MB
+quay.io/kiwitcms/enterprise         10.2-mt                 1fd1cd7442bb    11 Jul 2021     1.29GB
+quay.io/kiwitcms/enterprise         10.1.1-mt               d61e243dc4f5    01 Jul 2021     1.19GB
+quay.io/kiwitcms/enterprise         10.1-mt                 08468cd91c3b    18 May 2021     1.11GB
+quay.io/kiwitcms/enterprise         10.0.1-mt               8b6bb635ba28    29 Apr 2021     1.04GB
+quay.io/kiwitcms/enterprise         10.0-mt                 d97f096d114d    02 Mar 2021     1.01GB
+quay.io/kiwitcms/enterprise         9.0.1-mt                959f1005ca92    14 Jan 2021     955MB
+quay.io/kiwitcms/enterprise         9.0-mt                  ecde99d58348    12 Jan 2021     955MB
+quay.io/kiwitcms/enterprise         8.9-mt                  6f475eb641d5    07 Dec 2020     905MB
+quay.io/kiwitcms/enterprise         8.8-mt                  9ed2cd129dad    07 Nov 2020     904MB
+quay.io/kiwitcms/enterprise         8.7-mt                  2cedfac56597    16 Sep 2020     895MB
+quay.io/kiwitcms/enterprise         8.6-mt                  1fdf90c4477d    23 Aug 2020     890MB
+quay.io/kiwitcms/enterprise         8.5.2-mt                633291dd5219    06 Aug 2020     886MB
+quay.io/kiwitcms/enterprise         8.5.1-mt                8ca936c27da5    24 Jul 2020     885MB
+quay.io/kiwitcms/enterprise         8.5-mt                  89eb34583295    10 Jul 2020     884MB
+quay.io/kiwitcms/enterprise         8.4-mt                  74af0d7317da    03 Jun 2020     882MB
+quay.io/kiwitcms/enterprise         8.3-mt                  caecc20226cc    27 Apr 2020     789MB
+quay.io/kiwitcms/enterprise         8.2-mt                  87b6c6d01326    03 Apr 2020     755MB
+quay.io/kiwitcms/enterprise         8.1.99-mt               aa48b7551313    ...........     753MB
+quay.io/kiwitcms/enterprise         8.1-mt                  44cbe05e5d90    04 Mar 2020     751MB
+quay.io/kiwitcms/enterprise         8.0-mt                  9e4b8d0c3fef    12 Feb 2020     751MB
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/features/index.html b/features/index.html new file mode 100644 index 00000000..d0fd6e63 --- /dev/null +++ b/features/index.html @@ -0,0 +1,739 @@ + + + + + Kiwi TCMS - Features matrix + + + + + + + + + + + + + + + + +
+

Features matrix

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Kiwi TCMSKiwi TCMS Enterprise
+ Available via +
+      Demo + + + + + + + + + + + +
+      Docker Hub + + + + + + +
+      Red Hat Quay.io + + + + + + + + + + + +
+      GitHub integration + + + + + + + + + + +
+      Support subscriptions + + + + + +
+      Source code + + + + + + + + + + +
+ Authentication methods +
+      Username & password +
+      Kerberos + + + + +
+      LDAP + + + + +
+      OAuth + + + + +
+ Multi-tenant + + + +
+ TestPlan +
     attachments
     cloning
     emails
     history
     tags
     test case review
+ TestCase +
     attachments
     cloning
     emails
     history
     parameters
     tags
+ TestRun +
     cloning
     emails
     environment
     history
     parameters
     tags
+      test matrix generation + + + + + + +
+ TestExecution +
     comments
     execution status
     history
     hyperlinks
     parameters
     report bug
Internal bug tracker
+ Bug tracker integration + + + + +
     Azure Boards
     BitBucket Issues
     Bugzilla
     GitHub Issues
     GitHub Issues via GitHub App
     GitLab Issues
     JIRA
     Kiwi TCMS (integrated bug tracker)
     Mantis BT
     OpenProject
     Redmine
     Trac + + + +
     1-click bug report
     automatic bug update
     show bug info from BT
     customizable integration with BT
Manual testing
+ + + Automation plugins + + + +
     Django
     JUnit 5
     junit.xml
     PHPUnit
     py.test
     Robot Framework
     Test Anything Protocol
     TestNG
Telemetry aka reports
+ Database engine + + + +
     MariaDB >= 10.2.2
+      MySQL >= 8.0, + +
     PostgreSQL + + +
     SQLite
API
+ Customizable + + + +
+ Plugin system + + + + +
Responsive design
+ Translations + + + +
+ Translation mode + + + +
+
+ + + + + + + + + + + + + + \ No newline at end of file diff --git a/feeds/all.atom.xml b/feeds/all.atom.xml new file mode 100644 index 00000000..8c1a4860 --- /dev/null +++ b/feeds/all.atom.xml @@ -0,0 +1,14610 @@ + +Kiwi TCMS/2022-11-09T12:40:00+02:00Kiwi TCMS 11.62022-11-09T12:40:00+02:002022-11-09T12:40:00+02:00Kiwi TCMS Teamtag:None,2022-11-09:/blog/kiwi-tcms-team/2022/11/09/kiwi-tcms-116/<p>We're happy to announce Kiwi TCMS version 11.6! This is our first release +after the very positive reception we had at +<a class="reference external" href="/blog/kiwi-tcms-team/2022/10/25/meet-kiwi-tcms-at-websummit-2022-in-lisbon/">WebSummit 2022</a>!</p> +<p><strong>IMPORTANT:</strong> this is a small release which contains security updates, +general improvements, bug fixes and new translations!</p> +<p>You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms …</a></p><p>We're happy to announce Kiwi TCMS version 11.6! This is our first release +after the very positive reception we had at +<a class="reference external" href="/blog/kiwi-tcms-team/2022/10/25/meet-kiwi-tcms-at-websummit-2022-in-lisbon/">WebSummit 2022</a>!</p> +<p><strong>IMPORTANT:</strong> this is a small release which contains security updates, +general improvements, bug fixes and new translations!</p> +<p>You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<blockquote> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +</blockquote> +<p>---</p> +<blockquote> +<p>Upstream container images (x86_64):</p> +<pre class="literal-block"> +kiwitcms/kiwi latest 9773335a58d1 612MB +</pre> +</blockquote> +<p><strong>IMPORTANT:</strong> version tagged and multi-arch +<a class="reference external" href="/containers/">container</a> images are available only to +<a class="reference external" href="/#subscriptions">subscribers</a>!</p> +<div class="section" id="changes-since-kiwi-tcms-11-5"> +<h2>Changes since Kiwi TCMS 11.5</h2> +<div class="section" id="security"> +<h3>Security</h3> +<ul class="simple"> +<li>Update Django from 4.0.7 to 4.1.3 which contains multiple bug fixes and +security improvements. See <a class="reference external" href="https://docs.djangoproject.com/en/4.1/releases/4.1.3/">https://docs.djangoproject.com/en/4.1/releases/4.1.3/</a></li> +<li>Sanitize HTML input when generating history diff to prevent XSS attacks</li> +</ul> +</div> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul> +<li><p class="first">Update django-extensions from 3.2.0 to 3.2.1</p> +</li> +<li><p class="first">Update jira from 3.4.0 to 3.4.1</p> +</li> +<li><p class="first">Update psycopg2 from 2.9.3 to 2.9.5</p> +</li> +<li><p class="first">Update pygithub from 1.55 to 1.57</p> +</li> +<li><p class="first">Update python-gitlab from 3.9.0 to 3.11.0</p> +</li> +<li><p class="first">Update tzdata from 2022.2 to 2022.6</p> +</li> +<li><p class="first">Container is now built on top of Red Hat Enteroprise Linux 9 and Python 3.9</p> +<p><strong>Warning:</strong></p> +<blockquote> +<p>There is high risk of breaking downstream containers. Pay attention to +bind-mounted settings files. Inspect downstream <tt class="docutils literal">Dockerfile</tt> &amp; <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> +files !!!</p> +</blockquote> +</li> +<li><p class="first">Unify some translation strings</p> +</li> +<li><p class="first">Document add-on issue tracker integrations</p> +</li> +<li><p class="first">Rename Properties to Parameters because &quot;test case parameters&quot; is +more widely used</p> +</li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li><tt class="docutils literal">JIRA.get_issue_type_from_jira()</tt> now accepts a second argument. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2929">Issue #2929</a> (&#64;cmbahadir)</li> +<li>Fix typo in documentation (Christian Clauss)</li> +<li>Trim white-space after splitting parameter values. For example the inputs +'OS=Linux' and 'OS = Windows ' will result in +Key: 'OS', Values: ['Linux', 'Windows']</li> +</ul> +</div> +<div class="section" id="refactoring-and-testing"> +<h3>Refactoring and testing</h3> +<ul class="simple"> +<li>Update Fedora from 32 to 36 in /tests/bugzilla</li> +<li>Remove Travis CI config b/c we don't use it anymore</li> +<li>Add Coverity Scan as a GitHub action</li> +<li>Don't scan devel dependencies with Coverity Scan</li> +<li>Redirect to where we came from in case posting a comment results in invalid +form</li> +<li>Configure Dependabot to update Docker containers and try tightening security +around docker containers used during testing</li> +<li>Use npm audit fix to automatically update some Node.js dependecies</li> +<li>Execute <tt class="docutils literal">npm audit signatures</tt> when installing Node.js packages</li> +<li>Start using <tt class="docutils literal">find_namespace_packages()</tt> to resolve +'Package would be ignored' warnings from setuptools</li> +<li>Add missing field in <tt class="docutils literal">setup()</tt> to avoid a warning</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/zh-CN#">Chinese Simplified translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/zh-TW#">Chinese Traditional translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/fr#">French translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/de#">German translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sk#">Slovak translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +</ul> +</div> +</div> +<div class="section" id="kiwi-tcms-enterprise-v11-6-mt"> +<h2>Kiwi TCMS Enterprise v11.6-mt</h2> +<ul> +<li><p class="first">Based on Kiwi TCMS v11.6</p> +</li> +<li><p class="first">Update containers for RHEL 9, CentOS Stream 9 and Python 3.9</p> +</li> +<li><p class="first">Update actions/checkout from 2 to 3</p> +</li> +<li><p class="first">Update django-ses from 3.1.2 to 3.2.2</p> +</li> +<li><p class="first">Update kiwitcms-tenants from 2.3.1 to 2.3.2</p> +</li> +<li><p class="first">Update kiwitcms-trackers-integration from 0.2.0 to 0.3.0. +Supports integration with OpenProject and Mantis BT. +Closes <a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2203">Issue #2203</a> and +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/879">Issue #879</a></p> +<blockquote> +<p>Private images:</p> +<pre class="literal-block"> +quay.io/kiwitcms/version 11.6 (aarch64) cf244e2f1dac 08 Nov 2022 636MB +quay.io/kiwitcms/version 11.6 (x86_64) 9773335a58d1 08 Nov 2022 612MB +quay.io/kiwitcms/enterprise 11.6-mt (aarch64) 55cf76524ebd 08 Nov 2022 858MB +quay.io/kiwitcms/enterprise 11.6-mt (x86_64) 61f48a62666b 08 Nov 2022 832MB +</pre> +</blockquote> +</li> +</ul> +<p><strong>IMPORTANT:</strong> version tagged, multi-arch and Enterprise +<a class="reference external" href="/containers/">container</a> images are available only to +<a class="reference external" href="/#subscriptions">subscribers</a>!</p> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p><a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">Backup</a> first! +Then execute the commands:</p> +<pre class="literal-block"> +cd path/containing/docker-compose/ +docker-compose down +docker-compose pull +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py upgrade +</pre> +<p>Refer to +<a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/installing_docker.html#upgrading">our documentation</a> +for more details!</p> +<p>Happy testing!</p> +<p>---</p> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us grow!</p> +<ul class="simple"> +<li><a class="reference external" href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a class="reference external" href="https://gitlab.com/gitlab-org/gitlab/-/issues/334558">Give 👍 on GitLab</a>;</li> +<li><a class="reference external" href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a class="reference external" href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> +and follow all project news;</li> +<li><a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> +and an awesome open source hacker;</li> +<li><a class="reference external" href="/#subscriptions">Become a subscriber</a> and help us sustain development</li> +</ul> +</div> +Call for participation: Testing and Automation devroom, FOSDEM'232022-11-08T15:09:00+02:002022-11-08T15:09:00+02:00Kiwi TCMS Teamtag:None,2022-11-08:/blog/kiwi-tcms-team/2022/11/08/call-for-participation-testing-and-automation-devroom-fosdem23/<p><img alt="&quot;Cfp banner&quot;" src="/images/fosdem/2023/banner.png" title="Cfp banner"></p> +<p>Attention testers! On behalf of +<a href="https://fosdem-testingautomation.github.io/"><em>Testing and Automation devroom</em></a> +we'd like to announce that call for participation is now open.</p> +<p><strong>Important:</strong> devroom will take place 09:00 to 12:50, Sunday, February 5th 2023 at +<a href="https://fosdem.org/2023/practical/transportation/">ULB Solbosch Campus, Brussels, Belgium</a>! +Presentations will be streamed online but all accepted speakers are …</p><p><img alt="&quot;Cfp banner&quot;" src="/images/fosdem/2023/banner.png" title="Cfp banner"></p> +<p>Attention testers! On behalf of +<a href="https://fosdem-testingautomation.github.io/"><em>Testing and Automation devroom</em></a> +we'd like to announce that call for participation is now open.</p> +<p><strong>Important:</strong> devroom will take place 09:00 to 12:50, Sunday, February 5th 2023 at +<a href="https://fosdem.org/2023/practical/transportation/">ULB Solbosch Campus, Brussels, Belgium</a>! +Presentations will be streamed online but all accepted speakers are required to deliver +their talks in person! The devroom will not host pre-recorded videos in 2023!</p> +<p>Here are some ideas for topics that are a good fit for this devroom:</p> +<p>Testing in the real, open source world</p> +<ul> +<li>War stories/strategies for testing large scale or complex projects</li> +<li>Demystify resource e.g. systems/device/cloud provisioning in a CI loop</li> +<li>Tools that extend the ability to test low-level code, e.g. bootloaders, init +systems, etc.</li> +<li>Projects that are introducing new/interesting ways of testing "systems"</li> +<li>Address the automated testing frameworks fragmentation</li> +<li>Lessons learned from testing</li> +</ul> +<p>Cool Tools (good candidates for lightning talks)</p> +<ul> +<li>How your open source tool made developing quality software better</li> +<li>What tools do you use to setup your CI/CD</li> +<li>Combining projects/plugins/tools to build amazing things "Not enough people in +the open source community know how to use $X, but here's a tutorial on how to +use $X to make your project better."</li> +</ul> +<p>In the past the devroom has seen both newbies/students and experienced professionals and +past speakers as part of the audience and talks covering from beginner/practical +to advanced/abstract topics. If you have doubts then submit your proposal and +leave a comment for the devroom managers and we'll get back to you.</p> +<p>Checkout +<a href="https://fosdem-testingautomation.github.io/">https://fosdem-testingautomation.github.io/</a> for more information!</p> +<p>Happy Testing!</p> +<hr> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul> +<li><a href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a href="https://gitlab.com/gitlab-org/gitlab/-/issues/334558">Give 👍 on GitLab</a>;</li> +<li><a href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> + and follow all project news;</li> +<li><a href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> and an awesome open source hacker;</li> +<li><a href="/#subscriptions">Become a customer</a> and we'll share our profits with the community</li> +</ul>Meet Kiwi TCMS at WebSummit 2022 in Lisbon2022-10-25T11:35:00+03:002022-10-25T11:35:00+03:00Kiwi TCMS Teamtag:None,2022-10-25:/blog/kiwi-tcms-team/2022/10/25/meet-kiwi-tcms-at-websummit-2022-in-lisbon/<p>Kiwi TCMS is happy to announce that we're taking part in +<a href="https://websummit.com/">WebSummit 2022</a>, Nov 01-04 in Lisbon, Portugal. +We're joining as a <a href="https://websummit.com/startups/featured-startups">featured startup</a> +in the <em>Enterprise Software Solutions</em> category.</p> +<p>Kiwi TCMS will have an on-site presence on +<strong>Wednesday, Nov 02 at Pavilion 4, Stand A709</strong>. Check-out the map for …</p><p>Kiwi TCMS is happy to announce that we're taking part in +<a href="https://websummit.com/">WebSummit 2022</a>, Nov 01-04 in Lisbon, Portugal. +We're joining as a <a href="https://websummit.com/startups/featured-startups">featured startup</a> +in the <em>Enterprise Software Solutions</em> category.</p> +<p>Kiwi TCMS will have an on-site presence on +<strong>Wednesday, Nov 02 at Pavilion 4, Stand A709</strong>. Check-out the map for more details: +<img alt="venue map" src="/images/conf/websummit/stand2022.png" title="venue map"></p> +<h2>For engineers</h2> +<p>At the exhibition stand you will have the opportunity to perform some real +<a href="/blog/kiwi-tcms-team/2020/10/10/progress-update-on-open-source-hardware-for-black-box-testing/">black-box testing</a>, +learn about Salience bias, Peltzman effect and Wason's experiments and take a photo with +our lovely mascot. We've got new stickers too!</p> +<p>Alex and Zaklina will be there to answer all of your questions regarding +open source, community, support, various integrations and the differences between +<em>Self-Support</em>, <em>SaaS</em> and <em>Enterprise</em> <a href="/#subscriptions">subscriptions</a>!</p> +<p><img alt="&quot;black boxes&quot;" src="/images/conf/websummit/black_boxes.png" title="black boxes"></p> +<p><strong>IMPORTANT:</strong> We've previously announced participation in +<a href="https://testingportugal.pstqb.pt/en/">Testing Portigal</a> at the end of November. +Unfortunately this had to be canceled due to personal reasons. If you are a test or +QA engineer please swing by and Alex can tell you a bit about his presentation!</p> +<h2>For partners</h2> +<p>If you are another ISV providing engineering tools, a product outsourcing company +or a devel/testing services venture we've got a partnership proposal for you!</p> +<p>We're interested in partners where we can integrate other products with Kiwi TCMS +and provide a better offering; provide extra services (e.g. managed hosting) and/or +provide more transparency to your own customers (e.g. allow them to see how their products +are being tested).</p> +<p>Message us via the WebSummit mobile app and request a meeting or better yet, +find our team on-site!</p> +<h2>After hours</h2> +<p>The Kiwi TCMS team will be joining the following after-hours events:</p> +<ul> +<li>Nov 01 - <a href="https://www.meetup.com/lagos-digital-nomads-community-meetup-group/events/289071623/">MEETUP - Local &amp; International Entrepreneurs &amp; Digital Nomads</a></li> +<li>Nov 02 - <a href="https://www.meetup.com/bites-bytes/events/288577914/">Bites and bytes founder gathering: dev tools &amp; open source</a></li> +<li>Nov 03 - <a href="https://www.meetup.com/lisbon-digital-nomads/events/288840698/">Web Summit 2022 Special! Lisbon Digital Nomads Meetup</a></li> +<li>Nov 04 - Meeting with <a href="https://www.youtube.com/watch?v=Wob_L_SrEwE">QGIS community</a> which have been onboard + with Kiwi TCMS for some time now. Ping <a href="https://github.com/SrNetoChan">Alexandre Neto</a> if you would like + to join</li> +<li>Nov 04 - <a href="https://www.meetup.com/theblock/events/288815979/">Crypto Friday @ The Block Lisboa</a></li> +<li>Nov 05 - <a href="https://www.meetup.com/web3-for-the-win/events/289145375/">☕️Web3 Brunch🥞</a></li> +</ul> +<p>Catch-up with us for a beer and let's talk testing and open source!</p> +<hr> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul> +<li><a href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a href="https://gitlab.com/gitlab-org/gitlab/-/issues/334558">Give 👍 on GitLab</a>;</li> +<li><a href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> + and follow all project news;</li> +<li><a href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> and an awesome open source hacker;</li> +<li><a href="/#subscriptions">Become a customer</a> and we'll share our profits with the community</li> +</ul>Kiwi TCMS 11.52022-09-06T15:40:00+03:002022-09-06T15:40:00+03:00Kiwi TCMS Teamtag:None,2022-09-06:/blog/kiwi-tcms-team/2022/09/06/kiwi-tcms-115/<p>We're happy to announce Kiwi TCMS version 11.5!</p> +<p><strong>IMPORTANT:</strong> +This is a small release which contains several improvements, bug fixes +and new translations!</p> +<p>You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<blockquote> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6 …</pre></blockquote><p>We're happy to announce Kiwi TCMS version 11.5!</p> +<p><strong>IMPORTANT:</strong> +This is a small release which contains several improvements, bug fixes +and new translations!</p> +<p>You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<blockquote> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +</blockquote> +<p>---</p> +<blockquote> +<p>Upstream container images (x86_64):</p> +<pre class="literal-block"> +kiwitcms/kiwi latest 66c51b64e0a6 608MB +</pre> +</blockquote> +<p><strong>IMPORTANT:</strong> version tagged and multi-arch +<a class="reference external" href="/containers/">container</a> images are available only to +<a class="reference external" href="/#subscriptions">subscribers</a>!</p> +<div class="section" id="changes-since-kiwi-tcms-11-4"> +<h2>Changes since Kiwi TCMS 11.4</h2> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update jira from 3.3.1 to 3.4.0</li> +<li>Update pygments from 2.12.0 to 2.13.0</li> +<li>Update python-gitlab from 3.7.0 to 3.9.0</li> +<li>Update tzdata from 2022.1 to 2022.2</li> +<li>Add Product drop down field in Build admin page. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2818">Issue #2818</a></li> +<li>Add 'prune' argument required for Django 4.1 compatibility</li> +<li>Improve documentation around <tt class="docutils literal">DEFAULT_GROUPS</tt></li> +<li>Update docs about language preferences and add a Change language menu item. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2901">Issue #2901</a>, +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2902">Issue #2902</a>, +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2903">Issue #2903</a></li> +<li>Performance improvement for Status matrix telemetry</li> +<li>Performance improvement for Execution trends telemetry</li> +<li>Display a spinner widget while telemetry data is still loading. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1801">Issue #1801</a></li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Fix error <tt class="docutils literal">Jquery deferred: No length property of null object</tt> (&#64;cmbahadir)</li> +</ul> +</div> +<div class="section" id="refactoring-and-testing"> +<h3>Refactoring and testing</h3> +<ul class="simple"> +<li>Add test for <tt class="docutils literal">AnonymousViewBackend</tt> &amp; <tt class="docutils literal">auth.</tt> permissions</li> +<li>Exclude <tt class="docutils literal">auth.view_</tt> permissions from <tt class="docutils literal">AnonymousViewBackend</tt></li> +<li>Specify 30 seconds timeout for internal requests via the requests library</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/zh-CN#">Chinese Simplified translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/fr#">French translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/pl#">Polish translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/ru#">Russian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +</ul> +</div> +</div> +<div class="section" id="kiwi-tcms-enterprise-v11-5-mt"> +<h2>Kiwi TCMS Enterprise v11.5-mt</h2> +<ul> +<li><p class="first">Based on Kiwi TCMS v11.5</p> +</li> +<li><p class="first">Update django-python3-ldap from 0.15.2 to 0.15.3</p> +</li> +<li><p class="first">Update django-ses from 3.1.0 to 3.1.2</p> +</li> +<li><p class="first">Update kiwitcms-tenants from 2.1.1 to 2.3.0</p> +</li> +<li><p class="first">Update kiwitcms-github-app from 1.3.3 to 1.4.0</p> +<blockquote> +<p>Private images:</p> +<pre class="literal-block"> +quay.io/kiwitcms/version 11.5 (aarch64) 4be7894de8ae 06 Sep 2022 638MB +quay.io/kiwitcms/version 11.5 (x86_64) 66c51b64e0a6 06 Sep 2022 608MB +quay.io/kiwitcms/enterprise 11.5-mt (aarch64) 82d64398d8bf 06 Sep 2022 862MB +quay.io/kiwitcms/enterprise 11.5-mt (x86_64) 8a5b0b58bcca 06 Sep 2022 829MB +</pre> +</blockquote> +</li> +</ul> +<p><strong>IMPORTANT:</strong> version tagged, multi-arch and Enterprise +<a class="reference external" href="/containers/">container</a> images are available only to +<a class="reference external" href="/#subscriptions">subscribers</a>!</p> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p><a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">Backup</a> first! +Then execute the commands:</p> +<pre class="literal-block"> +cd path/containing/docker-compose/ +docker-compose down +docker-compose pull +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py upgrade +</pre> +<p>Refer to +<a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/installing_docker.html#upgrading">our documentation</a> +for more details!</p> +<p>Happy testing!</p> +<p>---</p> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us grow!</p> +<ul class="simple"> +<li><a class="reference external" href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a class="reference external" href="https://gitlab.com/gitlab-org/gitlab/-/issues/334558">Give 👍 on GitLab</a>;</li> +<li><a class="reference external" href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a class="reference external" href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> +and follow all project news;</li> +<li><a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> +and an awesome open source hacker;</li> +<li><a class="reference external" href="/#subscriptions">Become a subscriber</a> and help us sustain development</li> +</ul> +</div> +Kiwi TCMS 11.42022-08-04T15:56:00+03:002022-08-04T15:56:00+03:00Kiwi TCMS Teamtag:None,2022-08-04:/blog/kiwi-tcms-team/2022/08/04/kiwi-tcms-114/<p>We're happy to announce Kiwi TCMS version 11.4!</p> +<p><strong>IMPORTANT:</strong> +This is a medium sized release which contains security related updates, +multiple improvements, database and API changes, new settings, bug fixes +and new translations!</p> +<p>You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<blockquote> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or …</pre></blockquote><p>We're happy to announce Kiwi TCMS version 11.4!</p> +<p><strong>IMPORTANT:</strong> +This is a medium sized release which contains security related updates, +multiple improvements, database and API changes, new settings, bug fixes +and new translations!</p> +<p>You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<blockquote> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +</blockquote> +<p>---</p> +<blockquote> +<p>Upstream container images (x86_64):</p> +<pre class="literal-block"> +kiwitcms/kiwi latest 8c8356c0268d 610MB +</pre> +</blockquote> +<p><strong>IMPORTANT:</strong> version tagged and multi-arch +<a class="reference external" href="/containers/">container</a> images are available only to +<a class="reference external" href="/#subscriptions">subscribers</a>!</p> +<div class="section" id="changes-since-kiwi-tcms-11-3"> +<h2>Changes since Kiwi TCMS 11.3</h2> +<div class="section" id="security"> +<h3>Security</h3> +<ul class="simple"> +<li>Update django from 4.0.3 to 4.0.7, see +<a class="reference external" href="https://docs.djangoproject.com/en/4.0/releases/4.0.7/">https://docs.djangoproject.com/en/4.0/releases/4.0.7/</a>, +<a class="reference external" href="https://docs.djangoproject.com/en/4.0/releases/4.0.6/">https://docs.djangoproject.com/en/4.0/releases/4.0.6/</a>, +<a class="reference external" href="https://docs.djangoproject.com/en/4.0/releases/4.0.5/">https://docs.djangoproject.com/en/4.0/releases/4.0.5/</a> and +<a class="reference external" href="https://docs.djangoproject.com/en/4.0/releases/4.0.4/">https://docs.djangoproject.com/en/4.0/releases/4.0.4/</a> +We don't think Kiwi TCMS has been affected by the security vulnerabilities +fixed in Django.</li> +<li>Use TLSv1.2 and 1.3 by default and disable older protocols</li> +</ul> +</div> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update bleach from 5.0.0 to 5.0.1</li> +<li>Update django-colorfield from 0.6.3 to 0.7.2</li> +<li>Update django-extensions from 3.1.5 to 3.2.0</li> +<li>Update django-tree-queries from 0.9.0 to 0.11.0</li> +<li>Update jira from 3.2.0 to 3.3.1</li> +<li>Update markdown from 3.3.6 to 3.4.1</li> +<li>Update mysqlclient from 2.1.0 to 2.1.1</li> +<li>Update python-gitlab from 3.3.0 to 3.7.0</li> +<li>Update node_modules/marked from 4.0.14 to 4.0.18</li> +<li>Relax docutils requirement. Use latest version</li> +<li>Add template block which will allow logo customizations (Ivajlo Karabojkov)</li> +<li>Don't show <tt class="docutils literal">PLUGINS</tt> menu when no plugins are installed. References +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2729">Issue #2729</a></li> +<li>Add information about Kiwi TCMS user to 1-click bug reports. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2591">Issue #2591</a></li> +<li>Use a better icon to signify a manual test inside the user interface</li> +<li>Change <tt class="docutils literal">UserAdmin</tt> to be permission based instead of being role-based. +Fixes <a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2496">Issue #2496</a></li> +<li>Allow post-processing of automatically created issues. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2383">Issue #2383</a></li> +<li>Allow more customization over issue type discovery for Jira. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2833">Issue #2833</a></li> +<li>Allow more customization over project discovery for Jira</li> +<li>Allow more customization over Redmine tracker. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2382">Issue #2382</a></li> +<li>Allow DB settings to be read from Docker Secret files. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2606">Issue #2606</a></li> +<li>Add filter on TestRun page to show test executions assigned to the +current user. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/333">Issue #333</a></li> +<li>Add URL for creating new TestRun from a TestPlan. The format is +<tt class="docutils literal"><span class="pre">/runs/from-plan/&lt;plan-id&gt;/</span></tt>. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/274">Issue #274</a></li> +<li>Add <tt class="docutils literal">bug.Severity</tt> attribute which is fully customizeable. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2703">Issue #2703</a></li> +<li>Update documentation around <tt class="docutils literal">TCMS_</tt> environment variables +used by automation plugins</li> +<li>Update documentation to denote that pytest plugin is now generally available</li> +<li>Document necessary permissions for adding new users. References +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2496">Issue #2496</a></li> +</ul> +</div> +<div class="section" id="database"> +<h3>Database</h3> +<ul class="simple"> +<li>New migration for <tt class="docutils literal">bug.Severity</tt> model</li> +</ul> +</div> +<div class="section" id="settings"> +<h3>Settings</h3> +<ul class="simple"> +<li>Remove deprecated setting <tt class="docutils literal">USE_L10N</tt>. See +<a class="reference external" href="https://docs.djangoproject.com/en/4.0/ref/settings/#use-l10n">https://docs.djangoproject.com/en/4.0/ref/settings/#use-l10n</a></li> +<li>New setting <tt class="docutils literal">EXTERNAL_ISSUE_POST_PROCESSORS</tt></li> +<li>New setting <tt class="docutils literal">JIRA_ISSUE_TYPE</tt></li> +<li>New setting <tt class="docutils literal">REDMINE_TRACKER_NAME</tt></li> +<li>New setting <tt class="docutils literal">EXTERNAL_ISSUE_POST_PROCESSORS</tt></li> +</ul> +</div> +<div class="section" id="api"> +<h3>API</h3> +<ul class="simple"> +<li>If <tt class="docutils literal">default_tester</tt> field is not specified for <tt class="docutils literal">TestRun.create()</tt> method +then use the currently logged-in user.</li> +<li>Return value for method <tt class="docutils literal">TestExecution.filter()</tt> now contains fields +<tt class="docutils literal">expected_duration</tt> and <tt class="docutils literal">actual_duration</tt>. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1924">Issue #1924</a></li> +<li>Return value for method <tt class="docutils literal">Bug.filter()</tt> now contains fields +<tt class="docutils literal">severity__name</tt>, <tt class="docutils literal">severity__icon</tt> and <tt class="docutils literal">severity__color</tt></li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Adjust field name when rendering test execution on TestRun page. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2794">Issue #2794</a></li> +<li>Render rich text editor preview via backend API:<ul> +<li>Makes display on HTML pages and editor preview the same. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2659">Issue #2659</a></li> +<li>Fixes a bug with markdown rendered in JavaScript. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2711">Issue #2711</a></li> +</ul> +</li> +<li>Stop propagation of HTML unescape which causes display issues with +code snippets that contain XML values. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2800">Issue #2800</a></li> +<li>Show bug text only when creating new records, not when editing</li> +<li>Properly display &amp; validate related form fields when editing bugs</li> +<li>Don't send duplicate emails when editing bugs. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2782">Issue #2782</a></li> +</ul> +</div> +<div class="section" id="refactoring-and-testing"> +<h3>Refactoring and testing</h3> +<ul> +<li><p class="first">Convert two assignment statements to augmented source code. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2610">Issue #2610</a> (Markus Elfring)</p> +</li> +<li><p class="first">Rename method <tt class="docutils literal">IssueTrackerType.report_issue_from_testexecution()</tt>:</p> +<ul class="simple"> +<li>Rename to <tt class="docutils literal">_report_issue()</tt> which returns tuple of (object, str)</li> +<li>In case new issue was not created automatically and the method falls +back to manual creation the return value will be (None, str)</li> +<li><tt class="docutils literal">report_issue_from_testexecution()</tt> will call <tt class="docutils literal">_report_issue()</tt> +internally and handle the change in return type</li> +</ul> +<div class="admonition note"> +<p class="first admonition-title">Note</p> +<ul class="last simple"> +<li>This change is backwards compatible!</li> +<li>For customized issue tracker integration you will have to apply +the same changes to your customized code if you wish new functionality, +like post-processing of automatically created issues to work.</li> +</ul> +</div> +</li> +<li><p class="first">Add tests for backup &amp; restore commands. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2695">Issue #2695</a></p> +</li> +<li><p class="first">Update versions of several CI tools</p> +</li> +<li><p class="first">Updates around new version of pylint</p> +</li> +<li><p class="first">Use codecov-action to upload coverage results</p> +</li> +<li><p class="first">Remove setuptools and other workarounds in tests</p> +</li> +<li><p class="first">Don't special case dependencies which already provide wheel packages</p> +</li> +<li><p class="first">Workaround an issue with <tt class="docutils literal">setuptools_git_archive</tt> introduced by jira==3.2.0</p> +</li> +<li><p class="first">Workaround the fact that <tt class="docutils literal"><span class="pre">django-ranged-response</span></tt> doesn't provide wheels</p> +</li> +<li><p class="first">Report test results via kiwitcms-django-plugin. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1757">Issue #1757</a></p> +</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/zh-TW#">Chinese Traditional translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sk#">Slovak translation</a></li> +</ul> +</div> +</div> +<div class="section" id="kiwi-tcms-enterprise-v11-4-mt"> +<h2>Kiwi TCMS Enterprise v11.4-mt</h2> +<ul> +<li><p class="first">Based on Kiwi TCMS v11.4</p> +</li> +<li><p class="first">Update django-python3-ldap from 0.13.1 to 0.15.2</p> +</li> +<li><p class="first">Update django-ses from 3.0.1 to 3.1.0</p> +</li> +<li><p class="first">Update dj-database-url from 0.5.0 to 1.0.0</p> +</li> +<li><p class="first">Add more icons for extra GitHub login backends</p> +</li> +<li><p class="first">Add images for various Google login backends</p> +<blockquote> +<p>Private images:</p> +<pre class="literal-block"> +quay.io/kiwitcms/enterprise 11.4-mt (aarch64) f5720d030612 03 Aug 2022 862MB +quay.io/kiwitcms/enterprise 11.4-mt (x86_64) 8ffd5a64a4d1 03 Aug 2022 829MB +quay.io/kiwitcms/version 11.4 (aarch64) 62207c605dcf 03 Aug 2022 639MB +quay.io/kiwitcms/version 11.4 (x86_64) 8c8356c0268d 03 Aug 2022 610MB +</pre> +</blockquote> +</li> +</ul> +<p><strong>IMPORTANT:</strong> version tagged, multi-arch and Enterprise +<a class="reference external" href="/containers/">container</a> images are available only to +<a class="reference external" href="/#subscriptions">subscribers</a>!</p> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p><a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">Backup</a> first! +Then execute the commands:</p> +<pre class="literal-block"> +cd path/containing/docker-compose/ +docker-compose down +docker-compose pull +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py upgrade +</pre> +<p>Refer to +<a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/installing_docker.html#upgrading">our documentation</a> +for more details!</p> +<p>Happy testing!</p> +<p>---</p> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us grow!</p> +<ul class="simple"> +<li><a class="reference external" href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a class="reference external" href="https://gitlab.com/gitlab-org/gitlab/-/issues/334558">Give 👍 on GitLab</a>;</li> +<li><a class="reference external" href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a class="reference external" href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> +and follow all project news;</li> +<li><a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> +and an awesome open source hacker;</li> +<li><a class="reference external" href="/#subscriptions">Become a subscriber</a> and help us sustain development</li> +</ul> +</div> +Mejor Sitio Web 20222022-06-27T17:55:00+03:002022-06-27T17:55:00+03:00Kiwi TCMS Teamtag:None,2022-06-27:/blog/kiwi-tcms-team/2022/06/27/mejor-sitio-web-2022/<p>Kiwi TCMS is happy to announce that we have been awarded a "Best Website 2022" award +by <a href="https://www.reviewbox.es">Reviewbox.es</a>, scoring 36/40 on their evaluation. +The review criteria can be found at <a href="https://www.reviewbox.es/los-mejores-sitios-web/">https://www.reviewbox.es/los-mejores-sitios-web/</a>.</p> +<blockquote> +<p>Querido equipo de Kiwitcms,</p> +<p>¡Felicidades!</p> +<p>Habéis logrado lo que muchos otros desean:</p> +<p>Habéis …</p></blockquote><p>Kiwi TCMS is happy to announce that we have been awarded a "Best Website 2022" award +by <a href="https://www.reviewbox.es">Reviewbox.es</a>, scoring 36/40 on their evaluation. +The review criteria can be found at <a href="https://www.reviewbox.es/los-mejores-sitios-web/">https://www.reviewbox.es/los-mejores-sitios-web/</a>.</p> +<blockquote> +<p>Querido equipo de Kiwitcms,</p> +<p>¡Felicidades!</p> +<p>Habéis logrado lo que muchos otros desean:</p> +<p>Habéis acumulado 36/40 puntos en nuestra investigación de +mercado y por lo tanto calificasteis (mínimo 30 de 40 puntos necesarios) +para nuestro premio Mejor Sitio Web 2022.</p> +<p>Resultados y criterios de investigación</p> +<p>URL: Kiwitcms-Team</p> +<p>Puntos: 36/40</p> +</blockquote> +<p>Our team is happy to accept this award, which comes exactly 2 years +after we became an <a href="/blog/atodorov/2019/06/24/kiwi-tcms-is-openawards-2019-best-tech-community-winner/">OpenAwards winner</a>.</p> +<p>Thank you and Happy testing!</p> +<hr> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul> +<li><a href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a href="https://gitlab.com/gitlab-org/gitlab/-/issues/334558">Give 👍 on GitLab</a>;</li> +<li><a href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> + and follow all project news;</li> +<li><a href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> and an awesome open source hacker;</li> +<li><a href="/#subscriptions">Become a customer</a> and we'll share our profits with the community</li> +</ul>Meet Kiwi TCMS at Collision 2022 in Toronto2022-06-14T11:35:00+03:002022-06-14T11:35:00+03:00Kiwi TCMS Teamtag:None,2022-06-14:/blog/kiwi-tcms-team/2022/06/14/meet-kiwi-tcms-at-collision-2022-in-toronto/<p>Kiwi TCMS is happy to announce that we're taking part in +<a href="https://collisionconf.com/">Collision 2022</a>, Jun 20-23 in Toronto, Canada. +We're joining as a <a href="https://collisionconf.com/startups/featured-startups">featured startup</a> +in the <em>Enterprise Software Solutions</em> category.</p> +<p>Kiwi TCMS will have an on-site presence on +<strong>Thursday, Jun 23, Stand A3201</strong>. Check-out the map for more details: +<img alt="venue map" src="/images/conf/collision/stand2022.png" title="venue map"></p> +<h2>For …</h2><p>Kiwi TCMS is happy to announce that we're taking part in +<a href="https://collisionconf.com/">Collision 2022</a>, Jun 20-23 in Toronto, Canada. +We're joining as a <a href="https://collisionconf.com/startups/featured-startups">featured startup</a> +in the <em>Enterprise Software Solutions</em> category.</p> +<p>Kiwi TCMS will have an on-site presence on +<strong>Thursday, Jun 23, Stand A3201</strong>. Check-out the map for more details: +<img alt="venue map" src="/images/conf/collision/stand2022.png" title="venue map"></p> +<h2>For engineers</h2> +<p>At the exhibition stand you will have the opportunity to perform some real +<a href="/blog/kiwi-tcms-team/2020/10/10/progress-update-on-open-source-hardware-for-black-box-testing/">black-box testing</a>, +learn about Salience bias, Peltzman effect and Wason's experiments and take a photo with +our lovely mascot.</p> +<p>The Kiwi TCMS team will be there to answer all of your questions regarding +open source, community, support, various integrations and the differences between +<em>Self-Support</em>, <em>SaaS</em> and <em>Enterprise</em> <a href="/#subscriptions">subscriptions</a>!</p> +<p><img alt="&quot;black boxes&quot;" src="/images/conf/websummit/black_boxes.png" title="black boxes"></p> +<p>If you are a test or QA engineer please answer our survey +<a href="https://forms.gle/LTYnimNjbUaSmTeL8">https://forms.gle/LTYnimNjbUaSmTeL8</a>. Participants may claim a small surprise at our booth!</p> +<h2>For startups</h2> +<p>We know that in a startup, the major strength of the people is that they are multitaskers. +And it is often the case that the founders will perform some functional and acceptance testing +because they know all the important use-cases.</p> +<p>Still you need to document and organize your testing activities early on. You need to +start collecting information about which features of the product have been tested and +how they have been tested. That's the basis on which you can scale your QA team and +future testing activities.</p> +<p>If you are a fellow startup exhibitor please swing by out stand to talk about +organizing your product testing with Kiwi TCMS. We know the drill because we're in +the same boat!</p> +<h2>For partners</h2> +<p>If you are another ISV providing engineering tools, a product outsourcing company +or a devel/testing service venture we've got a partnership proposal for you!</p> +<p>We're interested in partners where we can integrate other products with Kiwi TCMS +and provide a better offering; provide extra services (e.g. managed hosting) and/or +provide more transparency to your own customers (e.g. allow them to see how their products +are being tested).</p> +<p>Message us via the <a href="https://play.google.com/store/apps/details?id=com.collision">Collision app</a> +and request a meeting or better yet, find our team on-site!</p> +<h2>Virtual press conference</h2> +<p>If you aren't around in Toronto please join us for a pre 2022 Collision News Conference (VIRTUAL) on +<strong>Wednesday, June 15, 1:00 - 2:00 p.m. EDT / 17:00 - 18:00 UTC</strong>.</p> +<p>For more information see +<a href="https://www.eventbrite.com/e/pre-collision-press-conference-1-of-2-hosted-by-brotmanwinterfried-tickets-365110534437">https://www.eventbrite.com/e/pre-collision-press-conference-1-of-2-hosted-by-brotmanwinterfried-tickets-365110534437</a></p> +<h2>After hours</h2> +<p>The Kiwi TCMS team will be joining the following after-hours events:</p> +<ul> +<li>Jun 20 - <a href="https://inthecloud.withgoogle.com/collision-happy-hour/register.html">Collision: Join Us at Craft Beer Market, Toronto</a></li> +<li>Jun 22 - <a href="https://www.eventbrite.sg/e/drinks-dragons-collision-official-after-hours-event-by-metis-fest-tickets-340062816037">Drinks &amp; Dragons - Collision Official After Hours event by Metis Fest</a></li> +<li>Jun 23 - <a href="https://www.meetup.com/agileto/events/286454424/">Agile Drinks....we are back!!</a></li> +</ul> +<h2>For media</h2> +<p>If you have any questions, need additional information or would like to schedule an interview, +please email Steve Winter at <em>swinter @ aboutbwf.com</em> (remove spaces) or call <em>202-468-8100</em>.</p> +<hr> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul> +<li><a href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a href="https://gitlab.com/gitlab-org/gitlab/-/issues/334558">Give 👍 on GitLab</a>;</li> +<li><a href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> + and follow all project news;</li> +<li><a href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> and an awesome open source hacker;</li> +<li><a href="/#subscriptions">Become a customer</a> and we'll share our profits with the community</li> +</ul>Zaklina, welcome to the Kiwi TCMS team2022-06-07T13:20:00+03:002022-06-07T13:20:00+03:00Kiwi TCMS Teamtag:None,2022-06-07:/blog/kiwi-tcms-team/2022/06/07/zaklina-welcome-to-the-kiwi-tcms-team/<p>Kiwi TCMS is pleased to welcome Zaklina Stojnev to <a href="/team/">our team</a>!</p> +<p><img class="rounded" src="/images/team/zstojnev.jpg"></p> +<p>She holds an engineering degree in computer science and +has been working as a test engineer for more than 10 years. +In the last couple of years her main focus is automation in testing, +finding ways to improve testing …</p><p>Kiwi TCMS is pleased to welcome Zaklina Stojnev to <a href="/team/">our team</a>!</p> +<p><img class="rounded" src="/images/team/zstojnev.jpg"></p> +<p>She holds an engineering degree in computer science and +has been working as a test engineer for more than 10 years. +In the last couple of years her main focus is automation in testing, +finding ways to improve testing process and tools that will support testing activities.</p> +<p>Zaklina will be the primary contact for our +<a href="https://github.com/kiwitcms/history-of-testing">History of Testing</a> project where we are +compiling a database of people who influenced or made important contributions to our professional field.</p> +<p>With her prior experience as a conference organizer Zaklina will also be lending a much needed hand +in preparing the <em>Testing and Automation</em> devroom at <em>FOSDEM</em> and showcasing Kiwi TCMS at different +events.</p> +<p>You can find her on-boarding progress at <a href="https://tcms.kiwitcms.org/runs/1190/">TR-1190</a> and her +contributions on +<a href="https://github.com/pulls?q=is%3Aopen+is%3Apr+author%3Azaklinica+archived%3Afalse+user%3Akiwitcms">GitHub</a>.</p> +<p>Happy Testing!</p> +<hr> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us grow!</p> +<ul> +<li><a href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a href="https://gitlab.com/gitlab-org/gitlab/-/issues/334558">Give 👍 on GitLab</a>;</li> +<li><a href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> + and follow all project news;</li> +<li><a href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> and an awesome open source hacker;</li> +<li><a href="/#subscriptions">Become a customer</a> and we'll share our profits with the community</li> +</ul>Survey: How do testers and QA use GitHub, GitLab and Bitbucket2022-06-02T11:05:00+03:002022-06-02T11:05:00+03:00Kiwi TCMS Teamtag:None,2022-06-02:/blog/kiwi-tcms-team/2022/06/02/survey-how-do-testers-and-qa-use-github-gitlab-and-bitbucket/<p>Hello testers, +we are conducting a little research/survey into how other testers and QA professionals +use modern platforms like GitHub, GitLab and Bitbucket. At this moment in time our goal +is to collect as much information as possible in order to understand the existing ecosystem.</p> +<p>If you can spare …</p><p>Hello testers, +we are conducting a little research/survey into how other testers and QA professionals +use modern platforms like GitHub, GitLab and Bitbucket. At this moment in time our goal +is to collect as much information as possible in order to understand the existing ecosystem.</p> +<p>If you can spare 5 minutes of your time please check-out +<a href="https://forms.gle/avqjWVvSPsE4SWQr5">https://forms.gle/avqjWVvSPsE4SWQr5</a>.</p> +<p>We promise there will be no follow up emails unless you indicate that you agree to that.</p> +<p>Happy Testing!</p> +<hr> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us grow!</p> +<ul> +<li><a href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a href="https://gitlab.com/gitlab-org/gitlab/-/issues/334558">Give 👍 on GitLab</a>;</li> +<li><a href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> + and follow all project news;</li> +<li><a href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> and an awesome open source hacker;</li> +<li><a href="/#subscriptions">Become a customer</a> and we'll share our profits with the community</li> +</ul>New versions of automation framework plugins2022-05-18T15:30:00+03:002022-05-18T15:30:00+03:00Kiwi TCMS Teamtag:None,2022-05-18:/blog/kiwi-tcms-team/2022/05/18/new-versions-of-automation-framework-plugins/<p>Kiwi TCMS is pleased to announce new versions of our plugins for different +test automation frameworks:</p> +<ul class="simple"> +<li><a class="reference external" href="https://github.com/kiwitcms/tap-plugin">tap-plugin</a> - v11.3</li> +<li><a class="reference external" href="https://github.com/kiwitcms/junit.xml-plugin">junit.xml-plugin</a> - v11.3</li> +<li><a class="reference external" href="https://github.com/kiwitcms/robotframework-plugin">Robot Framework plugin</a> - v11.2</li> +<li><a class="reference external" href="https://github.com/kiwitcms/django-plugin">Django test runner plugin</a> - v11.2</li> +</ul> +<p>These new versions are compatible with Kiwi TCMS v11.x and include several improvements +and bug …</p><p>Kiwi TCMS is pleased to announce new versions of our plugins for different +test automation frameworks:</p> +<ul class="simple"> +<li><a class="reference external" href="https://github.com/kiwitcms/tap-plugin">tap-plugin</a> - v11.3</li> +<li><a class="reference external" href="https://github.com/kiwitcms/junit.xml-plugin">junit.xml-plugin</a> - v11.3</li> +<li><a class="reference external" href="https://github.com/kiwitcms/robotframework-plugin">Robot Framework plugin</a> - v11.2</li> +<li><a class="reference external" href="https://github.com/kiwitcms/django-plugin">Django test runner plugin</a> - v11.2</li> +</ul> +<p>These new versions are compatible with Kiwi TCMS v11.x and include several improvements +and bug fixes. Check-out the pages above for individual information and instructions on +how to use them.</p> +<p>Happy testing!</p> +<p>---</p> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul class="simple"> +<li><a class="reference external" href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a class="reference external" href="https://gitlab.com/gitlab-org/gitlab/-/issues/334558">Give 👍 on GitLab</a>;</li> +<li><a class="reference external" href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a class="reference external" href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> +and follow all project news;</li> +<li><a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> +and an awesome open source hacker;</li> +<li><a class="reference external" href="/#subscriptions">Become a subscriber</a> and help us sustain development</li> +</ul> +Kiwi TCMS 11.32022-04-27T20:35:00+03:002022-04-27T20:35:00+03:00Kiwi TCMS Teamtag:None,2022-04-27:/blog/kiwi-tcms-team/2022/04/27/kiwi-tcms-113/<p>We're happy to announce Kiwi TCMS version 11.3 which is the 100th tagged version +in our git repository!</p> +<p><strong>IMPORTANT:</strong> +This is a small release which contains security related updates, several improvements, +bug fixes and new translations! Most importantly the kiwitcms-tenants plugin now supports +tenant groups and permissions!</p> +<p>You can …</p><p>We're happy to announce Kiwi TCMS version 11.3 which is the 100th tagged version +in our git repository!</p> +<p><strong>IMPORTANT:</strong> +This is a small release which contains security related updates, several improvements, +bug fixes and new translations! Most importantly the kiwitcms-tenants plugin now supports +tenant groups and permissions!</p> +<p>You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<blockquote> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +</blockquote> +<p>---</p> +<blockquote> +<p>Upstream container images (x86_64):</p> +<pre class="literal-block"> +kiwitcms/kiwi latest 58dcfa91e816 629MB +</pre> +</blockquote> +<p><strong>IMPORTANT:</strong> version tagged and multi-arch +<a class="reference external" href="/containers/">container</a> images are available only to +<a class="reference external" href="/#subscriptions">subscribers</a>!</p> +<div class="section" id="changes-since-kiwi-tcms-11-2"> +<h2>Changes since Kiwi TCMS 11.2</h2> +<div class="section" id="security"> +<h3>Security</h3> +<ul class="simple"> +<li>Update django from 4.0.3 to 4.0.4, see +<a class="reference external" href="https://docs.djangoproject.com/en/4.0/releases/4.0.4/">https://docs.djangoproject.com/en/4.0/releases/4.0.4/</a></li> +</ul> +</div> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update bleach from 4.1.0 to 5.0.0</li> +<li>Update django-tree-queries from 0.7.0 to 0.9.0</li> +<li>Update jira from 3.1.1 to 3.2.0</li> +<li>Update pygments from 2.11.2 to 2.12.0</li> +<li>Update python-gitlab from 3.2.0 to 3.3.0</li> +<li>Update tzdata from 2021.5 to 2022.1</li> +<li>Update node_modules/marked from 4.0.12 to 4.0.14</li> +<li>Update node_modules/prismjs from 1.27.0 to 1.28.0</li> +<li>Allow overriding of Azure Boards API version. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2717">Issue #2717</a></li> +<li>If <tt class="docutils literal">tenant_groups</tt> is enabled then <tt class="docutils literal">refresh_permissions</tt> command will +update default tenant groups too</li> +<li>Document tenant-group permissions</li> +</ul> +</div> +<div class="section" id="settings"> +<h3>Settings</h3> +<ul class="simple"> +<li>New setting <tt class="docutils literal">AZURE_BOARDS_API_VERSION</tt>, defaults to 6.0. Can be overriden +directly in settings or via environment variable with the same name</li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Patch for repositories under GitLab subgroups. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2643">Issue #2643</a> (&#64;cmeissl)</li> +<li>Don't crash if a comment user has been removed. Fixes +<a class="reference external" href="https://sentry.io/organizations/kiwitcms/issues/3086416250/">KIWI-TCMS-HZ</a></li> +</ul> +</div> +<div class="section" id="refactoring"> +<h3>Refactoring</h3> +<ul class="simple"> +<li>Split Users &amp; Groups menu items under ADMIN entry in navigation</li> +<li>[pre-commit.ci] updates</li> +<li>pylint adjustments</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/zh-CN#">Chinese Simplified translation</a></li> +</ul> +</div> +</div> +<div class="section" id="kiwi-tcms-enterprise-v11-3-1-mt"> +<h2>Kiwi TCMS Enterprise v11.3.1-mt</h2> +<ul> +<li><p class="first">Based on Kiwi TCMS v11.3</p> +</li> +<li><p class="first">Update django-ses from 2.6.0 to 3.0.1</p> +</li> +<li><p class="first">Update kiwitcms-tenants from 1.11.0 to 2.1.1 for +tenant groups support</p> +<blockquote> +<p>Private images:</p> +<pre class="literal-block"> +quay.io/kiwitcms/enterprise 11.3.1-mt (aarch64 58a53d616105 27 Apr 2022 894MB +quay.io/kiwitcms/enterprise 11.3.1-mt (x86_64) 3b5e7fbd234a 27 Apr 2022 847MB +quay.io/kiwitcms/version 11.3 (aarch64) e9f34a86cd0b 27 Apr 2022 671MB +quay.io/kiwitcms/version 11.3 (x86_64) 58dcfa91e816 27 Apr 2022 627MB +</pre> +</blockquote> +</li> +</ul> +<p><strong>IMPORTANT:</strong> version tagged, multi-arch and Enterprise +<a class="reference external" href="/containers/">container</a> images are available only to +<a class="reference external" href="/#subscriptions">subscribers</a>!</p> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p><a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">Backup</a> first! +Then execute the commands:</p> +<pre class="literal-block"> +cd path/containing/docker-compose/ +docker-compose down +docker-compose pull +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py upgrade +</pre> +<p>Refer to +<a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/installing_docker.html#upgrading">our documentation</a> +for more details!</p> +<p>Happy testing!</p> +<p>---</p> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us grow!</p> +<ul class="simple"> +<li><a class="reference external" href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a class="reference external" href="https://gitlab.com/gitlab-org/gitlab/-/issues/334558">Give 👍 on GitLab</a>;</li> +<li><a class="reference external" href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a class="reference external" href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> +and follow all project news;</li> +<li><a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> +and an awesome open source hacker;</li> +<li><a class="reference external" href="/#subscriptions">Become a subscriber</a> and help us sustain development</li> +</ul> +</div> +Kiwi TCMS 11.22022-03-09T12:20:00+02:002022-03-09T12:20:00+02:00Kiwi TCMS Teamtag:None,2022-03-09:/blog/kiwi-tcms-team/2022/03/09/kiwi-tcms-112/<p>We're happy to announce Kiwi TCMS version 11.2.</p> +<p><strong>IMPORTANT:</strong> +This is a small release which contains several improvements, new API methods, +internal refactoring and new translations! This is the first release to ship +<tt class="docutils literal">aarch64</tt> container images!</p> +<p>You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<blockquote> +<p>Supported upgrade paths …</p></blockquote><p>We're happy to announce Kiwi TCMS version 11.2.</p> +<p><strong>IMPORTANT:</strong> +This is a small release which contains several improvements, new API methods, +internal refactoring and new translations! This is the first release to ship +<tt class="docutils literal">aarch64</tt> container images!</p> +<p>You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<blockquote> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +</blockquote> +<p>---</p> +<blockquote> +<p>Upstream container images (x86_64):</p> +<pre class="literal-block"> +kiwitcms/kiwi latest bcc4c658440a 622MB +</pre> +</blockquote> +<p><strong>IMPORTANT:</strong> version tagged and multi-arch +<a class="reference external" href="/containers/">container</a> images are available only to +<a class="reference external" href="/#subscriptions">subscribers</a>!</p> +<div class="section" id="changes-since-kiwi-tcms-11-1"> +<h2>Changes since Kiwi TCMS 11.1</h2> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update django from 4.0.2 to 4.0.3</li> +<li>Update django-grappelli from 3.0.2 to 3.0.3</li> +<li>Update django-simple-captcha from 0.5.14 to 0.5.17</li> +<li>Update python-bugzilla from 3.1.0 to 3.2.0</li> +<li>Update python-gitlab from 3.1.1 to 3.2.0</li> +<li>Update node_modules/prismjs from 1.26.0 to 1.27.0</li> +<li>Add new command to perform a collection of post-upgrade tasks. +Kiwi TCMS admins are advised to replace +<tt class="docutils literal">manage.py migrate</tt> with <tt class="docutils literal">manage.py upgrade</tt> (Ivajlo Karabojkov)</li> +</ul> +</div> +<div class="section" id="api"> +<h3>API</h3> +<ul class="simple"> +<li>New API method <tt class="docutils literal">Category.create()</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2705">Issue #2705</a> (Erik Heeren)</li> +<li>New API method <tt class="docutils literal">Classification.create()</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2705">Issue #2705</a> (Erik Heeren)</li> +</ul> +</div> +<div class="section" id="refactoring-and-testing"> +<h3>Refactoring and testing</h3> +<ul class="simple"> +<li>Add docker build &amp; push automation</li> +<li>Fix Bandit exclusion rule</li> +<li>Test and build on aarch64</li> +<li>Apply auto fixes fro pre-commit.ci</li> +<li>Apply auto fixes from Deepsource</li> +<li>Update versions of several GitHub Actions</li> +<li>Use the appropriate path to package.json for Dependabot</li> +<li>Remove old Telemetry link in menu to avoid confusion</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/bg#">Bulgarian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/ja#">Japanese translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/zh-TW#">Chinese Traditional translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/es-ES#">Spanish translation</a></li> +</ul> +</div> +</div> +<div class="section" id="kiwi-tcms-enterprise-v11-2-mt"> +<h2>Kiwi TCMS Enterprise v11.2-mt</h2> +<ul> +<li><p class="first">Based on Kiwi TCMS v11.2</p> +</li> +<li><p class="first">Update django-ses from 2.4.0 to 2.6.0</p> +</li> +<li><p class="first">Update python3-saml from 1.13.0 to 1.14.0</p> +</li> +<li><p class="first">Revert &quot;Use django.contrib.staticfiles.storage from Django==3.2.12&quot;. +Instead use the implementation from latest Django version. Closes +<a class="reference external" href="https://github.com/kiwitcms/enterprise/issues/140">Issue #140</a></p> +</li> +<li><p class="first">Start building kiwitcms/enterprise on aarch64</p> +</li> +<li><p class="first">Add changelog check &amp; docker release automation</p> +</li> +<li><p class="first">Add test for PSA login URLs on login page. References +<a class="reference external" href="https://github.com/kiwitcms/enterprise/issues/83">Issue #83</a></p> +</li> +<li><p class="first">Add SAML &amp; Azure AD logo images</p> +</li> +<li><p class="first">Update GitHub Actions</p> +</li> +<li><p class="first">Hard-code testing with Keycloak 16.1.1 to workaround significant differences +with Keycloak v17 container</p> +<blockquote> +<p>Private images:</p> +<pre class="literal-block"> +quay.io/kiwitcms/enterprise 11.2-mt (aarch64) fe5e869e36f6 09 Mar 2022 890MB +quay.io/kiwitcms/enterprise 11.2-mt (x86_64) 134320d5fb7c 09 Mar 2022 841MB +quay.io/kiwitcms/version 11.2 (aarch64) 3b782830d19d 09 Mar 2022 665MB +quay.io/kiwitcms/version 11.2 (x86_64) bcc4c658440a 09 Mar 2022 620MB +</pre> +</blockquote> +</li> +</ul> +<p><strong>IMPORTANT:</strong> version tagged, multi-arch and Enterprise +<a class="reference external" href="/containers/">container</a> images are available only to +<a class="reference external" href="/#subscriptions">subscribers</a>!</p> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p><a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">Backup</a> first! +Then execute the commands:</p> +<pre class="literal-block"> +cd path/containing/docker-compose/ +docker-compose down +docker-compose pull +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py upgrade +</pre> +<p>Refer to +<a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/installing_docker.html#upgrading">our documentation</a> +for more details!</p> +<p>Happy testing!</p> +<p>---</p> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul class="simple"> +<li><a class="reference external" href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a class="reference external" href="https://gitlab.com/gitlab-org/gitlab/-/issues/334558">Give 👍 on GitLab</a>;</li> +<li><a class="reference external" href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a class="reference external" href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> +and follow all project news;</li> +<li><a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> +and an awesome open source hacker;</li> +<li><a class="reference external" href="/#subscriptions">Become a subscriber</a> and help us sustain development</li> +</ul> +</div> +New and updated subscription plans for Kiwi TCMS2022-03-01T10:35:00+02:002022-03-01T10:35:00+02:00Kiwi TCMS Teamtag:None,2022-03-01:/blog/kiwi-tcms-team/2022/03/01/new-and-updated-subscription-plans-for-kiwi-tcms/<p>An active Kiwi TCMS subscription ensures a sustainable future for +all open source software maintained by the Kiwi TCMS team and +provides its holder with access to software versions and certain +level services. Given recent changes to +<a href="/blog/kiwi-tcms-team/2022/02/27/container-registry-credentials-for-subscribers/">private container credentials</a> +we have refreshed our product and service definitions.</p> +<h2>New Self …</h2><p>An active Kiwi TCMS subscription ensures a sustainable future for +all open source software maintained by the Kiwi TCMS team and +provides its holder with access to software versions and certain +level services. Given recent changes to +<a href="/blog/kiwi-tcms-team/2022/02/27/container-registry-credentials-for-subscribers/">private container credentials</a> +we have refreshed our product and service definitions.</p> +<h2>New Self Support subscription</h2> +<p>This is an entry-level subscription which provides read-only access to version tagged +containers of upstream Kiwi TCMS. It is suitable for experimentation, +very small teams, development against Kiwi TCMS and convenience during upgrades.</p> +<p>You are free to use any older or future versions of Kiwi TCMS available from +the <a href="/containers/">kiwitcms/version</a> container repository!</p> +<p>This subscription plan is also available via +<a href="https://github.com/marketplace/kiwi-tcms/">GitHub Marketplace</a>.</p> +<h2>Private Tenant</h2> +<p>This is our most popular subscription type.</p> +<p>Starting today it also includes access +to the <a href="/containers/">kiwitcms/version</a> container repository! +This is suitable for teams who prefer to be hosting Kiwi TCMS on-premise instead of +using the namespace provided under <code>*.tenant.kiwitcms.org</code>.</p> +<p>This subscription plan is also available via +<a href="https://github.com/marketplace/kiwi-tcms/">GitHub Marketplace</a>.</p> +<p>Everything else remains the same!</p> +<h2>Enterprise Subscription</h2> +<p>This is Kiwi TCMS tailored towards on-premise deployments in larger organizations. +Starting today it also automatically includes 1x <em>Private Tenant</em> which can be used +for development or experiments.</p> +<p>Support availability has been extended by 2 hours in order to cover more geographic areas!</p> +<p>Future features coming to enterprise subscribers - +tools for provisioning of Kiwi TCMS inside cloud environments and aarch64 containers.</p> +<p>Price has been increased to 400 $/mo.</p> +<h2>New Managed Hosting subscription</h2> +<p>This new offering is designed for the organizations which don't want to bother with provisioning +containers, configuring DNS resolution, managing SSL certificates, regular upgrades and backups. +The Kiwi TCMS team can do all of this for you and provide a fully isolated instance inside AWS.</p> +<p>Support availability has been extended by 2 days, covering Saturday and Sunday. When necessary +<em>Managed Hosting</em> subscribers have the option for video conferences with their support contact.</p> +<hr> +<p>All changes are effective immediately. Existing customers are granted access to everything +that's new while billing changes are not applied.</p> +<p>If you prefer the "free beer" version of +Kiwi TCMS it is available via <code>docker pull kiwitcms/kiwi</code> - free to use +and without any guarantees according to GPLv2.</p> +<p>Please consider <a href="/#subscriptions">subscribing</a> and help us make Kiwi TCMS better!</p> +<p>Happy Testing!</p>Container Registry Credentials for Subscribers2022-02-27T12:40:00+02:002022-02-27T12:40:00+02:00Kiwi TCMS Teamtag:None,2022-02-27:/blog/kiwi-tcms-team/2022/02/27/container-registry-credentials-for-subscribers/<p>Kiwi TCMS subscribers had to go through a manual process of registering +a username with our container registry, <em>quay.io</em> and email support +before they could access private docker images. This process is now fully +automated!</p> +<p><img alt="&quot;private credentials card&quot;" src="/images/private_docker_credentials.png" title="private credentials card"></p> +<p>Credentials are automatically created upon subscription payment and configured for +read-only access to respective …</p><p>Kiwi TCMS subscribers had to go through a manual process of registering +a username with our container registry, <em>quay.io</em> and email support +before they could access private docker images. This process is now fully +automated!</p> +<p><img alt="&quot;private credentials card&quot;" src="/images/private_docker_credentials.png" title="private credentials card"></p> +<p>Credentials are automatically created upon subscription payment and configured for +read-only access to respective repositories based on the type of subscription. +You can find your credentials at the +<a href="https://public.tenant.kiwitcms.org/github/marketplace/plans/">subscriptions page</a>, +<code>PLUGINS -&gt; Subscriptions</code>. To authenticate try</p> +<div class="highlight"><pre><span></span><code>$ docker login -u<span class="o">=</span><span class="s2">&quot;USERNAME&quot;</span> -p <span class="s2">&quot;PASSWORD-TOKEN&quot;</span> quay.io +<span class="c1"># or</span> +$ <span class="nb">echo</span> <span class="s2">&quot;PASSWORD-TOKEN&quot;</span> <span class="p">|</span> docker login -u<span class="o">=</span><span class="s2">&quot;USERNAME&quot;</span> --password-stdin quay.io +</code></pre></div> + + +<p>If you would like to have access to private container repositories for Kiwi TCMS +checkout the <a href="/containers/">containers page</a> and +<a href="/#subscriptions">subscribe</a>!</p> +<p>Happy Testing!</p>Kiwi TCMS 11.12022-02-02T16:10:00+02:002022-02-02T16:10:00+02:00Kiwi TCMS Teamtag:None,2022-02-02:/blog/kiwi-tcms-team/2022/02/02/kiwi-tcms-111/<p>We're happy to announce Kiwi TCMS version 11.1.</p> +<p><strong>IMPORTANT:</strong> +This is a small release which contains security related updates, several improvements, +bug fixes and new translations!</p> +<p>You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<blockquote> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 …</pre></blockquote><p>We're happy to announce Kiwi TCMS version 11.1.</p> +<p><strong>IMPORTANT:</strong> +This is a small release which contains security related updates, several improvements, +bug fixes and new translations!</p> +<p>You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<blockquote> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +</blockquote> +<p>---</p> +<blockquote> +<p>Container images:</p> +<pre class="literal-block"> +kiwitcms/kiwi latest 72099aa8ee93 629 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 +</pre> +</blockquote> +<p><strong>IMPORTANT:</strong> version tagged +<a class="reference external" href="/containers/">container</a> images are available only to +<a class="reference external" href="/#subscriptions">subscribers</a>!</p> +<div class="section" id="changes-since-kiwi-tcms-11-0"> +<h2>Changes since Kiwi TCMS 11.0</h2> +<div class="section" id="security"> +<h3>Security</h3> +<ul class="simple"> +<li>Update Django from 3.2.10 to 4.0.2 to fix several fulnerabilities: +CVE-2022-22818, CVE-2022-23833, CVE-2021-45115, CVE-2021-45116, +CVE-2021-45452. Of those we believe that only +<em>CVE-2022-23833: Denial-of-service possibility in file uploads</em> may directly +impact Kiwi TCMS</li> +</ul> +</div> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update django-contrib-comments from 2.1.0 to 2.2.0</li> +<li>Update django-uuslug from 1.2.0 to 2.0.0</li> +<li>Update python-gitlab from 3.1.0 to 3.1.1</li> +<li>Update node_modules/marked from 4.0.10 to 4.0.12</li> +</ul> +</div> +<div class="section" id="database"> +<h3>Database</h3> +<ul class="simple"> +<li>New migration for django-simple-captcha</li> +</ul> +</div> +<div class="section" id="settings"> +<h3>Settings</h3> +<ul class="simple"> +<li><tt class="docutils literal">RECAPTCHA_PUBLIC_KEY</tt>, <tt class="docutils literal">RECAPTCHA_PRIVATE_KEY</tt> and <tt class="docutils literal">RECAPTCHA_USE_SSL</tt> +are no longer in use</li> +<li>New setting <tt class="docutils literal">USE_CAPTCHA</tt>, defaults to True</li> +<li>The string &quot;captcha&quot; is added to <tt class="docutils literal">INSTALLED_APPS</tt></li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Fix inappropriate RPC calls causing Version and Build dropdown widgets to +display no values. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2704">Issue #2704</a></li> +</ul> +</div> +<div class="section" id="refactoring-and-testing"> +<h3>Refactoring and testing</h3> +<ul class="simple"> +<li>Add <tt class="docutils literal">tzdata</tt> to requirements</li> +<li>Replace django-recaptcha with django-simple-captcha</li> +<li>Adjust /init-db view to reliably detect when applying database migrations +is complete and not exit prematurely</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +</ul> +</div> +</div> +<div class="section" id="kiwi-tcms-enterprise-v11-1-mt"> +<h2>Kiwi TCMS Enterprise v11.1-mt</h2> +<ul> +<li><p class="first">Based on Kiwi TCMS v11.1</p> +</li> +<li><p class="first">Update kiwitcms-github-app from 1.3.2 to 1.3.3</p> +</li> +<li><p class="first">Update django-ses from 2.3.1 to 2.4.0</p> +</li> +<li><p class="first">Update python3-saml from 1.12.0 to 1.13.0</p> +</li> +<li><p class="first">Workaround UnicodeDecodeError while building the docker image</p> +<blockquote> +<p>Private images:</p> +<pre class="literal-block"> +quay.io/kiwitcms/enterprise 11.1-mt df5ce509fd41 854 MB +quay.io/kiwitcms/version 11.1 72099aa8ee93 629 MB +</pre> +</blockquote> +</li> +</ul> +<p><strong>IMPORTANT:</strong> version tagged and Enterprise +<a class="reference external" href="/containers/">container</a> images are available only to +<a class="reference external" href="/#subscriptions">subscribers</a>!</p> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p><a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">Backup</a> first! +Then execute the commands:</p> +<pre class="literal-block"> +cd path/containing/docker-compose/ +docker-compose down +docker-compose pull +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +</pre> +<p>Refer to +<a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/installing_docker.html#upgrading">our documentation</a> +for more details!</p> +<p>Happy testing!</p> +<p>---</p> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul class="simple"> +<li><a class="reference external" href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a class="reference external" href="https://gitlab.com/gitlab-org/gitlab/-/issues/334558">Give 👍 on GitLab</a>;</li> +<li><a class="reference external" href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a class="reference external" href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> +and follow all project news;</li> +<li><a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> +and an awesome open source hacker;</li> +<li><a class="reference external" href="/#subscriptions">Become a subscriber</a> and help us sustain development</li> +</ul> +</div> +Kiwi TCMS 11.02022-01-25T10:00:00+02:002022-01-25T10:00:00+02:00Kiwi TCMS Teamtag:None,2022-01-25:/blog/kiwi-tcms-team/2022/01/25/kiwi-tcms-110/<p>We're happy to announce Kiwi TCMS version 11.0.</p> +<p><strong>IMPORTANT:</strong> +This is a new major release which contains security related updates, several improvements, +API changes, bug fixes and new translations!</p> +<p>You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<blockquote> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 …</pre></blockquote><p>We're happy to announce Kiwi TCMS version 11.0.</p> +<p><strong>IMPORTANT:</strong> +This is a new major release which contains security related updates, several improvements, +API changes, bug fixes and new translations!</p> +<p>You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<blockquote> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +</blockquote> +<p>---</p> +<blockquote> +<p>Container images:</p> +<pre class="literal-block"> +kiwitcms/kiwi latest 6600bc56a544 622 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 +</pre> +</blockquote> +<p><strong>IMPORTANT:</strong> version tagged +<a class="reference external" href="/containers/">container</a> images are available only to +<a class="reference external" href="/#subscriptions">subscribers</a>!</p> +<div class="section" id="changes-since-kiwi-tcms-10-5"> +<h2>Changes since Kiwi TCMS 10.5</h2> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update Django to 3.2.11</li> +<li>Update django-colorfield from 0.4.5 to 0.6.3</li> +<li>Update django-grappelli from 2.15.3 to 3.0.2</li> +<li>Update psycopg2 from 2.9.2 to 2.9.3</li> +<li>Update pygments from 2.10.0 to 2.11.2</li> +<li>Update python-gitlab from 2.10.1 to 3.1.0</li> +<li>Update node_modules/prismjs from 1.25.0 to 1.26.0</li> +<li>Update node_modules/marked from 2.1.3 to 4.0.10</li> +<li>Admin panel now allows to view, add, edit and delete Environment records</li> +<li>Allow selection of environment when creating new TestRun and display the chosen +values inside the TestRun page. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1344">Issue #1344</a></li> +<li>Creating a TestRun will now generate test execution matrix based on the available +environment and test case properties. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1843">Issue #1843</a></li> +<li>When generating a test execution matrix the supported algorithms are +&quot;full&quot; and &quot;pairwise&quot;. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1931">Issue #1931</a><ul> +<li>Feature is enabled for test runs which contain test cases. This +feature is not shown when creating an empty test run</li> +<li>This feature isn't supported when subsequently adding new test cases +to test run</li> +</ul> +</li> +<li>Record a random hex number under <tt class="docutils literal"><span class="pre">/Kiwi/uploads/installation-id</span></tt></li> +</ul> +<p>Detailed information about properties, environments and test matrix generation +can be found +<a class="reference external" href="/blog/atodorov/2022/01/24/parameters-environments-and-test-matrix-generation/">in a separate article</a>.</p> +</div> +<div class="section" id="database"> +<h3>Database</h3> +<ul class="simple"> +<li>New model <tt class="docutils literal">testrun.Environment</tt></li> +<li>New model <tt class="docutils literal">testrun.EnvironmentProperty</tt></li> +<li>New model <tt class="docutils literal">testrun.Property</tt></li> +</ul> +<p><strong>Warning:</strong></p> +<blockquote> +<p>These newly added models create additional permission labels with names +<em>testruns | environment | Can .... environment</em>, +<em>testruns | property | Can .... property</em>, +<em>testruns | environment property | Can .... environment property</em></p> +<p>Execute <tt class="docutils literal">manage.py refresh_permissions</tt> and/or assign them manually to +users and groups if they should be able to interact with the new objects!</p> +</blockquote> +</div> +<div class="section" id="settings"> +<h3>Settings</h3> +<ul class="simple"> +<li>Update the value of <tt class="docutils literal">MODERNRPC_METHODS_MODULES</tt> setting to include +modules with the new API methods</li> +</ul> +</div> +<div class="section" id="api"> +<h3>API</h3> +<ul> +<li><p class="first">Method <tt class="docutils literal">TestRun.add_case</tt> will now return a list.</p> +<div class="admonition warning"> +<p class="first admonition-title">Warning</p> +<p class="last">This breaks API compatibility with older versions and will break +all plugins which rely on this method. Use plugins v11 or greater!</p> +</div> +</li> +<li><p class="first">Method <tt class="docutils literal">TestRun.add_case</tt> return value will now include a field named +<tt class="docutils literal">properties</tt></p> +</li> +<li><p class="first">New methods <tt class="docutils literal">Environment.properties</tt>, <tt class="docutils literal">Environment.add_property</tt> and +<tt class="docutils literal">Environment.remove_property</tt></p> +</li> +<li><p class="first">New method <tt class="docutils literal">TestRun.properties</tt></p> +</li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Send e-mail notification when adding comments to bugs. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2232">Issue #2232</a> (&#64;cmbahadir)</li> +<li>Disable the &quot;+&quot; button when there is no related element selected. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2561">Issue #2561</a> (&#64;cmbahadir)</li> +<li>When cloning test plans keep the existing test case sort order inside +the resulting test plan. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2218">Issue #2218</a> (Nicolas Gelot)</li> +<li>Configure en_US.UTF-8 locale inside container. Allows upload of files with +unicode names. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2600">Issue #2600</a></li> +</ul> +</div> +<div class="section" id="refactoring-and-testing"> +<h3>Refactoring and testing</h3> +<ul class="simple"> +<li>Refresh logo design</li> +<li>Pylint fixes</li> +<li>Pin setuptools b/c of problem with django-extensions</li> +<li>Remove redundant test scenario</li> +<li>Shell script refactoring</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/zh-CN#">Chinese Simplified translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/zh-TW#">Chinese Traditional translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/fr#">French translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/he#">Hebrew translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +</ul> +</div> +</div> +<div class="section" id="kiwi-tcms-enterprise-v11-0-mt"> +<h2>Kiwi TCMS Enterprise v11.0-mt</h2> +<ul> +<li><p class="first">Based on Kiwi TCMS v11.0</p> +</li> +<li><p class="first">Update kiwitcms-tenants from 1.8.0 to 1.11.0</p> +<blockquote> +<p>Private images:</p> +<pre class="literal-block"> +quay.io/kiwitcms/enterprise 11.0-mt a730291750f8 846 MB +quay.io/kiwitcms/version 11.0 6600bc56a544 622 MB +</pre> +</blockquote> +</li> +</ul> +<p><strong>IMPORTANT:</strong> version tagged and Enterprise +<a class="reference external" href="/containers/">container</a> images are available only to +<a class="reference external" href="/#subscriptions">subscribers</a>!</p> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p><a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">Backup</a> first! +Then execute the commands:</p> +<pre class="literal-block"> +cd path/containing/docker-compose/ +docker-compose down +docker-compose pull +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +</pre> +<p>Refer to +<a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/installing_docker.html#upgrading">our documentation</a> +for more details!</p> +<p>Happy testing!</p> +<p>---</p> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul class="simple"> +<li><a class="reference external" href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a class="reference external" href="https://gitlab.com/gitlab-org/gitlab/-/issues/334558">Give 👍 on GitLab</a>;</li> +<li><a class="reference external" href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a class="reference external" href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> +and follow all project news;</li> +<li><a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> +and an awesome open source hacker;</li> +<li><a class="reference external" href="/#subscriptions">Become a subscriber</a> and help us sustain development</li> +</ul> +</div> +Parameters, Environments and test matrix generation2022-01-24T19:40:00+02:002022-01-24T19:40:00+02:00Alexander Todorovtag:None,2022-01-24:/blog/atodorov/2022/01/24/parameters-environments-and-test-matrix-generation/<p>The upcoming Kiwi TCMS v11 contains new functionality around TestCase parameters and +TestRun environments which has an impact on how your final test execution matrix will +look like. This article provides detailed information about these features but have +in mind that they are still considered to be a technology-preview.</p> +<h2>Parameters …</h2><p>The upcoming Kiwi TCMS v11 contains new functionality around TestCase parameters and +TestRun environments which has an impact on how your final test execution matrix will +look like. This article provides detailed information about these features but have +in mind that they are still considered to be a technology-preview.</p> +<h2>Parameters</h2> +<p>Consider a login functionality which accepts email address and password. Possible states +for these fields are:</p> +<ul> +<li> +<p>Email address:</p> +<ul> +<li><code>valid</code> - well formed email string, exists in database, access is allowed</li> +<li><code>invalid</code> - malformed email string, should not exist in the DB but this fact is not relevant to the test</li> +<li><code>disabled</code> - well formed email string, exists in database, access is not allowed</li> +</ul> +</li> +<li> +<p>Password:</p> +<ul> +<li><code>correct</code> - matches the value in database for the given email address</li> +<li><code>another</code> - matches the value in database which is related to another email address</li> +<li><code>wrong</code> - doesn't match the value in database</li> +<li><code>empty</code> - value is empty string, a special case of <code>wrong</code></li> +<li><code>invalid</code> - value doesn't conform to predefined rules. May or may not be relevant to login functionality</li> +</ul> +</li> +</ul> +<p>Depending on how the software under test is put together you can design multiple test cases. +Fundamentally however these are the same test case and the above states are input parameters to it!</p> +<p><strong>Definition: TestCase parameters are different input values which do not fundamentally affect the result of +a test case! A TestCase with parameters will result into multiple test executions!</strong></p> +<p>In other words you will be executing a parameterized test scenario multiple times with different input values! +Inside Kiwi TCMS the actual parameter values during execution are recorded into the <code>TestExecution</code> model +which will not change if you modify test case parameter values afterwards!</p> +<p><strong>Definition: TestExecution parameters record a snapshot of TestCase parameters at the time when you intended +to execute a particular test scenario!</strong></p> +<h2>Environments</h2> +<p>A testing environment represents the specifics of where exactly you executed your test suite. +Consider this example:</p> +<blockquote> +<p>The default desktop environment of Fedora is GNOME, but if you prefer an alternative, +you can download installation media which contains slightly differently defaults, e.g. +KDE, Xfce, MATE and others, see <a href="https://spins.fedoraproject.org">https://spins.fedoraproject.org</a>.</p> +</blockquote> +<p>Regardless of which Fedora variant you choose the expected functionallity +of the default desktop experience is the same. However this can only be guaranteed with exhaustive +testing across all variants. Check-out the test matrix at +<a href="https://fedoraproject.org/wiki/Test_Results:Fedora_36_Rawhide_20220118.n.0_Desktop?rd=Test_Results:Current_Desktop_Test#Non_release-blocking_desktops:_x86_.2F_x86_64">https://fedoraproject.org/wiki/Test_Results:Fedora_36_Rawhide_20220118.n.0_Desktop?rd=Test_Results:Current_Desktop_Test#Non_release-blocking_desktops:_x86_.2F_x86_64</a></p> +<p><strong>Definition: a TestRun environment is a set of attributes which apply to the entire test suite +at the time of execution. Usually you expect test results in different environments to be the same!</strong></p> +<p>In Kiwi TCMS environments are represented as named containers of key/value pairs. +The same key may have multiple values! +They can be found under <em>ADMIN -&gt; Everything else -&gt; Environments</em>.</p> +<p>Because environments are meant to affect the entire test suite they are linked to the +<code>TestRun</code> model. When creating a new test run you can select multiple <code>Environment</code> +records.</p> +<h2>Test matrix generation</h2> +<p>The existing behavior in Kiwi TCMS is that when a test run is created there will be only one +test execution for every test case which is added inside this test run.</p> +<p>In the Fedora example shown above some of the test cases also have their own parameters, +e.g. the <em>QA:Testcase_desktop_app_basic</em> scenario.</p> +<p><strong>Definition: TestRun environment key/values will be combined with TestCase parameter key/values +to form the final test matrix! This opens up the possibility for combinatorial test execution +generation.</strong></p> +<p>Once parameters and environment(s) are specified you will start seeing multiple test executions +for the same test case inside newly created test runs. By default a full-combination test matrix +will be created. The other option is to <a href="https://www.pairwise.org/">pairwise</a> all key/value records.</p> +<p><strong>Important: test execution generation works only when creating or cloning a test run that contains +test cases. This feature still does not work for test cases added after a test run is created!</strong></p> +<h2>Environment(s) vs Tag(s)</h2> +<p>Inside Kiwi TCMS you can use both environments and tags to annotate test runs. +There are 3 important facts that hold true:</p> +<ul> +<li>Tags possess only informational value, they don't influence how you perform testing;</li> +<li>Environments possess informational value and govern the final test matrix;</li> +<li>Environments which have a single value for each different key are the same as tags!</li> +</ul> +<p><img alt="&quot;Example from #1344&quot;" src="/images/features/props-and-envs/env_from_1344.png" title="Example from #1344"></p> +<p>If we look at this example from <a href="https://github.com/kiwitcms/Kiwi/issues/1344">Issue #1344</a> we +can make out the following keys:</p> +<ul> +<li><em>Driver</em> - 2 values</li> +<li><em>API</em> - 2 values</li> +<li><em>Python</em> - 2 values</li> +<li><em>Java</em> - 1 value</li> +<li><em>Eclipse</em> - 1 value</li> +<li><em>Host OS</em> - 1 value</li> +<li><em>Target OS</em> - 1 value</li> +<li><em>Redistributable</em> - 1 value</li> +<li><em>Testing Type</em> - 1 value</li> +</ul> +<p>Here <em>Driver</em>, <em>API</em> and <em>Python</em> clearly should affect your test matrix. Otherwise there isn't +much point in having the different values recorded in the first place. That results in a 8x +multiplication factor for every functionality that may be affected/related to these attributes, +presumably the entire functionality of the product under test.</p> +<p><em>Java</em>, <em>Eclipse</em>, <em>Host OS</em> and <em>Target OS</em> carry only informational value but they look like +more values could be possible. If that's the case these attributes will also affect the overall +test matrix.</p> +<p><em>Redistributable</em> and <em>Testing Type</em> look like information-only attributes. They don't appear +to have any relevance to the test matrix at all. The same information-only effect can be achieved +both with environments and with tags.</p> +<p><strong>Practical rules:</strong></p> +<ol> +<li>Attributes which affect a single test case should be defined as TestCase parameters</li> +<li>Attributes which affect all test cases in a suite should be defined as TestRun environment(s)</li> +<li>One big TestRun is likely the best from organizational and optimizational point of view</li> +</ol> +<p>You may decide to have multiple smaller test runs, usually with 1 value per environment key, +if you think that fits your workflow better. However you may be missing on some optimizations if you +choose to do so.</p> +<h2>Real life example</h2> +<p>To illustrate how all of these new features work let's look at +<a href="https://fedoraproject.org/wiki/QA:Testcase_partitioning_custom_software_RAID">Partitioning custom software RAID</a> +test case from Fedora QA. It instructs the tester to install Linux and inside the +partitioning screen create a <em>Software RAID</em> partition, format it with a filesystem and +assign a mount point! It is expected that once installation is complete the machine will +reboot, tester will be able to login as root and the created filesystem will be available!</p> +<p>Factors that could affect this functionality:</p> +<ul> +<li> +<p><em>Raid Level</em>: Fedora supports 7 of them - 0, 1, 4, 5, 6, 10 and linear. These are all different drivers + located under <code>/lib/modules/$(uname -r)/kernel/drivers/md</code></p> +<div class="highlight"><pre><span></span><code>./linear.ko.xz +./raid0.ko.xz +./raid10.ko.xz +./raid1.ko.xz +./raid456.ko.xz +</code></pre></div> + + +</li> +<li> +<p><em>Mount Point</em>: <code>/</code> for example is mounted very early in the boot process, <code>/home</code> is mounted much later. + <code>/</code> also relates to rescue mode, while <code>/home</code> doesn't. <code>/home</code>, if corrupted, may affect the terminal + login process though</p> +</li> +<li><em>Encryption</em>: Yes/No. This is stackable on top of the RAID device and "should-just-work". However it is often + included into other partitioning test cases in order to discover weird issues and because it is a critical + functionality</li> +</ul> +<p>We may add the actual filesystem type, used to format the RAID block device, +e.g. <em>xfs</em>, <em>ext3</em>, <em>ext4</em>, but that's not needed here! Here's how this test case looks in Kiwi TCMS:</p> +<p><img alt="&quot;RAID test case&quot;" src="/images/features/props-and-envs/raid-tc-with-params.png" title="RAID test case"></p> +<p>Remember that Fedora comes with multiple variants for multiple CPU architectures! Of those we'll consider +<em>Server</em> and <em>Workstation</em>, which are both available for the <em>aarch64</em> and <em>x86_64</em> CPU +architectures. Here's how this can be represented inside Kiwi TCMS:</p> +<p><img alt="&quot;Fedora variants represented as environment&quot;" src="/images/features/props-and-envs/env-fedora-variants.png" title="Fedora variants represented as environment"></p> +<p><br/> +<br/> +Next we need to organize test execution for an upcoming release by creating test run(s) and +selecting environment and matrix generation type: +<img alt="&quot;New test run with environment&quot;" src="/images/features/props-and-envs/new-tr-with-env.png" title="New test run with environment"></p> +<p>The possible outcomes are:</p> +<ul> +<li><strong>112 test executions</strong>: full test matrix between all Fedora variants and all RAID parameters</li> +<li><strong>56 test executions</strong>: 4 TR x 14 TE; one TR/variant without environment; RAID parameters are pairwised</li> +<li><strong>16 test executions</strong>: all Fedora variants are pairwised together with all RAID parameters</li> +</ul> +<p>Finally this is how the resulting test run looks like. Notice the 3 boxes icon for each +test execution, listing the actual parameters which should be used during testing:</p> +<p><img alt="&quot;TR with environment, TE with parameters&quot;" src="/images/features/props-and-envs/tr-env-and-te-props.png" title="TR with environment, TE with parameters"></p> +<p>Environment parameters are read-only here b/c they have been copied to all test execution records. +It usually doesn't make sense to modify your environment mid-way during test execution. +If that's needed or you've made a mistake it's probably easier to create a new test run.</p> +<p>Happy Testing!</p> +<hr> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul> +<li><a href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a href="https://gitlab.com/gitlab-org/gitlab/-/issues/334558">Give 👍 on GitLab</a>;</li> +<li><a href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> + and follow all project news;</li> +<li><a href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> and an awesome open source hacker;</li> +<li><a href="/#subscriptions">Become a customer</a> and we'll share our profits with the community</li> +</ul>Kiwi TCMS Enterprise 10.5.12022-01-06T13:45:00+02:002022-01-06T13:45:00+02:00Kiwi TCMS Teamtag:None,2022-01-06:/blog/kiwi-tcms-team/2022/01/06/kiwi-tcms-enterprise-1051/<p>We're happy to announce Kiwi TCMS Enterprise version 10.5.1!</p> +<p><strong>IMPORTANT:</strong> +this is a small release which contains minor improvements and bug-fixes.</p> +<p>You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<div class="section" id="kiwi-tcms-enterprise-v10-5-1-mt"> +<h2>Kiwi TCMS Enterprise v10.5.1-mt</h2> +<ul> +<li><p class="first">Based on Kiwi TCMS v10.5</p> +</li> +<li><p class="first">Update django-python3-ldap from 0.13 …</p></li></ul></div><p>We're happy to announce Kiwi TCMS Enterprise version 10.5.1!</p> +<p><strong>IMPORTANT:</strong> +this is a small release which contains minor improvements and bug-fixes.</p> +<p>You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<div class="section" id="kiwi-tcms-enterprise-v10-5-1-mt"> +<h2>Kiwi TCMS Enterprise v10.5.1-mt</h2> +<ul> +<li><p class="first">Based on Kiwi TCMS v10.5</p> +</li> +<li><p class="first">Update django-python3-ldap from 0.13.0 to 0.13.1</p> +</li> +<li><p class="first">Update kiwitcms-github-app from 1.3.1 to 1.3.2</p> +<blockquote> +<p>Private images:</p> +<pre class="literal-block"> +quay.io/kiwitcms/enterprise 10.5.1-mt c4d745bd914c 806MB +</pre> +</blockquote> +</li> +</ul> +<p><strong>IMPORTANT:</strong> version tagged and Enterprise +<a class="reference external" href="/containers/">container</a> images are available only to +<a class="reference external" href="/#subscriptions">subscribers</a>!</p> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p><a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">Backup</a> first! +Then execute the commands:</p> +<pre class="literal-block"> +cd path/containing/docker-compose/ +docker-compose down +docker-compose pull +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +</pre> +<p>Refer to +<a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/installing_docker.html#upgrading">our documentation</a> +for more details!</p> +<p>Happy testing!</p> +<p>---</p> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul class="simple"> +<li><a class="reference external" href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a class="reference external" href="https://gitlab.com/gitlab-org/gitlab/-/issues/334558">Give 👍 on GitLab</a>;</li> +<li><a class="reference external" href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a class="reference external" href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> +and follow all project news;</li> +<li><a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> +and an awesome open source hacker;</li> +<li><a class="reference external" href="/#subscriptions">Become a subscriber</a> and help us sustain development</li> +</ul> +</div> +New versions of automation frameworks plugins2021-12-14T13:00:00+02:002021-12-14T13:00:00+02:00Kiwi TCMS Teamtag:None,2021-12-14:/blog/kiwi-tcms-team/2021/12/14/new-versions-of-automation-frameworks-plugins/<p>Kiwi TCMS is pleased to announce new versions of our plugins for different +test automation frameworks:</p> +<ul class="simple"> +<li><a class="reference external" href="https://github.com/kiwitcms/tap-plugin">tap-plugin</a></li> +<li><a class="reference external" href="https://github.com/kiwitcms/junit.xml-plugin">junit.xml-plugin</a></li> +<li><a class="reference external" href="https://github.com/kiwitcms/junit-plugin/">JUnit 5 plugin</a></li> +<li><a class="reference external" href="https://github.com/kiwitcms/robotframework-plugin">Robot Framework plugin</a></li> +<li><a class="reference external" href="https://github.com/kiwitcms/django-plugin">Django test runner plugin</a></li> +</ul> +<p>The new versions are future compatible with upcoming Kiwi TCMS v11 and also with existing +Kiwi TCMS v10.x installations. Check-out …</p><p>Kiwi TCMS is pleased to announce new versions of our plugins for different +test automation frameworks:</p> +<ul class="simple"> +<li><a class="reference external" href="https://github.com/kiwitcms/tap-plugin">tap-plugin</a></li> +<li><a class="reference external" href="https://github.com/kiwitcms/junit.xml-plugin">junit.xml-plugin</a></li> +<li><a class="reference external" href="https://github.com/kiwitcms/junit-plugin/">JUnit 5 plugin</a></li> +<li><a class="reference external" href="https://github.com/kiwitcms/robotframework-plugin">Robot Framework plugin</a></li> +<li><a class="reference external" href="https://github.com/kiwitcms/django-plugin">Django test runner plugin</a></li> +</ul> +<p>The new versions are future compatible with upcoming Kiwi TCMS v11 and also with existing +Kiwi TCMS v10.x installations. Check-out the pages above for individual instructions.</p> +<p>Happy testing!</p> +<p>---</p> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul class="simple"> +<li><a class="reference external" href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a class="reference external" href="https://gitlab.com/gitlab-org/gitlab/-/issues/334558">Give 👍 on GitLab</a>;</li> +<li><a class="reference external" href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a class="reference external" href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> +and follow all project news;</li> +<li><a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> +and an awesome open source hacker;</li> +<li><a class="reference external" href="/#subscriptions">Become a subscriber</a> and help us sustain development</li> +</ul> +Call for participation: Testing and Automation devroom, FOSDEM'222021-12-06T19:40:00+02:002021-12-06T19:40:00+02:00Kiwi TCMS Teamtag:None,2021-12-06:/blog/kiwi-tcms-team/2021/12/06/call-for-participation-testing-and-automation-devroom-fosdem22/<p><img alt="&quot;Cfp banner&quot;" src="/images/fosdem/2022/banner.png" title="Cfp banner"></p> +<p>Attention testers! On behalf of +<a href="https://fosdem-testingautomation.github.io/"><em>Testing and Automation devroom</em></a> +we'd like to announce that call for participation is now open.</p> +<p>Here are some ideas for topics that are a good fit for this devroom:</p> +<p>Testing in the real, open source world</p> +<ul> +<li>War stories/strategies for testing large scale or complex …</li></ul><p><img alt="&quot;Cfp banner&quot;" src="/images/fosdem/2022/banner.png" title="Cfp banner"></p> +<p>Attention testers! On behalf of +<a href="https://fosdem-testingautomation.github.io/"><em>Testing and Automation devroom</em></a> +we'd like to announce that call for participation is now open.</p> +<p>Here are some ideas for topics that are a good fit for this devroom:</p> +<p>Testing in the real, open source world</p> +<ul> +<li>War stories/strategies for testing large scale or complex projects</li> +<li>Demystify resource e.g. systems/device/cloud provisioning in a CI loop</li> +<li>Tools that extend the ability to test low-level code, e.g. bootloaders, init +systems, etc.</li> +<li>Projects that are introducing new/interesting ways of testing "systems"</li> +<li>Address the automated testing frameworks fragmentation</li> +<li>Lessons learned from testing</li> +</ul> +<p>Cool Tools (good candidates for lightning talks)</p> +<ul> +<li>How your open source tool made developing quality software better</li> +<li>What tools do you use to setup your CI/CD</li> +<li>Combining projects/plugins/tools to build amazing things "Not enough people in +the open source community know how to use $X, but here's a tutorial on how to +use $X to make your project better."</li> +</ul> +<p>In the past the devroom has seen both newbies/students and experienced professionals and +past speakers as part of the audience and talks covering from beginner/practical +to advanced/abstract topics. If you have doubts then submit your proposal and +leave a comment for the devroom managers and we'll get back to you.</p> +<p>Checkout +<a href="https://fosdem-testingautomation.github.io/">https://fosdem-testingautomation.github.io/</a> for more information!</p> +<p>Happy Testing!</p> +<hr> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul> +<li><a href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> + and follow all project news;</li> +<li><a href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> and an awesome open source hacker;</li> +<li><a href="/#subscriptions">Become a customer</a> and we'll share our profits with the community</li> +</ul>Kiwi TCMS 10.52021-11-26T11:20:00+02:002021-11-26T11:20:00+02:00Kiwi TCMS Teamtag:None,2021-11-26:/blog/kiwi-tcms-team/2021/11/26/kiwi-tcms-105/<p>We're happy to announce Kiwi TCMS version 10.5 which celebrates the +very positive reception we had at +<a class="reference external" href="/blog/kiwi-tcms-team/2021/10/29/catch-up-with-kiwi-tcms-at-websummit-2021-lisbon/">WebSummit 2021</a>!</p> +<p><strong>IMPORTANT:</strong> +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.</p> +<p>You can explore …</p><p>We're happy to announce Kiwi TCMS version 10.5 which celebrates the +very positive reception we had at +<a class="reference external" href="/blog/kiwi-tcms-team/2021/10/29/catch-up-with-kiwi-tcms-at-websummit-2021-lisbon/">WebSummit 2021</a>!</p> +<p><strong>IMPORTANT:</strong> +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.</p> +<p>You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<blockquote> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +</blockquote> +<p>---</p> +<blockquote> +<p>Container images:</p> +<pre class="literal-block"> +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 +</pre> +</blockquote> +<p><strong>IMPORTANT:</strong> version tagged +<a class="reference external" href="/containers/">container</a> images are available only to +<a class="reference external" href="/#subscriptions">subscribers</a>!</p> +<div class="section" id="changes-since-kiwi-tcms-10-4"> +<h2>Changes since Kiwi TCMS 10.4</h2> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update django from 3.2.7 to 3.2.9</li> +<li>Update django-colorfield from 0.4.3 to 0.4.5</li> +<li>Update django-extensions from 3.1.3 to 3.1.5</li> +<li>Update django-grappelli from 2.15.1 to 2.15.3</li> +<li>Update django-tree-queries from 0.6.0 to 0.7.0</li> +<li>Update jira from 3.0.1 to 3.1.1</li> +<li>Update markdown from 3.3.4 to 3.3.6</li> +<li>Update mysqlclient from 2.0.3 to 2.1.0</li> +<li>Update psycopg2 from 2.9.1 to 2.9.2</li> +<li>Display a warning if connection doesn't use HTTPS (Ivajlo Karabojkov)</li> +<li>Account registration page can be turned on/off via settings. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2500">Issue #2500</a></li> +<li>TestCase Search page can now filter by TestPlan. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2283">Issue #2283</a></li> +<li>Allow template selection when creating new test case. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/957">Issue #957</a></li> +<li>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 +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1843">Issue #1843</a>, +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1931">Issue #1931</a> and +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1344">Issue #1344</a> but isn't active anywhere else inside +Kiwi TCMS at the moment</li> +<li>TestExecution properties will be displayed inside TestRun page if they +have been specified</li> +<li>Rearrange help-text in admin page for better visibility</li> +<li>Switch to official Postgres image from Docker Hub</li> +<li>Switch to official MariaDB image from Docker Hub</li> +</ul> +<p><strong>Warning:</strong></p> +<blockquote> +<p>For Postgres data dir changed from <tt class="docutils literal">/var/lib/pgsql/data</tt> to <tt class="docutils literal">/var/lib/postgres/data</tt>. +Environment variables inside docker-compose file changed as well, +see <tt class="docutils literal"><span class="pre">docker-compose.postgres</span></tt>.</p> +<p>For MariaDB data dir changed from <tt class="docutils literal">/var/lib/mysql/data</tt> to <tt class="docutils literal">/var/lib/mysql</tt>. +<tt class="docutils literal">MYSQL_CHARSET</tt> &amp; <tt class="docutils literal">MYSQL_COLLATION</tt> environment variables are no longer +recognized. Instead they are present as command line options passed to the container, +see <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt>. Previous workaround for these variables was also removed.</p> +<p>If you want to migrate from the previous <tt class="docutils literal"><span class="pre">centos/mariadb-103-centos7</span></tt> or +<tt class="docutils literal"><span class="pre">centos/postgresql-12-centos7</span></tt> containers to <tt class="docutils literal">mariadb:latest</tt> and <tt class="docutils literal">postgres:latest</tt> +make sure to update your container control files!</p> +</blockquote> +</div> +<div class="section" id="settings"> +<h3>Settings</h3> +<ul class="simple"> +<li>New setting <tt class="docutils literal">REGISTRATION_ENABLED</tt>, default <tt class="docutils literal">True</tt>, Can be controlled via +environment variable <tt class="docutils literal">KIWI_REGISTRATION_ENABLED</tt>. When set to <tt class="docutils literal">False</tt> +will disable account registration page</li> +</ul> +</div> +<div class="section" id="database"> +<h3>Database</h3> +<ul class="simple"> +<li>New model <tt class="docutils literal">testcases.Property</tt></li> +<li>New model <tt class="docutils literal">testcases.Template</tt></li> +<li>New model <tt class="docutils literal">testruns.TestExecutionProperty</tt></li> +<li>Remove <tt class="docutils literal">unique_together</tt> constraint for <tt class="docutils literal">testruns.TestExecution</tt> model. +This makes it possible to add multiple executions for the same test case in +the same test run</li> +</ul> +<p><strong>Warning:</strong></p> +<blockquote> +<p>These newly added models create additional permission labels with names +<em>testcases | template | Can .... template</em>, +<em>testcases | property | Can .... property</em>, +<em>testruns | test execution property | Can .... test execution property</em></p> +<p>Execute <tt class="docutils literal">manage.py refresh_permissions</tt> and/or assign them manually to +users and groups if they should be able to interact with the new objects!</p> +</blockquote> +</div> +<div class="section" id="api"> +<h3>API</h3> +<ul class="simple"> +<li>Method <tt class="docutils literal">TestCase.filter()</tt> now returns additional fields +<tt class="docutils literal">setup_duration</tt>, <tt class="docutils literal">testing_duration</tt>, <tt class="docutils literal">expected_duration</tt> - all +serialized in seconds. Refs +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1923">Issue #1923</a> (Mfon Eti-mfon)</li> +<li>Method <tt class="docutils literal">User.filter()</tt> will no longer return fields +<tt class="docutils literal">groups</tt>, <tt class="docutils literal">user_permissions</tt>, <tt class="docutils literal">date_joined</tt> and <tt class="docutils literal">last_login</tt></li> +<li>New method <tt class="docutils literal">TestExecution.properties()</tt></li> +<li>New method <tt class="docutils literal">TestCase.properties()</tt></li> +<li>New method <tt class="docutils literal">TestCase.add_property()</tt></li> +<li>New method <tt class="docutils literal">TestCase.remove_property()</tt></li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Unify tab size &amp; tab indentation b/w Python &amp; SimpleMDE. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1802">Issue #1802</a></li> +<li>Use <tt class="docutils literal">sane_list extension</tt> for rendering consecutive lists in markdown. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2511">Issue #2511</a></li> +</ul> +<p><strong>Warning:</strong></p> +<blockquote> +<p>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 &quot;Indentation/Tab Length&quot; at <a class="reference external" href="https://python-markdown.github.io/#differences">https://python-markdown.github.io/#differences</a></p> +<p>The backend markdown rendering engine explicitly followed an undefined behavior +which happens to be different from what the visual markdown editor does. +See &quot;Consecutive Lists&quot; at <a class="reference external" href="https://python-markdown.github.io/#differences">https://python-markdown.github.io/#differences</a></p> +<p>The previous 2 changes make sure the visual editor and backend rendering engine +follow the same rules. This may result is &quot;broken&quot; 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.</p> +</blockquote> +<ul class="simple"> +<li>Fix broken URL and minor updates to documentation</li> +<li>Update GitLab tracker integration documentation to avoid confusion. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2559">Issue #2559</a></li> +<li>Limit tag input length to 255 characters. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2176">Issue #2176</a></li> +<li>Make error notifications in Admin to display with red color</li> +<li>Select only visible rows for bulk-update in TestRun page. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2222">Issue #2222</a></li> +<li>Remove <tt class="docutils literal"><span class="pre">Cache-Control</span></tt> header from httpd. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/443">Issue #443</a></li> +</ul> +</div> +<div class="section" id="refactoring-and-testing"> +<h3>Refactoring and testing</h3> +<ul class="simple"> +<li>Add permissions test for add-hyperlink-bulk menu. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/716">Issue #716</a></li> +<li>Add explicit tests for issue tracker integration with GitLab.com</li> +<li>Tests teardown - remove comments &amp; close issues on GitLab.com</li> +<li>Add missing <tt class="docutils literal">rlPhaseEnd</tt> for docker tests</li> +<li>Multiple pylint and eslint fixes</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/fr#">French translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/hu#">Hungarian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +</ul> +</div> +</div> +<div class="section" id="kiwi-tcms-enterprise-v10-5-mt"> +<h2>Kiwi TCMS Enterprise v10.5-mt</h2> +<ul> +<li><p class="first">Based on Kiwi TCMS v10.5</p> +</li> +<li><p class="first">Update django-python3-ldap from 0.12.0 to 0.12.1</p> +</li> +<li><p class="first">Update django-ses from 2.3.0 to 2.3.1</p> +</li> +<li><p class="first">Update kiwitcms-tenants from 1.7.0 to 1.8.0</p> +<blockquote> +<p>Private images:</p> +<pre class="literal-block"> +quay.io/kiwitcms/enterprise 10.5-mt 3e597c91d057 804 MB +quay.io/kiwitcms/version 10.5 0574b19b5d66 583 MB +</pre> +</blockquote> +</li> +</ul> +<p><strong>IMPORTANT:</strong> version tagged and Enterprise +<a class="reference external" href="/containers/">container</a> images are available only to +<a class="reference external" href="/#subscriptions">subscribers</a>!</p> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p><a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">Backup</a> first! +Then execute the commands:</p> +<pre class="literal-block"> +cd path/containing/docker-compose/ +docker-compose down +docker-compose pull +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +</pre> +<p>Refer to +<a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/installing_docker.html#upgrading">our documentation</a> +for more details!</p> +<p>Happy testing!</p> +<p>---</p> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul class="simple"> +<li><a class="reference external" href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a class="reference external" href="https://gitlab.com/gitlab-org/gitlab/-/issues/334558">Give 👍 on GitLab</a>;</li> +<li><a class="reference external" href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a class="reference external" href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> +and follow all project news;</li> +<li><a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> +and an awesome open source hacker;</li> +<li><a class="reference external" href="/#subscriptions">Become a subscriber</a> and help us sustain development</li> +</ul> +</div> +Kiwi TCMS subscription guidelines2021-11-01T20:03:00+02:002021-11-01T20:03:00+02:00Kiwi TCMS Teamtag:None,2021-11-01:/blog/kiwi-tcms-team/2021/11/01/kiwi-tcms-subscription-guidelines/<p>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. +<em>We recommend that customers purchase a subscription for every container running +Kiwi TCMS</em> however this becomes distorted for teams who don't actively …</p><p>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. +<em>We recommend that customers purchase a subscription for every container running +Kiwi TCMS</em> however this becomes distorted for teams who don't actively seek support +and large organizations! Here are our guidelines.</p> +<h2>Phase of deployment</h2> +<p><strong>Casual exploration:</strong> No subscription required. Use <a href="https://public.tenant.kiwitcms.org">https://public.tenant.kiwitcms.org</a> +to explore Kiwi TCMS and formulate your questions and further plan of action.</p> +<p><strong>Serious evaluation</strong> or <strong>Proof of concept:</strong> 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!</p> +<p><strong>Pilot:</strong> 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.</p> +<p><strong>Production:</strong> make your decision according to the size of your test team and +anticipated support needs, see below.</p> +<blockquote> +<p>Our mission is to transform the testing process inside your organization. +You don't have to do it alone! Let us help you!</p> +</blockquote> +<h2>Number of testers</h2> +<p><strong>&lt;= 25:</strong> 1x Private Tenant SaaS</p> +<p><strong>25-100:</strong> 2-5x Private Tenant SaaS; consider splitting teams +and purchase a subscription for each of them</p> +<p><strong>100 - 200:</strong> 1x Enterprise; consider additional subscriptions of any kind for +non-production instances</p> +<p><strong>200 - 500</strong> - 2-3x Enterprise; consider additional subscriptions of any kind +for non-production instances</p> +<p><strong>500 - 1000:</strong> - 5x Enterprise; consider additional Enterprise subscriptions for +non-production instances</p> +<p><strong>Over 1000:</strong> 10x Enterprise; consider add-on services for custom development</p> +<blockquote> +<p>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!</p> +</blockquote> +<p>--</p> +<blockquote> +<p>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 that low though?</p> +</blockquote> +<p>Ready ? <a href="/#subscriptions">Explore subscriptions</a>!</p> +<hr> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul> +<li><a href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a href="https://gitlab.com/gitlab-org/gitlab/-/issues/334558">Give 👍 on GitLab</a>;</li> +<li><a href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> + and follow all project news;</li> +<li><a href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> and an awesome open source hacker;</li> +<li><a href="/#subscriptions">Become a customer</a> and enjoy the benefits</li> +</ul>Catch up with Kiwi TCMS at WebSummit 2021 Lisbon2021-10-29T16:00:00+03:002021-10-29T16:00:00+03:00Kiwi TCMS Teamtag:None,2021-10-29:/blog/kiwi-tcms-team/2021/10/29/catch-up-with-kiwi-tcms-at-websummit-2021-lisbon/<p><img alt="Venue map" src="/images/conf/websummit/2021_venue_map.png" title="venue map"></p> +<p>We're happy to announce that +Kiwi TCMS will host an exhibition stand at <a href="https://websummit.com/">WebSummit 2021</a> in Lisbon. +You can find us on Wednesday, November 03, +<strong>Stand number: A 407, Industry category: Pavilion 3, ALPHA 4</strong>.</p> +<div class="member-bio" style="margin-top: 2vh"> + <img src="/images/conf/websummit/black_boxes.png" alt="black boxes" style="float:left; margin-right: 1vw"> + <p> + At the exhibition stand you will have the opportunity to perform some real + <a href="/blog/kiwi-tcms-team/2020/10/10/progress-update-on-open-source-hardware-for-black-box-testing/">black-box testing …</a></p></div><p><img alt="Venue map" src="/images/conf/websummit/2021_venue_map.png" title="venue map"></p> +<p>We're happy to announce that +Kiwi TCMS will host an exhibition stand at <a href="https://websummit.com/">WebSummit 2021</a> in Lisbon. +You can find us on Wednesday, November 03, +<strong>Stand number: A 407, Industry category: Pavilion 3, ALPHA 4</strong>.</p> +<div class="member-bio" style="margin-top: 2vh"> + <img src="/images/conf/websummit/black_boxes.png" alt="black boxes" style="float:left; margin-right: 1vw"> + <p> + At the exhibition stand you will have the opportunity to perform some real + <a href="/blog/kiwi-tcms-team/2020/10/10/progress-update-on-open-source-hardware-for-black-box-testing/">black-box testing</a>, + learn about Salience bias, Peltzman effect and Wason's experiments and take a photo with + our lovely mascot. + </p> + + <p> + The Kiwi TCMS team will be there to answer all of your questions regarding + open source, community, support, various integrations and the differences between + <em>Free</em>, <em>SaaS</em> and <em>Enterprise</em> + <a href="/#subscriptions">subscriptions</a>! + </p> + + <p> + If you still need more convincing check-out our + <a href="https://www.youtube.com/watch?v=yIyhkcJ8How">WebSummit SHOWCASE video</a> + and how + <a href="https://www.youtube.com/watch?v=Wob_L_SrEwE&t=571s">QGIS organizes their testing with Kiwi TCMS</a>. + </p> + <p> + <em> + Fun fact: adoption of Kiwi TCMS is lead by Alexandre Neto - a QGIS community member from Portugal. + </em> + </p> +</div> + +<hr> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul> +<li><a href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a href="https://gitlab.com/gitlab-org/gitlab/-/issues/334558">Give 👍 on GitLab</a>;</li> +<li><a href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> + and follow all project news;</li> +<li><a href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> and an awesome open source hacker;</li> +<li><a href="/#subscriptions">Become a customer</a> and we'll share our profits with the community</li> +</ul>Announcing winners of 6 tickets for HackConf 20212021-10-06T14:00:00+03:002021-10-06T14:00:00+03:00Kiwi TCMS Teamtag:None,2021-10-06:/blog/kiwi-tcms-team/2021/10/06/announcing-winners-of-6-tickets-for-hackconf-2021/<p>Here are the winners of our <a href="/blog/kiwi-tcms-team/2021/09/01/win-6-superfan-tickets-for-hackconf-2021/">ticket giveaway</a>:</p> +<ul> +<li>Martin Ayvazov</li> +<li>Ralitsa Georgieva</li> +<li>Teodora Pashina - Dimitrova</li> +<li>Gabriela Luhova</li> +<li>Lyuboslava Arshinkova</li> +<li>Yoan Bachev</li> +</ul> +<p><strong>Attention winners:</strong> please get in touch with us at <em>info@kiwitcms.org</em> to claim your tickets. +We will ask you to validate your GitLab account by performing a quick …</p><p>Here are the winners of our <a href="/blog/kiwi-tcms-team/2021/09/01/win-6-superfan-tickets-for-hackconf-2021/">ticket giveaway</a>:</p> +<ul> +<li>Martin Ayvazov</li> +<li>Ralitsa Georgieva</li> +<li>Teodora Pashina - Dimitrova</li> +<li>Gabriela Luhova</li> +<li>Lyuboslava Arshinkova</li> +<li>Yoan Bachev</li> +</ul> +<p><strong>Attention winners:</strong> please get in touch with us at <em>info@kiwitcms.org</em> 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!</p> +<p>Raw data from our +<a href="https://github.com/kiwitcms/api-scripts/pull/1">winner selection script</a> below:</p> +<div class="highlight"><pre><span></span><code><span class="o">*****</span> <span class="n">WINNER</span> <span class="c1">#1: Martin Ayvazov</span> +<span class="p">{</span><span class="s1">&#39;avatar_url&#39;</span><span class="p">:</span> <span class="s1">&#39;https://secure.gravatar.com/avatar/eea811553e2b8aa3dd7ef670c3cd3552?s=80&amp;d=identicon&#39;</span><span class="p">,</span> + <span class="s1">&#39;id&#39;</span><span class="p">:</span> <span class="mi">9640539</span><span class="p">,</span> + <span class="s1">&#39;name&#39;</span><span class="p">:</span> <span class="s1">&#39;Martin Ayvazov&#39;</span><span class="p">,</span> + <span class="s1">&#39;state&#39;</span><span class="p">:</span> <span class="s1">&#39;active&#39;</span><span class="p">,</span> + <span class="s1">&#39;username&#39;</span><span class="p">:</span> <span class="s1">&#39;majvazov&#39;</span><span class="p">,</span> + <span class="s1">&#39;web_url&#39;</span><span class="p">:</span> <span class="s1">&#39;https://gitlab.com/majvazov&#39;</span><span class="p">}</span> +<span class="o">*****</span> <span class="n">WINNER</span> <span class="c1">#2: Ralitsa Georgieva</span> +<span class="p">{</span><span class="s1">&#39;avatar_url&#39;</span><span class="p">:</span> <span class="s1">&#39;https://secure.gravatar.com/avatar/43aa50437fc245766bc3e6072777c056?s=80&amp;d=identicon&#39;</span><span class="p">,</span> + <span class="s1">&#39;id&#39;</span><span class="p">:</span> <span class="mi">9869926</span><span class="p">,</span> + <span class="s1">&#39;name&#39;</span><span class="p">:</span> <span class="s1">&#39;Ralitsa Georgieva&#39;</span><span class="p">,</span> + <span class="s1">&#39;state&#39;</span><span class="p">:</span> <span class="s1">&#39;active&#39;</span><span class="p">,</span> + <span class="s1">&#39;username&#39;</span><span class="p">:</span> <span class="s1">&#39;ralitsa.georgieva&#39;</span><span class="p">,</span> + <span class="s1">&#39;web_url&#39;</span><span class="p">:</span> <span class="s1">&#39;https://gitlab.com/ralitsa.georgieva&#39;</span><span class="p">}</span> +<span class="o">*****</span> <span class="n">WINNER</span> <span class="c1">#3: Teodora Pashina - Dimitrova</span> +<span class="p">{</span><span class="s1">&#39;avatar_url&#39;</span><span class="p">:</span> <span class="s1">&#39;https://secure.gravatar.com/avatar/beca49c67ce9862a8ecb8deff94780a7?s=80&amp;d=identicon&#39;</span><span class="p">,</span> + <span class="s1">&#39;id&#39;</span><span class="p">:</span> <span class="mi">9869893</span><span class="p">,</span> + <span class="s1">&#39;name&#39;</span><span class="p">:</span> <span class="s1">&#39;Teodora Pashina - Dimitrova&#39;</span><span class="p">,</span> + <span class="s1">&#39;state&#39;</span><span class="p">:</span> <span class="s1">&#39;active&#39;</span><span class="p">,</span> + <span class="s1">&#39;username&#39;</span><span class="p">:</span> <span class="s1">&#39;tedi.pashina&#39;</span><span class="p">,</span> + <span class="s1">&#39;web_url&#39;</span><span class="p">:</span> <span class="s1">&#39;https://gitlab.com/tedi.pashina&#39;</span><span class="p">}</span> +<span class="o">*****</span> <span class="n">WINNER</span> <span class="c1">#4: Gabriela Luhova</span> +<span class="p">{</span><span class="s1">&#39;avatar_url&#39;</span><span class="p">:</span> <span class="s1">&#39;https://secure.gravatar.com/avatar/92e863a1e3df1122cc0beb2477a375be?s=80&amp;d=identicon&#39;</span><span class="p">,</span> + <span class="s1">&#39;id&#39;</span><span class="p">:</span> <span class="mi">9641952</span><span class="p">,</span> + <span class="s1">&#39;name&#39;</span><span class="p">:</span> <span class="s1">&#39;Gabriela Luhova&#39;</span><span class="p">,</span> + <span class="s1">&#39;state&#39;</span><span class="p">:</span> <span class="s1">&#39;active&#39;</span><span class="p">,</span> + <span class="s1">&#39;username&#39;</span><span class="p">:</span> <span class="s1">&#39;gabriela.luhova&#39;</span><span class="p">,</span> + <span class="s1">&#39;web_url&#39;</span><span class="p">:</span> <span class="s1">&#39;https://gitlab.com/gabriela.luhova&#39;</span><span class="p">}</span> +<span class="o">*****</span> <span class="n">WINNER</span> <span class="c1">#5: Lyuboslava Arshinkova</span> +<span class="p">{</span><span class="s1">&#39;avatar_url&#39;</span><span class="p">:</span> <span class="s1">&#39;https://secure.gravatar.com/avatar/1e0a308ddbe3b8ab9660ec7702fa0d6d?s=80&amp;d=identicon&#39;</span><span class="p">,</span> + <span class="s1">&#39;id&#39;</span><span class="p">:</span> <span class="mi">9869399</span><span class="p">,</span> + <span class="s1">&#39;name&#39;</span><span class="p">:</span> <span class="s1">&#39;Lyuboslava Arshinkova&#39;</span><span class="p">,</span> + <span class="s1">&#39;state&#39;</span><span class="p">:</span> <span class="s1">&#39;active&#39;</span><span class="p">,</span> + <span class="s1">&#39;username&#39;</span><span class="p">:</span> <span class="s1">&#39;arshinkovalyuboslava&#39;</span><span class="p">,</span> + <span class="s1">&#39;web_url&#39;</span><span class="p">:</span> <span class="s1">&#39;https://gitlab.com/arshinkovalyuboslava&#39;</span><span class="p">}</span> +<span class="o">*****</span> <span class="n">WINNER</span> <span class="c1">#6: Yoan Bachev</span> +<span class="p">{</span><span class="s1">&#39;avatar_url&#39;</span><span class="p">:</span> <span class="s1">&#39;https://gitlab.com/uploads/-/system/user/avatar/7630581/avatar.png&#39;</span><span class="p">,</span> + <span class="s1">&#39;id&#39;</span><span class="p">:</span> <span class="mi">7630581</span><span class="p">,</span> + <span class="s1">&#39;name&#39;</span><span class="p">:</span> <span class="s1">&#39;Yoan Bachev&#39;</span><span class="p">,</span> + <span class="s1">&#39;state&#39;</span><span class="p">:</span> <span class="s1">&#39;active&#39;</span><span class="p">,</span> + <span class="s1">&#39;username&#39;</span><span class="p">:</span> <span class="s1">&#39;yobachev&#39;</span><span class="p">,</span> + <span class="s1">&#39;web_url&#39;</span><span class="p">:</span> <span class="s1">&#39;https://gitlab.com/yobachev&#39;</span><span class="p">}</span> +</code></pre></div> + + +<p>Video recording of the selection process:</p> +<p><iframe + width="560" + height="315" + src="https://www.youtube.com/embed/QINm7pLolOw" + title="YouTube video player" + frameborder="0" + allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen> +</iframe></p> +<hr> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul> +<li><a href="https://fellowship.mlh.io/opensourceawards">Nominate Kiwi TCMS at MLH Open Source Awards</a>;</li> +<li><a href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a href="https://gitlab.com/gitlab-org/gitlab/-/issues/334558">Give 👍 on GitLab</a>;</li> +<li><a href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> + and follow all project news;</li> +<li><a href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> and an awesome open source hacker;</li> +<li><a href="/#subscriptions">Become a customer</a> and we'll share our profits with the community</li> +</ul>Kiwi TCMS 10.42021-10-05T13:15:00+03:002021-10-05T13:15:00+03:00Kiwi TCMS Teamtag:None,2021-10-05:/blog/kiwi-tcms-team/2021/10/05/kiwi-tcms-104/<p>We're happy to announce Kiwi TCMS version 10.4!</p> +<p><strong>IMPORTANT:</strong> 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 +<a class="reference external" href="/blog/tags/bounty-program/">open source bounty program</a>!</p> +<p>You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org …</a></p><p>We're happy to announce Kiwi TCMS version 10.4!</p> +<p><strong>IMPORTANT:</strong> 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 +<a class="reference external" href="/blog/tags/bounty-program/">open source bounty program</a>!</p> +<p>You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +<p>Container images:</p> +<pre class="literal-block"> +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 +</pre> +<div class="section" id="changes-since-kiwi-tcms-10-3"> +<h2>Changes since Kiwi TCMS 10.3</h2> +<div class="section" id="security"> +<h3>Security</h3> +<ul class="simple"> +<li>Update prismjs from 1.24.1 to 1.25.0. Includes patches against a +Regular Expression Denial of Service vulnerability. +See <a class="reference external" href="https://snyk.io/vuln/SNYK-JS-PRISMJS-1585202">https://snyk.io/vuln/SNYK-JS-PRISMJS-1585202</a></li> +</ul> +</div> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update bleach from 4.0.0 to 4.1.0</li> +<li>Update django from 3.2.6 to 3.2.7</li> +<li>Update django-colorfield from 0.4.2 to 0.4.3</li> +<li>Update pygithub from 1.54.1 to 1.55</li> +<li>Update pygments from 2.9.0 to 2.10.0</li> +<li>Update python-gitlab from 2.10.0 to 2.10.1</li> +<li>Allow filtering by TestRun ID in Test Case Search page</li> +<li>Update test execution prefix in list of executions on TestRun page. +Now includes both TE and TC numbers before the summary link</li> +<li>Allow search by translated names on Test Run page</li> +<li>Redirect &quot;ADMIN -&gt; Users and groups&quot; menu item according to tenancy</li> +<li>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!</li> +<li>The <tt class="docutils literal">initial_setup</tt> command will create a schema called &quot;empty&quot; when executed +inside a multi-tenant setup. Refs +<a class="reference external" href="https://github.com/kiwitcms/tenants/issues/127">Issue #127</a></li> +</ul> +</div> +<div class="section" id="settings"> +<h3>Settings</h3> +<ul class="simple"> +<li>Update values for <tt class="docutils literal">MODERNRPC_HANDLERS</tt> setting</li> +<li>Rename <tt class="docutils literal">SafeJSONRPCHandler</tt> to <tt class="docutils literal">KiwiTCMSJsonRpcHandler</tt></li> +<li>New RPC handler class <tt class="docutils literal">KiwiTCMSXmlRpcHandler</tt></li> +</ul> +<div class="admonition warning"> +<p class="first admonition-title">Warning</p> +<p class="last">If you had manipulated the value of MODERNRPC_HANDLERS make sure that +you update to the new class names!</p> +</div> +</div> +<div class="section" id="database"> +<h3>Database</h3> +<ul class="simple"> +<li>New migrations for altered meta options</li> +</ul> +</div> +<div class="section" id="api"> +<h3>API</h3> +<ul class="simple"> +<li><tt class="docutils literal">TestCase.create</tt> method accepts <tt class="docutils literal">setup_duration</tt> and <tt class="docutils literal">testing_duration</tt> fields. +Refs <a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1923">Issue #1923</a> (Mfon Eti-mfon)</li> +<li><tt class="docutils literal">TestCase.update</tt> method acepts <tt class="docutils literal">setup_duration</tt> and <tt class="docutils literal">testing_duration</tt> fields. +Refs <a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1923">Issue #1923</a> (Mfon Eti-mfon)</li> +<li>New method <tt class="docutils literal">Testing.individual_test_case_health</tt></li> +<li>Timedelta values are serialized to float, representing seconds</li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Fix wrong URL parameter passed to test cases clone page</li> +<li>Show translated execution statuses for TestRun page. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1966">Issue #1966</a></li> +<li>Properly initialize Product value on TestRun Edit page. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2514">Issue #2514</a></li> +<li>Clone duration fields when cloning a test case</li> +</ul> +</div> +<div class="section" id="refactoring-and-testing"> +<h3>Refactoring and testing</h3> +<ul class="simple"> +<li>New automated test scenario for <tt class="docutils literal">kiwi_auth.admin</tt> (Mariyan Garvanski)</li> +<li>Unify similar strings to reduce translations burden</li> +<li>Inside buildroot <tt class="docutils literal">PyNaCl</tt> needs <tt class="docutils literal">make</tt> in order to build a wheel package</li> +<li>Adjust values for parametrized test to match existing scenarios</li> +<li>Fix code smells from newer pylint</li> +<li>eslint fixes for the JavaScript files</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/zh-CN#">Chinese Simplified translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/de#">German translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/it#">Italian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/pt-BR#">Portuguese, Brazilian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/ru#">Russian translation</a></li> +</ul> +</div> +</div> +<div class="section" id="kiwi-tcms-enterprise-v10-4-1-mt"> +<h2>Kiwi TCMS Enterprise v10.4.1-mt</h2> +<ul class="simple"> +<li>Based on Kiwi TCMS v10.4</li> +<li>Update django-ses from 2.2.1 to 2.3.0</li> +<li>Update kiwitcms-github-app from 1.3.0 to 1.3.1</li> +<li>Update python3-saml from 1.11.0 to 1.12.0</li> +<li>Update social-auth-app-django from 4.0.0 to 5.0.0</li> +<li>Use initial_setup during testing. Closes +<a class="reference external" href="https://github.com/kiwitcms/enterprise/issues/88">Issue #88</a></li> +<li>Fix new pylint issues and start using f-strings</li> +<li>Test &quot;ADMIN -&gt; Users and Groups&quot; menu redirect</li> +</ul> +<p><strong>IMPORTANT:</strong> Kiwi TCMS Enterprise container images are available only to subscribers!</p> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p><a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">Backup</a> first! +If you are using Kiwi TCMS as a container then:</p> +<pre class="literal-block"> +cd path/containing/docker-compose/ +docker-compose down +docker-compose pull +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +</pre> +<p>Refer to +<a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/installing_docker.html#upgrading">our documentation</a> +for more details!</p> +<p>Happy testing!</p> +<p>---</p> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul class="simple"> +<li>Nominate Kiwi TCMS at <a class="reference external" href="https://fellowship.mlh.io/opensourceawards">MLH Open Source Awards</a>;</li> +<li><a class="reference external" href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a class="reference external" href="https://gitlab.com/gitlab-org/gitlab/-/issues/334558">Give 👍 on GitLab</a>;</li> +<li><a class="reference external" href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a class="reference external" href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> +and follow all project news;</li> +<li><a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> +and an awesome open source hacker;</li> +<li><a class="reference external" href="/#subscriptions">Become a customer</a> and help us sustain development</li> +</ul> +</div> +Meet Kiwi TCMS at WebSummit 2021 in Lisbon2021-09-21T16:15:00+03:002021-09-21T16:15:00+03:00Kiwi TCMS Teamtag:None,2021-09-21:/blog/kiwi-tcms-team/2021/09/21/meet-kiwi-tcms-at-websummit-2021-in-lisbon/<p>Kiwi TCMS is happy to announce that our first post-COVID live presence +will be at <a href="https://websummit.com/">WebSummit 2021</a>, Nov 1-4 in Lisbon, Portugal. +We're joining as a <a href="https://websummit.com/startups/featured-startups">featured startup</a> +as part of the ALPHA program in category <em>Enterprise Software Solutions</em>.</p> +<p>Kiwi TCMS will have an on-site presence during the exhibition (1 …</p><p>Kiwi TCMS is happy to announce that our first post-COVID live presence +will be at <a href="https://websummit.com/">WebSummit 2021</a>, Nov 1-4 in Lisbon, Portugal. +We're joining as a <a href="https://websummit.com/startups/featured-startups">featured startup</a> +as part of the ALPHA program in category <em>Enterprise Software Solutions</em>.</p> +<p>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 +<a href="https://websummit.com/startups/startup-showcase">Startup Showcase</a> 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 +<a href="https://www.youtube.com/watch?v=Wob_L_SrEwE">here</a>.</p> +<p>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.</p> +<p>Below is our video submission to the organizers:</p> +<p><iframe + width="560" + height="315" + src="https://www.youtube.com/embed/yIyhkcJ8How" + title="YouTube video player" + frameborder="0" + allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen> +</iframe></p> +<hr> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul> +<li><a href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a href="https://gitlab.com/gitlab-org/gitlab/-/issues/334558">Give 👍 on GitLab</a>;</li> +<li><a href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> + and follow all project news;</li> +<li><a href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> and an awesome open source hacker;</li> +<li><a href="/#subscriptions">Become a customer</a> and we'll share our profits with the community</li> +</ul>Please nominate Kiwi TCMS at MLH Open Source Awards2021-09-17T21:40:00+03:002021-09-17T21:40:00+03:00Kiwi TCMS Teamtag:None,2021-09-17:/blog/kiwi-tcms-team/2021/09/17/please-nominate-kiwi-tcms-at-mlh-open-source-awards/<p><img + style="float: none; margin-left:0" + src="/images/mlh/opensource_awards_banner.png" + alt="MLH Nomination"></p> +<p>Last year Kiwi TCMS started +<a href="/blog/kiwi-tcms-team/2020/10/13/kiwi-tcms-is-partnering-with-mlh-fellowship-program/">partnering</a> +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 +<a href="https://github.com/kiwitcms/Kiwi/issues?q=is%3Aopen+is%3Aissue+label%3A%22MLH+Fellowship%22">20+ issues</a> +the majority of which have been complete.</p> +<p>For that we kindly ask the open …</p><p><img + style="float: none; margin-left:0" + src="/images/mlh/opensource_awards_banner.png" + alt="MLH Nomination"></p> +<p>Last year Kiwi TCMS started +<a href="/blog/kiwi-tcms-team/2020/10/13/kiwi-tcms-is-partnering-with-mlh-fellowship-program/">partnering</a> +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 +<a href="https://github.com/kiwitcms/Kiwi/issues?q=is%3Aopen+is%3Aissue+label%3A%22MLH+Fellowship%22">20+ issues</a> +the majority of which have been complete.</p> +<p>For that we kindly ask the open source community to nominate Kiwi TCMS at the +<a href="https://fellowship.mlh.io/opensourceawards">MLH Open Source Awards</a>.</p> +<p><em>Steps to reproduce:</em></p> +<ol> +<li>Go to <a href="https://fellowship.mlh.io/opensourceawards">https://fellowship.mlh.io/opensourceawards</a></li> +<li>Click the <strong>Submit a Nomination</strong> button</li> +<li>Follow the instructions on screen!</li> +</ol> +<p><em>Expected results:</em></p> +<ol> +<li>It should take you 2 minutes</li> +<li>Your submission is recorded by MLH</li> +</ol> +<h2>Why are we doing this</h2> +<p>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!</p> +<p>Thank you for supporting Kiwi TCMS and happy testing!</p> +<hr> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul> +<li><a href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a href="https://gitlab.com/gitlab-org/gitlab/-/issues/334558">Give 👍 on GitLab</a>;</li> +<li><a href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> + and follow all project news;</li> +<li><a href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> and an awesome open source hacker;</li> +<li><a href="/#subscriptions">Become a customer</a> and we'll share our profits with the community</li> +</ul>Win 6 SUPERFAN tickets for HackConf 20212021-09-01T16:25:00+03:002021-09-01T16:25:00+03:00Kiwi TCMS Teamtag:None,2021-09-01:/blog/kiwi-tcms-team/2021/09/01/win-6-superfan-tickets-for-hackconf-2021/<p><a href="https://hackconf.bg/">HackConf</a> 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 …</p><p><a href="https://hackconf.bg/">HackConf</a> 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!</p> +<p>All 6 tickets include:</p> +<ul> +<li>Conference live stream access (online due to COVID-19), sessions are in English</li> +<li>Ability to ask questions during the live stream</li> +<li>Virtual Goodie Bag with valuable content &amp; digital treats</li> +<li>Special Physical Goodie Bag delivered to your home. + ** Shipping is available only for the territory of Bulgaria.</li> +</ul> +<h2>How to win a ticket</h2> +<p>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 +<a href="https://gitlab.com/gitlab-org/gitlab/-/issues/334558">https://gitlab.com/gitlab-org/gitlab/-/issues/334558</a>!</p> +<div class="highlight"><pre><span></span><code><span class="k">Scenario:</span><span class="nf"> help Kiwi TCMS become part of GitLab’s open source family</span> +<span class="nf"> Given: navigate your browser to http://tinyurl.com/KiwiTCMS</span> +<span class="nf"> And: log into GitLab via the &quot;Sign in / Register&quot; button</span> +<span class="nf"> And: complete the login / registration process</span> +<span class="nf"> When: click the 👍 icon under the first comment</span> +<span class="nf"> Then: wait for the winners to be announced!</span> +</code></pre></div> + + +<p><img alt="&quot;GitLab steps&quot;" src="/images/gitlab-call-to-action.png"></p> +<p>Thank you very much and Happy Testing!</p> +<h2>Winners announcement</h2> +<p>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 +<code>curl https://gitlab.com/api/v4/projects/gitlab-org%2Fgitlab/issues/334558/participants</code>.</p> +<p>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!</p> +<hr> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul> +<li><a href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a href="https://gitlab.com/gitlab-org/gitlab/-/issues/334558">Give 👍 on GitLab</a>;</li> +<li><a href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> + and follow all project news;</li> +<li><a href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> and an awesome open source hacker;</li> +<li><a href="/#subscriptions">Become a customer</a> and we'll share our profits with the community</li> +</ul>Kiwi TCMS 10.32021-08-11T16:05:00+03:002021-08-11T16:05:00+03:00Kiwi TCMS Teamtag:None,2021-08-11:/blog/kiwi-tcms-team/2021/08/11/kiwi-tcms-103/<p>We're happy to announce Kiwi TCMS version 10.3!</p> +<p><strong>IMPORTANT:</strong> 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 +<a class="reference external" href="/blog/tags/bounty-program/">open source bounty program</a>!</p> +<p>You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org …</a></p><p>We're happy to announce Kiwi TCMS version 10.3!</p> +<p><strong>IMPORTANT:</strong> 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 +<a class="reference external" href="/blog/tags/bounty-program/">open source bounty program</a>!</p> +<p>You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +<p>Container images:</p> +<pre class="literal-block"> +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 +</pre> +<div class="section" id="changes-since-kiwi-tcms-10-2"> +<h2>Changes since Kiwi TCMS 10.2</h2> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul> +<li><p class="first">Update bleach from 3.3.0 to 4.0.0</p> +</li> +<li><p class="first">Update django from 3.2.5 to 3.2.6</p> +</li> +<li><p class="first">Update django-colorfield from 0.4.1 to 0.4.2</p> +</li> +<li><p class="first">Update django-tree-queries from 0.5.2 to 0.6.0</p> +</li> +<li><p class="first">Update python-bugzilla from 3.0.2 to 3.1.0</p> +</li> +<li><p class="first">Update python-gitlab from 2.9.0 to 2.10.0</p> +</li> +<li><p class="first">Update node_modules/html5sortable from 0.13.2 to 0.13.3</p> +</li> +<li><p class="first">Docker image is now based on Red Hat's Universal Base Image instead of +CentOS 8. See <a class="reference external" href="https://www.redhat.com/en/blog/introducing-red-hat-universal-base-image">https://www.redhat.com/en/blog/introducing-red-hat-universal-base-image</a> and +<a class="reference external" href="https://catalog.redhat.com/software/containers/ubi8/ubi-minimal/5c359a62bed8bd75a2c3fba8">https://catalog.redhat.com/software/containers/ubi8/ubi-minimal/5c359a62bed8bd75a2c3fba8</a>.</p> +<p><strong>Important:</strong></p> +<blockquote> +<p>The <tt class="docutils literal">mysql</tt> and <tt class="docutils literal">psql</tt> binaries in the container image are not available anymore! +Backup and restore instructions have been updated accordingly, see +<a class="reference external" href="https://kiwitcms.org/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">https://kiwitcms.org/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/</a>.</p> +</blockquote> +</li> +<li><p class="first">Use <tt class="docutils literal">initial_setup</tt> command to create public tenant in case we're running a multi-tenant +instance. References +<a class="reference external" href="https://github.com/kiwitcms/enterprise/issues/88">Enterprise #88</a> (Ivajlo Karabojkov)</p> +</li> +<li><p class="first">Document that for Jira integration we use API tokens</p> +</li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Fix a bug where drop-down selectors for test plans would not show any values when +product is changed. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2467">Issue #2467</a></li> +</ul> +</div> +<div class="section" id="refactoring-and-testing"> +<h3>Refactoring and testing</h3> +<ul class="simple"> +<li>Add tests for missing coverage in <tt class="docutils literal">kiwi_auth.admin</tt>. References +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1607">Issue #1607</a> +(Mariyan Garvanski)</li> +<li>Fix some eslint issues and formatting in <tt class="docutils literal">testcases/js/get.js</tt></li> +<li>Use shorter URL when cloning test cases from TP page. References +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1054">Issue #1054</a></li> +<li>Limit URI size to 10KiB. This alone should allow for more than 1000 PKs +specified for cloning. In addition Django itself limits the maximum number of +GET/POST fields to 1000 via the <tt class="docutils literal">DATA_UPLOAD_MAX_NUMBER_FIELDS</tt> setting, +see <a class="reference external" href="https://docs.djangoproject.com/en/3.2/ref/settings/#data-upload-max-number-fields">https://docs.djangoproject.com/en/3.2/ref/settings/#data-upload-max-number-fields</a>. +Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1054">Issue #1054</a></li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/zh-CN#">Chinese Simplified translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/de#">German translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/hu#">Hungarian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/pt-BR#">Portuguese, Brazilian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +</ul> +</div> +</div> +<div class="section" id="kiwi-tcms-enterprise-v10-3-mt"> +<h2>Kiwi TCMS Enterprise v10.3-mt</h2> +<ul class="simple"> +<li>Based on Kiwi TCMS v10.3</li> +<li>Container image based on Red Hat Universal Base Image</li> +<li>Update django-ses from 2.1.1 to 2.2.1</li> +<li>Update python3-saml from 1.10.1 to 1.11.0</li> +<li>Add GitLab login icon</li> +</ul> +<p><strong>IMPORTANT:</strong> Kiwi TCMS Enterprise container images are available only to subscribers!</p> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p><a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">Backup</a> first! +If you are using Kiwi TCMS as a container then:</p> +<pre class="literal-block"> +cd path/containing/docker-compose/ +docker-compose down +docker-compose pull +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +</pre> +<p>Refer to +<a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/installing_docker.html#upgrading">our documentation</a> +for more details!</p> +<p>Happy testing!</p> +<p>---</p> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul class="simple"> +<li><a class="reference external" href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a class="reference external" href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a class="reference external" href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> +and follow all project news;</li> +<li><a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> +and an awesome open source hacker;</li> +<li><a class="reference external" href="/#subscriptions">Become a customer</a> and help us sustain development</li> +</ul> +</div> +Kiwi TCMS 10.22021-07-12T11:40:00+03:002021-07-12T11:40:00+03:00Kiwi TCMS Teamtag:None,2021-07-12:/blog/kiwi-tcms-team/2021/07/12/kiwi-tcms-102/<p>We're happy to announce Kiwi TCMS version 10.2!</p> +<p><strong>IMPORTANT:</strong> 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 +<a class="reference external" href="/blog/tags/bounty-program/">open source bounty program</a>!</p> +<p>You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https …</a></p><p>We're happy to announce Kiwi TCMS version 10.2!</p> +<p><strong>IMPORTANT:</strong> 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 +<a class="reference external" href="/blog/tags/bounty-program/">open source bounty program</a>!</p> +<p>You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +<p>Docker images:</p> +<pre class="literal-block"> +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 +</pre> +<div class="section" id="changes-since-kiwi-tcms-10-1"> +<h2>Changes since Kiwi TCMS 10.1</h2> +<div class="section" id="improvements-security-updates"> +<h3>Improvements &amp; security updates</h3> +<ul class="simple"> +<li>Update django from 3.2.3 to 3.2.5</li> +<li>Update django-guardian from 2.3.0 to 2.4.0</li> +<li>Update django-tree-queries from 0.5.1 to 0.5.2</li> +<li>Update psycopg2 from 2.8.6 to 2.9.1</li> +<li>Update python-gitlab from 2.7.1 to 2.9.0</li> +<li>Update node_modules/marked from 2.0.3 to 2.1.3</li> +<li>Update node_modules/html5sortable from 0.11.1 to 0.13.2</li> +<li>Update node_modules/prismjs from 1.23.0 to 1.24.1</li> +<li>Multiple select for filters on Telemetry pages. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1940">Issue #1940</a> +(Shantanu Verma + Alex Todorov)</li> +<li>Allow editting TestCase <tt class="docutils literal">setup_duration</tt> &amp; <tt class="docutils literal">testing_duration</tt> fields. +References +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1923">Issue #1923</a> (&#64;APiligrim + Alex Todorov)</li> +<li>Move several checks to Dashboard page instead of performing them on +every request (Ivajlo Karabojkov)</li> +<li>Fix grammatical error in documentation (Kushal Beniwal)</li> +<li>Add health check for Issue Tracker configuration. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/97">Issue #97</a></li> +<li>Document API URL field for Jira integration. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2443">Issue #2443</a></li> +</ul> +</div> +<div class="section" id="settings"> +<h3>Settings</h3> +<ul class="simple"> +<li><tt class="docutils literal">tcms.core.middleware.CheckSettingsMiddleware</tt> has been removed</li> +<li><tt class="docutils literal">tcms.core.middleware.CheckUnappliedMigrationsMiddleware</tt> has been removed</li> +</ul> +</div> +<div class="section" id="api"> +<h3>API</h3> +<ul class="simple"> +<li>Method <tt class="docutils literal">Version.filter()</tt> now returns new field called <tt class="docutils literal">product__name</tt></li> +<li>Method <tt class="docutils literal">Build.filter()</tt> now returns new field called <tt class="docutils literal">version__value</tt></li> +<li>Methods <tt class="docutils literal">Build.filter()</tt>, <tt class="docutils literal">Version.filter()</tt> and <tt class="docutils literal">TestPlan.filter()</tt> +will now order their results by <tt class="docutils literal">product</tt>/<tt class="docutils literal">version</tt> and then <tt class="docutils literal">id</tt>.</li> +<li>Method <tt class="docutils literal">Telemetry.breakdown()</tt> now returns only distinct results</li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Make error messages in admin forms more legible. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2404">Issue #2404</a></li> +<li>Large images will now fit into the available space on the screen, +e.g. inside test case description cards. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2220">Issue #2220</a></li> +</ul> +</div> +<div class="section" id="refactoring-and-testing"> +<h3>Refactoring and testing</h3> +<ul class="simple"> +<li>Add automated tests for missing coverage in <tt class="docutils literal">kiwi_auth.admin</tt> References +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1607">Issue #1607</a> (Mariyan Garvanski)</li> +<li>Apply eslint fixes (&#64;sonyagennova + Alex Todorov)</li> +<li>Refactor <tt class="docutils literal">TestExecution.add_link</tt> method to use ModelForm and extend tests. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1327">Issue #1327</a> (Rosen Sasov + Alex Todorov)</li> +<li>Use context manager when opening files to make pylint happier</li> +<li>Simplify 2 UI buttons on TestRun page</li> +<li>Enable <tt class="docutils literal">doc8</tt> for README and CHANGELOG and fix formatting errors</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/cs#">Czech translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/fr#">French translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/de#">German translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/hu#">Hungarian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/ja#">Japanese translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/pl#">Polish translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/ru#">Russian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +</ul> +</div> +</div> +<div class="section" id="kiwi-tcms-enterprise-v10-2-mt"> +<h2>Kiwi TCMS Enterprise v10.2-mt</h2> +<ul class="simple"> +<li>Based on Kiwi TCMS v10.2</li> +<li>Update django-ses from 2.0.0 to 2.1.1</li> +<li>Update django-python3-ldap from 0.11.4 to 0.12.0</li> +<li>Update documentation around initial config</li> +</ul> +<p><strong>IMPORTANT:</strong> Kiwi TCMS Enterprise container images are available only to subscribers!</p> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p><a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">Backup</a> first! +If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +cd path/containing/docker-compose/ +docker-compose down +docker-compose pull +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +</pre> +<p>Refer to +<a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/installing_docker.html#upgrading">our documentation</a> +for more details!</p> +<p>Happy testing!</p> +<p>---</p> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul class="simple"> +<li><a class="reference external" href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a class="reference external" href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a class="reference external" href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> +and follow all project news;</li> +<li><a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> +and an awesome open source hacker;</li> +<li><a class="reference external" href="/#subscriptions">Become a customer</a> and help us sustain development</li> +</ul> +</div> +Kiwi TCMS Enterprise 10.1.1-mt2021-07-01T16:00:00+03:002021-07-01T16:00:00+03:00Kiwi TCMS Teamtag:None,2021-07-01:/blog/kiwi-tcms-team/2021/07/01/kiwi-tcms-enterprise-1011-mt/<p>We're happy to announce Kiwi TCMS Enterprise version 10.1.1-mt!</p> +<p><strong>IMPORTANT:</strong> this release includes support for authentication via +Keycloak and support for enabling read-only view of tenants data for +anonymous users.</p> +<p>Docker images:</p> +<pre class="literal-block"> +quay.io/kiwitcms/enterprise 10.1.1-mt d61e243dc4f5 1.19GB +</pre> +<div class="section" id="changes-since-kiwi-tcms-enterprise-10-1-mt"> +<h2>Changes since Kiwi TCMS Enterprise 10 …</h2></div><p>We're happy to announce Kiwi TCMS Enterprise version 10.1.1-mt!</p> +<p><strong>IMPORTANT:</strong> this release includes support for authentication via +Keycloak and support for enabling read-only view of tenants data for +anonymous users.</p> +<p>Docker images:</p> +<pre class="literal-block"> +quay.io/kiwitcms/enterprise 10.1.1-mt d61e243dc4f5 1.19GB +</pre> +<div class="section" id="changes-since-kiwi-tcms-enterprise-10-1-mt"> +<h2>Changes since Kiwi TCMS Enterprise 10.1-mt</h2> +<ul class="simple"> +<li>Based on Kiwi TCMS v10.1</li> +<li>Fix URL to Python Social Auth documentation</li> +<li>Support read-only view on tenants for anonymous users. Contains a +database migration to rename <tt class="docutils literal">on_trial</tt> field to <tt class="docutils literal">publicly_readable</tt></li> +<li>Document initial configuration. Site administrators should add the +<tt class="docutils literal">tenants.change_tenant</tt> permission to users/groups who are allowed +to make their tenants publicly visible. Fixes +<a class="reference external" href="https://github.com/kiwitcms/enterprise/issues/87">Issue #87</a>, +references +<a class="reference external" href="https://github.com/kiwitcms/enterprise/issues/88">Issue #88</a></li> +<li>Document the build process. Fixes +<a class="reference external" href="https://github.com/kiwitcms/enterprise/issues/89">Issue #89</a></li> +<li>Verify support for Keycloak logins. Fixes +<a class="reference external" href="https://github.com/kiwitcms/enterprise/issues/86">Issue #86</a></li> +<li>Update kiwitcms-github-app from 1.2.4 to 1.3.0</li> +<li>Update kiwitcms-tenants from 1.5.0 to 1.6.0</li> +</ul> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p><a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">Backup</a> first! +If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +cd path/containing/docker-compose/ +docker-compose down +docker-compose pull +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +</pre> +<p>Refer to +<a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/installing_docker.html#upgrading">our documentation</a> +for more details!</p> +<p>Happy testing!</p> +<p>---</p> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul class="simple"> +<li><a class="reference external" href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a class="reference external" href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a class="reference external" href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> +and follow all project news;</li> +<li><a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> +and an awesome open source hacker;</li> +<li><a class="reference external" href="/#subscriptions">Become a customer</a> and help us sustain development</li> +</ul> +</div> +Thank you for downloading Kiwi TCMS 500000 times2021-06-15T14:45:00+03:002021-06-15T14:45:00+03:00Kiwi TCMS Teamtag:None,2021-06-15:/blog/kiwi-tcms-team/2021/06/15/thank-you-for-downloading-kiwi-tcms-500000-times/<p><img alt="&quot;500K banner&quot;" src="/images/500K/banner.png" title="500K banner"></p> +<p>We are happy to announce that Kiwi TCMS has been downloaded more than +500000 times via <a href="https://hub.docker.com/r/kiwitcms/kiwi/">Docker Hub</a>! +You can check the real-time stats +<a href="https://hub.docker.com/v2/repositories/kiwitcms/kiwi/">here</a>.</p> +<p>Thank you very much and Happy Testing!</p> +<hr> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul> +<li><a href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on …</a></li></ul><p><img alt="&quot;500K banner&quot;" src="/images/500K/banner.png" title="500K banner"></p> +<p>We are happy to announce that Kiwi TCMS has been downloaded more than +500000 times via <a href="https://hub.docker.com/r/kiwitcms/kiwi/">Docker Hub</a>! +You can check the real-time stats +<a href="https://hub.docker.com/v2/repositories/kiwitcms/kiwi/">here</a>.</p> +<p>Thank you very much and Happy Testing!</p> +<hr> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul> +<li><a href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> + and follow all project news;</li> +<li><a href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> and an awesome open source hacker;</li> +<li><a href="/#subscriptions">Become a customer</a> and we'll share our profits with the community</li> +</ul>Kiwi TCMS 10.12021-05-18T15:00:00+03:002021-05-18T15:00:00+03:00Kiwi TCMS Teamtag:None,2021-05-18:/blog/kiwi-tcms-team/2021/05/18/kiwi-tcms-101/<p>We're happy to announce Kiwi TCMS version 10.1!</p> +<p><strong>IMPORTANT:</strong> this release includes many improvements &amp; 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 +<a class="reference external" href="/blog/tags/bounty-program/">open source bounty program</a> and collaboration +with …</p><p>We're happy to announce Kiwi TCMS version 10.1!</p> +<p><strong>IMPORTANT:</strong> this release includes many improvements &amp; 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 +<a class="reference external" href="/blog/tags/bounty-program/">open source bounty program</a> and collaboration +with +<a class="reference external" href="/blog/kiwi-tcms-team/2020/10/13/kiwi-tcms-is-partnering-with-mlh-fellowship-program/">Major League Hacking</a>!</p> +<p>This is the second release after Kiwi TCMS reached 400K pulls +on Docker Hub! You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +<p>Docker images:</p> +<pre class="literal-block"> +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 +</pre> +<div class="section" id="changes-since-kiwi-tcms-10-0"> +<h2>Changes since Kiwi TCMS 10.0</h2> +<div class="section" id="improvements-security-updates"> +<h3>Improvements &amp; security updates</h3> +<ul class="simple"> +<li>Upgrade from Python 3.6 to Python 3.8 inside the container</li> +<li>Upgrade Django from 3.1.7 to 3.2.3</li> +<li>Upgrade django-attachments from 1.8 to 1.9.1</li> +<li>Upgrade django-contrib-comments from 2.0.0 to 2.1.0</li> +<li>Upgrade django-extensions from 3.1.1 to 3.1.3</li> +<li>Upgrade django-grappelli from 2.14.3 to 2.15.1</li> +<li>Upgrade django-simple-history from 2.12.0 to 3.0.0</li> +<li>Upgrade django-tree-queries from 0.4.3 to 0.5.1</li> +<li>Upgrade jira from 2.0.0 to 3.0.1</li> +<li>Upgrade pygments from 2.8.0 to 2.9.0</li> +<li>Upgrade python-gitlab from 2.6.0 to 2.7.1</li> +<li>Upgrade node_modules/html5sortable from 0.10.0 to 0.11.1</li> +<li>Upgrade node_modules/marked from 2.0.1 to 2.0.3</li> +<li>Time-stamp fields added to all TestRun pages. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1928">Issue #1928</a> (Andreea Moraru)</li> +<li>Don't set <tt class="docutils literal">TestRun.start_date</tt> automatically. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2323">Issue #2323</a> (Andreea Moraru)</li> +<li>Web based database initialization for new installations. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1698">Issue #1698</a> (Ivajlo Karabojkov)</li> +<li>Automatically active the first registered user via web UI</li> +<li>Rearrange layout of before and after fields on search pages</li> +<li>Allow TestRun creation from navigation menu. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2281">Issue #2281</a></li> +<li>Document hardware specs &amp; performance baseline results. Refs +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/721">Issue #721</a></li> +<li>Document performance for <tt class="docutils literal">TestCase.filter</tt>/<tt class="docutils literal">TestRun.filter</tt> methods. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1173">Issue #1173</a></li> +<li>Update documentation around <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> and the extra script files that it needs</li> +<li>Document some useful management commands</li> +<li>Clarify <tt class="docutils literal">set_domain</tt> command. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2375">Issue #2375</a></li> +</ul> +</div> +<div class="section" id="settings"> +<h3>Settings</h3> +<ul class="simple"> +<li>Change <tt class="docutils literal">TEMP_DIR</tt> to <tt class="docutils literal">/var/tmp</tt> which affects the location in which +intermediate files coming from migrations are saved. If <tt class="docutils literal">/var/tmp</tt> doesn't +exist the fallback is <tt class="docutils literal">/tmp</tt> which on modern Linux distributions is ephemeral</li> +<li>Add <tt class="docutils literal">DEFAULT_AUTO_FIELD</tt> to hard-code expected behavior and prevent unwanted +changes introduced by future versions of Django</li> +</ul> +</div> +<div class="section" id="database"> +<h3>Database</h3> +<ul class="simple"> +<li>Add new fields to <tt class="docutils literal">TestCase</tt> - <tt class="docutils literal">setup_duration</tt>, <tt class="docutils literal">testing_duration</tt> and +a calculatable <tt class="docutils literal">expected_duration</tt> attribute (Angelina)</li> +<li>Remove unused <tt class="docutils literal">TestRun.product_version</tt> field</li> +</ul> +</div> +<div class="section" id="api"> +<h3>API</h3> +<ul> +<li><p class="first">Method <tt class="docutils literal">TestRun.filter()</tt> return value changes field names:</p> +<ul class="simple"> +<li><tt class="docutils literal">product_version</tt> -&gt; <tt class="docutils literal">plan__product_version</tt></li> +<li><tt class="docutils literal">product_version__value</tt> -&gt; <tt class="docutils literal">plan__product_version__value</tt></li> +</ul> +<div class="admonition warning"> +<p class="first admonition-title">Warning</p> +<p class="last">You will need to adjust your API scripts if using these fields!</p> +</div> +</li> +<li><p class="first">Method <tt class="docutils literal">Component.filter()</tt> will return only distinct results</p> +</li> +<li><p class="first">New method <tt class="docutils literal">KiwiTCMS.version()</tt></p> +</li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Remove links and icons from TestRun print styling. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2263">Issue #2263</a> and +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2264">Issue #2264</a> (Gagan Deep)</li> +<li>Emails notifications are now sent into server language. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1589">Issue #1589</a> (Kapil Bansal)</li> +<li>Fix compatibility bug for &quot;advanced search &amp; add&quot; popup windows and latest Chrome +browsers. Fixes <a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2100">Issue #2100</a></li> +<li>Redirect TestPlan Admin &quot;Add&quot; to the correct URL</li> +<li>Fix wrong TestExecution field names in queryset &amp; HTML template. Refs +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1924">Issue #1924</a></li> +<li>Add default display for <tt class="docutils literal">None</tt> fields in Test Case page</li> +</ul> +</div> +<div class="section" id="refactoring-testing"> +<h3>Refactoring &amp; testing</h3> +<ul class="simple"> +<li>Add test automation for <tt class="docutils literal">TestExecution.actual_duration</tt>. Refs +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1924">Issue #1924</a> (&#64;APiligrim)</li> +<li>Add test automation for <tt class="docutils literal">TestCase.expected_duration</tt>. Refs +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1923">Issue #1923</a> (&#64;APiligrim)</li> +<li>Add test automation for <tt class="docutils literal">ReadOnlyHistoryAdmin</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1604">Issue #1604</a> (Kapil Bansal)</li> +<li>Add <tt class="docutils literal"><span class="pre">similar-string</span></tt> checker to <tt class="docutils literal">kiwi_lint</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1126">Issue #1126</a> (&#64;17sushmita)</li> +<li>Resolve or silence the remaining outstanding pylint issues. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/171">Issue #171</a></li> +<li>Update isort from 5.7.0 to 5.8.0</li> +<li>Convert forms to <tt class="docutils literal">ModelForm</tt></li> +<li>Remove unused method parameters</li> +<li>Remove unused <tt class="docutils literal">string_to_list()</tt>. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/340">Issue #340</a></li> +<li>Simplify method used for progress-bar in dashboard which also +reduces the total number of SQL queries</li> +<li>Use existing functions, remove duplication</li> +<li>Remove unnecessary calls &amp; definition of <tt class="docutils literal">loadInitialTestPlans()</tt> in Telemetry pages</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/zh-CN#">Chinese Simplified translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/fr#">French translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/hu#">Hungarian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/it#">Italian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/ja#">Japanese translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/pl#">Polish translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/pt-BR#">Portuguese, Brazilian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/ro#">Romanian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/es-ES#">Spanish translation</a></li> +</ul> +</div> +</div> +<div class="section" id="kiwi-tcms-enterprise-v10-1-mt"> +<h2>Kiwi TCMS Enterprise v10.1-mt</h2> +<ul class="simple"> +<li>Based on Kiwi TCMS v10.1</li> +<li>Container image built with Python 3.8</li> +<li>Update kiwitcms-tenants from 1.4.3 to 1.4.4</li> +</ul> +<p><strong>IMPORTANT:</strong> monthly subscription price for Kiwi TCMS SaaS offering has been updated to +50 $/mo for new subscriptions. Existing customers will not be affected!</p> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p><a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">Backup</a> first! +If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +cd path/containing/docker-compose/ +docker-compose down +docker-compose pull +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +</pre> +<p>Refer to +<a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/installing_docker.html#upgrading">our documentation</a> +for more details!</p> +<p>Happy testing!</p> +<p>---</p> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul class="simple"> +<li><a class="reference external" href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a class="reference external" href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a class="reference external" href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> +and follow all project news;</li> +<li><a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> +and an awesome open source hacker;</li> +<li><a class="reference external" href="/#subscriptions">Become a customer</a> and help us sustain development</li> +</ul> +</div> +Kiwi TCMS 10.02021-03-02T15:10:00+02:002021-03-02T15:10:00+02:00Kiwi TCMS Teamtag:None,2021-03-02:/blog/kiwi-tcms-team/2021/03/02/kiwi-tcms-100/<p>We're happy to announce Kiwi TCMS version 10.0!</p> +<p><strong>IMPORTANT:</strong> 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 +<a class="reference external" href="/blog/tags/bounty-program/">open source bounty program</a>.</p> +<p>This is …</p><p>We're happy to announce Kiwi TCMS version 10.0!</p> +<p><strong>IMPORTANT:</strong> 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 +<a class="reference external" href="/blog/tags/bounty-program/">open source bounty program</a>.</p> +<p>This is also the first release after Kiwi TCMS reached 400K pulls +on Docker Hub! You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +<p>Docker images:</p> +<pre class="literal-block"> +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 +</pre> +<div class="section" id="changes-since-kiwi-tcms-9-0"> +<h2>Changes since Kiwi TCMS 9.0</h2> +<div class="section" id="security"> +<h3>Security</h3> +<ul class="simple"> +<li>Update node_modules/marked from 1.2.7 to 2.0.1. Also fixes +<a class="reference external" href="https://snyk.io/vuln/SNYK-JS-MARKED-1070800">SNYK-JS-MARKED-1070800</a></li> +<li>Update django from 3.1.5 to 3.1.7 for CVE-2021-3281 and CVE-2021-23336</li> +</ul> +</div> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update bleach from 3.2.1 to 3.3.0</li> +<li>Update django-colorfield from 0.3.2 to 0.4.1</li> +<li>Update django-extensions from 3.1.0 to 3.1.1</li> +<li>Update markdown from 3.3.3 to 3.3.4</li> +<li>Update pygments from 2.7.4 to 2.8.0</li> +<li>Update python-gitlab from 2.5.0 to 2.6.0</li> +<li>Change ON/OFF button messages (Krum Petkov)</li> +<li>Automatically set test run to finished/not-finished depending on +the state of all executions. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/441">Issue #441</a></li> +<li>Allow assigning users from group admin page. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1844">Issue #1844</a></li> +<li>Improve documentation around setting up devel environment</li> +</ul> +</div> +<div class="section" id="database"> +<h3>Database</h3> +<ul class="simple"> +<li>Add <tt class="docutils literal">TestRun.planned_start</tt> and <tt class="docutils literal">TestRun.planned_stop</tt> fields. Refs +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1928">Issue #1928</a> (Andreea Moraru)</li> +<li>Add <tt class="docutils literal">TestExecution.start_date</tt> field. Refs +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1924">Issue #1924</a> (Anastasiya Uraleva)</li> +<li>Rename field <tt class="docutils literal">TestExecution.close_date</tt> to <tt class="docutils literal">TestExecution.stop_date</tt> (Anastasiya Uraleva)</li> +</ul> +</div> +<div class="section" id="api"> +<h3>API</h3> +<div class="admonition warning"> +<p class="first admonition-title">Warning</p> +<p class="last">This release changes how Kiwi TCMS serializes API results and thus +introduces multiple backwards incompatible changes.</p> +</div> +<div class="admonition important"> +<p class="first admonition-title">Important</p> +<p class="last">All <tt class="docutils literal">.filter()</tt> methods now return distinct records!</p> +</div> +<ul class="simple"> +<li>New method <tt class="docutils literal">PlanType.create()</tt></li> +<li>Method <tt class="docutils literal">TestCase.add_component()</tt> now returns a serialized <tt class="docutils literal">Component</tt> +instead of a serialized <tt class="docutils literal">TestCase</tt>. Refs +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2145">Issue #2145</a></li> +<li>Methods <tt class="docutils literal">Product.filter()</tt>, <tt class="docutils literal">Product.create()</tt> and <tt class="docutils literal">Product.update()</tt>:<ul> +<li>change input parameter <tt class="docutils literal">classification_id</tt> to <tt class="docutils literal">classification</tt> - type int</li> +<li>change result field <tt class="docutils literal">classification_id</tt> to <tt class="docutils literal">classification</tt> - type int</li> +</ul> +</li> +<li>Method <tt class="docutils literal">Category.filter()</tt> changes result field +<tt class="docutils literal">product_id</tt> to <tt class="docutils literal">product</tt> - type int</li> +<li>Methods <tt class="docutils literal">Component.filter()</tt>, <tt class="docutils literal">Component.create()</tt> and <tt class="docutils literal">Component.update()</tt>:<ul> +<li>change input parameter <tt class="docutils literal">product_id</tt> to <tt class="docutils literal">product</tt> - type int</li> +<li>change input parameter <tt class="docutils literal">initial_owner_id</tt> to <tt class="docutils literal">initial_owner</tt> - type int</li> +<li>change input parameter <tt class="docutils literal">initial_qa_contact_id</tt> to <tt class="docutils literal">initial_qa_contact</tt> - type int</li> +<li>change result field <tt class="docutils literal">product_id</tt> to <tt class="docutils literal">product</tt> - type int</li> +<li>change result field <tt class="docutils literal">initial_owner_id</tt> to <tt class="docutils literal">initial_owner</tt> - type int</li> +<li>change result field <tt class="docutils literal">initial_qa_contact_id</tt> to <tt class="docutils literal">initial_qa_contact</tt> - type int</li> +<li>adds result field <tt class="docutils literal">cases</tt> - type int - a TestCase ID if this component is +attached to a test case</li> +</ul> +</li> +<li>Methods <tt class="docutils literal">Version.filter()</tt> and <tt class="docutils literal">Version.create()</tt>:<ul> +<li>change input parameter <tt class="docutils literal">product_id</tt> to <tt class="docutils literal">product</tt> - type int</li> +<li>change result field <tt class="docutils literal">product_id</tt> to <tt class="docutils literal">product</tt> - type int</li> +</ul> +</li> +<li>Method <tt class="docutils literal">Tag.filter()</tt> now returns additional fields: +<tt class="docutils literal">bugs</tt>, <tt class="docutils literal">case</tt>, <tt class="docutils literal">plan</tt> and <tt class="docutils literal">run</tt> which causes existing queries to +return similar records attached to different parent objects. Consumers of these +results should be updated</li> +<li>Methods <tt class="docutils literal">TestPlan.filter()</tt>, <tt class="docutils literal">TestPlan.create()</tt> and <tt class="docutils literal">TestPlan.update()</tt>:<ul> +<li>change input parameter <tt class="docutils literal">author_id</tt> to <tt class="docutils literal">author</tt> - type int</li> +<li>change input parameter <tt class="docutils literal">parent_id</tt> to <tt class="docutils literal">parent</tt> - type int</li> +<li>change input parameter <tt class="docutils literal">product_id</tt> to <tt class="docutils literal">product</tt> - type int</li> +<li>change input parameter <tt class="docutils literal">product_version_id</tt> to <tt class="docutils literal">product_version</tt> - type int</li> +<li>change input parameter <tt class="docutils literal">type_id</tt> to <tt class="docutils literal">type</tt> - type int</li> +<li>change result field <tt class="docutils literal">author_id</tt> to <tt class="docutils literal">author</tt> - type int</li> +<li>change result field <tt class="docutils literal">parent_id</tt> to <tt class="docutils literal">parent</tt> - type int</li> +<li>change result field <tt class="docutils literal">product_id</tt> to <tt class="docutils literal">product</tt> - type int</li> +<li>change result field <tt class="docutils literal">product_version_id</tt> to <tt class="docutils literal">product_version</tt> - type int</li> +<li>change result field <tt class="docutils literal">type_id</tt> to <tt class="docutils literal">type</tt> - type int</li> +<li>remove result fields <tt class="docutils literal">cases</tt>, <tt class="docutils literal">tag</tt>, <tt class="docutils literal">default_product_version</tt></li> +</ul> +</li> +<li>Method <tt class="docutils literal">TestPlan.filter()</tt> +adds result fields <tt class="docutils literal">product_version__value</tt>, <tt class="docutils literal">product__name</tt>, +<tt class="docutils literal">author__username</tt> and <tt class="docutils literal">type__name</tt></li> +<li>Methods <tt class="docutils literal">TestRun.filter()</tt>, <tt class="docutils literal">TestRun.create()</tt> and <tt class="docutils literal">TestRun.update()</tt>:<ul> +<li>change result field <tt class="docutils literal">build_id</tt> to <tt class="docutils literal">build</tt> - type int</li> +<li>change result field <tt class="docutils literal">default_tester_id</tt> to <tt class="docutils literal">default_tester</tt> - type int</li> +<li>change result field <tt class="docutils literal">manager_id</tt> to <tt class="docutils literal">manager</tt> - type int</li> +<li>change result field <tt class="docutils literal">plan_id</tt> to <tt class="docutils literal">plan</tt> - type int</li> +<li>change result field <tt class="docutils literal">product_version_id</tt> to <tt class="docutils literal">product_version</tt> - type int</li> +<li>remove result fields <tt class="docutils literal">cc</tt>, <tt class="docutils literal">tag</tt></li> +</ul> +</li> +<li>Method <tt class="docutils literal">TestRun.filter()</tt> adds result fields <tt class="docutils literal">product_version__value</tt>, +<tt class="docutils literal">plan__product</tt>, <tt class="docutils literal">plan__name</tt>, <tt class="docutils literal">build__name</tt>, <tt class="docutils literal">manager__username</tt> and +<tt class="docutils literal">default_tester__username</tt></li> +<li>Methods <tt class="docutils literal">TestExecution.filter()</tt> and <tt class="docutils literal">TestExecution.update()</tt>:<ul> +<li>change input parameter <tt class="docutils literal">assigee_id</tt> to <tt class="docutils literal">assignee</tt> - type int</li> +<li>change input parameter <tt class="docutils literal">build_id</tt> to <tt class="docutils literal">build</tt> - type int</li> +<li>change input parameter <tt class="docutils literal">case_id</tt> to <tt class="docutils literal">case</tt> - type int</li> +<li>change input parameter <tt class="docutils literal">run_id</tt> to <tt class="docutils literal">run</tt> - type int</li> +<li>change input parameter <tt class="docutils literal">status_id</tt> to <tt class="docutils literal">status</tt> - type int</li> +<li>change input parameter <tt class="docutils literal">tested_by_id</tt> to <tt class="docutils literal">tested_by</tt> - type int</li> +<li>change result field <tt class="docutils literal">assigee_id</tt> to <tt class="docutils literal">assignee</tt> - type int</li> +<li>change result field <tt class="docutils literal">build_id</tt> to <tt class="docutils literal">build</tt> - type int</li> +<li>change result field <tt class="docutils literal">case_id</tt> to <tt class="docutils literal">case</tt> - type int</li> +<li>change result field <tt class="docutils literal">run_id</tt> to <tt class="docutils literal">run</tt> - type int</li> +<li>change result field <tt class="docutils literal">status_id</tt> to <tt class="docutils literal">status</tt> - type int</li> +<li>change result field <tt class="docutils literal">tested_by_id</tt> to <tt class="docutils literal">tested_by</tt> - type int</li> +</ul> +</li> +<li>Method <tt class="docutils literal">TestExecution.filter()</tt> adds result fields <tt class="docutils literal">assignee__username</tt>, +<tt class="docutils literal">tested_by__username</tt>, <tt class="docutils literal">case__summary</tt>, <tt class="docutils literal">build__name</tt> and <tt class="docutils literal">status__name</tt></li> +<li>Method <tt class="docutils literal">TestExecution.get_links()</tt> change result field +<tt class="docutils literal">execution_id</tt> to <tt class="docutils literal">execution</tt> - type int</li> +<li>Method <tt class="docutils literal">TestRun.add_case()</tt> changes result field names similarly to +<tt class="docutils literal">TestExecution.filter()</tt> method</li> +<li>Methods <tt class="docutils literal">TestCase.filter()</tt>, <tt class="docutils literal">TestCase.create()</tt> and <tt class="docutils literal">TestCase.update()</tt>:<ul> +<li>change input parameter <tt class="docutils literal">author_id</tt> to <tt class="docutils literal">author</tt> - type int</li> +<li>change input parameter <tt class="docutils literal">case_status_id</tt> to <tt class="docutils literal">case_status</tt> - type int</li> +<li>change input parameter <tt class="docutils literal">category_id</tt> to <tt class="docutils literal">category</tt> - type int</li> +<li>change input parameter <tt class="docutils literal">default_tester_id</tt> to <tt class="docutils literal">default_tester</tt> - type int</li> +<li>change input parameter <tt class="docutils literal">priority_id</tt> to <tt class="docutils literal">priority</tt> - type int</li> +<li>change input parameter <tt class="docutils literal">reviewer_id</tt> to <tt class="docutils literal">reviewer</tt> - type int</li> +<li>change result field <tt class="docutils literal">author_id</tt> to <tt class="docutils literal">author</tt> - type int</li> +<li>change result field <tt class="docutils literal">case_status_id</tt> to <tt class="docutils literal">case_status</tt> - type int</li> +<li>change result field <tt class="docutils literal">category_id</tt> to <tt class="docutils literal">category</tt> - type int</li> +<li>change result field <tt class="docutils literal">default_tester_id</tt> to <tt class="docutils literal">default_tester</tt> - type int</li> +<li>change result field <tt class="docutils literal">priority_id</tt> to <tt class="docutils literal">priority</tt> - type int</li> +<li>change result field <tt class="docutils literal">reviewer_id</tt> to <tt class="docutils literal">reviewer</tt> - type int</li> +<li>remove result fields <tt class="docutils literal">component</tt>, <tt class="docutils literal">plan</tt>, <tt class="docutils literal">tag</tt></li> +</ul> +</li> +<li>Method <tt class="docutils literal">TestCase.filter()</tt> adds result fields <tt class="docutils literal">case_status__name</tt>, +<tt class="docutils literal">category__name</tt>, <tt class="docutils literal">priority__value</tt>, <tt class="docutils literal">author__username</tt>, +<tt class="docutils literal">default_tester__username</tt> and <tt class="docutils literal">reviewer__username</tt></li> +<li>Methods <tt class="docutils literal">TestRun.get_cases()</tt> and <tt class="docutils literal">TestPlan.add_case()</tt> change +result field names similarly to <tt class="docutils literal">TestCase.filter()</tt> method</li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Fix removing a component from a test case immediately after it has been added. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2145">Issue #2145</a> (Gagan Deep)</li> +<li>Fix broken object navigation in navbar. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/991">Issue #991</a></li> +<li>Refactor search pages rendering to speed it up. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1014">Issue #1014</a></li> +</ul> +</div> +<div class="section" id="refactoring-testing"> +<h3>Refactoring &amp; testing</h3> +<ul class="simple"> +<li>Update tests for <tt class="docutils literal">TestRun.create()</tt> API method. Refs +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1928">Issue #1928</a> (Andreea Moraru)</li> +<li>Add automation tests. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1618">Issue #1618</a> (Mariyan Garvanski)</li> +<li>Add additional automation tests for <tt class="docutils literal">tcms.management.admin</tt>. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1610">Issue #1610</a> (Gagan Deep)</li> +<li>Add additional automation tests for <tt class="docutils literal">tcms.testcases.views.EditTestCaseView</tt>. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1615">Issue #1615</a> (Gagan Deep)</li> +<li>Add additional automation tests for <tt class="docutils literal">tcms.kiwi_auth.forms</tt>. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1609">Issue #1609</a> (Kapil Bansal)</li> +<li>Change location of included HTML templates (Alexander Tsvetanov, Krum Petkov)</li> +<li>Erase unused view &amp; templates (Alexander Tsvetanov)</li> +<li>Enable eslint. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1281">Issue #1281</a></li> +<li>Change how beakerlib test framework is installed to avoid problems +during integration tests</li> +<li>Better inspection of beakerlib test results to avoid false positive results</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/bg#">Bulgarian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/de#">German translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/hu#">Hungarian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/pl#">Polish translation</a></li> +</ul> +</div> +</div> +<div class="section" id="kiwi-tcms-enterprise-v10-0-mt"> +<h2>Kiwi TCMS Enterprise v10.0-mt</h2> +<ul class="simple"> +<li>Based on Kiwi TCMS v10.0</li> +<li>Update kiwitcms-github-app from 1.2.2 to 1.2.4</li> +<li>Update kiwitcms-tenants from 1.4.2 to 1.4.3</li> +<li>Update django-python3-ldap from 0.11.3 to 0.11.4</li> +</ul> +</div> +<div class="section" id="automation-framework-plugins"> +<h2>Automation framework plugins</h2> +<p>The following +<a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/plugins/automation-frameworks.html">test automation framework plugins</a> +have been upgraded to work with Kiwi TCMS v10.0:</p> +<ul class="simple"> +<li><a class="reference external" href="https://github.com/kiwitcms/junit-plugin">junit-plugin</a></li> +<li><a class="reference external" href="https://github.com/kiwitcms/tap-plugin">tap-plugin</a></li> +<li><a class="reference external" href="https://github.com/kiwitcms/junit.xml-plugin">junit.xml-plugin</a></li> +<li><a class="reference external" href="https://github.com/kiwitcms/robotframework-plugin">Robot Framework plugin</a></li> +<li><a class="reference external" href="https://github.com/kiwitcms/django-plugin">Django plugin</a></li> +</ul> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p><a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">Backup</a> first! +If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +cd path/containing/docker-compose/ +docker-compose down +docker-compose pull +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +</pre> +<p>Refer to +<a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/installing_docker.html#upgrading">our documentation</a> +for more details!</p> +<p>Happy testing!</p> +<p>---</p> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul class="simple"> +<li><a class="reference external" href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a class="reference external" href="/blog/kiwi-tcms-team/2020/09/04/please-nominate-kiwitcms-as-a-github-star/">Nominate Kiwi TCMS as GitHub Stars</a>;</li> +<li><a class="reference external" href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a class="reference external" href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> +and follow all project news;</li> +<li><a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> +and an awesome open source hacker;</li> +<li><a class="reference external" href="/#subscriptions">Become a customer</a> and we'll share our profits with the community</li> +</ul> +</div> +Kiwi TCMS has applied for GSoC 20212021-01-30T13:40:00+02:002021-01-30T13:40:00+02:00Kiwi TCMS Teamtag:None,2021-01-30:/blog/kiwi-tcms-team/2021/01/30/kiwi-tcms-has-applied-for-gsoc-2021/<p><img alt="&quot;GSoC banner&quot;" src="/images/gsoc/2021/banner.png" title="GSoC banner"></p> +<p>Dear open source hackers, we are happy to share that Kiwi TCMS has +applied to +<a href="https://summerofcode.withgoogle.com/">Google Summer of Code 2021</a> +as a mentoring organization!</p> +<p>While we're very early in the program +<a href="https://summerofcode.withgoogle.com/how-it-works/#timeline">timeline</a> +and we still don't know whether Kiwi TCMS will be accepted or not we'd +like to use this …</p><p><img alt="&quot;GSoC banner&quot;" src="/images/gsoc/2021/banner.png" title="GSoC banner"></p> +<p>Dear open source hackers, we are happy to share that Kiwi TCMS has +applied to +<a href="https://summerofcode.withgoogle.com/">Google Summer of Code 2021</a> +as a mentoring organization!</p> +<p>While we're very early in the program +<a href="https://summerofcode.withgoogle.com/how-it-works/#timeline">timeline</a> +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 <a href="/blog/tags/bounty-program/">open source bounty program</a>. +The majority of them require some knowledge of Python and Django.</p> +<h2>Let's Encrypt SSL integration</h2> +<p>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.</p> +<p>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 +<a href="https://kiwitcms.readthedocs.io/en/latest/installing_docker.html#ssl-configuration">documented</a> +there are fair amount of testers who do not have sufficient proficiency +with Docker to do so.</p> +<p>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.</p> +<p>An integration with <a href="https://letsencrypt.org/">Let's Encrypt</a> would be +a good choice. We've tried a proof of concept but had troubles running +their official client on our container image.</p> +<p>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.</p> +<h2>Securing 3rd party dependencies</h2> +<p>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 +<a href="https://github.com/kiwitcms/Kiwi/issues/871">Issue #871</a>.</p> +<p>As a minimum all issues reported by bandit &amp; coverity against 3rd party +dependencies must be sorted out:</p> +<ul> +<li>Figure out if we execute our tools in the appropriate way as to not + report unnecessary issues</li> +<li>Dissect all of the issues, especially + <a href="https://github.com/kiwitcms/Kiwi/runs/1608837125?check_suite_focus=true">ones from Bandit</a>, + report them to their upstream community, discuss and decide how to fix or + ignore the issue and send a pull request to upstream</li> +<li>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</li> +<li>Work with any upstream (2nd, 3rd, 4th, etc level dependencies) communities + to adopt said tools and fix issues as they are discovered</li> +</ul> +<p>All of this will ultimately benefit a broader community than Kiwi TCMS alone.</p> +<h2>Integration with GitHub Actions and GitLab pipelines</h2> +<p>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 +<a href="https://kiwitcms.readthedocs.io/en/latest/plugins/automation-frameworks.html">automation framework plugins</a> +do!</p> +<p>You should start with GitHub because this is what Kiwi TCMS uses and we can +immediately eat our own dog food. Originally proposed in +<a href="https://github.com/kiwitcms/Kiwi/issues/817">Issue #817</a> then moved to +<a href="https://github.com/kiwitcms/github-app/issues/10">github-app #10</a> with a +slightly different focus.</p> +<p>Next (or in parallel) would be similar +functionality for GitLab pipelines, proposed in +<a href="https://github.com/kiwitcms/Kiwi/issues/1421">Issue #1421</a></p> +<h2>Java hacking</h2> +<p>Kiwi TCMS does have a native +<a href="https://github.com/kiwitcms/junit-plugin">junit-plugin</a> 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:</p> +<ul> +<li><a href="https://github.com/kiwitcms/Kiwi/issues/692">Issue #692</a> - TestNG plugin</li> +<li><a href="https://github.com/kiwitcms/Kiwi/issues/1072">Issue #1072</a> - Jenkins plugin, + probably similar in scope to the proposed GitHub/GitLab integration above</li> +<li><a href="https://github.com/kiwitcms/Kiwi/issues/1512">Issue #1512</a> - extension for the + existing junit-plugin. Similar extension will likely be necessary for the + TestNG plugin as well</li> +<li>Integration with Katalon Studio proposed at + <a href="https://forum.katalon.com/t/kiwi-tcms-integration/39817">https://forum.katalon.com/t/kiwi-tcms-integration/39817</a>. There isn't much info to + begin with so if you have working experience with Katalon Studio it would be + a plus</li> +<li>Fixing assorted + <a href="https://github.com/kiwitcms/junit-plugin/issues">issues in our junit plugin</a></li> +<li>Help upgrade to junit-jupiter v5.7.0, looks like API has changed and our + plugin doesn't automatically discover the tests. + See <a href="https://github.com/kiwitcms/junit-plugin/pulls">https://github.com/kiwitcms/junit-plugin/pulls</a></li> +</ul> +<h2>C# and Objective-C hacking</h2> +<ul> +<li><a href="https://github.com/kiwitcms/Kiwi/issues/2020">Issue #2020</a> - reporting plugin for + NUnit, similar to other existing + <a href="https://kiwitcms.readthedocs.io/en/latest/plugins/automation-frameworks.html">automation framework plugins</a>. + 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</li> +<li><a href="https://github.com/kiwitcms/Kiwi/issues/1316">Issue #1316</a> - reporting plugin + for <em>Kiwi-bdd</em> 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</li> +</ul> +<h2>Migration to Patternfly v4, possibly with React JS</h2> +<p>The visual component library that Kiwi TCMS uses is called +<a href="https://www.patternfly.org">PatternFly</a>. 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.</p> +<p>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.</p> +<p>A major task is switching over to PatternFly v4 where there could be some +differences in component syntax.</p> +<p>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.</p> +<p>The starting point is +<a href="https://github.com/kiwitcms/Kiwi/issues/1323">Issue #1323</a>.</p> +<p>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.</p> +<p>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.</p> +<h2>JavaScript hacking</h2> +<ul> +<li><a href="https://github.com/kiwitcms/Kiwi/issues/1281">Issue #1281</a> - start using ESLint + against our code base and clean-up all related issues</li> +<li><a href="https://github.com/kiwitcms/Kiwi/issues/1910">Issue #1910</a> - 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.</li> +<li><a href="https://github.com/kiwitcms/Kiwi/issues/1919">Issue #1919</a> - 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.</li> +</ul> +<h2>Remaining telemetry</h2> +<p><a href="/blog/kiwi-tcms-team/2019/03/03/legacy-reports-become-telemetry/">Testing Telemetry</a> 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: +<a href="https://github.com/kiwitcms/Kiwi/issues/616">Issue #616</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1923">Issue #1923</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1924">Issue #1924</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1925">Issue #1925</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1926">Issue #1926</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1927">Issue #1927</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1928">Issue #1928</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1929">Issue #1929</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1940">Issue #1940</a>.</p> +<p>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.</p> +<h2>Web hooks</h2> +<p>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 <a href="https://github.com/zapier/django-rest-hooks">django-rest-hooks</a> and +pair it up with <a href="https://restrictedpython.readthedocs.io/">RestrictedPython</a> +for further flexibility.</p> +<p>This feature is being tracked in +<a href="https://github.com/kiwitcms/Kiwi/issues/1080">Issue #1080</a> and +<a href="https://github.com/kiwitcms/Kiwi/issues/914">Issue #913</a> but needs a more +detailed definition.</p> +<h2>Anything else</h2> +<p>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.</p> +<p>Happy Testing!</p> +<hr> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul> +<li><a href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a href="/blog/kiwi-tcms-team/2020/09/04/please-nominate-kiwitcms-as-a-github-star/">Nominate Kiwi TCMS as GitHub Stars</a>;</li> +<li><a href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> + and follow all project news;</li> +<li><a href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> and an awesome open source hacker;</li> +<li><a href="/#subscriptions">Become a customer</a> and we'll share our profits with the community</li> +</ul>Project roadmap 20212021-01-29T15:40:00+02:002021-01-29T15:40:00+02:00Alexander Todorovtag:None,2021-01-29:/blog/atodorov/2021/01/29/project-roadmap-2021/<p>Hello testers, +this blog post outlines Kiwi TCMS roadmap for 2021 and what we feel is +important to us!</p> +<p><img style="background-color: inherit" src="/images/roadmap2021.png" alt="roadmap image 2021"></p> +<h1>Project sustainability</h1> +<p>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:</p> +<div class="highlight"><pre><span></span><code><span class="mf">1</span><span class="p">)</span> <span class="n">Team</span> +<span class="mf">2 …</span></code></pre></div><p>Hello testers, +this blog post outlines Kiwi TCMS roadmap for 2021 and what we feel is +important to us!</p> +<p><img style="background-color: inherit" src="/images/roadmap2021.png" alt="roadmap image 2021"></p> +<h1>Project sustainability</h1> +<p>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:</p> +<div class="highlight"><pre><span></span><code><span class="mf">1</span><span class="p">)</span> <span class="n">Team</span> +<span class="mf">2</span><span class="p">)</span> <span class="n">Technical</span> +<span class="mf">3</span><span class="p">)</span> <span class="n">Community</span> <span class="err">&amp;</span> <span class="n">Adoption</span> +</code></pre></div> + + +<h2>Team</h2> +<p>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 &amp; recruit people to join the team, how we on-board and help +them so that they can become productive and fully fledged team members.</p> +<p>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.</p> +<p><strong>Goal:</strong> 1 PR/week/person as broad measure of individual performance so that +we can operate with a predictable capacity.</p> +<p><strong>Goal:</strong> (re)structure internal team processes around candidates and newcomers! +Note: These are not public at the moment.</p> +<h2>Technical</h2> +<p>The areas shown on the picture above will receive more priority.</p> +<p><strong>Goal:</strong> complete remaining <a href="/blog/kiwi-tcms-team/2019/03/03/legacy-reports-become-telemetry/">Telemetry features</a>.</p> +<p><strong>Goal:</strong> complete remaining refactoring with major focus in pylint issues, migration to +Patternfly v4 and eslint issues.</p> +<p><strong>Goal:</strong> improve SSL configuration with strong bias towards Let's Encrypt being +configured by default.</p> +<p><strong>Goal:</strong> 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.</p> +<h2>Community &amp; Adoption</h2> +<p>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 &amp; exposure which drives further adoption +of Kiwi TCMS downstream.</p> +<p><strong>Goal:</strong> complete +<a href="https://github.com/kiwitcms/Kiwi/milestone/1">bug-tracker integration milestone</a>.</p> +<p><strong>Goal:</strong> extended GitHub integration via GitHub actions which will report results +into our database. We do have other ideas as stretch goals.</p> +<p><strong>Goal:</strong> similar to GitHub actions we're looking towards GitLab pipelines and +similar integration with GitLab.</p> +<p><strong>Goal:</strong> continue our collaboration with Major League Hacking Fellowship program.</p> +<p><strong>Goal:</strong> apply for the Google Summer of Code program and work with students if selected.</p> +<hr> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul> +<li><a href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a href="/blog/kiwi-tcms-team/2020/09/04/please-nominate-kiwitcms-as-a-github-star/">Nominate Kiwi TCMS as GitHub Stars</a>;</li> +<li><a href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> + and follow all project news;</li> +<li><a href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> and an awesome open source hacker;</li> +<li><a href="/#subscriptions">Become a customer</a> and we'll share our profits with the community</li> +</ul>Kiwi TCMS 9.02021-01-13T14:20:00+02:002021-01-13T14:20:00+02:00Kiwi TCMS Teamtag:None,2021-01-13:/blog/kiwi-tcms-team/2021/01/13/kiwi-tcms-90/<p>We're happy to announce Kiwi TCMS version 9.0!</p> +<p><strong>IMPORTANT:</strong> 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 +<a class="reference external" href="/blog/tags/bounty-program/">open source bounty program</a>.</p> +<p>This is the …</p><p>We're happy to announce Kiwi TCMS version 9.0!</p> +<p><strong>IMPORTANT:</strong> 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 +<a class="reference external" href="/blog/tags/bounty-program/">open source bounty program</a>.</p> +<p>This is the third release after +<a class="reference external" href="/blog/kiwi-tcms-team/2020/10/26/kiwi-tcms-celebrates-200k-downloads/">Kiwi TCMS reached 200K pulls</a> +on Docker Hub!</p> +<p>You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +<p>Docker images:</p> +<pre class="literal-block"> +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 +</pre> +<div class="section" id="changes-since-kiwi-tcms-8-9"> +<h2>Changes since Kiwi TCMS 8.9</h2> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update django from 3.1.4 to 3.1.5</li> +<li>Update django-contrib-comments from 1.9.2 to 2.0.0</li> +<li>Update pygithub from 1.53 to 1.54.1</li> +<li>Update pygments from 2.7.3 to 2.7.4</li> +<li>Update mysqlclient from 2.0.1 to 2.0.3</li> +<li>Update node_modules/prismjs from 1.22.0 to 1.23.0</li> +<li>Update node_modules/marked from 1.2.5 to 1.2.7</li> +<li>Implement 'Select all' for TestCase Search page. Resolves +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2103">Issue #2103</a> (Bryan Mutai)</li> +<li>Change ON/OFF button messages for several buttons (Krum Petkov)</li> +<li>Remove <tt class="docutils literal">delete_selected</tt> action from admin pages</li> +<li>Show active test runs in TestPlan page</li> +<li>Hide irrelevant Version &amp; Build selectors for Testing breakdown telemetry</li> +<li>Allow <tt class="docutils literal">running</tt> to be passed as URL query param to TestRun Search page</li> +</ul> +</div> +<div class="section" id="settings"> +<h3>Settings</h3> +<ul class="simple"> +<li>Remove unused <tt class="docutils literal">kiwi.rpc</tt> log handler from <tt class="docutils literal">LOGGING</tt> setting</li> +</ul> +</div> +<div class="section" id="database"> +<h3>Database</h3> +<p><strong>Warning:</strong> Contains backwards incompatible changes.</p> +<ul> +<li><p class="first">Replace <tt class="docutils literal">Build.product</tt> with <tt class="docutils literal">Build.version</tt>. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/246">Issue #246</a>. Build objects +are now associated with Version objects, not with Product objects!</p> +<p><strong>Warning:</strong></p> +<blockquote> +<p>After migration existing builds will point to the &quot;unspecified&quot; 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!</p> +</blockquote> +</li> +<li><p class="first">Rename related_name for TestExecution model: <tt class="docutils literal">case_run</tt> -&gt; <tt class="docutils literal">executions</tt></p> +</li> +<li><p class="first">Rename related_name for TestCase model: <tt class="docutils literal">case</tt> -&gt; <tt class="docutils literal">cases</tt></p> +</li> +</ul> +</div> +<div class="section" id="api"> +<h3>API</h3> +<p><strong>Warning:</strong> Contains backwards incompatible changes.</p> +<ul class="simple"> +<li>Methods <tt class="docutils literal">Build.filter</tt>, <tt class="docutils literal">Build.create</tt> and <tt class="docutils literal">Build.update</tt> replace the +<tt class="docutils literal">product</tt> field with a <tt class="docutils literal">version</tt> field</li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>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</li> +</ul> +</div> +<div class="section" id="refactoring-testing"> +<h3>Refactoring &amp; testing</h3> +<ul class="simple"> +<li>Add tests for <tt class="docutils literal">tcms.core.middleware</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1605">Issue #1605</a> (Gagan Deep)</li> +<li>Add tests for <tt class="docutils literal">tcms.handlers</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1611">Issue #1611</a> (Gagan Deep)</li> +<li>Add tests for <tt class="docutils literal">tcms.kiwi_auth.views</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1608">Issue #1608</a> +(Abhishek Chaurasia)</li> +<li>Update pip during bugtracker integration tests to fix dependency issues</li> +<li>Reformat all files with black and isort. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1193">Issue #1193</a></li> +<li>Refactor <tt class="docutils literal">TestExecution.get_bugs()</tt> to use <tt class="docutils literal">TestExecution.links()</tt></li> +<li>Add return statement for invalid form to make pylint happy</li> +<li>Make <tt class="docutils literal">Bug.assignee</tt> field a <tt class="docutils literal">UserField</tt></li> +<li>Replace deprecated <tt class="docutils literal">ugettext_lazy</tt> with <tt class="docutils literal">gettext_lazy</tt></li> +<li>Fixes for Azure Boards integration tests</li> +<li>Remove <tt class="docutils literal">CsrfDisableMiddleware</tt>. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/297">Issue #297</a></li> +<li>Remove unused methods &amp; left-over views</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/ca#">Catalan translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/zh-CN#">Chinese Simplified translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/fr#">French translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/hu#">Hungarian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/ja#">Japanese translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +</ul> +</div> +</div> +<div class="section" id="kiwi-tcms-enterprise-v9-0-mt"> +<h2>Kiwi TCMS Enterprise v9.0-mt</h2> +<ul class="simple"> +<li>Based on Kiwi TCMS v9.0</li> +<li>Update kiwitcms-github-app from 1.2.1 to 1.2.2</li> +<li>Update kiwitcms-tenants from 1.3.1 to 1.4.2</li> +</ul> +<p>For more info see +<a class="reference external" href="https://github.com/kiwitcms/enterprise#v90-mt-12-jan-2021">https://github.com/kiwitcms/enterprise#v90-mt-12-jan-2021</a></p> +</div> +<div class="section" id="automation-framework-plugins"> +<h2>Automation framework plugins</h2> +<p>The following +<a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/plugins/automation-frameworks.html">test automation framework plugins</a> +have been upgraded to work with Kiwi TCMS v9.0:</p> +<ul class="simple"> +<li><a class="reference external" href="https://github.com/kiwitcms/tap-plugin">tap-plugin</a></li> +<li><a class="reference external" href="https://github.com/kiwitcms/junit.xml-plugin">junit.xml-plugin</a></li> +<li><a class="reference external" href="https://github.com/kiwitcms/robotframework-plugin">Robot Framework plugin</a></li> +<li><a class="reference external" href="https://github.com/kiwitcms/django-plugin">Django plugin</a></li> +</ul> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p><a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">Backup</a> first! +If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +cd path/containing/docker-compose/ +docker-compose down +docker-compose pull +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +</pre> +<p>Refer to +<a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/installing_docker.html#upgrading">our documentation</a> +for more details!</p> +<p>Happy testing!</p> +<p>---</p> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul class="simple"> +<li><a class="reference external" href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a class="reference external" href="/blog/kiwi-tcms-team/2020/09/04/please-nominate-kiwitcms-as-a-github-star/">Nominate Kiwi TCMS as GitHub Stars</a>;</li> +<li><a class="reference external" href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a class="reference external" href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> +and follow all project news;</li> +<li><a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> +and an awesome open source hacker;</li> +<li><a class="reference external" href="/#subscriptions">Become a customer</a> and we'll share our profits with the community</li> +</ul> +</div> +Roadmap status report for 20202020-12-31T14:07:00+02:002020-12-31T14:07:00+02:00Alexander Todorovtag:None,2020-12-31:/blog/atodorov/2020/12/31/roadmap-status-report-for-2020/<p>Another year rolls out and despite all difficulties it is by far the +strongest one for Kiwi TCMS!</p> +<h2>Stats</h2> +<ul> +<li>2 physical events and a few virtual ones</li> +<li>12 releases</li> +<li>24 language translations</li> +<li>683 PRs, most of them closed &amp; merged</li> +<li>Reached Issue/PR number 2000</li> +<li>Reached 5000 commits</li> +<li>Reached 8000 registrations …</li></ul><p>Another year rolls out and despite all difficulties it is by far the +strongest one for Kiwi TCMS!</p> +<h2>Stats</h2> +<ul> +<li>2 physical events and a few virtual ones</li> +<li>12 releases</li> +<li>24 language translations</li> +<li>683 PRs, most of them closed &amp; merged</li> +<li>Reached Issue/PR number 2000</li> +<li>Reached 5000 commits</li> +<li>Reached 8000 registrations via <a href="https://public.tenant.kiwitcms.org">https://public.tenant.kiwitcms.org</a></li> +<li>Reached 270K downloads via Docker Hub</li> +</ul> +<h2>Status update</h2> +<p>From the <a href="/blog/atodorov/2020/01/17/project-roadmap-2020/">2020 roadmap</a> we've +established 3 main areas to work on. Their completeness scores are:</p> +<div class="highlight"><pre><span></span><code><span class="mf">1</span><span class="p">)</span> <span class="n">Team</span> <span class="o">-</span> <span class="mf">30</span><span class="err">%</span> +<span class="mf">2</span><span class="p">)</span> <span class="n">Technical</span> <span class="o">-</span> <span class="mf">70</span><span class="err">%</span> +<span class="mf">3</span><span class="p">)</span> <span class="n">Community</span> <span class="o">-</span> <span class="mf">100</span><span class="err">%</span> +</code></pre></div> + + +<p>Average score is 65% completion!</p> +<h2>Team</h2> +<p>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.</p> +<p>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.</p> +<h2>Technical</h2> +<p>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.</p> +<p>Additional work has been done on closing bugs, implementing some features, +integration with new bug tracking systems and improvements around the +telemetry feature.</p> +<p>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.</p> +<h2>Community</h2> +<p>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 &amp; translation contributions, adoption of Kiwi TCMS and +general partnerships around open source.</p> +<p>Kiwi TCMS got a substantial grant from the Mozilla foundation which +helped bootstrap our open source bounty program and internship +program.</p> +<p>In May we reached 100K downloads on Docker Hub then in October we've +surpassed 200K. Next month we'll reach 300K!</p> +<h2>Summary</h2> +<p>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.</p> +<p>Overall Kiwi TCMS, its team and its community did very well and I am +confident that next year we can achieve more together!</p> +<p>Happy Testing and Happy New Year!</p> +<hr> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul> +<li><a href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a href="/blog/kiwi-tcms-team/2020/09/04/please-nominate-kiwitcms-as-a-github-star/">Nominate Kiwi TCMS as GitHub Stars</a>;</li> +<li><a href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> + and follow all project news;</li> +<li><a href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> and an awesome open source hacker;</li> +<li><a href="/#subscriptions">Become a customer</a> and we'll share our profits with the community</li> +</ul>Excellence in Innovation 2020 award for Kiwi TCMS2020-12-26T17:17:00+02:002020-12-26T17:17:00+02:00Kiwi TCMS Teamtag:None,2020-12-26:/blog/kiwi-tcms-team/2020/12/26/excellence-in-innovation-2020-award-for-kiwi-tcms/<p><img alt="&quot;Virtual show screen&quot;" src="/images/finalists_innovationbg.png" title="Virtual show screen"></p> +<p>Dear testers, we are happy to share that Kiwi TCMS has been distinguished +with the <em>Excellence in Innovation 2020</em> award by +<a href="http://www.arcfund.net/">Applied Research and Communications Fund</a> in Bulgaria. +This is also the first award that we receive locally and we're very happy +about that!</p> +<p>Kiwi TCMS was a finalist in …</p><p><img alt="&quot;Virtual show screen&quot;" src="/images/finalists_innovationbg.png" title="Virtual show screen"></p> +<p>Dear testers, we are happy to share that Kiwi TCMS has been distinguished +with the <em>Excellence in Innovation 2020</em> award by +<a href="http://www.arcfund.net/">Applied Research and Communications Fund</a> in Bulgaria. +This is also the first award that we receive locally and we're very happy +about that!</p> +<p>Kiwi TCMS was a finalist in the <em>Digital transformation</em> 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!</p> +<p>If you would like to checkout the awards ceremony and all of the particiants +go to <a href="https://www.innovation.bg/">www.innovation.bg</a>, we're listed under +<em>Отворени Технологии България ЕООД</em> +(the name of our <a href="/legal/">parent company</a>)! +Text and video is not in English however!</p> +<p>Happy Testing!</p> +<hr> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul> +<li><a href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a href="/blog/kiwi-tcms-team/2020/09/04/please-nominate-kiwitcms-as-a-github-star/">Nominate Kiwi TCMS as GitHub Stars</a>;</li> +<li><a href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> + and follow all project news;</li> +<li><a href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> and an awesome open source hacker;</li> +<li><a href="/#subscriptions">Become a customer</a> and we'll share our profits with the community</li> +</ul>Kiwi TCMS 8.92020-12-07T16:25:00+02:002020-12-07T16:25:00+02:00Kiwi TCMS Teamtag:None,2020-12-07:/blog/kiwi-tcms-team/2020/12/07/kiwi-tcms-89/<p>We're happy to announce Kiwi TCMS version 8.9!</p> +<p><strong>IMPORTANT:</strong> 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 +<a class="reference external" href="/blog/tags/bounty-program/">open source bounty program</a>. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org …</a></p><p>We're happy to announce Kiwi TCMS version 8.9!</p> +<p><strong>IMPORTANT:</strong> 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 +<a class="reference external" href="/blog/tags/bounty-program/">open source bounty program</a>. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>! +This is also the second release after +<a class="reference external" href="/blog/kiwi-tcms-team/2020/10/26/kiwi-tcms-celebrates-200k-downloads/">Kiwi TCMS reached 200K pulls</a> +on Docker Hub!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +<p>Docker images:</p> +<pre class="literal-block"> +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 +</pre> +<div class="section" id="changes-since-kiwi-tcms-8-8"> +<h2>Changes since Kiwi TCMS 8.8</h2> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update django from 3.1.3 to 3.1.4</li> +<li>Update django-extensions from 3.0.9 to 3.1.0</li> +<li>Update django-grappelli from 2.14.2 to 2.14.3</li> +<li>Update pygments from 2.7.2 to 2.7.3</li> +<li>Update python-bugzilla from 3.0.1 to 3.0.2</li> +<li>Update node_modules/marked from 1.2.3 to 1.2.5</li> +<li>Update node_modules/html5sortable from 0.9.18 to 0.10.0</li> +<li>New <tt class="docutils literal">manage.py initial_setup</tt> command for one-stop initial setup +(Ivajlo Karabojkov)</li> +<li>Bug tracker integration with BitBucket (bitbucket.org). Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1916">Issue #1916</a> (&#64;cmbahadir)</li> +<li>Complete redesign and refactoring of Test Run page:<ul> +<li>Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/189">Issue #189</a>, +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/241">Issue #241</a>, +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/212">Issue #212</a>, +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/431">Issue #431</a>, +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1382">Issue #1382</a></li> +<li>Add filter by component &amp; tag. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/833">Issue #833</a></li> +<li>Don't limit the user to test cases from the parent test plan like before. +Testers can add any test case for execution inside a test run, +even mix &amp; match test cases between products. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1934">Issue #1934</a></li> +<li>Add attachments to Test Run page. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/872">Issue #872</a></li> +<li>Refresh execution row after reporting a bug. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/479">Issue #479</a></li> +</ul> +</li> +<li><tt class="docutils literal">TestCaseStatus</tt> can now be customized. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1932">Issue #1932</a></li> +<li>Update documentation &amp; screenshots</li> +</ul> +</div> +<div class="section" id="settings"> +<h3>Settings</h3> +<ul class="simple"> +<li>Setting <tt class="docutils literal">ANONYMOUS_USER_NAME</tt> is now explicitly defined due to upstream bug +in django-guardian (Abhishek Chaurasia)</li> +</ul> +</div> +<div class="section" id="database"> +<h3>Database</h3> +<ul class="simple"> +<li>New migrations for customizeable <tt class="docutils literal">TestCaseStatus</tt></li> +</ul> +</div> +<div class="section" id="api"> +<h3>API</h3> +<ul class="simple"> +<li>Add <tt class="docutils literal">TestExecution.history()</tt> method</li> +<li>Add <tt class="docutils literal">TestCase.history()</tt> method</li> +<li>Add <tt class="docutils literal">TestRun.add_cc()</tt> method</li> +<li>Add <tt class="docutils literal">TestRun.remove_cc()</tt> method</li> +<li>Method <tt class="docutils literal">TestExecution.update()</tt> will use build from parent test run if a +<tt class="docutils literal">build</tt> field isn't explicitly specified in the arguments</li> +<li>Update method <tt class="docutils literal">TestRun.add_case()</tt><ul> +<li>will return existing TestExecution if available</li> +<li>will raise if test case status is not confirmed</li> +<li>will always create new test executions with the highest sortkey</li> +</ul> +</li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Fixed miscellaneous bugs in <tt class="docutils literal">tcms.rpc.testcase</tt> (Gagan Deep)</li> +<li>Disable name change in admin for the default groups. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1313">Issue #1313</a></li> +</ul> +</div> +<div class="section" id="refactoring-testing"> +<h3>Refactoring &amp; testing</h3> +<ul class="simple"> +<li>Add automated tests for <tt class="docutils literal">tcms.core.views.server_error</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1606">Issue #1606</a> +(Abhishek Chaurasia)</li> +<li>Add automated tests for <tt class="docutils literal">tcms.rpc.api.auth</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1620">Issue #1620</a> +(Abhishek Chaurasia)</li> +<li>Add automated test for <tt class="docutils literal">AnonymousViewBackend.has_perm</tt> method. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1905">Issue #1905</a> +(Abhishek Chaurasia)</li> +<li>Add automated tests for <tt class="docutils literal">tcms.core.utils.maito</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1603">Issue #1603</a> (Gagan Deep)</li> +<li>Add automated tests for <tt class="docutils literal">tcms.utils.github</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1612">Issue #1612</a> (Gagan Deep)</li> +<li>Add automated tests for <tt class="docutils literal">tcms.rpc.api.testscase</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1623">Issue #1623</a> (Gagan Deep)</li> +<li>Add automated tests for <tt class="docutils literal">tcms.testcases.views.NewCaseView</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1614">Issue #1614</a> (&#64;rish07)</li> +<li>Add automated tests for <tt class="docutils literal">tcms.testplans.views.NewTestPlanView.</tt> Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1616">Issue #1616</a> (&#64;awalvie)</li> +<li>Separate two functions one from another (Alexander Tsvetanov)</li> +<li>Disable pylint checks (Alexander Tsvetanov)</li> +<li>Upgrade to MySQL 8 in Travis CI</li> +<li>Remove unused setup in Travis CI</li> +<li>Be more robust when keeping internal state for TestPlan page</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/bg#">Bulgarian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/zh-CN#">Chinese Simplified translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/cs#">Czech translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/fr#">French translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/id#">Indonesian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/ja#">Japanese translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/ru#">Russian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +</ul> +</div> +</div> +<div class="section" id="kiwi-tcms-enterprise-v8-9-mt"> +<h2>Kiwi TCMS Enterprise v8.9-mt</h2> +<ul class="simple"> +<li>Based on Kiwi TCMS v8.9</li> +</ul> +<p>For more info see +<a class="reference external" href="https://github.com/kiwitcms/enterprise#v89-mt-07-dec-2020">https://github.com/kiwitcms/enterprise#v89-mt-07-dec-2020</a></p> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p><a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">Backup</a> first! +If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +cd path/containing/docker-compose/ +docker-compose down +docker-compose pull +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +</pre> +<p>Refer to +<a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/installing_docker.html#upgrading">our documentation</a> +for more details!</p> +<p>Happy testing!</p> +<p>---</p> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul class="simple"> +<li><a class="reference external" href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a class="reference external" href="/blog/kiwi-tcms-team/2020/09/04/please-nominate-kiwitcms-as-a-github-star/">Nominate Kiwi TCMS as GitHub Stars</a>;</li> +<li><a class="reference external" href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a class="reference external" href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> +and follow all project news;</li> +<li><a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> +and an awesome open source hacker;</li> +<li><a class="reference external" href="/#subscriptions">Become a customer</a> and we'll share our profits with the community</li> +</ul> +</div> +Call for participation: Testing and Automation devroom, FOSDEM'212020-12-02T14:55:00+02:002020-12-02T14:55:00+02:00Kiwi TCMS Teamtag:None,2020-12-02:/blog/kiwi-tcms-team/2020/12/02/call-for-participation-testing-and-automation-devroom-fosdem21/<p><img alt="&quot;Cfp banner&quot;" src="/images/fosdem/2021/banner.png" title="Cfp banner"></p> +<p>Attention open source testers: Testing and Automation devroom at FOSDEM'21 +is happening next year! Call for participation is now open. +Checkout +<a href="https://fosdem-testingautomation.github.io/">https://fosdem-testingautomation.github.io/</a> for more information!</p> +<p>Happy Testing!</p> +<hr> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul> +<li><a href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a href="/blog/kiwi-tcms-team/2020/09/04/please-nominate-kiwitcms-as-a-github-star/">Nominate …</a></li></ul><p><img alt="&quot;Cfp banner&quot;" src="/images/fosdem/2021/banner.png" title="Cfp banner"></p> +<p>Attention open source testers: Testing and Automation devroom at FOSDEM'21 +is happening next year! Call for participation is now open. +Checkout +<a href="https://fosdem-testingautomation.github.io/">https://fosdem-testingautomation.github.io/</a> for more information!</p> +<p>Happy Testing!</p> +<hr> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul> +<li><a href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a href="/blog/kiwi-tcms-team/2020/09/04/please-nominate-kiwitcms-as-a-github-star/">Nominate Kiwi TCMS as GitHub Stars</a>;</li> +<li><a href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> + and follow all project news;</li> +<li><a href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> and an awesome open source hacker;</li> +<li><a href="/#subscriptions">Become a customer</a> and we'll share our profits with the community</li> +</ul>Kiwi TCMS 8.82020-11-09T12:10:00+02:002020-11-09T12:10:00+02:00Kiwi TCMS Teamtag:None,2020-11-09:/blog/kiwi-tcms-team/2020/11/09/kiwi-tcms-88/<p>We're happy to announce Kiwi TCMS version 8.8!</p> +<p><strong>IMPORTANT:</strong> this release includes many improvements, +API changes, bug fixes, translation updates, new tests and internal refactoring. +It is the sixth release to include contributions via our +<a class="reference external" href="/blog/tags/bounty-program/">open source bounty program</a>. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org …</a></p><p>We're happy to announce Kiwi TCMS version 8.8!</p> +<p><strong>IMPORTANT:</strong> this release includes many improvements, +API changes, bug fixes, translation updates, new tests and internal refactoring. +It is the sixth release to include contributions via our +<a class="reference external" href="/blog/tags/bounty-program/">open source bounty program</a>. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<p>This is also the first release after +<a class="reference external" href="/blog/kiwi-tcms-team/2020/10/26/kiwi-tcms-celebrates-200k-downloads/">Kiwi TCMS reached 200K pulls</a> +on Docker Hub!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +<p>Docker images:</p> +<pre class="literal-block"> +kiwitcms/kiwi latest 4b31ecf8ab5b 654 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 +</pre> +<div class="section" id="changes-since-kiwi-tcms-8-7"> +<h2>Changes since Kiwi TCMS 8.7</h2> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update bleach from 3.1.5 to 3.2.1</li> +<li>Update django-extensions from 3.0.8 to 3.0.9</li> +<li>Update django from 3.1.1 to 3.1.3</li> +<li>Update django-simple-history from 2.11.0 to 2.12.0</li> +<li>Update markdown from 3.2.2 to 3.3.3</li> +<li>Update pygments from 2.7.0 to 2.7.2</li> +<li>Update python-bugzilla from 2.5.0 to 3.0.1</li> +<li>Update node_modules/marked from 1.1.1 to 1.2.3</li> +<li>Update node_modules/prismjs from 1.21.0 to 1.22.0</li> +<li>Add management command <tt class="docutils literal">refresh_permission</tt>. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1137">Issue #1137</a> (Ivajlo Karabojkov)</li> +<li>Add bug tracker integration for Azure Boards. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1979">Issue #1979</a> (&#64;cmbahadir)</li> +<li>Add autosave configuration to web editor. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1958">Issue #1958</a> (Mfon Eti-mfon)</li> +<li>Change ON/OFF buttons messages to Yes/No for several buttons (Alexander Tsvetanov)</li> +<li>Add support for object-level permissions for TestCase, +TestPlan, TestRun and Bug objects via <tt class="docutils literal"><span class="pre">django-guardian</span></tt></li> +<li>Complete redesign of Test Plan page to match the rest of Kiwi TCMS:<ul> +<li>modern look and feel using the PatternFly UI library</li> +<li>remove unused legacy code &amp; HTML templates</li> +<li>closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/663">Issue #663</a>, +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1977">Issue #1977</a></li> +</ul> +</li> +<li>Enable Markdown support for strike-through text</li> +<li>Always pull latest RPMs when building container images</li> +<li>Update documentation and images</li> +</ul> +</div> +<div class="section" id="settings"> +<h3>Settings</h3> +<ul class="simple"> +<li><tt class="docutils literal">AUTHENTICATION_BACKENDS</tt> setting is now explicitly specified because of +<tt class="docutils literal"><span class="pre">django-guardian</span></tt>. Take care to include the default backends if you +override this setting. See <tt class="docutils literal">tcms/settings/common.py</tt> for more information.</li> +</ul> +</div> +<div class="section" id="database"> +<h3>Database</h3> +<ul class="simple"> +<li>Add index to <tt class="docutils literal">TestCase.summary</tt> field</li> +<li>Additional migrations from <tt class="docutils literal"><span class="pre">django-guardian</span></tt> around object-level permissions</li> +<li>New <tt class="docutils literal">AnonymousUser</tt> record added by <tt class="docutils literal"><span class="pre">django-guardian</span></tt></li> +<li>Start using <tt class="docutils literal"><span class="pre">django-tree-queries</span></tt> which improves how tree based structures +are stored in the database.</li> +</ul> +<p><strong>important:</strong></p> +<blockquote> +Requires PostgreSQL, sqlite3 &gt;= 3.8.3, MariaDB &gt;= 10.2.2 or +MySQL &gt;= 8.0 (if running without <tt class="docutils literal">ONLY_FULL_GROUP_BY</tt>).</blockquote> +<p><strong>warning:</strong></p> +<blockquote> +Supports only trees with max. 50 levels on MySQL/MariaDB, since those databases +do not support arrays and require us to provide a maximum length upfront. +This means up to 50 levels of nested child-parent test plans!</blockquote> +</div> +<div class="section" id="api"> +<h3>API</h3> +<ul class="simple"> +<li>Method <tt class="docutils literal">TestExecution.update()</tt> will now modify field <tt class="docutils literal">close_date</tt> +depending on test execution status. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1820">Issue #1820</a></li> +<li>Method <tt class="docutils literal">TestCase.add_comment()</tt> now returns the created comment</li> +<li>Method <tt class="docutils literal">TestExecution.add_comment()</tt> now returns the created comment</li> +<li>Method <tt class="docutils literal">TestPlan.add_case()</tt> now returns the newly added test case</li> +<li>Add method <tt class="docutils literal">TestCase.sortkeys()</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/444">Issue #444</a></li> +<li>Add method <tt class="docutils literal">Markdown.render()</tt></li> +<li>Add method <tt class="docutils literal">TestCase.comments()</tt></li> +<li>Add method <tt class="docutils literal">TestPlan.tree()</tt></li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Fix url formatting. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1806">Issue #1806</a> (Rosen Sasov)</li> +<li>When deleting TestExecutionStatus check that there will be at least 1 left +before deleting! Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1978">Issue #1978</a></li> +<li>Update typeahead definitions for test case components, tags and +for adding test plans to test cases. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/882">Issue #882</a></li> +<li>Add option to filter by reviewer in Test Plan page. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/564">Issue #564</a></li> +<li>Pass the number of disabled test cases to HTML template when +creating a new test run. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/718">Issue #718</a></li> +</ul> +</div> +<div class="section" id="refactoring-testing"> +<h3>Refactoring &amp; testing</h3> +<ul class="simple"> +<li>New linter to warn against <tt class="docutils literal">GenericForeignKey</tt> fields in models. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1303">Issue #1303</a> (Bryan Mutai)</li> +<li>Add tests for <tt class="docutils literal">assign_default_group_permissions()</tt> (Ivajlo Karabojkov)</li> +<li>Add tests for <tt class="docutils literal">TestExecutionStatusAdmin</tt>. Refs +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1618">Issue #1618</a> (Mariyan Garvanski)</li> +<li>Add tests for <tt class="docutils literal">tcms.bugs.views.Search</tt>. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1601">Issue #1601</a> (Mfon Eti-mfon)</li> +<li>Add tests for <tt class="docutils literal">tcms.rpc.api.testrun</tt>. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1628">Issue #1628</a> (&#64;lcmtwn)</li> +<li>Add tests for <tt class="docutils literal">tcms.rpc.api.classification</tt>. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1621">Issue #1621</a> (Abhishek Chaurasia)</li> +<li>Add tests for <tt class="docutils literal">tcms.rpc.api.priority</tt>. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1622">Issue #1622</a> (Abhishek Chaurasia)</li> +<li>Add tests for <tt class="docutils literal">tcms.rpc.api.testcasestatus</tt>. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1624">Issue #1624</a> (Abhishek Chaurasia)</li> +<li>Add tests for <tt class="docutils literal">tcms.rpc.api.attachment</tt>. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1619">Issue #1619</a> (&#64;awalvie)</li> +<li>Add tests for <tt class="docutils literal">tcms.rpc.api.testexecution.remove_comment</tt>. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1625">Issue #1625</a> (&#64;awalvie)</li> +<li>Add tests for <tt class="docutils literal">tcms.rpc.api.testexecutionstatus</tt>. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1626">Issue #1626</a> (&#64;awalvie)</li> +<li>Add tests for <tt class="docutils literal">TestRun.add_case_run()</tt> method and rename it to +<tt class="docutils literal">TestRun.create_execution()</tt></li> +<li><tt class="docutils literal"><span class="pre">libkrb5-dev</span></tt> is not needed anymore in CI with newer <tt class="docutils literal"><span class="pre">tcms-api</span></tt></li> +<li>Use Fedora 32 to build Bugzilla docker image in CI</li> +<li>Update signature for overriden class to match Django 3.1</li> +<li>Move SimpleMDE initialization to simplemde_security_overide.js</li> +<li>Move <tt class="docutils literal">post_save.send()</tt> from <tt class="docutils literal">bugs.views</tt> to <tt class="docutils literal">comments.add_comment()</tt></li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/bg#">Bulgarian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/zh-CN#">Chinese Simplified translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/cs#">Czech translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/fr#">French translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/hu#">Hungarian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/it#">Italian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/ja#">Japanese translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +</ul> +</div> +</div> +<div class="section" id="kiwi-tcms-enterprise-v8-8-mt"> +<h2>Kiwi TCMS Enterprise v8.8-mt</h2> +<ul class="simple"> +<li>Based on Kiwi TCMS v8.7</li> +<li>Update kiwitcms-github-app from 1.2 to 1.2.</li> +</ul> +<p>For more info see +<a class="reference external" href="https://github.com/kiwitcms/enterprise#v88-mt-07-nov-2020">https://github.com/kiwitcms/enterprise#v88-mt-07-nov-2020</a></p> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p><a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">Backup</a> first! +If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +cd path/containing/docker-compose/ +docker-compose down +docker-compose pull +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +</pre> +<p>Refer to +<a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/installing_docker.html#upgrading">our documentation</a> +for more details!</p> +<p>Happy testing!</p> +<p>---</p> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul class="simple"> +<li><a class="reference external" href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a class="reference external" href="/blog/kiwi-tcms-team/2020/09/04/please-nominate-kiwitcms-as-a-github-star/">Nominate Kiwi TCMS as GitHub Stars</a>;</li> +<li><a class="reference external" href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a class="reference external" href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> +and follow all project news;</li> +<li><a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> +and an awesome open source hacker;</li> +<li><a class="reference external" href="/#subscriptions">Become a customer</a> and we'll share our profits with the community</li> +</ul> +</div> +Kiwi TCMS celebrates 200K+ downloads2020-10-26T14:00:00+02:002020-10-26T14:00:00+02:00Kiwi TCMS Teamtag:None,2020-10-26:/blog/kiwi-tcms-team/2020/10/26/kiwi-tcms-celebrates-200k-downloads/<p><img alt="&quot;200K banner&quot;" src="/images/200K/banner.png" title="200K banner"></p> +<p>We are happy to announce that Kiwi TCMS has been downloaded more than +200000 times via <a href="https://hub.docker.com/r/kiwitcms/kiwi/">Docker Hub</a>! +You can check the real-time stats +<a href="https://hub.docker.com/v2/repositories/kiwitcms/kiwi/">here</a>. +To celebrate with us subscribe for a +<a href="https://mrsenko.onfastspring.com/kiwitcms-private-tenant">SaaS</a> and/or +<a href="https://mrsenko.onfastspring.com/kiwitcms-enterprise-subscription">Enterprise</a> +subscriptions using coupon code <strong>200KOFF</strong> at checkout!</p> +<p>Thank you very much and Happy Testing …</p><p><img alt="&quot;200K banner&quot;" src="/images/200K/banner.png" title="200K banner"></p> +<p>We are happy to announce that Kiwi TCMS has been downloaded more than +200000 times via <a href="https://hub.docker.com/r/kiwitcms/kiwi/">Docker Hub</a>! +You can check the real-time stats +<a href="https://hub.docker.com/v2/repositories/kiwitcms/kiwi/">here</a>. +To celebrate with us subscribe for a +<a href="https://mrsenko.onfastspring.com/kiwitcms-private-tenant">SaaS</a> and/or +<a href="https://mrsenko.onfastspring.com/kiwitcms-enterprise-subscription">Enterprise</a> +subscriptions using coupon code <strong>200KOFF</strong> at checkout!</p> +<p>Thank you very much and Happy Testing!</p> +<hr> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul> +<li><a href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a href="/blog/kiwi-tcms-team/2020/09/04/please-nominate-kiwitcms-as-a-github-star/">Nominate Kiwi TCMS as GitHub Stars</a>;</li> +<li><a href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> + and follow all project news;</li> +<li><a href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> and an awesome open source hacker;</li> +<li><a href="/#subscriptions">Become a customer</a> and we'll share our profits with the community</li> +</ul>SEDC Academy For Software Testing is running Kiwi TCMS2020-10-18T17:25:00+03:002020-10-18T17:25:00+03:00Kiwi TCMS Teamtag:None,2020-10-18:/blog/kiwi-tcms-team/2020/10/18/sedc-academy-for-software-testing-is-running-kiwi-tcms/<p>Hello testers, +recently we had a chat with +<a href="https://www.linkedin.com/in/gjorezaharchev/">Gjore Zaharchev</a>, +a QA manager at Seavus and Testing Coach at +SEDC Software Testing Academy in Skopje. Here is their story +and how they use Kiwi TCMS!</p> +<p><a href="https://www.sedc.mk/">Seavus Educational and Development Center</a> +is a private company as part of the Seavus Group …</p><p>Hello testers, +recently we had a chat with +<a href="https://www.linkedin.com/in/gjorezaharchev/">Gjore Zaharchev</a>, +a QA manager at Seavus and Testing Coach at +SEDC Software Testing Academy in Skopje. Here is their story +and how they use Kiwi TCMS!</p> +<p><a href="https://www.sedc.mk/">Seavus Educational and Development Center</a> +is a private company as part of the Seavus Group and a specialized +training center for education of staff in the fields of programming, +design, computer networks and software testing. +Around 90 students pass through their software testing academy every year +with 60 students enrolled thus far. The training program is 6 months +and covers many basic IT skills, manual testing, ISTQB fundamentals and +automation testing. SEDC is located in Skopje, North Macedonia.</p> +<h2>Hands-On Lab Activities</h2> +<p>The study program includes multiple individual and team projects, intermediate +exams and a final project. These are intended to exercise the most commonly used +test design techniques and practice writing up the test scenarios. All +scenarios are written directly in Kiwi TCMS. We've even seen test plans and +test cases created during Christmas and the New Year holidays last year!</p> +<p>The software under test is usually the programs developed by students +from our <em>Academy for Programming</em>, says Gjore. +Later in the program we use real websites in order to show some bugs in the +wild, he continues. On occasion students have found interesting problems with the websites of +<em>Booking.com</em> and <em>WizzAir</em>. They've also managed to find a critical issue on +one of our local systems. These are the trials and tribulations of +teaching &amp; testing in the wild.</p> +<blockquote> +<p>Kiwi TCMS team still remembers one of Alex's training sessions where we used +the website of an actual cinema. Unfortunately they went out of business +and shutdown the victimized website right in the middle of the session. ;-)</p> +</blockquote> +<h2>Why did you decide to use Kiwi TCMS</h2> +<p>When searching for a TCMS platform for the academy one of the decisive +factors was cost. By being open source Kiwi TCMS has the side benefit of +having zero initial usage cost which was very important for us. +Regardless of that Kiwi TCMS is very easy to install &amp; setup using Docker, +very easy to on-board new users and generally well received by everyone.</p> +<blockquote> +<p>This is a huge benefit for students because they can experiment with Kiwi TCMS +and immediately see how some items work when executing testing workflows. +For example they can visualize how a regression test run looks like compared +to a test run for a critical security fix; or they can simulate working in +groups to cover execution of a larger test plan.</p> +</blockquote> +<h2>What do your students say</h2> +<p>Overall they like the workflow and can easily navigate within the user interface. +They feel very positive because there is no complexity in the system and +it is very intuitive. One of the areas which often receives questions is +the ability to record test automation results!</p> +<p><em>Answer: Kiwi TCMS has the ability to fetch names and test results directly, via +plugins for several +<a href="https://kiwitcms.readthedocs.io/en/latest/plugins/automation-frameworks.html">test automation frameworks</a> +while others are on our backlog - +<a href="https://github.com/kiwitcms/Kiwi/issues/692">TestNG</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1072">Jenkins</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/2020">C#/NUnit</a>! +Anyone interested is welcome to </em><strong>Subscribe</strong><em> to each GitHub issue and follow the progress. +Some issues are also part of our +<a href="/blog/tags/bounty-program/">open source bounty program</a> so we urge students to +take a look and contribute!</em></p> +<h2>Anything you want to ask our team</h2> +<p>At SEDC we'd like to know what are your plans for Kiwi TCMS in the future?</p> +<p><em>Answer: Our plans, like our software, are transparent, check-out posts +<a href="/blog/tags/roadmap/">tagged roadmap</a>! For 2020 this is refactoring of the +last remaining legacy bits, continue work on our Telemetry feature and +more work towards integration with various bug trackers and test automation +frameworks. An extension to that is tighter integration with the GitHub +platform!</em></p> +<h2>Help us do more</h2> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul> +<li><a href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> - + project news only, GDPR compliant</li> +<li><a href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a href="/blog/kiwi-tcms-team/2020/09/04/please-nominate-kiwitcms-as-a-github-star/">Nominate Kiwi TCMS as GitHub Stars</a>;</li> +<li><a href="/#subscriptions">Become a customer</a> and we'll share our profits with the community</li> +</ul> +<p><br> +Thanks for reading and happy testing!</p>Kiwi TCMS is partnering with Vola Software2020-10-15T15:51:00+03:002020-10-15T15:51:00+03:00Kiwi TCMS Teamtag:None,2020-10-15:/blog/kiwi-tcms-team/2020/10/15/kiwi-tcms-is-partnering-with-vola-software/<p>We are happy to announce that Kiwi TCMS is going to partner with +<a href="https://volasoftware.com/">Vola Software</a> to provide 2 interns with +opportunities for hacking open source and bootstrapping their careers!</p> +<p>Vola Software is a custom software development company +in one of the poorest regions of the European Union and a long-time …</p><p>We are happy to announce that Kiwi TCMS is going to partner with +<a href="https://volasoftware.com/">Vola Software</a> to provide 2 interns with +opportunities for hacking open source and bootstrapping their careers!</p> +<p>Vola Software is a custom software development company +in one of the poorest regions of the European Union and a long-time contributor +to their local ecosystem via +<a href="https://school.vratsasoftware.com/">Vratsa Software Community</a>. +They are located in Vratsa, Bulgaria.</p> +<h2>Internship program</h2> +<p><a href="https://github.com/Allexander203">Alexander Tsvetanov</a> and +<a href="https://github.com/vladi1337">Vladislav Ankov</a> are joining the Kiwi TCMS team +for a 10 month adventure until the end of July 2021 with the opportunity +to continue for another year afterwards!</p> +<p>Both Sasho and Vladi are students in the Professional Technical Gymnasium +in Vratsa and are required to work part-time as junior software developers during the +last 2 years of their education. Given that they have very limited practical +experience and the additional red tape around hiring youngsters many software +companies directly avoid such kind of relationship. This creates a catch-22 +circle for both employers who are looking to hire somewhat experienced young people +and youngsters who are looking to advance their practical skills.</p> +<p>Here's where Kiwi TCMS steps-in! What better way to improve practical knowledge +than contributing to an actively used and actively maintained open source software! +We are nearing the 200K downloads mark on Docker Hub so changes made by +Sasho and Vladi will be visible to a very big pool of our users and customers!</p> +<p>Both have already started their open source adventure last week and are currently +going through some training. However they were faced with real problems which +resulted in +<a href="https://github.com/python-bugzilla/python-bugzilla/issues/134">bug discovery</a> +and a +<a href="https://github.com/python-bugzilla/python-bugzilla/pull/135">pull request</a> for +<strong>python-bugzilla</strong> underlined by a +<a href="https://bugs.python.org/issue41965">20 years old issue in Python</a>. +How's that for a start ?</p> +<h2>Administrative</h2> +<p>Vola Software is the direct employer for Sasho and Vladi because they have the +necessary permits and experience required for hiring youngsters. Kiwi TCMS is +the direct technical mentor and will be acting as a customer to Vola Software!</p> +<p>Vola Software will be paying a minimal salary to our interns as required by law. +Kiwi TCMS will reimburse the full amount while Vola Software +will be covering their accounting and administrative expenses. +Both Sasho and Vladi will also be eligible for our +<a href="/blog/tags/bounty-program/">open source bounty-program</a> as an extra stimulation!</p> +<p>All expenses will be fully transparent and visible via +<a href="https://opencollective.com/kiwitcms/expenses/">our Open Collective page</a>!</p> +<h2>Help us do more</h2> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul> +<li><a href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a href="/blog/kiwi-tcms-team/2020/09/04/please-nominate-kiwitcms-as-a-github-star/">Nominate Kiwi TCMS as GitHub Stars</a>;</li> +<li><a href="/#subscriptions">Become a customer</a> and we'll share our profits with the community</li> +</ul> +<p><br> +Thanks for reading and happy testing!</p>Kiwi TCMS is partnering with MLH Fellowship program2020-10-13T12:50:00+03:002020-10-13T12:50:00+03:00Kiwi TCMS Teamtag:None,2020-10-13:/blog/kiwi-tcms-team/2020/10/13/kiwi-tcms-is-partnering-with-mlh-fellowship-program/<p>We are happy to announce that Kiwi TCMS is going to partner with the +<a href="https://fellowship.mlh.io/programs/open-source">MLH Fellowship</a> +open source program which is a 12 week internship alternative for +students interested in becoming software engineers.</p> +<p><a href="https://mlh.io">Major League Hacking (MLH)</a> is a mission-driven B-Corp focused +on empowering our next generation of technologists. Every …</p><p>We are happy to announce that Kiwi TCMS is going to partner with the +<a href="https://fellowship.mlh.io/programs/open-source">MLH Fellowship</a> +open source program which is a 12 week internship alternative for +students interested in becoming software engineers.</p> +<p><a href="https://mlh.io">Major League Hacking (MLH)</a> is a mission-driven B-Corp focused +on empowering our next generation of technologists. Every year, more than +100,000 developers, designers, and makers join the MLH community to gain +hands-on experience and build their professional networks. +They are headquartered in the Greater New York Area, USA but operate world-wide.</p> +<h2>Fellowship program</h2> +<p>The Fall 2020 cohort runs between October 5 - December 21 and we're already +into the Contributing phase of the program. +Fellow students will be working on +<a href="https://github.com/kiwitcms/Kiwi/issues">open issues</a> from our backlog with +a focus on tasks from our +<a href="https://github.com/kiwitcms/Kiwi/milestone/4">open source bounty program</a> +but they can really work on any open task!</p> +<p>Once a pull request has been made it will undergo first round code review +by <a href="https://github.com/flosincapite"><em>Cory Massaro</em></a> +who is the dedicated MLH Python mentor. Once Cory gives the +1 +each pull request will be reviewed by a member of the Kiwi TCMS core team like usual.</p> +<p>To minimize the risk of conflicts between contributors we are going to apply +the following rules:</p> +<ul> +<li>Each MLH fellow would add a comment on the issue they are + interested in (applies to other contributors too);</li> +<li>The issue will be assigned to them (new);</li> +<li>The issue will be labeled with the + <a href="https://github.com/kiwitcms/Kiwi/issues?q=is%3Aopen+is%3Aissue+label%3A%22MLH+Fellowship%22"><strong>MLH Fellowship</strong></a> + label (new);</li> +<li>The following comment will be added: + <em>This issue/bounty has been assigned to an MLH fellow who is currently + working on it. Pull requests towards the same issue from other contributors + will not be considered at this time. Please pick something else to work on!</em></li> +</ul> +<p>Upon successful completion of tasks all MLH fellows will be eligible to claim their +bounties via <a href="https://opencollective.com/kiwitcms">our Open Collective page</a>. This is +the same process other contributors go through, there is no difference.</p> +<p>Kiwi TCMS commits 2 core-team members who will serve office hours +on the <a href="https://discord.gg/w7F55kn">MLH Fellowship Discord</a> server for +couple of hours per week in order to answer questions and keep the ball rolling. +We also commit to having bi-weekly meetings with MLH mentor(s) during the +duration of the program.</p> +<p>Kiwi TCMS would also like to thank our friend +<a href="https://twitter.com/eddiejaoude">Eddie Jaoude</a> for putting us in touch with MLH +and helping bring this partnership to reality. Thank you Eddie!</p> +<h2>Help us do more</h2> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul> +<li><a href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a href="/blog/kiwi-tcms-team/2020/09/04/please-nominate-kiwitcms-as-a-github-star/">Nominate Kiwi TCMS as GitHub Stars</a>;</li> +<li><a href="/#subscriptions">Become a customer</a> and we'll share our profits with the community</li> +</ul> +<p><br> +Thanks for reading and happy testing!</p>Progress update on open source hardware for black-box testing2020-10-10T16:35:00+03:002020-10-10T16:35:00+03:00Kiwi TCMS Teamtag:None,2020-10-10:/blog/kiwi-tcms-team/2020/10/10/progress-update-on-open-source-hardware-for-black-box-testing/<p>Hello testers, as you know our +<a href="/blog/kiwi-tcms-team/2020/05/26/kiwi-tcms-is-partnering-up-with-pionir/">friends at Pionir</a> +are working on physical hardware which can be used for interactive training and +explanation of the Black-box testing technique. The inspiration +comes from <a href="http://blackboxpuzzles.workroomprds.com/">James Lyndsay’s Black Box Puzzles</a> and +<a href="http://blog.brainforit.com/2017/02/06/black-boxes-for-black-box-testing/">Claudiu Draghia</a>.</p> +<p>We have the source code of 3 boxes already …</p><p>Hello testers, as you know our +<a href="/blog/kiwi-tcms-team/2020/05/26/kiwi-tcms-is-partnering-up-with-pionir/">friends at Pionir</a> +are working on physical hardware which can be used for interactive training and +explanation of the Black-box testing technique. The inspiration +comes from <a href="http://blackboxpuzzles.workroomprds.com/">James Lyndsay’s Black Box Puzzles</a> and +<a href="http://blog.brainforit.com/2017/02/06/black-boxes-for-black-box-testing/">Claudiu Draghia</a>.</p> +<p>We have the source code of 3 boxes already published at +<a href="https://github.com/kiwitcms/black-boxes">https://github.com/kiwitcms/black-boxes</a> but still missing bill of materials, +design files for 3D printing and some basic instructions how to put everything +together. There was a delay in delivery of some components but most of the work +is close to completion. You may subscribe to +<a href="https://github.com/kiwitcms/black-boxes/issues">issues for each box</a> to follow +the progress! Here are some images &amp; videos from the development process.</p> +<h2>Wason 2-4-6 box</h2> +<p><img alt="Wason 246 box" src="/images/black-boxes/wason_246.png"></p> +<iframe width="1000" height="562" + src="https://www.youtube.com/embed/UGfgcTS66KY" + frameborder="0" + allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" + allowfullscreen> +</iframe> + +<h2>Peltzman effect box</h2> +<p><img alt="Peltzman effect box" src="/images/black-boxes/peltzman_effect.png"></p> +<iframe width="1000" height="562" + src="https://www.youtube.com/embed/9wAr--X4YGM" + frameborder="0" + allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" + allowfullscreen> +</iframe> + +<h2>Salience bias box</h2> +<p><img alt="Salience bias box" src="/images/black-boxes/salience_bias.png"></p> +<iframe width="1000" height="562" + src="https://www.youtube.com/embed/pgADatxcZBg" + frameborder="0" + allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" + allowfullscreen> +</iframe> + +<p>According to Pionir's own words: +<em>We are testing the salience box and trying to cause emotional effect of an element. +Vuk made a mistake and now he can't turn it off :D. How's that for dogfooding?</em></p> +<h2>Help us do more</h2> +<p>If you like what we're doing and how Kiwi TCMS supports the various communities +around us please <a href="/blog/kiwi-tcms-team/2020/09/04/please-nominate-kiwitcms-as-a-github-star/">nominate us as GitHub Stars</a>!</p> +<p><br> +Thanks for reading and happy testing!</p>Kiwi TCMS 8.72020-09-16T16:30:00+03:002020-09-16T16:30:00+03:00Kiwi TCMS Teamtag:None,2020-09-16:/blog/kiwi-tcms-team/2020/09/16/kiwi-tcms-87/<p>We're happy to announce Kiwi TCMS version 8.7!</p> +<p><strong>IMPORTANT:</strong> this is a medium sized release which includes +improvements, API changes, bug fixes, translation updates and +new tests. It is the fifth release to include contributions via our +<a class="reference external" href="/blog/tags/bounty-program/">open source bounty program</a>. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant …</a></p><p>We're happy to announce Kiwi TCMS version 8.7!</p> +<p><strong>IMPORTANT:</strong> this is a medium sized release which includes +improvements, API changes, bug fixes, translation updates and +new tests. It is the fifth release to include contributions via our +<a class="reference external" href="/blog/tags/bounty-program/">open source bounty program</a>. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +<p>Docker images:</p> +<pre class="literal-block"> +kiwitcms/kiwi latest 1f2461b1facd 643 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 +</pre> +<div class="section" id="changes-since-kiwi-tcms-8-6"> +<h2>Changes since Kiwi TCMS 8.6</h2> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul> +<li><p class="first">Update Django from 3.0.9 to 3.1.1</p> +</li> +<li><p class="first">Update django-attachments from 1.6 to 1.8</p> +</li> +<li><p class="first">Update django-extensions from 3.0.5 to 3.0.8</p> +</li> +<li><p class="first">Update psycopg2 from 2.8.5 to 2.8.6</p> +</li> +<li><p class="first">Update pygments from 2.6.1 to 2.7.0</p> +</li> +<li><p class="first">Update python-gitlab from 2.4.0 to 2.5.0</p> +</li> +<li><p class="first">Make it possible to use reCAPTCHA during registration. If you want to enable +this then add the following to your settings:</p> +<pre class="literal-block"> +if 'captcha' not in INSTALLED_APPS: + INSTALLED_APPS.append('captcha') + + RECAPTCHA_PUBLIC_KEY = '......' + RECAPTCHA_PRIVATE_KEY = '.....' + RECAPTCHA_USE_SSL = True +</pre> +<p>For more info see <a class="reference external" href="https://www.google.com/recaptcha/admin/">https://www.google.com/recaptcha/admin/</a></p> +</li> +<li><p class="first">Replace <tt class="docutils literal">GlobalLoginRequiredMiddleware</tt> with +<tt class="docutils literal">tcms.kiwi_auth.backends.AnonymousViewBackend</tt> for anonymous read-only +functionality. See section +<a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/configuration.html#anonymous-read-only-access">Anonymous read-only access</a> +in the documentation</p> +</li> +<li><p class="first">Replace the <tt class="docutils literal">...</tt> in navigation bar with a 3 cogs icon to make the +object-level menu more visible</p> +</li> +</ul> +</div> +<div class="section" id="settings"> +<h3>Settings</h3> +<ul class="simple"> +<li>Remove setting <tt class="docutils literal">PUBLIC_VIEWS</tt></li> +</ul> +</div> +<div class="section" id="api"> +<h3>API</h3> +<ul class="simple"> +<li>Remove <tt class="docutils literal">TestCase.get_components()</tt> in favor of <tt class="docutils literal">Component.filter()</tt></li> +<li><tt class="docutils literal">Bug.details()</tt> method will now return <tt class="docutils literal">{}</tt> instead of failing if +it can't find an issue tracker from an URL</li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Remove documentation references to non-existing environment</li> +<li>Don't fail internal calls if Kiwi TCMS bug tracker can't find a bug</li> +</ul> +</div> +<div class="section" id="refactoring-testing"> +<h3>Refactoring &amp; testing</h3> +<ul class="simple"> +<li>Add tests for <tt class="docutils literal">tcms.core.templatetags</tt>. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1602">Issue #1602</a> (Mariyan Garvanski)</li> +<li>Add tests for <tt class="docutils literal">tcms.bugs.views.Edit</tt>. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1599">Issue #1599</a> (Mfon Eti-mfon)</li> +<li>Add tests for <tt class="docutils literal">tcms.bugs.views.AddComment</tt>. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1600">Issue #1600</a> (Mfon Eti-mfon)</li> +<li>Make paths used in migrations &amp; settings platform aware in order to +enable development mode on Windows (Mfon Eti-mfon)</li> +<li>Add new linter checker to check for use of <tt class="docutils literal">db_column</tt> argument in +model field definition. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/736">Issue #736</a> (Bryan Mutai)</li> +<li>Add tests for <tt class="docutils literal">Bug.details</tt> API method</li> +<li>Replace deprecated <tt class="docutils literal">ifequal</tt>/<tt class="docutils literal">ifnotequal</tt> template tags</li> +<li>Adjust <tt class="docutils literal">migrations_order</tt> for Django 3.1 compatibility</li> +<li>Add <tt class="docutils literal">npm audit</tt> check in CI</li> +<li>Resolve several pylint issues</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/bg#">Bulgarian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/zh-TW#">Chinese Traditional translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/fr#">French translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/hu#">Hungarian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/ja#">Japanese translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +</ul> +</div> +</div> +<div class="section" id="kiwi-tcms-enterprise-v8-7-mt"> +<h2>Kiwi TCMS Enterprise v8.7-mt</h2> +<ul class="simple"> +<li>Based on Kiwi TCMS v8.7</li> +<li>Overrides for setting <tt class="docutils literal">PUBLIC_VIEWS</tt> have been removed</li> +<li>Update django-ses from 1.0.2 to 1.0.3</li> +<li>Update kiwitcms-github-app from 1.1 to 1.2</li> +<li>Update kiwitcms-tenants from 1.2.1 to 1.3.1</li> +</ul> +<p>For more info see +<a class="reference external" href="https://github.com/kiwitcms/enterprise/#v87-mt-16-sep-2020">https://github.com/kiwitcms/enterprise/#v87-mt-16-sep-2020</a></p> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p><a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">Backup</a> first! +If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +cd path/containing/docker-compose/ +docker-compose down +docker-compose pull +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +</pre> +<p>Refer to +<a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/installing_docker.html#upgrading">our documentation</a> +for more details!</p> +<p>Happy testing!</p> +</div> +Please nominate @kiwitcms as a GitHub Star2020-09-04T14:25:00+03:002020-09-04T14:25:00+03:00Kiwi TCMS Teamtag:None,2020-09-04:/blog/kiwi-tcms-team/2020/09/04/please-nominate-kiwitcms-as-a-github-star/<p><img + style="float: none; margin-left:0" + src="/images/github-star-nomination.png" + alt="GitHub Star nomination"></p> +<p>After our <a href="/blog/kiwi-tcms-team/2020/09/01/kiwi-tcms-is-a-finalist-in-the-2020-eu-web-awards/">recent success</a> +we again ask the community to support Kiwi TCMS.</p> +<p><em>Steps to reproduce:</em></p> +<ol> +<li>Go to <a href="https://stars.github.com/">https://stars.github.com/</a></li> +<li>Click the <strong>Sign in</strong> button and Authorize the GitHub-Stars application</li> +<li>Make sure you are on the <strong>Nominate page</strong>, <a href="https://stars.github.com/nominate/">https://stars.github.com/nominate/</a></li> +<li>Type <code>kiwitcms</code> as the username …</li></ol><p><img + style="float: none; margin-left:0" + src="/images/github-star-nomination.png" + alt="GitHub Star nomination"></p> +<p>After our <a href="/blog/kiwi-tcms-team/2020/09/01/kiwi-tcms-is-a-finalist-in-the-2020-eu-web-awards/">recent success</a> +we again ask the community to support Kiwi TCMS.</p> +<p><em>Steps to reproduce:</em></p> +<ol> +<li>Go to <a href="https://stars.github.com/">https://stars.github.com/</a></li> +<li>Click the <strong>Sign in</strong> button and Authorize the GitHub-Stars application</li> +<li>Make sure you are on the <strong>Nominate page</strong>, <a href="https://stars.github.com/nominate/">https://stars.github.com/nominate/</a></li> +<li>Type <code>kiwitcms</code> as the username. The <code>@</code> character is provided automatically</li> +<li>Type the following text for your reasoning: + <code>they took an abandoned project and turned it into the leading open source + test management system with more than 150k downloads with users &amp; contributors + across the world!</code></li> +<li>Click on the checkbox to acknowledge your nomination</li> +<li>Click the <strong>Submit nomination</strong> button!</li> +</ol> +<p><em>Expected results:</em></p> +<ol> +<li>You fit into the 180 characters provided for nomination</li> +<li>Your submission is recorded by GitHub</li> +</ol> +<h2>Why are we doing this</h2> +<p>GitHub Stars is a program that recognizes those who go above and beyond and help +inspire and educate their communities which is exactly what the +<a href="/team/">Kiwi TCMS team</a> has been doing from our very start! +Checkout our <a href="/blog/tags/community/">community blog posts</a> for more information!</p> +<p>This program will give us access to cool new features +on the GitHub platform and also let us showcase what we do before a larger audience!</p> +<p>Thank you for helping us and happy testing!</p>Kiwi TCMS is a finalist in the 2020 .eu Web Awards2020-09-01T13:50:00+03:002020-09-01T13:50:00+03:00Kiwi TCMS Teamtag:None,2020-09-01:/blog/kiwi-tcms-team/2020/09/01/kiwi-tcms-is-a-finalist-in-the-2020-eu-web-awards/<p><img + style="float: none; margin-left:0" + src="/images/eu_web_awards_2020_finalist.png" + alt="Click here to vote for Kiwi TCMS"></p> +<p>Kiwi TCMS is happy to announce that our website <a href="https://kiwitcms.eu">https://kiwitcms.eu</a> is a finalist +in the <a href="https://eurid.eu/en/news/2020-wa-finalists/">2020 .eu Web Awards</a> +in the <em>Leaders</em> category! Big Thank You to everyone who voted for us!</p> +<p>Our team is also very happy that we are not the only open source finalist. +Congratulations …</p><p><img + style="float: none; margin-left:0" + src="/images/eu_web_awards_2020_finalist.png" + alt="Click here to vote for Kiwi TCMS"></p> +<p>Kiwi TCMS is happy to announce that our website <a href="https://kiwitcms.eu">https://kiwitcms.eu</a> is a finalist +in the <a href="https://eurid.eu/en/news/2020-wa-finalists/">2020 .eu Web Awards</a> +in the <em>Leaders</em> category! Big Thank You to everyone who voted for us!</p> +<p>Our team is also very happy that we are not the only open source finalist. +Congratulations to the <em>OpenScan</em> project and their community!</p> +<p>We are still committed to keeping +<a href="/blog/kiwi-tcms-team/2020/04/09/please-vote-for-kiwi-tcms-in-2020-eu-web-awards/">our earlier promise</a> +and use the award to represent the larger open source community! The decision +is now in the hands of the jury. Wish us good luck!</p>Kiwi TCMS 8.62020-08-23T16:00:00+03:002020-08-23T16:00:00+03:00Kiwi TCMS Teamtag:None,2020-08-23:/blog/kiwi-tcms-team/2020/08/23/kiwi-tcms-86/<p>We're happy to announce Kiwi TCMS version 8.6!</p> +<p><strong>IMPORTANT:</strong> this is a high severity security update which includes +improvements, bug fixes, database migrations, API changes, translation updates and +new tests. It is the fourth release to include contributions via our +<a class="reference external" href="/blog/tags/bounty-program/">open source bounty program</a>. +You can explore everything at …</p><p>We're happy to announce Kiwi TCMS version 8.6!</p> +<p><strong>IMPORTANT:</strong> this is a high severity security update which includes +improvements, bug fixes, database migrations, API changes, translation updates and +new tests. It is the fourth release to include contributions via our +<a class="reference external" href="/blog/tags/bounty-program/">open source bounty program</a>. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +<p>Docker images:</p> +<pre class="literal-block"> +kiwitcms/kiwi latest f2c21b370cd9 639 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 +</pre> +<div class="section" id="changes-since-kiwi-tcms-8-5"> +<h2>Changes since Kiwi TCMS 8.5</h2> +<div class="section" id="security"> +<h3>Security</h3> +<ul class="simple"> +<li>A high severity vulnerability which allows unprivileged data access +via JSON-RPC endpoints has been fixed:<ul> +<li>Affects all previous versions of Kiwi TCMS</li> +<li>Instances on public networks, such as Amazon EC2, are at higher risk</li> +<li>Instances on private networks are still vulnerable to anyone who can +access the same network</li> +<li>This vulnerability has been disclosed by Michael Longmire (ShastaQA) +and Stone Pack (ShastaQA)</li> +</ul> +</li> +<li>Update marked from 0.8.2 to 1.1.1 for a medium severity vulnerability, see +<a class="reference external" href="https://snyk.io/vuln/SNYK-JS-MARKED-584281">SNYK-JS-MARKED-584281</a></li> +</ul> +</div> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul> +<li><p class="first">Update django from 3.0.8 to 3.0.9</p> +</li> +<li><p class="first">Update django-attachments from 1.5 to 1.6</p> +</li> +<li><p class="first">Update prismjs from 1.20.0 to 1.21.0</p> +</li> +<li><p class="first">Update pygithub from 1.51 to 1.53</p> +</li> +<li><p class="first">Replace deprecated bleach-whitelist with bleach-allowlist</p> +</li> +<li><p class="first">Make django-extensions a production dependency because it provides +many useful manage.py commands</p> +</li> +<li><p class="first">Enable syntax highlight for code blocks</p> +</li> +<li><p class="first">Remove file attachments when related objects are deleted</p> +</li> +<li><p class="first">Add image and file upload buttons to text editor. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/977">Issue #977</a></p> +</li> +<li><p class="first">Require <tt class="docutils literal">auth.view_user</tt> permission when trying to view user profiles. +Fixes <a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1685">Issue #1685</a></p> +</li> +<li><p class="first">Multiple pages now explicitly require view permissions before displaying read-only +information. This gives administrators a finer grained control:</p> +<ul class="simple"> +<li><tt class="docutils literal"><span class="pre">/bugs/&lt;id&gt;/</span></tt> -&gt; <tt class="docutils literal">bugs.view_bug</tt></li> +<li><tt class="docutils literal">/bugs/search/</tt> -&gt; <tt class="docutils literal">bugs.view_bug</tt></li> +<li><tt class="docutils literal">/cases/search/</tt> -&gt; <tt class="docutils literal">testcases.view_testcase</tt></li> +<li><tt class="docutils literal"><span class="pre">/case/&lt;id&gt;/</span></tt> -&gt; <tt class="docutils literal">testcases.view_testcase</tt></li> +<li><tt class="docutils literal">/plans/search/</tt> -&gt; <tt class="docutils literal">testplans.view_testplan</tt></li> +<li><tt class="docutils literal"><span class="pre">/plan/&lt;id&gt;/*</span></tt> -&gt; <tt class="docutils literal">testplans.view_testplan</tt></li> +<li><tt class="docutils literal">/runs/search/</tt> -&gt; <tt class="docutils literal">testruns.view_testrun</tt></li> +<li><tt class="docutils literal"><span class="pre">/runs/&lt;id&gt;/</span></tt> -&gt; <tt class="docutils literal">testruns.view_testrun</tt></li> +</ul> +<p>Previously these pages only required the user to be logged in</p> +</li> +</ul> +<p><strong>Warning:</strong></p> +<blockquote> +The <tt class="docutils literal">auth.view_user</tt> permission is not granted by default because the +profile page contains personal information like names and email address. +Administrators can grant this permission on a group or individual basis +if they are OK with sharing this information.</blockquote> +</div> +<div class="section" id="database"> +<h3>Database</h3> +<ul class="simple"> +<li>Migrations which manipulate data (contain <tt class="docutils literal">RunPython</tt>) can now be +rollbacked. See <tt class="docutils literal">./manage.py migrate <span class="pre">--plan</span></tt> for the order in which +migrations are applied (Bryan Mutai)</li> +<li>Increase <tt class="docutils literal">Product.name</tt> size from 64 to 255 characters</li> +</ul> +</div> +<div class="section" id="api"> +<h3>API</h3> +<ul class="simple"> +<li>Remove method <tt class="docutils literal">TestExecution.create()</tt> in favor of <tt class="docutils literal">TestRun.add_case()</tt></li> +<li>Add method <tt class="docutils literal">User.add_attachment()</tt></li> +<li>Multiple API methods now explicitly require view permissions before returning +read-only information. This is in-sync with the per-page changes listed above:<ul> +<li><tt class="docutils literal">Bug.filter()</tt> -&gt; <tt class="docutils literal">bugs.view_bug</tt></li> +<li><tt class="docutils literal">Bug.report()</tt> -&gt; <tt class="docutils literal">testruns.view_testexecution</tt></li> +<li><tt class="docutils literal">Build.filter()</tt> -&gt; <tt class="docutils literal">management.view_build</tt></li> +<li><tt class="docutils literal">Category.filter()</tt> -&gt; <tt class="docutils literal">testcases.view_category</tt></li> +<li><tt class="docutils literal">Classification.filter()</tt> -&gt; <tt class="docutils literal">management.view_classification</tt></li> +<li><tt class="docutils literal">Component.filter()</tt> -&gt; <tt class="docutils literal">management.view_component</tt></li> +<li><tt class="docutils literal">PlanType.filter()</tt> -&gt; <tt class="docutils literal">testplans.view_plantype</tt></li> +<li><tt class="docutils literal">Priority.filter()</tt> -&gt; <tt class="docutils literal">management.view_priority</tt></li> +<li><tt class="docutils literal">Product.filter()</tt> -&gt; <tt class="docutils literal">management.view_product</tt></li> +<li><tt class="docutils literal">Tag.filter()</tt> -&gt; <tt class="docutils literal">management.view_tag</tt></li> +<li><tt class="docutils literal">TestCase.get_components()</tt> -&gt; <tt class="docutils literal">testcases.view_testcase</tt></li> +<li><tt class="docutils literal">TestCase.get_notification_cc()</tt> -&gt; <tt class="docutils literal">testcases.view_testcase</tt></li> +<li><tt class="docutils literal">TestCase.filter()</tt> -&gt; <tt class="docutils literal">testcases.view_testcase</tt></li> +<li><tt class="docutils literal">TestCaseStatus.filter()</tt> -&gt; <tt class="docutils literal">testcases.view_testcasestatus</tt></li> +<li><tt class="docutils literal">TestExecution.filter()</tt> -&gt; <tt class="docutils literal">testruns.view_testexecution</tt></li> +<li><tt class="docutils literal">TestExecution.get_links()</tt> -&gt; <tt class="docutils literal">linkreference.view_linkreference</tt></li> +<li><tt class="docutils literal">TestExecutionStatus.filter()</tt> -&gt; <tt class="docutils literal">testruns.view_testexecutionstatus</tt></li> +<li><tt class="docutils literal">TestPlan.filter()</tt> -&gt; <tt class="docutils literal">testplans.view_testplan</tt></li> +<li><tt class="docutils literal">TestRun.get_cases()</tt> -&gt; <tt class="docutils literal">testruns.view_testrun</tt></li> +<li><tt class="docutils literal">TestRun.filter()</tt> -&gt; <tt class="docutils literal">testruns.view_testrun</tt></li> +<li><tt class="docutils literal">User.filter()</tt> -&gt; <tt class="docutils literal">auth.view_user</tt></li> +<li><tt class="docutils literal">Version.filter()</tt> -&gt; <tt class="docutils literal">management.view_version</tt></li> +</ul> +</li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Update documentation to reflect that test cases cannot be rearranged from +within a TestRun but only from a TestPlan. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1805">Issue #1805</a> (&#64;Prome88)</li> +<li>Incorrect code formatting for HTML &lt;pre&gt; tags. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1300">Issue #1300</a></li> +<li>Fix a bug with the history handler when importing objects with ID field set. +Resolves a crash when trying to restore backup data</li> +<li>Delete comments when Bug is removed</li> +</ul> +</div> +<div class="section" id="refactoring-testing"> +<h3>Refactoring &amp; testing</h3> +<ul class="simple"> +<li>Add linter to warn about missing backwards migrations callable in <tt class="docutils literal">RunPython</tt> +and fix all pylint offenses. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1774">Issue #1774</a> (Bryan Mutai)</li> +<li>Teach linter to check API for <tt class="docutils literal">&#64;permissions_required</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1089">Issue #1089</a></li> +<li>Refactor <tt class="docutils literal">NewExecutionForm</tt> to use ModelForm (Rosen Sasov)</li> +<li>Refactor <tt class="docutils literal">UpdateExecutionForm</tt> to use ModelForm (Rosen Sasov)</li> +<li>Add tests for <tt class="docutils literal">tcms.bugs.api</tt>. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1597">Issue #1597</a> (Mfon Eti-mfon)</li> +<li>Add tests for <tt class="docutils literal">tcms.bugs.views.New</tt>. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1598">Issue #1598</a> (Mfon Eti-mfon)</li> +<li>Add tests for <tt class="docutils literal">tcms.rpc.api.testplan</tt>. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1627">Issue #1627</a> (&#64;lcmtwn)</li> +<li>Add tests for <tt class="docutils literal">percentage()</tt> function References +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1602">Issue #1602</a> (Mariyan Garvanski)</li> +<li>Add the <tt class="docutils literal">migrations_order</tt> command to help test rollbacks</li> +<li>Adjust code for deprecation warnings from Django 3.1</li> +<li>Use Python 3 style <tt class="docutils literal">super()</tt> without arguments</li> +<li>Update login page to match our new website design</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/zh-CN#">Chinese Simplified translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/cs#">Czech translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/fr#">French translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/de#">German translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/hu#">Hungarian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/ja#">Japanese translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/pt-BR#">Portuguese, Brazilian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +</ul> +</div> +</div> +<div class="section" id="kiwi-tcms-enterprise-v8-6-mt"> +<h2>Kiwi TCMS Enterprise v8.6-mt</h2> +<ul class="simple"> +<li>Based on Kiwi TCMS v8.6</li> +</ul> +<p>For more info see +<a class="reference external" href="https://github.com/kiwitcms/enterprise/#v86-mt-23-aug-2020">https://github.com/kiwitcms/enterprise/#v86-mt-23-aug-2020</a></p> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p><a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">Backup</a> first! +If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +cd path/containing/docker-compose/ +docker-compose down +docker-compose pull +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +</pre> +<p>Refer to +<a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/installing_docker.html#upgrading">our documentation</a> +for more details!</p> +<p>Happy testing!</p> +</div> +Kiwi TCMS container images now available via Red Hat Quay.io2020-08-18T12:23:00+03:002020-08-18T12:23:00+03:00Kiwi TCMS Teamtag:None,2020-08-18:/blog/kiwi-tcms-team/2020/08/18/kiwi-tcms-container-images-now-available-via-red-hat-quayio/<p>Hello testers, we have very important news around how container images +for Kiwi TCMS will be distributed! Recently Docker has announced +several changes in their storage plans which makes it less viable for +our team to continue using their services in full!</p> +<h2>Information about official upstream container images</h2> +<p>The official …</p><p>Hello testers, we have very important news around how container images +for Kiwi TCMS will be distributed! Recently Docker has announced +several changes in their storage plans which makes it less viable for +our team to continue using their services in full!</p> +<h2>Information about official upstream container images</h2> +<p>The official upstream Kiwi TCMS container image will continue to be +publicly available via <a href="https://hub.docker.com/r/kiwitcms/kiwi">Docker Hub</a> +as before. In addition all existing and new images will be available via +<a href="https://quay.io/repository/kiwitcms/kiwi">Quay.io</a>. +These images are available as</p> +<ul> +<li><a href="https://hub.docker.com/r/kiwitcms/kiwi">kiwitcms/kiwi</a> (Docker Hub)</li> +<li><a href="https://quay.io/repository/kiwitcms/kiwi">quay.io/kiwitcms/kiwi</a> (Quay.io)</li> +</ul> +<p>Content is exactly the same between the two registries and you may use +the one which you like best!</p> +<p><strong>Warning:</strong> after November 1st 2020 older versions will not be available from +Docker Hub, only from Quay.io! The reason is that Docker is enforcing a +<a href="https://www.docker.com/pricing/retentionfaq">6 month image retention limit</a> +for free plans!</p> +<h2>Information about private containers for subscribers</h2> +<p>Subscribers enjoy the benefit of having read-only access to tagged versions of the +upstream Kiwi TCMS container images as well as access to tagged versions of +Kiwi TCMS Enterprise container images! Previously these containers were distributed +via Docker Hub and are now available via Quay.io:</p> +<ul> +<li><code>mrsenko/kiwitcms</code> -&gt; <code>quay.io/kiwitcms/version</code> (version tagged upstream images)</li> +<li><code>mrsenko/kiwitcms-enterprise</code> -&gt; <code>quay.io/kiwitcms/enterprise</code> (enterprise images)</li> +</ul> +<p><strong>Important:</strong> existing subscribers have been notified and granted access +to the new repositories on Quay.io. We advise you to update your +<code>docker-compose.yml</code> files and start using the new images at your earliest convenience!</p> +<p><strong>Warning:</strong> existing subscribers will continue having access to private +repositories on Docker Hub until December 31st 2020! Private repositories on +Docker Hub will become unavailable after January 31st, 2021 when Docker's new +storage plans will be forced into effect!</p> +<h2>Why did we chose Quay.io</h2> +<p>There are multiple container registry services available! We think Quay.io +delivers the best price/quality ratio for our own use-case. In particular +we like the billing model around number of private repositories instead the +one around the number of users in your organization. That's very similar +to how we provide access to Kiwi TCMS via our own subscriptions!</p> +<p>Also it just looks cool if you employ your imagination, especially +for non-native English speakers: quay -&gt; qu-ai -&gt; QA!</p> +<p><br> +Thanks for reading and happy testing!</p>QGIS has chosen Kiwi TCMS2020-08-11T14:00:00+03:002020-08-11T14:00:00+03:00Kiwi TCMS Teamtag:None,2020-08-11:/blog/kiwi-tcms-team/2020/08/11/qgis-has-chosen-kiwi-tcms/<p>We are happy to announce that <a href="https://qgis.org">QGIS</a> has chosen Kiwi TCMS +for the basis of their <em>Quality Assurance methodology and infrastructure</em> +improvement program! +Kiwi TCMS will play a central role in storing test case definitions, +organizing test cycles, and assigning and tracking test executions by testers +from the QGIS community …</p><p>We are happy to announce that <a href="https://qgis.org">QGIS</a> has chosen Kiwi TCMS +for the basis of their <em>Quality Assurance methodology and infrastructure</em> +improvement program! +Kiwi TCMS will play a central role in storing test case definitions, +organizing test cycles, and assigning and tracking test executions by testers +from the QGIS community.</p> +<div class="member-bio" style="margin-top: 2vh"> + <img src="/images/customers/qgis-color.png" style="float:left; margin-right: 1vw"> + + <p> + QGIS is a free and open source geographic information system which contains + desktop, server, web and mobile applications for various operating systems. + It is an established project with very large and diverse community and also + one of the very well known open source GIS systems. + </p> +</div> + +<p>The proposal +<a href="https://github.com/qgis/QGIS-Enhancement-Proposals/issues/180">QEP#180</a> is the +highest voted proposal in the +<a href="http://blog.qgis.org/2020/07/10/qgis-grant-programme-2020-results/">2020 QGIS Grant Program</a> +and has been awarded a budget of 5000€! +This grant will allow the proponents to spend significantly more time setting up the +infrastructure and planning a methodology for manual testing.</p> +<h2>Scope of proposal</h2> +<p><a href="https://github.com/qgis/QGIS-Enhancement-Proposals/issues/180">QEP#180</a> +aims to create the necessary infrastructure and methodology to organize and +encourage systematic testing before each QGIS release:</p> +<ul> +<li>Setup a test management system to organize test cycles, assign and track tests execution;</li> +<li>Elaborate and document a methodology to execute testing to help testers;</li> +<li>Resurrect and move the tester plugin to QGIS repositories. Publish it in the QGIS official repository</li> +<li>Create an initial set of relevant test cases;</li> +<li>Organize and execute the initial test cases for the next releases.</li> +</ul> +<p>This effort will steer members &amp; volunteers of the QGIS community towards a more systematic +and organized testing during a feature freeze period before a release. The focus here +is on integration testing, manual &amp; semi-automated workflows for important functionality +that should never regress and is hard or impossible to cover via unit tests.</p> +<p>The proposal is lead by Alexandre Neto, Giovanni Manghi and Alexander Bruy!</p> +<p><br> +On behalf of the Kiwi TCMS community welcome aboard and happy testing!</p>Kiwi TCMS Enterprise v8.5.2-mt2020-08-06T15:40:00+03:002020-08-06T15:40:00+03:00Kiwi TCMS Teamtag:None,2020-08-06:/blog/kiwi-tcms-team/2020/08/06/kiwi-tcms-enterprise-v852-mt/<p>We're happy to announce Kiwi TCMS Enterprise version 8.5.2-mt +and extended support hours for subscribers in America.</p> +<p><strong>Note:</strong> this is only available to customers with an active +<a class="reference external" href="/#subscriptions">Enterprise subscription</a>!</p> +<p>Docker images:</p> +<pre class="literal-block"> +mrsenko/kiwitcms-enterprise 8.5.2-mt 633291dd5219 887MB +</pre> +<div class="section" id="changes-since-kiwi-tcms-enterprise-v8-5-1-mt"> +<h2>Changes since Kiwi TCMS Enterprise v8.5.1-mt</h2> +<ul class="simple"> +<li>Based on …</li></ul></div><p>We're happy to announce Kiwi TCMS Enterprise version 8.5.2-mt +and extended support hours for subscribers in America.</p> +<p><strong>Note:</strong> this is only available to customers with an active +<a class="reference external" href="/#subscriptions">Enterprise subscription</a>!</p> +<p>Docker images:</p> +<pre class="literal-block"> +mrsenko/kiwitcms-enterprise 8.5.2-mt 633291dd5219 887MB +</pre> +<div class="section" id="changes-since-kiwi-tcms-enterprise-v8-5-1-mt"> +<h2>Changes since Kiwi TCMS Enterprise v8.5.1-mt</h2> +<ul class="simple"> +<li>Based on Kiwi TCMS v8.5</li> +<li>Update django-ses from 1.0.1 to 1.0.2</li> +<li>Update kiwitcms-github-app from 1.0 to 1.1</li> +</ul> +<p>This release includes improvements and bug-fixes for +<a class="reference external" href="https://github.com/kiwitcms/github-app#v11-05-aug-2020">kiwitcms-github-app</a>.</p> +<p>An important change is how issues reported via our <em>1-click bug report</em> feature +are presented on GitHub. For public repositories issues reported via +<a class="reference external" href="https://github.com/apps/kiwi-tcms">Kiwi TCMS + GitHub App integration</a> +will be opened by <em>&#64;kiwitcms-bot with Kiwi TCMS</em> as shown below:</p> +<img alt="" src="/images/kiwitcms-bot-gh-issue-reporter.png" /> +</div> +<div class="section" id="extended-support-hours"> +<h2>Extended support hours</h2> +<p>Working hours have been updated as follows:</p> +<ul class="simple"> +<li>09-21 UTC/Mon-Fri with response within 24 hours for Enterprise subscribers</li> +<li>09-17 UTC/Mon-Fri with response within 72 hours for Private Tenant subscribers</li> +</ul> +<p>Happy testing!</p> +</div> +Customize the information used for 1-click bug reports2020-07-11T14:20:00+03:002020-07-11T14:20:00+03:00Alexander Todorovtag:None,2020-07-11:/blog/atodorov/2020/07/11/customize-the-information-used-for-1-click-bug-reports/<p>Kiwi TCMS integration with 3rd party bug trackers supports the +<em>1-click bug report</em> feature. +However you may want to change how the initial information is structured or +even what exactly is written in the initial comment. This article +shows how to do this.</p> +<p>The default text used for 1-click bug …</p><p>Kiwi TCMS integration with 3rd party bug trackers supports the +<em>1-click bug report</em> feature. +However you may want to change how the initial information is structured or +even what exactly is written in the initial comment. This article +shows how to do this.</p> +<p>The default text used for 1-click bug reports gets compiled based on +information present in the TestExecution - Product, Version, TestCase.text, +etc. This is encapsulated in the +<code>tcms.issuetracker.base.IssueTrackerType._report_comment()</code> method. +You may extend the existing bug tracker integration code +with your own customizations. In this example I've extended the +<code>KiwiTCMS</code> bug tracker implementation but you can provide your own from +scratch</p> +<div class="highlight"><pre><span></span><code><span class="c1"># filename: mymodule.py</span> +<span class="k">class</span> <span class="nc">ExtendedBugTracker</span><span class="p">(</span><span class="n">KiwiTCMS</span><span class="p">):</span> + <span class="k">def</span> <span class="nf">_report_comment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">execution</span><span class="p">):</span> + <span class="n">comment</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">_report_comment</span><span class="p">(</span><span class="n">execution</span><span class="p">)</span> + + <span class="n">comment</span> <span class="o">+=</span> <span class="s2">&quot;----- ADDITIONAL INFORMATION -----</span><span class="se">\n\n</span><span class="s2">&quot;</span> + <span class="c1">#</span> + <span class="c1"># fetch more info from other sources</span> + <span class="c1">#</span> + <span class="n">comment</span> <span class="o">+=</span> <span class="s2">&quot;----- END ADDITIONAL INFORMATION -----</span><span class="se">\n</span><span class="s2">&quot;</span> + <span class="k">return</span> <span class="n">comment</span> +</code></pre></div> + + +<p>Then override the <code>EXTERNAL_BUG_TRACKERS</code> setting to include your customizations:</p> +<div class="highlight"><pre><span></span><code><span class="n">EXTERNAL_BUG_TRACKERS</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s1">&#39;mymodule.ExtendedBugTracker&#39;</span><span class="p">)</span> +</code></pre></div> + + +<p>and change the bug tracker type, via https://tcms.example.com/admin/testcases/bugsystem/, +to <em>mymodule.ExtendedBugTracker</em>.</p> +<p><strong>IMPORTANT</strong></p> +<ul> +<li>Information how to change settings can be found + <a href="https://kiwitcms.readthedocs.io/en/latest/installing_docker.html#customization">here</a></li> +<li><code>mymodule.py</code> may live anywhere on the filesystem but Python must be + able to import it</li> +<li>It is best to bundle all of your customizations into a Python package and + <code>pip3 install</code> it into your customized docker image</li> +<li>API documentation for bug tracker integration can be found + <a href="https://kiwitcms.readthedocs.io/en/latest/modules/tcms.issuetracker.html">here</a></li> +<li>Rebuilding the docker image is outside the scope of this article. Have a look + at this + <a href="https://github.com/MrSenko/kiwitcms-enterprise/blob/master/Dockerfile">Dockerfile</a> + for inspiration</li> +</ul> +<p>Happy testing!</p>Kiwi TCMS 8.52020-07-10T13:45:00+03:002020-07-10T13:45:00+03:00Kiwi TCMS Teamtag:None,2020-07-10:/blog/kiwi-tcms-team/2020/07/10/kiwi-tcms-85/<p>We're happy to announce Kiwi TCMS version 8.5!</p> +<p><strong>IMPORTANT:</strong> this is a medium sized release which includes many improvements, +database migrations, translation updates and new tests. +It is the third release to include contributions via our +<a class="reference external" href="https://kiwitcms.org/blog/tags/bounty-program/">open source bounty program</a>. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms …</a></p><p>We're happy to announce Kiwi TCMS version 8.5!</p> +<p><strong>IMPORTANT:</strong> this is a medium sized release which includes many improvements, +database migrations, translation updates and new tests. +It is the third release to include contributions via our +<a class="reference external" href="https://kiwitcms.org/blog/tags/bounty-program/">open source bounty program</a>. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +<p>Docker images:</p> +<pre class="literal-block"> +kiwitcms/kiwi latest 4379e2438e43 636 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 +</pre> +<div class="section" id="changes-since-kiwi-tcms-8-4"> +<h2>Changes since Kiwi TCMS 8.4</h2> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update django from 3.0.7 to 3.0.8</li> +<li>Update django-colorfield from 0.3.0 to 0.3.2</li> +<li>Update django-modern-rpc from 0.12.0 to 0.12.1</li> +<li>Update django-simple-history from 2.10.0 to 2.11.0</li> +<li>Update mysqlclient from 1.4.6 to 2.0.1</li> +<li>Update python-gitlab from 2.2.0 to 2.4.0</li> +<li>Update python-bugzilla from 2.3.0 to 2.5.0</li> +<li>Add middleware to warn for unapplied migrations. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1696">Issue #1696</a> (Bryan Mutai)</li> +<li>Add &quot;insert table&quot; button to SimpleMDE toolbar. References +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1531">Issue #1531</a> (Bryan Mutai)</li> +<li>Implement <a class="reference external" href="/blog/kiwi-tcms-team/2020/06/30/django-plugin-for-kiwi-tcms/">kiwitcms-django-plugin</a>. +Resolves <a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/693">Issue #693</a> (Bryan Mutai)</li> +<li>Add missing permission check for <tt class="docutils literal">TestExecution.add_link()</tt> API method (Rosen Sasov)</li> +<li>Add missing permission check for <tt class="docutils literal">TestExecution.remove_link()</tt> API method (Rosen Sasov)</li> +<li>Admin interface will now appear translated</li> +<li>Propagate server side API errors to the browser. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/625">Issue #625</a>, +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1333">Issue #1333</a></li> +<li>Improvements for Status Matrix telemetry page:<ul> +<li>Make the horizontal scroll bar at the bottom always visible</li> +<li>Make the header row always visible</li> +<li>Add button to show columns in reverse. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1682">Issue #1682</a></li> +<li>Make it possible to display TestExecutions from child TestPlans. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1683">Issue #1683</a></li> +</ul> +</li> +</ul> +</div> +<div class="section" id="database"> +<h3>Database</h3> +<ul class="simple"> +<li>Update existing Bug tracker records to match the changes introduced with +the new <tt class="docutils literal">EXTERNAL_BUG_TRACKERS</tt> setting</li> +</ul> +</div> +<div class="section" id="settings"> +<h3>Settings</h3> +<ul class="simple"> +<li>Add <tt class="docutils literal">EXTERNAL_BUG_TRACKERS</tt> setting which is a list of dotted class paths +representing external bug tracker integrations. Plugins and Kiwi TCMS admins +can now more easily include customized integrations</li> +</ul> +</div> +<div class="section" id="refactoring-testing"> +<h3>Refactoring &amp; testing</h3> +<ul class="simple"> +<li>Add new linter to check for label arguments in form field classes. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/738">Issue #738</a> (Bryan Mutai)</li> +<li>Add new linter to check if all forms inherit from <tt class="docutils literal">ModelForm</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1384">Issue #1384</a> (Bryan Mutai)</li> +<li>Enable pylint plugin <tt class="docutils literal">pylint.extensions.docparams</tt> and resolve errors. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1192">Issue #1192</a> (Bryan Mutai)</li> +<li>Migrate 'test-for-missing-migrations' from Travis CI to GitHub workflow. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1553">Issue #1553</a> (Bryan Mutai)</li> +<li>Add tests for <tt class="docutils literal">tcms.bugs.api.add_tag()</tt>. References +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1597">Issue #1597</a> (Mfon Eti-mfon)</li> +<li>Add tests for <tt class="docutils literal">tcms.bugs.api.remove_tag()</tt>. References +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1597">Issue #1597</a> (Mfon Eti-mfon)</li> +<li>Add test for <tt class="docutils literal">tcms.testplans.views.Edit</tt>. References +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1617">Issue #1617</a> (&#64;cmbahadir)</li> +<li>Add tests for <tt class="docutils literal">markdown2html()</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1659">Issue #1659</a> (Mariyan Garvanski)</li> +<li>Add test for Cyrillic support with MariaDB. References +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1770">Issue #1770</a></li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/zh-CN#">Chinese Simplified translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/zh-TW#">Chinese Traditional translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/fr#">French translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/hu#">Hungarian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/id#">Indonesian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/ja#">Japanese translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sw#">Swahili translation</a></li> +</ul> +</div> +</div> +<div class="section" id="kiwi-tcms-enterprise-v8-5-mt"> +<h2>Kiwi TCMS Enterprise v8.5-mt</h2> +<ul class="simple"> +<li>Based on Kiwi TCMS v8.5</li> +<li>Update django-ses from 0.8.14 to 1.0.1</li> +<li>Update kiwitcms-tenants from 1.1.1 to 1.2</li> +<li>Update social-auth-app-django from 3.4.0 to 4.0.0</li> +<li>Start tagging non-Enterprise images of <cite>kiwitcms/kiwi</cite> - will be provided +via separate private repository for enterprise customers. See +<a class="reference external" href="/blog/kiwi-tcms-team/2020/06/23/versioned-releases-of-kiwi-tcms/">here</a></li> +</ul> +<p>For more info see +<a class="reference external" href="https://github.com/MrSenko/kiwitcms-enterprise/#v85-mt-10-july-2020">https://github.com/MrSenko/kiwitcms-enterprise/#v85-mt-10-july-2020</a></p> +</div> +<div class="section" id="vote-for-kiwi-tcms"> +<h2>Vote for Kiwi TCMS</h2> +<p>Our website has been nominated in the <em>2020 .eu Web Awards</em> and +<a class="reference external" href="/blog/kiwi-tcms-team/2020/04/09/please-vote-for-kiwi-tcms-in-2020-eu-web-awards/">we've promised</a> +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!</p> +<ul class="simple"> +<li>Go to <a class="reference external" href="https://webawards.eurid.eu/?q=kiwitcms.eu">https://webawards.eurid.eu/?q=kiwitcms.eu</a>;</li> +<li>Point your mouse to the photo of our website and click the Thumbs Up button;</li> +<li>No email or registration required!</li> +</ul> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p><a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">Backup</a> first! +If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +cd path/containing/docker-compose/ +docker-compose down +docker-compose pull +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +</pre> +<p>Refer to +<a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/installing_docker.html#upgrading">our documentation</a> +for more details!</p> +<p>Happy testing!</p> +</div> +CfP: deployment, backup and upgrade best practices2020-07-07T16:55:00+03:002020-07-07T16:55:00+03:00Kiwi TCMS Teamtag:None,2020-07-07:/blog/kiwi-tcms-team/2020/07/07/cfp-deployment-backup-and-upgrade-best-practices/<p>Kiwi TCMS is opening a call for proposals: <strong>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 …</strong></p><p>Kiwi TCMS is opening a call for proposals: <strong>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?</strong></p> +<p>We are going to collect your feedback and update the existing documentation.</p> +<p>Please submit your responses here: +<a href="https://docs.google.com/forms/d/e/1FAIpQLSe-kioT_e3UHwV5irwLroR2Jsk5oYM_Ls6acVeLVcBn7Kpt7Q/viewform">https://docs.google.com/forms/d/e/1FAIpQLSe-kioT_e3UHwV5irwLroR2Jsk5oYM_Ls6acVeLVcBn7Kpt7Q/viewform</a>. +All fields are optional, including your email address!</p> +<p>Thank you and happy testing!</p>Django plugin for Kiwi TCMS2020-06-30T12:47:00+03:002020-06-30T12:47:00+03:00Kiwi TCMS Teamtag:None,2020-06-30:/blog/kiwi-tcms-team/2020/06/30/django-plugin-for-kiwi-tcms/<p>We're happy to announce the initial release of +<a class="reference external" href="https://github.com/kiwitcms/django-plugin">kiwitcms-django-plugin</a>! +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 +<a class="reference external" href="/blog/tags/bounty-program/">open source bounty program</a>.</p> +<p>To install:</p> +<pre class="literal-block"> +pip install kiwitcms-django-plugin +</pre> +<p>and then in …</p><p>We're happy to announce the initial release of +<a class="reference external" href="https://github.com/kiwitcms/django-plugin">kiwitcms-django-plugin</a>! +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 +<a class="reference external" href="/blog/tags/bounty-program/">open source bounty program</a>.</p> +<p>To install:</p> +<pre class="literal-block"> +pip install kiwitcms-django-plugin +</pre> +<p>and then in your <tt class="docutils literal">settings.py</tt> specify:</p> +<pre class="literal-block"> +TEST_RUNNER = 'tcms_django_plugin.TestRunner' +</pre> +<p>This plugin needs the <tt class="docutils literal"><span class="pre">~/.tcms.conf</span></tt> configuration file:</p> +<pre class="literal-block"> +[tcms] +url = https://tcms.server/xml-rpc/ +username = your-username +password = your-password +</pre> +<p>Product information and how to report can be controlled via environment variables +which are documented +<a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/plugins/automation-frameworks.html#plugin-configuration">here</a>. +Example results from the plugin's own test suite are reported in +<a class="reference external" href="https://tcms.kiwitcms.org/plan/296/">TP-296</a>!</p> +<p>Happy testing!</p> +Versioned releases of Kiwi TCMS2020-06-23T00:12:00+03:002020-06-23T00:12:00+03:00Kiwi TCMS Teamtag:None,2020-06-23:/blog/kiwi-tcms-team/2020/06/23/versioned-releases-of-kiwi-tcms/<p>We are happy to announce that versioned releases of Kiwi TCMS container +images are now available to customers with an active +<a href="/#subscriptions">enterprise subscription</a>.</p> +<p>For a long time our release policy has been to push only <code>latest</code> version +of our upstream <code>kiwitcms/kiwi</code> containers. This upstream channel doesn't +carry version tags …</p><p>We are happy to announce that versioned releases of Kiwi TCMS container +images are now available to customers with an active +<a href="/#subscriptions">enterprise subscription</a>.</p> +<p>For a long time our release policy has been to push only <code>latest</code> version +of our upstream <code>kiwitcms/kiwi</code> 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.</p> +<p>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 <em>Kiwi TCMS Enterprise</em> containers during the +same time.</p> +<p>Starting today versioned releases of Kiwi TCMS (single tenant) will be available +via the <code>mrsenko/kiwitcms</code> private repository on Docker Hub. +This repository includes tagged versions of the same docker images coming from +the <code>kiwitcms/kiwi</code> channel! +Access is granted automatically to all existing enterprise subscribers!</p>Kiwi TCMS 8.42020-06-03T23:06:00+03:002020-06-03T23:06:00+03:00Kiwi TCMS Teamtag:None,2020-06-03:/blog/kiwi-tcms-team/2020/06/03/kiwi-tcms-84/<p>We're happy to announce Kiwi TCMS version 8.4!</p> +<p><strong>IMPORTANT:</strong> this is a medium sized release which includes +minor security fixes, many improvements &amp; bug-fixes and translations +in several new languages. It is the second release to include +contributions via our +<a class="reference external" href="https://kiwitcms.org/blog/tags/bounty-program/">open source bounty program</a>. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https …</a></p><p>We're happy to announce Kiwi TCMS version 8.4!</p> +<p><strong>IMPORTANT:</strong> this is a medium sized release which includes +minor security fixes, many improvements &amp; bug-fixes and translations +in several new languages. It is the second release to include +contributions via our +<a class="reference external" href="https://kiwitcms.org/blog/tags/bounty-program/">open source bounty program</a>. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +<p>Docker images:</p> +<pre class="literal-block"> +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 +</pre> +<div class="section" id="changes-since-kiwi-tcms-8-3"> +<h2>Changes since Kiwi TCMS 8.3</h2> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update Django from 3.0.5 to 3.0.7 - +<a class="reference external" href="https://docs.djangoproject.com/en/3.0/releases/3.0.7/">security update</a> +for functionality not used by Kiwi TCMS</li> +<li>Update bleach from 3.1.4 to 3.1.5</li> +<li>Update django-grappelli from 2.14.1 to 2.14.2</li> +<li>Update django-simple-history from 2.9.0 to 2.10.0</li> +<li>Update markdown from 3.2.1 to 3.2.2</li> +<li>Update pygithub from 1.50 to 1.51</li> +<li>Update python-redmine from 2.2.1 to 2.3.0</li> +<li>Update patternfly from 3.59.4 to 3.59.5</li> +<li>Add <tt class="docutils literal">manage.py set_domain</tt> command to change Kiwi TCMS domain. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/971">Issue #971</a> (Ivajlo Karabojkov)</li> +<li>GitHub bug details now works for private issues</li> +<li>Gitlab bug details now works for private issues</li> +<li>JIRA bug details now works for private issues</li> +<li>Redmine bug details now works for private issues</li> +<li>New feature: 1-click bug report for Bugzilla</li> +<li>New feature: 1-click bug report for Gitlab</li> +<li>New feature: 1-click bug report for JIRA</li> +<li>New feature: 1-click bug report for Redmine</li> +<li>Reverting to older historical version via Admin panel now redirects +to object which was reverted. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1074">Issue #1074</a></li> +<li>Documentation updates</li> +</ul> +<div class="admonition important"> +<p class="first admonition-title">Important</p> +<p class="last">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:</p> +</div> +<img src="/images/screenshots/007_bugtracker_github.png" + style="background-color:inherit; margin-left:0; float: none"> + +<img src="/images/screenshots/007_bugtracker_jira.png" + style="background-color:inherit; margin-left:0; float: none"> + +<br><div class="admonition note"> +<p class="first admonition-title">Note</p> +<p class="last">Some external bug trackers like Bugzilla &amp; 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!</p> +</div> +</div> +<div class="section" id="database"> +<h3>Database</h3> +<ul class="simple"> +<li>Force creation of missing permissions for m2m fields from the <cite>tcms.bugs</cite> app:<ul> +<li><tt class="docutils literal">bugs.add_bug_tags</tt></li> +<li><tt class="docutils literal">bugs.change_bug_tags</tt></li> +<li><tt class="docutils literal">bugs.delete_bug_tags</tt></li> +<li><tt class="docutils literal">bugs.view_bug_tags</tt></li> +<li><tt class="docutils literal">bugs.add_bug_executions</tt></li> +<li><tt class="docutils literal">bugs.change_bug_execution</tt></li> +<li><tt class="docutils literal">bugs.delete_bug_execution</tt></li> +<li><tt class="docutils literal">bugs.view_bug_executions</tt></li> +</ul> +</li> +</ul> +<div class="admonition warning"> +<p class="first admonition-title">Warning</p> +<p class="last">TCMS admins of existing installations will have to assign these by hand +to users/groups who will be allowed to change tags on bugs!</p> +</div> +</div> +<div class="section" id="settings"> +<h3>Settings</h3> +<ul class="simple"> +<li>Define the <tt class="docutils literal">KIWI_DISABLE_BUGTRACKER=yes</tt> environment variable if you wish +to disable the internal bug tracker. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1370">Issue #1370</a></li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Workaround missing MariaDB CHARSET/COLLATION support, see our +<tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1700">Issue #1700</a></li> +<li>Install missing <tt class="docutils literal">/usr/bin/mysql</tt> in container</li> +<li>Warning message for unconfigured Kiwi TCMS domain does not show HTML tags in +Admin anymore. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/964">Issue #964</a></li> +<li>Unescape the <tt class="docutils literal">&amp;amp;</tt> string when trying to open new windows after +clicking the 'Report bug' button in TestExecution. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1533">Issue #1533</a></li> +<li>Try harder to restore the original navigation menu instead of +leaving bogus menu items. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/991">Issue #991</a></li> +<li>Robot Framework plugin is now GA. Close +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/984">Issue #984</a></li> +<li>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</li> +<li>Update documented signature for API method <tt class="docutils literal">TestCase.add_component</tt> to +match current behavior, see <a class="reference external" href="https://stackoverflow.com/questions/61648405/">https://stackoverflow.com/questions/61648405/</a></li> +</ul> +</div> +<div class="section" id="refactoring-testing"> +<h3>Refactoring &amp; testing</h3> +<ul class="simple"> +<li>Migrate <tt class="docutils literal"><span class="pre">check-docs-source-in-git</span></tt> to GitHub workflows. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1552">Issue #1552</a> (&#64;Prome88)</li> +<li>Migrate <tt class="docutils literal"><span class="pre">build-for-pypi</span></tt> to GitHub workflows. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1554">Issue #1554</a> (&#64;lcmtwn)</li> +<li>Add tests for <tt class="docutils literal">TestCaseAdmin</tt> (Mariyan Garvanski)</li> +<li>Add tests for <tt class="docutils literal">BugAdmin</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1596">Issue #1596</a> (Mariyan Garvanski)</li> +<li>Omit <tt class="docutils literal">utils/test</tt> from coverage reports. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1631">Issue #1631</a> (&#64;cmbahadir)</li> +<li>Omit <tt class="docutils literal">tcms/tests</tt> from coverage reports. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1630">Issue #1630</a> (&#64;cmbahadir)</li> +<li>Add tests for <tt class="docutils literal">tcms.core.forms.fields</tt> - Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1629">Issue #1629</a> (&#64;cmbahadir)</li> +<li>Add tests for <tt class="docutils literal">TestExecution.update()</tt> for <tt class="docutils literal">case_text_version</tt> field +(Rosen Sasov)</li> +<li>Refactor bulk-update methods in TestRun page to use JSON-RPC. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1063">Issue #1063</a> (Rosen Sasov)</li> +<li>Start using <tt class="docutils literal">_change_reason</tt> instead of <tt class="docutils literal">changeReason</tt> field in +django-simple-history</li> +<li>Remove unused <tt class="docutils literal">StripURLField</tt> &amp; <tt class="docutils literal">Version.string_to_id()</tt></li> +<li>Refactoring around TestCase and TestPlan cloning methods</li> +<li>Start testing with the internal bug tracker disabled</li> +<li>Start testing with all supported external bug trackers. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1079">Issue #1079</a></li> +<li>Start Codecov for coverage reports</li> +<li>Add tests for presence of mysql/psql binaries in container</li> +<li>Add <tt class="docutils literal">APIPermissionsTestCase</tt> with example in <tt class="docutils literal">TestVersionCreatePermissions</tt></li> +<li>Move most test jobs away from Travis CI to GitHub workflows</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/bn#">Bengali translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/bg#">Bulgarian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/zh-CN#">Chinese Simplified translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/fr#">French translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/de#">German translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/hi#">Hindi translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/hu#">Hungarian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/id#">Indonesian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/ja#">Japanese translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/ko#">Korean translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/ru#">Russian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/es-ES#">Spanish translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sw#">Swahili translation</a></li> +</ul> +<div class="admonition note"> +<p class="first admonition-title">Note</p> +<p class="last">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 +<a class="reference external" href="https://opencollective.com/kiwitcms/expenses/18663">OpenCollective #18663</a>. +If you are a native in these languages and spot strings which don't +sit well with you we kindly ask you to +<a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/contribution.html#translation">contribute a better translation</a> +via the built-in translation editor!</p> +</div> +</div> +</div> +<div class="section" id="kiwi-tcms-enterprise-v8-4-mt"> +<h2>Kiwi TCMS Enterprise v8.4-mt</h2> +<ul class="simple"> +<li>Based on Kiwi TCMS v8.4</li> +<li>Update social-auth-app-django from 3.1.0 to 3.4.0</li> +<li>Add django-python3-ldap add-on for LDAP logins</li> +</ul> +<p>For more info see +<a class="reference external" href="https://github.com/MrSenko/kiwitcms-enterprise/#v84-mt-03-june-2020">https://github.com/MrSenko/kiwitcms-enterprise/#v84-mt-03-june-2020</a></p> +</div> +<div class="section" id="vote-for-kiwi-tcms"> +<h2>Vote for Kiwi TCMS</h2> +<p>Our website has been nominated in the <em>2020 .eu Web Awards</em> and +<a class="reference external" href="/blog/kiwi-tcms-team/2020/04/09/please-vote-for-kiwi-tcms-in-2020-eu-web-awards/">we've promised</a> +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!</p> +<ul class="simple"> +<li>Go to <a class="reference external" href="https://webawards.eurid.eu/?q=kiwitcms.eu">https://webawards.eurid.eu/?q=kiwitcms.eu</a>;</li> +<li>Point your mouse to the photo of our website and click the Thumbs Up button;</li> +<li>No email or registration required!</li> +</ul> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p><a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">Backup</a> first! +If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +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 +</pre> +<p>Refer to +<a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/installing_docker.html#upgrading">our documentation</a> +for more details!</p> +<p>Happy testing!</p> +</div> +Kiwi TCMS is partnering up with Pionir2020-05-26T12:40:00+03:002020-05-26T12:40:00+03:00Kiwi TCMS Teamtag:None,2020-05-26:/blog/kiwi-tcms-team/2020/05/26/kiwi-tcms-is-partnering-up-with-pionir/<p>We are happy to announce that Kiwi TCMS is going to partner with +<a href="https://pionir.org/">Pionir</a> 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 …</p><p>We are happy to announce that Kiwi TCMS is going to partner with +<a href="https://pionir.org/">Pionir</a> 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.</p> +<p><img style="background-color:inherit; margin-left:0" + src="/images/pionir_students.jpg" + alt="Pionir students"></p> +<p>This is not our first collaboration - the students are already +aware of the Kiwi TCMS project and last year they participated in +<a href="/blog/kiwi-tcms-team/2019/08/09/kiwi-tcms-conference-presence-aw2019/">presentation &amp; workshop hosted by Alex</a>. +Zamphyr, the organization behind Pionir, is also one of the first open source projects +on our OSS program!</p> +<h2>Black boxes for black-box testing</h2> +<p>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.</p> +<p>The idea for having something unknown to explore &amp; train your skills first comes +from <a href="http://blackboxpuzzles.workroomprds.com/">James Lyndsay’s Black Box Puzzles</a> and +was more recently implemented by +<a href="http://blog.brainforit.com/2017/02/06/black-boxes-for-black-box-testing/">Claudiu Draghia</a>. +Now it's our turn!</p> +<h2>Project description</h2> +<p>Pionir will be developing hardware black boxes for teaching exploratory testing in +cooperation with Kiwi TCMS. We have dedicated +<a href="https://opencollective.com/kiwitcms/expenses/18960">€2000 from our bounty program</a> +for students of the free school towards completing this project.</p> +<blockquote> +<p>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.</p> +<p>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.</p> +</blockquote> +<p>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 +<a href="https://github.com/kiwitcms">https://github.com/kiwitcms</a> to host the various boxes.</p> +<p>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!</p> +<h2>Call for sponsors</h2> +<p>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 +<a href="https://opencollective.com/kiwitcms#section-contribute">Collective</a>. +You can contribute as low as € 1! The entire budget will be distributed to the community!</p> +<h2>Vote for Kiwi TCMS</h2> +<p>Our website has been nominated in the <em>2020 .eu Web Awards</em> and +<a href="/blog/kiwi-tcms-team/2020/04/09/please-vote-for-kiwi-tcms-in-2020-eu-web-awards/">we've promised</a> +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!</p> +<ul> +<li>Go to <a href="https://webawards.eurid.eu/?q=kiwitcms.eu">https://webawards.eurid.eu/?q=kiwitcms.eu</a>;</li> +<li>Point your mouse to the photo of our website and click the Thumbs Up &#128077; button;</li> +<li>No email or registration required!</li> +</ul> +<p>Happy testing!</p>Robot Framework plugin for Kiwi TCMS2020-05-06T11:57:00+03:002020-05-06T11:57:00+03:00Kiwi TCMS Teamtag:None,2020-05-06:/blog/kiwi-tcms-team/2020/05/06/robot-framework-plugin-for-kiwi-tcms/<p>We're happy to announce the initial release of +<a class="reference external" href="https://github.com/kiwitcms/robotframework-plugin">kiwitcms-robotframework-plugin</a>! +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 +<a class="reference external" href="https://www.meetup.com/Robot-Framework-Milano/events/269468758/">Robot Framework Milano user-group</a>.</p> +<p>To …</p><p>We're happy to announce the initial release of +<a class="reference external" href="https://github.com/kiwitcms/robotframework-plugin">kiwitcms-robotframework-plugin</a>! +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 +<a class="reference external" href="https://www.meetup.com/Robot-Framework-Milano/events/269468758/">Robot Framework Milano user-group</a>.</p> +<p>To install:</p> +<pre class="literal-block"> +pip install kiwitcms-robotframework-plugin +</pre> +<p>and then make use of it like so:</p> +<pre class="literal-block"> +robot --listener zealand.listener.KiwiTCMS +</pre> +<p>The plugin needs the <tt class="docutils literal"><span class="pre">~/.tcms.conf</span></tt> configuration file:</p> +<pre class="literal-block"> +[tcms] +url = https://tcms.server/xml-rpc/ +username = your-username +password = your-password +</pre> +<p>and you can also specify the <tt class="docutils literal">${plan_id}</tt>, <tt class="docutils literal">${product}</tt> and <tt class="docutils literal">${build_user_email}</tt> 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 +<a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/plugins/automation-frameworks.html#plugin-configuration">here</a>.</p> +<p>This plugin uses the upstream +<a class="reference external" href="https://github.com/robotframework/WebDemo">robotframework/WebDemo</a> test suite +with <tt class="docutils literal">SeleniumLibrary</tt> in a combination with a downstream test with the +<tt class="docutils literal">OperatingSystem</tt> library. The results are reported in +<a class="reference external" href="https://tcms.kiwitcms.org/plan/290/">TP-290</a>. For more information checkout our +<a class="reference external" href="https://github.com/kiwitcms/robotframework-plugin">package repository</a> on GitHub!</p> +<p>Happy testing!</p> +Kiwi TCMS open source bounty program, Round 022020-05-01T13:15:00+03:002020-05-01T13:15:00+03:00Kiwi TCMS Teamtag:None,2020-05-01:/blog/kiwi-tcms-team/2020/05/01/kiwi-tcms-open-source-bounty-program-round-02/<p>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 +<a href="/blog/kiwi-tcms-team/2020/04/17/kiwi-tcms-open-source-bounty-program-round-01/">Round 01</a>!</p> +<h2>Bounties announced in Round 02</h2> +<p>Custom pylint …</p><p>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 +<a href="/blog/kiwi-tcms-team/2020/04/17/kiwi-tcms-open-source-bounty-program-round-01/">Round 01</a>!</p> +<h2>Bounties announced in Round 02</h2> +<p>Custom pylint plugins:</p> +<p><a href="https://github.com/kiwitcms/Kiwi/issues/736">#736</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/738">#738</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1126">#1126</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1303">#1303</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1384">#1384</a></p> +<p>Automation tests:</p> +<p><a href="https://github.com/kiwitcms/Kiwi/issues/1596">#1596</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1597">#1597</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1598">#1598</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1599">#1599</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1600">#1600</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1601">#1601</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1602">#1602</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1603">#1603</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1604">#1604</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1605">#1605</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1606">#1606</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1607">#1607</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1608">#1608</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1609">#1609</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1610">#1610</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1611">#1611</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1612">#1612</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1613">#1613</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1614">#1614</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1615">#1615</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1616">#1616</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1617">#1617</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1618">#1618</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1619">#1619</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1620">#1620</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1621">#1621</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1622">#1622</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1623">#1623</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1624">#1624</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1625">#1625</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1626">#1626</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1627">#1627</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1628">#1628</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1629">#1629</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1630">#1630</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1631">#1631</a></p> +<h2>Call for sponsors</h2> +<p>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 +<a href="https://opencollective.com/kiwitcms#section-contribute">Collective</a>. +You can contribute as low as € 1! The entire budget will be distributed to the community!</p> +<h2>Vote for Kiwi TCMS</h2> +<p>Our website has been nominated in the <em>2020 .eu Web Awards</em> and +<a href="/blog/kiwi-tcms-team/2020/04/09/please-vote-for-kiwi-tcms-in-2020-eu-web-awards/">we've promised</a> +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!</p> +<ul> +<li>Go to <a href="https://webawards.eurid.eu/?q=kiwitcms.eu">https://webawards.eurid.eu/?q=kiwitcms.eu</a>;</li> +<li>Point your mouse to the photo of our website and click the Thumbs Up &#128077; button;</li> +<li>No email or registration required!</li> +</ul> +<p>Happy testing!</p>Kiwi TCMS 8.32020-04-27T06:50:00+03:002020-04-27T06:50:00+03:00Kiwi TCMS Teamtag:None,2020-04-27:/blog/kiwi-tcms-team/2020/04/27/kiwi-tcms-83/<p>We're happy to announce Kiwi TCMS version 8.3!</p> +<p><strong>IMPORTANT:</strong> 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 +<a class="reference external" href="/blog/kiwi-tcms-team/2020/04/17/kiwi-tcms-open-source-bounty-program-round-01/">open source bounty program</a>. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https …</a></p><p>We're happy to announce Kiwi TCMS version 8.3!</p> +<p><strong>IMPORTANT:</strong> 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 +<a class="reference external" href="/blog/kiwi-tcms-team/2020/04/17/kiwi-tcms-open-source-bounty-program-round-01/">open source bounty program</a>. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +<p>Docker images:</p> +<pre class="literal-block"> +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 +</pre> +<div class="section" id="changes-since-kiwi-tcms-8-2"> +<h2>Changes since Kiwi TCMS 8.2</h2> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update django-colorfield from 0.2.2 to 0.3.0</li> +<li>Update django-simple-history from 2.8.0 to 2.9.0</li> +<li>Update prismjs from 1.19.0 to 1.20.0</li> +<li>Update psycopg2 from 2.8.4 to 2.8.5</li> +<li>Update pygithub from 1.47 to 1.50</li> +<li>Update python-gitlab from 2.1.2 to 2.2.0</li> +<li>It is now possible to reopen closed bugs - Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1152">Issue #1152</a> (&#64;cmbahadir)</li> +<li>Visual improvements for Status matrix telemetry:<ul> +<li>columns now link to test runs</li> +<li>tool-tips show test run summary</li> +</ul> +</li> +<li>Show TOTAL in tool-tip for Execution trends telemetry</li> +<li>Self-signed SSL certificate is now built more frequently and is valid +for 10 years</li> +<li>Improved documentation around self-signed certificates</li> +<li>Improved documentation around e-mail backend configuration. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1070">Issue #1070</a> +(&#64;Schwarzkrieger)</li> +</ul> +</div> +<div class="section" id="api"> +<h3>API</h3> +<ul class="simple"> +<li>Methods <tt class="docutils literal">TestPlan.create</tt>, <tt class="docutils literal">TestPlan.update</tt> and <tt class="docutils literal">TestRun.update</tt> +now use Django's ModelForm to properly validate input data against the model</li> +<li>Method <tt class="docutils literal">TestCase.update</tt> now also accepts username and email values for +fields <tt class="docutils literal">author</tt>, <tt class="docutils literal">default_tester</tt> and <tt class="docutils literal">reviewer</tt></li> +</ul> +</div> +<div class="section" id="refactoring"> +<h3>Refactoring</h3> +<ul class="simple"> +<li>Migrate bandit test job to GitHub workflows, Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1550">Issue #1550</a> (&#64;lcmtwn)</li> +<li>Migrate doc8 test job to GitHub workflows. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1551">Issue #1551</a> (&#64;Prome88)</li> +<li>Add 2 more tests (Mariyan Garvanski)</li> +<li>Convert TP edit page to class based view</li> +<li>Convert forms to ModelForm</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/zh-CN#">Chinese Simplified translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/de#">German translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/fr#">French translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/pt-BR#">Portuguese, Brazilian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/ru#">Russian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/vi#">Vietnamese translation</a></li> +</ul> +</div> +</div> +<div class="section" id="kiwi-tcms-enterprise-v8-3-mt"> +<h2>Kiwi TCMS Enterprise v8.3-mt</h2> +<p>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 +<a class="reference external" href="https://github.com/MrSenko/kiwitcms-enterprise/#v83-mt-27-apr-2020">https://github.com/MrSenko/kiwitcms-enterprise/#v83-mt-27-apr-2020</a></p> +</div> +<div class="section" id="vote-for-kiwi-tcms"> +<h2>Vote for Kiwi TCMS</h2> +<p>Our website has been nominated in the <em>2020 .eu Web Awards</em> and +<a class="reference external" href="/blog/kiwi-tcms-team/2020/04/09/please-vote-for-kiwi-tcms-in-2020-eu-web-awards/">we've promised</a> +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!</p> +<ul class="simple"> +<li>Go to <a class="reference external" href="https://webawards.eurid.eu/?q=kiwitcms.eu">https://webawards.eurid.eu/?q=kiwitcms.eu</a>;</li> +<li>Point your mouse to the photo of our website and click the Thumbs Up &amp;#128077; button;</li> +<li>No email or registration required!</li> +</ul> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p><a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">Backup</a> first! +If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +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 +</pre> +<p>Refer to +<a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/installing_docker.html#upgrading">our documentation</a> +for more details!</p> +<p>Happy testing!</p> +</div> +Kiwi TCMS open source bounty program, Round 012020-04-17T12:53:00+03:002020-04-17T12:53:00+03:00Kiwi TCMS Teamtag:None,2020-04-17:/blog/kiwi-tcms-team/2020/04/17/kiwi-tcms-open-source-bounty-program-round-01/<p><img src="/images/bounty_program.png" + alt="bounty program banner" + style="float:none;margin-left:0"></p> +<p>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 …</p><p><img src="/images/bounty_program.png" + alt="bounty program banner" + style="float:none;margin-left:0"></p> +<p>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.</p> +<h2>Who is eligible to participate</h2> +<p>Everyone who meets the following criteria is eligible to participate:</p> +<ul> +<li>Has an account on <a href="https://opencollective.com">https://opencollective.com</a> - needed to follow program updates + and request payments</li> +<li>Has a bank account - needed for actual money transfer, more info below!</li> +</ul> +<p>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.</p> +<h2>Engagement rules</h2> +<ul> +<li>Program will be split into multiple rounds as we work to clearly define + what needs to be done and adjust priorities</li> +<li>News and updates will be posted at <a href="https://opencollective.com/kiwitcms/updates/">https://opencollective.com/kiwitcms/updates/</a></li> +<li>You are expected to mostly work alone on issues</li> +<li>Technical discussion will be happening via GitHub pull requests and/or GitHub issues + under <a href="https://github.com/kiwitcms/Kiwi">https://github.com/kiwitcms/Kiwi</a> unless indicated otherwise</li> +<li>Translation related discussion will be happening via Crowdin under + <a href="https://crowdin.com/project/kiwitcms/discussions">https://crowdin.com/project/kiwitcms/discussions</a> when needed</li> +<li>Do not contact individual team members privately, we are going to ignore such messages</li> +</ul> +<h2>FIFO order for code review</h2> +<ul> +<li>Contributions will be reviewed and merged in a rolling <em>first-in-first-out</em> order, + that is we review 1 PR and while waiting for updates continue on the next in the queue</li> +<li>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</li> +<li>Please comment on issues and work together with other community members to + split the work and avoid collisions as much as possible</li> +</ul> +<h2>About issues</h2> +<p>Our team will try to clearly describe each task and what constitutes a +successfully completed task, e.g. <em>definition of done</em> (DoD). If this isn't the case +please ask questions and seek clarification about such tasks.</p> +<ul> +<li>Only Issues under the <a href="https://github.com/kiwitcms/Kiwi/milestone/4">bounty-program milestone</a> + <strong>AND</strong> labelled with a specific monetary amount are eligible for payout!</li> +<li>Unlabelled issues need further refinement before they can be accepted for bounties!</li> +</ul> +<h2>Payout rules</h2> +<p>Once DoD has been met and the contribution is merged you may claim the assigned bounty. +You must perform the following steps:</p> +<ul> +<li><a href="https://opencollective.com/kiwitcms/expenses/new">Submit an expense</a> to the + Kiwi TCMS Collective</li> +<li>All expenses submitted to the Kiwi TCMS Collective must follow the invoicing rules + of our Fiscal Host. + <a href="https://docs.google.com/document/d/1-unqsnko4Eaza3fSuVAUFqvhMwe-h1V8jhruTDBjrUY/copy">Here is an invoice template (Google Doc)</a> + you can use. Fill-in the blue parts and leave the black parts</li> +<li>Invoice &amp; expense description contains the number of issue(s) and PR(s) for which + bounty is claimed</li> +</ul> +<p><strong>Identity cross validation:</strong></p> +<p>Once an expense has been submitted add a comment with your GitHub/Crowdin username +to it + open a +<a href="https://github.com/kiwitcms/Kiwi/issues/new?assignees=atodorov&amp;labels=&amp;template=claim_bounty.md&amp;title=">new issue in GitHub</a> +/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.</p> +<p><strong>Note on bank transfers</strong></p> +<p>A message from our <a href="https://opencollective.com/europe">Fiscal Host</a>:</p> +<blockquote> +<p>We currently prefer to do payouts using bank transfers. +We used to support PayPal but fees were way too high for the collectives.</p> +<p>About bank transfer, we do EU transfers as well as non EU (which takes more time obviously).</p> +<p>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.</p> +</blockquote> +<p>It looks like the fastest &amp; cheapest way to get paid is via Revolut account if you have one, +followed by standard bank transfer and PayPal account is last!</p> +<h2>Bounties: translation related tasks</h2> +<ul> +<li>Chinese Simplified - + <a href="https://github.com/kiwitcms/Kiwi/issues/1459">#1459</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/1460">#1460</a> + <a href="https://github.com/kiwitcms/Kiwi/issues/1461">#1461</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/1462">#1462</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/1463">#1463</a></li> +<li>Hindi - + <a href="https://github.com/kiwitcms/Kiwi/issues/1464">#1464</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/1465">#1465</a> + <a href="https://github.com/kiwitcms/Kiwi/issues/1466">#1466</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/1467">#1467</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/1468">#1468</a></li> +<li>Indonesian - + <a href="https://github.com/kiwitcms/Kiwi/issues/1469">#1469</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/1470">#1470</a> + <a href="https://github.com/kiwitcms/Kiwi/issues/1471">#1471</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/1472">#1472</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/1473">#1473</a></li> +<li>Bengali - + <a href="https://github.com/kiwitcms/Kiwi/issues/1474">#1474</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/1475">#1475</a> + <a href="https://github.com/kiwitcms/Kiwi/issues/1476">#1476</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/1477">#1477</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/1478">#1478</a></li> +<li>German - + <a href="https://github.com/kiwitcms/Kiwi/issues/1505">#1505</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/1506">#1506</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/1507">#1507</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/1508">#1508</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/1509">#1509</a></li> +<li>Japanese - + <a href="https://github.com/kiwitcms/Kiwi/issues/1489">#1489</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/1490">#1490</a> + <a href="https://github.com/kiwitcms/Kiwi/issues/1491">#1491</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/1492">#1492</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/1493">#1493</a></li> +<li>Swahili - + <a href="https://github.com/kiwitcms/Kiwi/issues/1494">#1494</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/1495">#1495</a> + <a href="https://github.com/kiwitcms/Kiwi/issues/1497">#1497</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/1498">#1498</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/1499">#1499</a></li> +<li>Vietnamese - + <a href="https://github.com/kiwitcms/Kiwi/issues/1484">#1484</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/1485">#1485</a> + <a href="https://github.com/kiwitcms/Kiwi/issues/1486">#1486</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/1487">#1487</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/1488">#1488</a></li> +<li>Korean - + <a href="https://github.com/kiwitcms/Kiwi/issues/1479">#1479</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/1480">#1480</a> + <a href="https://github.com/kiwitcms/Kiwi/issues/1481">#1481</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/1482">#1482</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/1483">#1483</a></li> +</ul> +<h2>Bounties: test automation plugins</h2> +<ul> +<li>Django test runner reporting plugin - + <a href="https://github.com/kiwitcms/Kiwi/issues/693">#693</a></li> +<li>py.test reporting plugin - <a href="https://github.com/kiwitcms/Kiwi/issues/1511">#1511</a></li> +<li>JUnit plugin: annotation &amp; improvement for test case mapping - + <a href="https://github.com/kiwitcms/Kiwi/issues/1512">#1512</a></li> +<li>TestNG plugin - + <a href="https://github.com/kiwitcms/Kiwi/issues/692">#692</a></li> +</ul> +<h2>Bounties: assorted technical issues</h2> +<ul> +<li>pylint - + <a href="https://github.com/kiwitcms/Kiwi/issues/1192">#1192</a></li> +<li>JavaScript: Add buttons for creating tables in text editor - + <a href="https://github.com/kiwitcms/Kiwi/issues/1531">#1531</a></li> +<li>Migration from Travis CI to GitHub workflows - + <a href="https://github.com/kiwitcms/Kiwi/issues/1550">#1550</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/1551">#1551</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/1552">#1552</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/1553">#1553</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/1554">#1554</a></li> +</ul> +<h2>Call for sponsors</h2> +<p>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 +<a href="https://opencollective.com/kiwitcms#section-contribute">Collective</a>. +You can contribute as low as € 1! The entire budget will be distributed to the community!</p> +<h2>Vote for Kiwi TCMS</h2> +<p>Our website has been nominated in the <em>2020 .eu Web Awards</em> and +<a href="/blog/kiwi-tcms-team/2020/04/09/please-vote-for-kiwi-tcms-in-2020-eu-web-awards/">we've promised</a> +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!</p> +<ul> +<li>Go to <a href="https://webawards.eurid.eu/?q=kiwitcms.eu">https://webawards.eurid.eu/?q=kiwitcms.eu</a>;</li> +<li>Point your mouse to the photo of our website and click the Thumbs Up &#128077; button;</li> +<li>No email or registration required!</li> +</ul> +<p>Happy bounty hunting!</p>Please vote for Kiwi TCMS in 2020 .eu Web Awards2020-04-09T13:48:00+03:002020-04-09T13:48:00+03:00Kiwi TCMS Teamtag:None,2020-04-09:/blog/kiwi-tcms-team/2020/04/09/please-vote-for-kiwi-tcms-in-2020-eu-web-awards/<p><a href="https://webawards.eurid.eu/?q=kiwitcms.eu"> + <img + style="float: none; margin-left:0" + src="/images/eu_web_awards_horizontal.png" + alt="Click here to vote for Kiwi TCMS"> +</a></p> +<div class="highlight"><pre><span></span><code><span class="k">Scenario:</span><span class="nf"> Display open source advertising in Brussels airport</span> +<span class="k"> Given </span><span class="nf">one of the prizes is a </span><span class="s">2</span><span class="nf"> month billboard advertising campaign</span> +<span class="nf"> </span><span class="k">And </span><span class="nf">the awards ceremony is on Nov </span><span class="s">18</span><span class="nf">th </span><span class="s">2020</span><span class="nf"></span> +<span class="nf"> </span><span class="k">When </span><span class="nf">Kiwi TCMS wins</span> +<span class="nf"> </span><span class="k">Then </span><span class="nf">there is good chance this campaign coincides with FOSDEM</span> +</code></pre></div> + + +<ul> +<li>Go to <a href="https://webawards.eurid.eu/?q=kiwitcms.eu">https://webawards.eurid.eu …</a></li></ul><p><a href="https://webawards.eurid.eu/?q=kiwitcms.eu"> + <img + style="float: none; margin-left:0" + src="/images/eu_web_awards_horizontal.png" + alt="Click here to vote for Kiwi TCMS"> +</a></p> +<div class="highlight"><pre><span></span><code><span class="k">Scenario:</span><span class="nf"> Display open source advertising in Brussels airport</span> +<span class="k"> Given </span><span class="nf">one of the prizes is a </span><span class="s">2</span><span class="nf"> month billboard advertising campaign</span> +<span class="nf"> </span><span class="k">And </span><span class="nf">the awards ceremony is on Nov </span><span class="s">18</span><span class="nf">th </span><span class="s">2020</span><span class="nf"></span> +<span class="nf"> </span><span class="k">When </span><span class="nf">Kiwi TCMS wins</span> +<span class="nf"> </span><span class="k">Then </span><span class="nf">there is good chance this campaign coincides with FOSDEM</span> +</code></pre></div> + + +<ul> +<li>Go to <a href="https://webawards.eurid.eu/?q=kiwitcms.eu">https://webawards.eurid.eu/?q=kiwitcms.eu</a>;</li> +<li>Point your mouse to the photo of our website and click + the Thumbs Up &#128077; button;</li> +<li>No email or registration required!</li> +</ul> +<p>Out team promises to do everything in our power so that visitors to +<a href="http://fosdem.org">FOSDEM 2021</a> start feeling the community vibe directly +at the airport!</p> +<p>Please vote and share.</p> +<p>Thank you!</p>Kiwi TCMS 8.22020-04-03T22:25:00+03:002020-04-03T22:25:00+03:00Kiwi TCMS Teamtag:None,2020-04-03:/blog/kiwi-tcms-team/2020/04/03/kiwi-tcms-82/<p>We're happy to announce Kiwi TCMS version 8.2!</p> +<p><strong>IMPORTANT:</strong> +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 +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 …</pre><p>We're happy to announce Kiwi TCMS version 8.2!</p> +<p><strong>IMPORTANT:</strong> +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 +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +<p>Docker images:</p> +<pre class="literal-block"> +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 +</pre> +<div class="section" id="changes-since-kiwi-tcms-8-1"> +<h2>Changes since Kiwi TCMS 8.1</h2> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update bleach from 3.1.1 to 3.1.4</li> +<li>Update django from 3.0.4 to 3.0.5</li> +<li>Update django-colorfield from 0.2.1 to 0.2.2</li> +<li>Update pygithub from 1.46 to 1.47</li> +<li>Update python-gitlab from 2.0.1 to 2.1.2</li> +<li>Update marked(js) to version 0.8.2</li> +<li>Change default MariaDB charset and collation to utf8mb4. Will only affect +new installations. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/327">Issue #327</a></li> +<li>Document <tt class="docutils literal">TCMS_PLAN_ID</tt> ENV variable supported by automation framework +plugins</li> +<li>Test case Search page now allows searching for records containing the +specified text. Closes #1209 &#64;Schwarzkrieger</li> +<li>Provide <tt class="docutils literal"><span class="pre">../site-packages/tcms_settings_dir/</span></tt> when installing Kiwi TCMS +which is an empty pkgutil-style namespace where other packages can drop +their configuration</li> +<li>Hide empty values in Execution trends chart tooltips</li> +</ul> +</div> +<div class="section" id="api"> +<h3>API</h3> +<ul class="simple"> +<li>Remove <tt class="docutils literal">Auth.login_krbv()</tt> method</li> +<li>Method <tt class="docutils literal">TestRun.update()</tt> will now accept <tt class="docutils literal"><span class="pre">%Y-%m-%d</span> <span class="pre">%H:%M:%S</span></tt> +timestamp format. The previous format <tt class="docutils literal"><span class="pre">%Y-%m-%d</span></tt> is also supported</li> +<li>Method <tt class="docutils literal">TestExecution.create()</tt> now defaults to first neutral status +instead of searching for the hard-coded <tt class="docutils literal">IDLE</tt>. That means newly created +test executions which do not specify status will be created with the first +neutral status found in the database</li> +</ul> +</div> +<div class="section" id="refactoring"> +<h3>Refactoring</h3> +<ul class="simple"> +<li>Fix pylint errors. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1510">Issue #1510</a> (&#64;cmbahadir)</li> +<li>Add tests for <tt class="docutils literal">TestRunAdmin.delete_view()</tt> (Mariyan Garvanski)</li> +<li>Revert &quot;[l10n] Add Serializer class which returns untranslated models&quot;</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/bg#">Bulgarian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/pt-BR#">Portuguese, Brazilian translation</a></li> +</ul> +</div> +</div> +<div class="section" id="social-auth-kerberos-v0-2-4"> +<h2>social-auth-kerberos v0.2.4</h2> +<p>A new version of our Kerberos authentication backend has been released +as well. For more info check +<a class="reference external" href="https://github.com/kiwitcms/python-social-auth-kerberos#changelog">https://github.com/kiwitcms/python-social-auth-kerberos#changelog</a>. +This version is included with <em>Kiwi TCMS Enterprise</em>.</p> +</div> +<div class="section" id="tcms-api-v8-2-0"> +<h2>tcms-api v8.2.0</h2> +<p>New version of our <tt class="docutils literal"><span class="pre">tcms-api</span></tt> 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 +<a class="reference external" href="https://github.com/kiwitcms/tcms-api/#changelog">https://github.com/kiwitcms/tcms-api/#changelog</a>.</p> +</div> +<div class="section" id="tap-plugin-junit-xml-plugin-v8-2"> +<h2>tap-plugin &amp; junit.xml-plugin v8.2</h2> +<p>Both plugins are now using the latest version of <tt class="docutils literal"><span class="pre">tcms-api</span></tt> library +and include additional improvements like being able to specify +existing TestPlan and setting <tt class="docutils literal">stop_date</tt> for the automated TestRun. +For more information see <a class="reference external" href="https://github.com/kiwitcms/tap-plugin#changelog">https://github.com/kiwitcms/tap-plugin#changelog</a> +and <a class="reference external" href="https://github.com/kiwitcms/junit.xml-plugin/#changelog">https://github.com/kiwitcms/junit.xml-plugin/#changelog</a></p> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p><a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">Backup</a> first! +If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +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 +</pre> +<p><strong>WHERE:</strong> <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> has been updated from your private git repository! +The file provided in our GitHub repository is an example. Not for production use!</p> +<p><strong>WARNING:</strong> <tt class="docutils literal">kiwitcms/kiwi:latest</tt> and <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> 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:</p> +<pre class="literal-block"> +# starting from an older Kiwi TCMS version +docker-compose down +docker pull kiwitcms/kiwi:&lt;next_upgrade_version&gt; +edit docker-compose.yml to use kiwitcms/kiwi:&lt;next_upgrade_version&gt; +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +# repeat until you have reached latest +</pre> +<p>Happy testing!</p> +</div> +Kiwi TCMS is Open Source Seed Award winner2020-03-27T10:47:00+02:002020-03-27T10:47:00+02:00Kiwi TCMS Teamtag:None,2020-03-27:/blog/kiwi-tcms-team/2020/03/27/kiwi-tcms-is-open-source-seed-award-winner/<p>Kiwi TCMS is the proud winner of a $10,000 award from Mozilla, Indeed, +Open Collective, Ford Foundation &amp; Simply Secure. Read below for the full story!</p> +<p>At the end of January Zahari alerted our team about the +<a href="https://opencollective.com/open-source-speed-dating/events/open-source-speed-dating-fosdem-2020-96f78c6c">Open Source Speed Dating FOSDEM 2020</a> +event and Alex was very swift in …</p><p>Kiwi TCMS is the proud winner of a $10,000 award from Mozilla, Indeed, +Open Collective, Ford Foundation &amp; Simply Secure. Read below for the full story!</p> +<p>At the end of January Zahari alerted our team about the +<a href="https://opencollective.com/open-source-speed-dating/events/open-source-speed-dating-fosdem-2020-96f78c6c">Open Source Speed Dating FOSDEM 2020</a> +event and Alex was very swift in filing the application form. Just as we landed +in Brussels, ready to host +<a href="/blog/kiwi-tcms-team/2019/11/26/kiwi-tcms-is-going-to-fosdem-2020/">Testing and Automation devroom and the Open Source Test Management stand</a>, +we got the news - Kiwi TCMS has been selected as a participant.</p> +<p>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!</p> +<p>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, +<a href="https://fosdem.org/2020/schedule/track/testing_and_automation/">watch videos here</a>, +there was barely time to eat or drink water and at 5PM Alex had to rush across town to pitch +Kiwi TCMS!</p> +<p>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.</p> +<p>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.</p> +<p>Afterwards we reunited together, did even more walking, played the SPACESHIP at +<em>Let Me Out</em> escape room and finished with a mandatory team dinner in the hearth of Brussels.</p> +<p>Following an internal selection process and due diligence we finally received the award. +<a href="https://opencollective.com/kiwitcms/transactions">$10,000 for open source</a>!</p> +<p>As a side note we also got to know who the other winners are, which can be seen from +<a href="https://opencollective.com/open-source-speed-dating/transactions">Open Source Speed Dating records</a>: +F-Droid, ossia, MNT Research GmbH and Kiwi TCMS!</p> +<h2>We’re giving all of it to our community</h2> +<p>All money from the <a href="https://opencollective.com/kiwitcms/">Kiwi TCMS Collective</a> +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!</p> +<p>Happy testing!</p>Kiwi TCMS 8.12020-03-04T15:50:00+02:002020-03-04T15:50:00+02:00Kiwi TCMS Teamtag:None,2020-03-04:/blog/kiwi-tcms-team/2020/03/04/kiwi-tcms-81/<p>We're happy to announce Kiwi TCMS version 8.1!</p> +<p><strong>IMPORTANT:</strong> +this is a small security and improvement release which +also includes several bug fixes, internal refactoring and updated translations. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5 …</pre><p>We're happy to announce Kiwi TCMS version 8.1!</p> +<p><strong>IMPORTANT:</strong> +this is a small security and improvement release which +also includes several bug fixes, internal refactoring and updated translations. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +<p>Docker images:</p> +<pre class="literal-block"> +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 +</pre> +<div class="section" id="changes-since-kiwi-tcms-8-0"> +<h2>Changes since Kiwi TCMS 8.0</h2> +<div class="section" id="security"> +<h3>Security</h3> +<ul> +<li><p class="first">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 <tt class="docutils literal"><span class="pre">&lt;script&gt;alert(123);&lt;/script&gt;</span></tt> +in the database the returned result will be HTML escaped and will not be executed +as JavaScript!</p> +<p><strong>Notes:</strong></p> +<blockquote> +<p>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!</p> +</blockquote> +</li> +<li><p class="first">Update Django from 3.0.3 to 3.0.4 - fixes security issue CVE-2020-9402: +Potential SQL injection via <tt class="docutils literal">tolerance</tt> parameter in GIS functions and aggregates +on Oracle which we believe does not affect Kiwi TCMS</p> +</li> +</ul> +</div> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul> +<li><p class="first">Update bleach from 3.1.0 to 3.1.1</p> +</li> +<li><p class="first">Update django-colorfield from 0.1.15 to 0.2.1</p> +</li> +<li><p class="first">Update markdown from 3.2 to 3.2.1</p> +</li> +<li><p class="first">On bug creation send email to assignee. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1154">Issue #1154</a> (Mfon Eti-mfon)</p> +</li> +<li><p class="first">Make it possible to provide override settings in a directory. Kiwi TCMS will +respect:</p> +<ul class="simple"> +<li><tt class="docutils literal">local_settings.py</tt></li> +<li><tt class="docutils literal"><span class="pre">local_settings_dir/*.py</span></tt></li> +</ul> +<p>For more information see +<a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/installing_docker.html#customization">https://kiwitcms.readthedocs.io/en/latest/installing_docker.html#customization</a></p> +</li> +<li><p class="first">Allow adding TestPlan to TestCase via UI. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1021">Issue #1021</a></p> +</li> +<li><p class="first">Add visual representation of failures in TestCase health telemetry</p> +</li> +<li><p class="first">Add helper text to TestExecutionStatus admin</p> +</li> +<li><p class="first">Add link to discussion forum in Help menu</p> +</li> +</ul> +</div> +<div class="section" id="api"> +<h3>API</h3> +<ul class="simple"> +<li><tt class="docutils literal">TestCase.create()</tt> method no longer accepts <tt class="docutils literal">product</tt> or <tt class="docutils literal">product_id</tt> +fields which have previously been deprecated</li> +<li>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</li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>The number of search results shown per page can now be controlled via +<tt class="docutils literal">DEFAULT_PAGE_SIZE</tt> setting, which is 100 by default. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1210">Issue #1210</a> (Ivailo Karabojkov)</li> +<li>Use comma separated display of components in bug reports. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1157">Issue #1157</a> (Ivailo Karabojkov)</li> +<li>Update selector for 'Select All' test executions in TestRun page. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1404">Issue #1404</a></li> +<li>Fix crash when sorting test cases in TestPlan page. Fixes +<a class="reference external" href="https://sentry.io/organizations/open-technologies-bulgaria-ltd/issues/1519809326/">Sentry #KIWI-TCMS-A6</a></li> +<li>Fix a <tt class="docutils literal"><span class="pre">TC-undefined</span></tt> displayed in TestCase health telemetry</li> +</ul> +</div> +<div class="section" id="refactoring"> +<h3>Refactoring</h3> +<ul class="simple"> +<li>Add test for <tt class="docutils literal">TestRunAdmin.change_view()</tt> (Mariyan Garvanski)</li> +<li>Remove unused <tt class="docutils literal">showCaseRunsWithSelectedStatus</tt></li> +<li>Internal JavaScript updates</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/bg#">Bulgarian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/zh-CN#">Chinese Simplified translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/fr#">French translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +</ul> +</div> +</div> +<div class="section" id="github-marketplace-listing-deprecation"> +<h2>GitHub Marketplace listing deprecation</h2> +<p>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!</p> +<p>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:</p> +<ul class="simple"> +<li>Go to <a class="reference external" href="https://github.com/marketplace/kiwi-tcms">https://github.com/marketplace/kiwi-tcms</a></li> +<li>From &quot;Edit your plan&quot; button at the top select your GitHub account</li> +<li>Then click &quot;Cancel this plan&quot; link which is at the left-hand side +at the bottom of the description box!</li> +</ul> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p><a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">Backup</a> first! +If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +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 +</pre> +<p><strong>WHERE:</strong> <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> has been updated from your private git repository! +The file provided in our GitHub repository is an example. Not for production use!</p> +<p><strong>WARNING:</strong> <tt class="docutils literal">kiwitcms/kiwi:latest</tt> and <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> 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:</p> +<pre class="literal-block"> +# starting from an older Kiwi TCMS version +docker-compose down +docker pull kiwitcms/kiwi:&lt;next_upgrade_version&gt; +edit docker-compose.yml to use kiwitcms/kiwi:&lt;next_upgrade_version&gt; +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +# repeat until you have reached latest +</pre> +<p>Happy testing!</p> +</div> +Catch-up with Kiwi TCMS in Sofia, Singapore, Kiev & Moscow2020-02-17T15:37:00+02:002020-02-17T15:37:00+02:00Kiwi TCMS Teamtag:None,2020-02-17:/blog/kiwi-tcms-team/2020/02/17/catch-up-with-kiwi-tcms-in-sofia-singapore-kiev-moscow/<p>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:</p> +<ul> +<li>March 14 - <a href="https://qachallengeaccepted.com/">QA: Challenge Accepted, Sofia</a> + where we will have an info booth. You will get a 15% community discount if + you …</li></ul><p>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:</p> +<ul> +<li>March 14 - <a href="https://qachallengeaccepted.com/">QA: Challenge Accepted, Sofia</a> + where we will have an info booth. You will get a 15% community discount if + you email <strong>tickets@qachallengeaccepted.com</strong> and mention this blog post</li> +<li>March 19-21 - <a href="https://summit.fossasia.org/">OpenTechSummit, Singapore</a> - + aka FOSS ASIA summit:<ul> +<li><em>Kiwi TCMS exhibition booth</em> - 3 days</li> +<li><em>How to write pylint plugins for fun &amp; profit</em> workshop on March 19th</li> +<li><em>Testing [for] security [in] open source</em> presentation on March 21st</li> +</ul> +</li> +</ul> +<p>To claim a free Community Standard Ticket use code + <a href="https://eventyay.com/e/a74665c3?code=atodorov">atodorov</a>. First 5 tickets + only! For a 25% discount use code + <a href="https://eventyay.com/e/a74665c3?code=fossasia-speaker">fossasia-speaker</a>. + For a 25% discount use code + <a href="https://eventyay.com/e/a74665c3?code=exhibitor-friends">exhibitor-friends</a> + - applies only to Community Standard Ticket.</p> +<ul> +<li>March 27-28 - <a href="https://testingstage.com/">TestingStage, Kiev</a> where Alex + will present his <em>Static analysis as a test tool</em> session. You can also claim + 15% ticket discount by using promo-code <strong>AlexanderTodorov</strong></li> +<li>April 1-2 - <a href="https://testconf.ru/">TestCon Moscow</a> where Alex will present + the <em>Static analysis as a test tool</em> again</li> +</ul> +<p>Original plan was to visit <a href="https://opentestcon.org/">OpenTest Con, Beijing</a> +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.</p> +<p>Feel free to ping us at <a href="https://twitter.com/KiwiTCMS">@KiwiTCMS</a> or look for the +kiwi bird logo and come to say hi. Happy testing!</p>We're not participating in 'QA of the year' award2020-02-14T14:45:00+02:002020-02-14T14:45:00+02:00Kiwi TCMS Teamtag:None,2020-02-14:/blog/kiwi-tcms-team/2020/02/14/were-not-participating-in-qa-of-the-year-award/<p>Hello testers, +this is the story of how our team is not taking part of +the "QA of the year" contest organized by the +<a href="https://qachallengeaccepted.com/">QA: Challenge Accepted</a> conference despite +<a href="https://www.facebook.com/groups/qabulgaria/permalink/2542909712425297/">being nominated by Alex</a>. +In collaboration with Peter Sabev (organizer) we've managed to figure out what happened:</p> +<ul> +<li>On Nov 17th Alex …</li></ul><p>Hello testers, +this is the story of how our team is not taking part of +the "QA of the year" contest organized by the +<a href="https://qachallengeaccepted.com/">QA: Challenge Accepted</a> conference despite +<a href="https://www.facebook.com/groups/qabulgaria/permalink/2542909712425297/">being nominated by Alex</a>. +In collaboration with Peter Sabev (organizer) we've managed to figure out what happened:</p> +<ul> +<li>On Nov 17th Alex nominated the Kiwi TCMS team for the award</li> +<li>Last week Alex discovered our team is not listed on the voting page</li> +<li>Then Peter told us he's not seen any nomination related to + Kiwi TCMS at all which made everything feel even stranger</li> +<li>We've managed to dig out browser history from November + and it clearly shows the nomination form was submitted correctly</li> +<li>It was even possible to load the confirmation URL and edit the + submission</li> +<li>Upon second submission the nomination was clearly visible on the + other side, Peter confirmed this</li> +</ul> +<p>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.</p> +<p>This kind of issue can be avoided by employing the following measures:</p> +<ul> +<li>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</li> +<li>History of edits could also be exposed publicly for extra safety</li> +<li>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</li> +<li>Turn on email confirmation - the existing form didn't have this enabled</li> +<li>On our side: double check submission has been received - will put more + pressure on the organizing team</li> +</ul> +<p>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.</p> +<p>Happy testing!</p>Kiwi TCMS 8.02020-02-12T23:45:00+02:002020-02-12T23:45:00+02:00Kiwi TCMS Teamtag:None,2020-02-12:/blog/kiwi-tcms-team/2020/02/12/kiwi-tcms-80/<p>We're happy to announce Kiwi TCMS version 8.0!</p> +<p><strong>IMPORTANT:</strong> 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 <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> because newer …</p><p>We're happy to announce Kiwi TCMS version 8.0!</p> +<p><strong>IMPORTANT:</strong> 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 <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> because newer MariaDB versions are +breaking direct upgrades from existing installations!</p> +<p>You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +<p>Docker images:</p> +<pre class="literal-block"> +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 +</pre> +<div class="section" id="changes-since-kiwi-tcms-7-3"> +<h2>Changes since Kiwi TCMS 7.3</h2> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update Django from 3.0.2 to 3.0.3</li> +<li>Update django-grappelli from 2.13.3 to 2.14.1</li> +<li>Update markdown from 3.1.1 to 3.2</li> +<li>Update python-gitlab from 1.15.0 to 2.0.1</li> +<li>Update pygithub from 1.45 to 1.46</li> +<li>Allow customization of test execution statuses via admin. +For more information see +<a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/admin.html#test-execution-statuses">https://kiwitcms.readthedocs.io/en/latest/admin.html#test-execution-statuses</a>. +Fixes <a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/236">Issue #236</a></li> +<li>Add passing rate chart to Execution trends telemetry</li> +<li>Documentation updates (&#64;Prome88)</li> +</ul> +</div> +<div class="section" id="database"> +<h3>Database</h3> +<p>This release adds several migrations which alter the underlying database schema +by renaming multiple columns.</p> +<p><strong>WARNINGS:</strong></p> +<ul> +<li><p class="first">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!</p> +</li> +<li><p class="first"><tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> has been updated from MariaDB 5.5 to MariaDB 10.3. +The 10.x MariaDB containers change their <tt class="docutils literal">datadir</tt> configuration from +<tt class="docutils literal">/var/lib/mysql</tt> to <tt class="docutils literal">/var/lib/mysql/data</tt>! We recommend first upgrading +your MariaDB version, using Kiwi TCMS 7.3 and afterwards upgrading to +Kiwi TCMS 8.0:</p> +<ol class="arabic"> +<li><p class="first">Backup existing database with:</p> +<pre class="literal-block"> +docker exec -it kiwi_db mysqldump -u kiwi -pYourPass kiwi &gt; backup.sql +</pre> +</li> +<li><p class="first"><tt class="docutils literal"><span class="pre">docker-compose</span> down</tt></p> +</li> +<li><p class="first"><tt class="docutils literal">docker volume rm kiwi_db_data</tt> - will remove existing data volume +b/c of incompatibilities between different MariaDB versions</p> +</li> +<li><p class="first"><tt class="docutils literal"><span class="pre">docker-compose</span> up</tt> - will recreate data volume with missing data. e.g. +<tt class="docutils literal">manage.py showmigrations</tt> will report that 0 migrations have been applied.</p> +</li> +<li><p class="first">Restore the data from backup:</p> +<pre class="literal-block"> +cat backup.sql | docker exec -u 0 -i kiwi_db /opt/rh/rh-mariadb103/root/usr/bin/mysql kiwi +</pre> +<p><strong>note:</strong> This connects to the database as the root user</p> +</li> +<li><p class="first">Proceed to upgrade your Kiwi TCMS container !</p> +</li> +</ol> +</li> +</ul> +<p><strong>CHANGES:</strong></p> +<ul class="simple"> +<li>Remove model fields of type <tt class="docutils literal">AutoField</tt>. They are a legacy construct +and shouldn't be specified in the source code! Django knows how to add them +dynamically. These are:<ul> +<li><tt class="docutils literal">Tag.id</tt></li> +<li><tt class="docutils literal">TestCaseStatus.id</tt></li> +<li><tt class="docutils literal">Category.id</tt></li> +<li><tt class="docutils literal">PlanType.id</tt></li> +<li><tt class="docutils literal">TestExecutionStatus.id</tt></li> +</ul> +</li> +<li>Remove <tt class="docutils literal">db_column</tt> attribute from model fields</li> +<li>Rename several primary key fields to <tt class="docutils literal">id</tt>:<ul> +<li><tt class="docutils literal">Build.build_id</tt> -&gt; <tt class="docutils literal">Build.id</tt></li> +<li><tt class="docutils literal">TestRun.run_id</tt> -&gt; <tt class="docutils literal">TestRun.id</tt></li> +<li><tt class="docutils literal">TestPlan.plan_id</tt> -&gt; <tt class="docutils literal">TestPlan.id</tt></li> +<li><tt class="docutils literal">TestCase.case_id</tt> -&gt; <tt class="docutils literal">TestCase.id</tt></li> +<li><tt class="docutils literal">TestExecution.case_run_id</tt> -&gt; <tt class="docutils literal">TestExecution.id</tt></li> +</ul> +</li> +</ul> +</div> +<div class="section" id="api"> +<h3>API</h3> +<p><strong>WARNING:</strong></p> +<p>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!</p> +<p><strong>CHANGES:</strong></p> +<ul class="simple"> +<li>Methods <tt class="docutils literal">Build.create()</tt>, <tt class="docutils literal">Build.filter()</tt> and <tt class="docutils literal">Build.update()</tt> will +return <tt class="docutils literal">id</tt> instead of <tt class="docutils literal">build_id</tt> field</li> +<li>Method <tt class="docutils literal">TestRun.get_cases()</tt> will return <tt class="docutils literal">execution_id</tt> instead of +<tt class="docutils literal">case_run_id</tt> field and <tt class="docutils literal">id</tt> instead of <tt class="docutils literal">case_id</tt> field</li> +<li>Methods <tt class="docutils literal">TestRun.add_case()</tt>, <tt class="docutils literal">TestExecution.create()</tt>, +<tt class="docutils literal">TestExecution.filter()</tt> and <tt class="docutils literal">TestExecution.update()</tt> will return +<tt class="docutils literal">id</tt> instead of <tt class="docutils literal">case_run_id</tt> field</li> +<li>Methods <tt class="docutils literal">TestRun.create()</tt>, <tt class="docutils literal">TestRun.filter()</tt>, <tt class="docutils literal">TestRun.update()</tt> will +return <tt class="docutils literal">id</tt> instead of <tt class="docutils literal">run_id</tt> field</li> +<li>Methods <tt class="docutils literal">TestPlan.create()</tt>, <tt class="docutils literal">TestPlan.filter()</tt> and +<tt class="docutils literal">TestPlan.update()</tt> will return <tt class="docutils literal">id</tt> instead of <tt class="docutils literal">plan_id</tt> field</li> +<li>Methods <tt class="docutils literal">TestCase.add_component()</tt>, <tt class="docutils literal">TestCase.create()</tt>, +<tt class="docutils literal">TestCase.filter()</tt> and <tt class="docutils literal">TestCase.update()</tt> will return <tt class="docutils literal">id</tt> instead +of <tt class="docutils literal">case_id</tt> field</li> +</ul> +<p><strong>NOTES:</strong></p> +<p>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:</p> +<ul class="simple"> +<li>kiwitcms-tap-plugin v8.0.1</li> +<li>kiwitcms-junit.xml-plugin v8.0.1</li> +<li>kiwitcms-junit-plugin v8.0</li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Allow displaying lists with more then 9 items when reviewing test cases. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/339">Issue #339</a> (Mfon Eti-mfon)</li> +<li>Make <tt class="docutils literal">tcms.tests.storage.RaiseWhenFileNotFound`</tt> capable of finding +finding static files on Windows which enables development mode for folks +not using Linux environment. See +<a class="reference external" href="https://stackoverflow.com/questions/55297178">SO #55297178</a> (Mfon Eti-mfon)</li> +<li>Allow changing test execution status without adding comment. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1261">Issue #1261</a></li> +<li>Properly refresh test run progress bar when changing statuses. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1326">Issue #1326</a></li> +<li>Fix a bug where updating test cases from the UI was causing text and various +other fields to be reset. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1318">Issue #1318</a></li> +</ul> +</div> +<div class="section" id="refactoring"> +<h3>Refactoring</h3> +<ul class="simple"> +<li>Extract attachments widget to new template. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1124">Issue #1124</a> +(Rosen Sasov)</li> +<li>Rename RPC related classes. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/682">Issue #682</a> +(Rosen Sasov)</li> +<li>Add new test (Mariyan Garvanski)</li> +<li>Start using GitHub actions, first for running flake8</li> +<li>Remove unused <tt class="docutils literal">TestCase.get_previous_and_next()</tt></li> +<li>Remove unused <tt class="docutils literal">TestCaseStatus.string_to_instance()</tt></li> +<li>Remove unused <tt class="docutils literal">TestCase.create()</tt></li> +<li>Remove unused <tt class="docutils literal">json_success_refresh_page()</tt></li> +<li>Remove unused fields from <tt class="docutils literal">SearchPlanForm</tt></li> +<li>Use JSON-RPC in <tt class="docutils literal">previewPlan()</tt></li> +<li>Remove <tt class="docutils literal">toggleTestCaseContents()</tt>, duplicate of <tt class="docutils literal">toggleTestExecutionPane()</tt></li> +<li>Refactor a few more views to class-based</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/bg#">Bulgarian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/fr#">French translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/ko#">Korean translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/tr#">Turkish translation</a></li> +</ul> +</div> +</div> +<div class="section" id="github-marketplace-listing-deprecation"> +<h2>GitHub Marketplace listing deprecation</h2> +<p>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!</p> +<p>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:</p> +<ul class="simple"> +<li>Go to <a class="reference external" href="https://github.com/marketplace/kiwi-tcms">https://github.com/marketplace/kiwi-tcms</a></li> +<li>From &quot;Edit your plan&quot; button at the top select your GitHub account</li> +<li>Then click &quot;Cancel this plan&quot; link which is at the left-hand side +at the bottom of the description box!</li> +</ul> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p><a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">Backup</a> first! +If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +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 +</pre> +<p><strong>WHERE:</strong> <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> has been updated from your private git repository! +The file provided in our GitHub repository is an example. Not for production use!</p> +<p><strong>WARNING:</strong> <tt class="docutils literal">kiwitcms/kiwi:latest</tt> and <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> 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:</p> +<pre class="literal-block"> +# starting from an older Kiwi TCMS version +docker-compose down +docker pull kiwitcms/kiwi:&lt;next_upgrade_version&gt; +edit docker-compose.yml to use kiwitcms/kiwi:&lt;next_upgrade_version&gt; +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +# repeat until you have reached latest +</pre> +<p>Happy testing!</p> +</div> +I deleted our newsletter from Mailchimp ! Please re-subscribe2020-02-11T12:25:00+02:002020-02-11T12:25:00+02:00Alexander Todorovtag:None,2020-02-11:/blog/atodorov/2020/02/11/i-deleted-our-newsletter-from-mailchimp-please-re-subscribe/<p>Hello testers, +I have to admit that I made a rookie mistake and deleted the entire email database +for the Kiwi TCMS +<a href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">newsletter</a>! +And of course we didn't have a backup of this database :-(. Please +<a href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">re-subscribe here</a> +and read below if you are interested to know what happened.</p> +<p>Last week …</p><p>Hello testers, +I have to admit that I made a rookie mistake and deleted the entire email database +for the Kiwi TCMS +<a href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">newsletter</a>! +And of course we didn't have a backup of this database :-(. Please +<a href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">re-subscribe here</a> +and read below if you are interested to know what happened.</p> +<p>Last week, while exploring how to cancel active subscriptions for our +deprecated GitHub Marketplace listing I found there is no way to cancel +those programatically. So I've compiled a list of email addresses and decided +to send subscribers an email asking them to cancel their subscriptions.</p> +<p>For this purpose I decided to import the contacts into Mailchimp because +it gives you a better interface to design the actual message, include images +in the message body, preview and test the message before it is sent! The import +of addresses went fine, new addresses were tagged appropriately to separate them +from the rest of the newsletter audience <strong>but</strong> they were not subscribed to +receive emails automatically.</p> +<p>I selected "non-subscribed" option when importing as a second barrier to +accidentally emailing people who do not want to receive regular news from us! +However it turned out Mailchimp can't send messages to non-subscribed addresses! +Maybe that's part of their attempts to be GDPR compliant.</p> +<p>So I decided to delete the freshly imported addresses, import them again +and this time tag + subscribe them during the import! When selecting the addresses +for deletion I am 99% confident I did filter them by tag first and then selected +<strong>DELETE</strong>! And the entire contacts list was gone!</p> +<p>I've also contacted Mailchimp immediately to ask whether or not the addresses +can be restored. Unfortunately they are trying to be super GDPR compliant and +claim they don't have this information into their system anymore. +And in this particular case we've been relying on the vendor to keep backups +on their end so didn't even think about trying to backup this database!</p> +<p>For users who have accounts at +<a href="https://public.tenant.kiwitcms.org">https://public.tenant.kiwitcms.org</a> +we do have +their email addresses but we're not going to automatically re-subscribe them. +We've stopped auto-subscribing +<a href="/blog/kiwi-tcms-team/2018/06/24/kiwi-tcms-42/">2 years ago</a> and also there's +no way of telling which addresses were on the list in the first hand.</p> +<p>Please +<a href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">re-subscribe here</a> +and I promise we're going to start backing up the newsletter database as well.</p> +<p>Thank you!</p>GitHub OAuth tokens have been revoked2020-02-04T18:25:00+02:002020-02-04T18:25:00+02:00Kiwi TCMS Teamtag:None,2020-02-04:/blog/kiwi-tcms-team/2020/02/04/github-oauth-tokens-have-been-revoked/<p>Hello testers as we've +<a href="/blog/kiwi-tcms-team/2020/01/12/kiwi-tcms-is-migrating-from-oauth-to-github-app/">stated previously</a> +Kiwi TCMS has migrated to a new GitHub backend. The previous OAuth +application with ID <code>e45b09369720518e1fc3</code> has been deprecated.</p> +<p>OAuth tokens for this application have been revoked and you should have +received an email notification from GitHub about this.</p> +<p>If you still have an …</p><p>Hello testers as we've +<a href="/blog/kiwi-tcms-team/2020/01/12/kiwi-tcms-is-migrating-from-oauth-to-github-app/">stated previously</a> +Kiwi TCMS has migrated to a new GitHub backend. The previous OAuth +application with ID <code>e45b09369720518e1fc3</code> has been deprecated.</p> +<p>OAuth tokens for this application have been revoked and you should have +received an email notification from GitHub about this.</p> +<p>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.</p> +<p>Thank you!</p>Project roadmap 20202020-01-17T19:40:00+02:002020-01-17T19:40:00+02:00Alexander Todorovtag:None,2020-01-17:/blog/atodorov/2020/01/17/project-roadmap-2020/<p>Hello testers, +the Kiwi TCMS team sat down together last week and talked about what we feel +is important for us during the upcoming year. This blog post outlines our +roadmap for 2020!</p> +<p><img style="background-color: inherit" src="/images/roadmap2020.png" alt="roadmap image 2020"></p> +<h1>Project sustainability</h1> +<p>The big goal towards which we are striving is to turn Kiwi TCMS into a …</p><p>Hello testers, +the Kiwi TCMS team sat down together last week and talked about what we feel +is important for us during the upcoming year. This blog post outlines our +roadmap for 2020!</p> +<p><img style="background-color: inherit" src="/images/roadmap2020.png" alt="roadmap image 2020"></p> +<h1>Project sustainability</h1> +<p>The big goal towards which we are striving is to turn Kiwi TCMS into a +sustainable open source project. For now this means several key areas:</p> +<div class="highlight"><pre><span></span><code><span class="mf">1</span><span class="p">)</span> <span class="n">Team</span> +<span class="mf">2</span><span class="p">)</span> <span class="n">Technical</span> +<span class="mf">3</span><span class="p">)</span> <span class="n">Community</span> +</code></pre></div> + + +<h2>Team</h2> +<p>Right now we have a core team with 6 newcomers on-boarding. +Engineering performance is all over the place with some people contributing +too much while others contributing too little. More importantly there is no +consistent pace of contributions which makes planning timely completion of +technical tasks impossible.</p> +<p>At the moment we do operate as a bunch of disconnected people who happen to +talk to each other from time to time.</p> +<p>We are going to adjust our internal processes and how we on-board new members. +In fact we did our first "scrum-like" meeting this week and agreed to change +our existing practice and strive to become better as a team!</p> +<p><strong>Goal:</strong> to have a cohesive team at the end of the year which operates with +a predictable capacity.</p> +<p><strong>Goal:</strong> 1 PR/week/person as broad measure of individual performance.</p> +<h2>Technical</h2> +<p>The areas shown on the picture above will receive more priority.</p> +<p><strong>Goal:</strong> complete remaining <a href="/blog/kiwi-tcms-team/2019/03/03/legacy-reports-become-telemetry/">Telemetry features</a>.</p> +<p><strong>Goal:</strong> complete +<a href="https://github.com/kiwitcms/Kiwi/milestone/1">bug-tracker integration milestone</a>.</p> +<p><strong>Goal:</strong> all pylint issues resolved.</p> +<p><strong>Goal:</strong> migrate all remaining legacy templates to Patternfly UI. See +<a href="https://github.com/kiwitcms/Kiwi/milestone/3">patternfly-migration</a> milestone.</p> +<p><strong>Goal:</strong> where FE sends AJAX requests to BE views replace with JSON RPC API instead.</p> +<p><strong>Extra:</strong> start tackling the JavaScript mess that we have. This depends and is related +to Patternfly migration and overall refactoring.</p> +<p><strong>Extra:</strong> make it easier for downstream installations to extend and override parts +of Kiwi TCMS in order for users to adjust the system to their own needs. +The system is pretty flexible as-is but there have been requests, +both online and offline, to provide some extra features! We'll start looking +into them, likely making partial progress in the next 12 months.</p> +<h2>Community</h2> +<p>Last year Kiwi TCMS had massive success at every single conference that we've been to. +Both project and team have been well received. While we are going to continue +being part of various communities around the world we are trying to limit +extensive travel and focus on functionality and partnerships which will +increase Kiwi TCMS eco-system, make the project even more popular and +drive further adoption!</p> +<p><strong>Goal:</strong> extended GitHub integration via +<a href="https://github.com/kiwitcms/github-app/">kiwitcms-github-app</a> plugin.</p> +<p><strong>Goal:</strong> release the following +<a href="https://kiwitcms.readthedocs.io/en/latest/plugins/automation-frameworks.html">test automation framework plugins</a> +for Kiwi TCMS:</p> +<ul> +<li><a href="https://github.com/kiwitcms/phpunit-plugin/">PHPUnit plugin</a></li> +<li><a href="https://github.com/kiwitcms/pytest-plugin/">py.test plugin</a></li> +<li>TestNG plugin</li> +<li>Jenkins plugin</li> +<li>Robot framework plugin</li> +<li>Django plugin</li> +</ul> +<p>For more information see +<a href="https://github.com/kiwitcms/Kiwi/milestone/2">test-automation-plugins</a> milestone.</p> +<p><strong>Ongoing:</strong> work with our partners from the proprietary and open source worlds. +This is hard to quantify and lots of it doesn't actually depend on the team. +However we are continuing to talk to them regularly. Expect new feedback to +become available under GitHub Issues.</p> +<p><strong>Extra:</strong> see what we can do about testing productivity! This has always been +part of our mission but we have not been able to produce anything worth sharing. +We do have ideas in this space but we are generally looking for partnerships and collaborations. +It is very likely that there will not be very much progress on this front +because it is hard to define it properly :-(.</p> +<h2>Summary</h2> +<p>At the end of the day most of these goals compliment each other and help drive all of +them to completion. Many of the still on-boarding people have expressed desire to +improve their Python &amp; Django skills. Working to resolve issues in the above specific +areas will give them this opportunity! I expect they will show good progress on their respective +tasks so we can write more about them on this blog.</p> +<p>Happy testing!</p>Kiwi TCMS 7.32020-01-16T01:00:00+02:002020-01-16T01:00:00+02:00Kiwi TCMS Teamtag:None,2020-01-16:/blog/kiwi-tcms-team/2020/01/16/kiwi-tcms-73/<p>We're happy to announce Kiwi TCMS version 7.3!</p> +<p><strong>IMPORTANT:</strong> this is a critical security update for +<strong>CVE-2019-19844: Potential account hijack via password reset form!</strong></p> +<p>Also migrates to Django 3.0 and includes several other improvement +and bug-fixes!</p> +<p>You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade …</p><p>We're happy to announce Kiwi TCMS version 7.3!</p> +<p><strong>IMPORTANT:</strong> this is a critical security update for +<strong>CVE-2019-19844: Potential account hijack via password reset form!</strong></p> +<p>Also migrates to Django 3.0 and includes several other improvement +and bug-fixes!</p> +<p>You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +<p>Docker images:</p> +<pre class="literal-block"> +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 +</pre> +<div class="section" id="changes-since-kiwi-tcms-7-2"> +<h2>Changes since Kiwi TCMS 7.2</h2> +<div class="section" id="security"> +<h3>Security</h3> +<ul class="simple"> +<li>Update Django from 2.2.8 to 3.0.2</li> +</ul> +</div> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update python-gitlab from 1.13.0 to 1.15.0</li> +<li>Update pygithub from 1.44.1 to 1.45</li> +<li>Update django-grappelli from 2.13.2 to 2.13.3</li> +<li>Bump django-uuslug from 1.1.9 to 1.2.0</li> +<li>Bump django-attachments from 1.4.1 to 1.5</li> +<li>Bump django-vinaigrette from 1.2.0 to 2.0.1</li> +<li>Update marked to version 0.8.0</li> +<li>Update prismjs to version 1.19.0</li> +<li>Generalize existing <tt class="docutils literal">kiwitcms.telemetry.plugins</tt> handling code by +renaming the entry point to <tt class="docutils literal">kiwitcms.plugins</tt></li> +<li>Refactor views to class based (Svetlozar Stoyanov)</li> +<li>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</li> +</ul> +</div> +<div class="section" id="database"> +<h3>Database</h3> +<ul class="simple"> +<li>When migrating from the older <tt class="docutils literal">Bug</tt> model to <tt class="docutils literal">LinkReference</tt> skip +bugs which are attached directly to test cases instead of test executions. +See <a class="reference external" href="https://stackoverflow.com/questions/59321756/">SO #59321756</a></li> +<li>Remove <tt class="docutils literal">AutoField.max_length</tt> because it is ignored by Django 3</li> +</ul> +</div> +<div class="section" id="api"> +<h3>API</h3> +<ul class="simple"> +<li><tt class="docutils literal">TestCase.update()</tt> method now allows to update the <tt class="docutils literal">author</tt> field. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/630">Issue #630</a></li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Modify template pass <tt class="docutils literal">object</tt> as <tt class="docutils literal">test_plan</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1307">Issue #1307</a> (Ed Oswald S. Go)</li> +<li>Enable version selection in test plan search page. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1276">Issue #1276</a></li> +<li>Apply percentage rounding for completed test executions. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1230">Issue #1230</a></li> +<li>Fix a logical bug in conditional expression when deciding whether or not +reporting bugs to selected issue tracker is disabled</li> +</ul> +</div> +<div class="section" id="refactoring"> +<h3>Refactoring</h3> +<ul class="simple"> +<li>Add code of conduct. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1185">Issue #1185</a> (Rosen Sasov)</li> +<li>Add test for <tt class="docutils literal">KIWI_DONT_ENFORSE_HTTPS</tt>. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1274">Issue #1274</a></li> +<li>Replace <tt class="docutils literal">ugettext_lazy</tt> with <tt class="docutils literal">gettext_lazy</tt> for Django 3</li> +<li>Remove <tt class="docutils literal">BaseCaseSearchForm.bug_id</tt> field</li> +<li>Refactor testcase edit view to class-based</li> +<li>Happy New Year pylint</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/zh-CN#">Chinese Simplified translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/vi#">Vietnamese translation</a></li> +</ul> +</div> +</div> +<div class="section" id="github-integration"> +<h2>GitHub integration</h2> +<p>The hosted version of Kiwi TCMS ships with additional GitHub integration. See +<a class="reference external" href="/blog/kiwi-tcms-team/2020/01/12/kiwi-tcms-is-migrating-from-oauth-to-github-app/">GitHub App announcement</a> and +<a class="reference external" href="https://github.com/kiwitcms/github-app/blob/master/README.rst">github-app</a> +for more information!</p> +</div> +<div class="section" id="upcoming-conferences"> +<h2>Upcoming conferences</h2> +<p>The next two events we are going to participate are:</p> +<ul class="simple"> +<li><a class="reference external" href="https://devconfcz2020a.sched.com/speaker/a.sankov96">DevConf.CZ, Jan 24-26, Brno</a> +where Anton Sankov will be a speaker</li> +<li><a class="reference external" href="/blog/kiwi-tcms-team/2019/11/26/kiwi-tcms-is-going-to-fosdem-2020/">FOSDEM, Feb 1-2, Brussels</a> +where you can meet with the entire team</li> +</ul> +<p>If you are around come and say &quot;Happy testing&quot;!</p> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p><a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">Backup</a> first! +If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +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 +</pre> +<p><strong>WHERE:</strong> <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> has been updated from your private git repository! +The file provided in our GitHub repository is an example. Not for production use!</p> +<p><strong>WARNING:</strong> <tt class="docutils literal">kiwitcms/kiwi:latest</tt> and <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> 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:</p> +<pre class="literal-block"> +# starting from an older Kiwi TCMS version +docker-compose down +docker pull kiwitcms/kiwi:&lt;next_upgrade_version&gt; +edit docker-compose.yml to use kiwitcms/kiwi:&lt;next_upgrade_version&gt; +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +# repeat until you have reached latest +</pre> +<p>Happy testing!</p> +</div> +Kiwi TCMS is migrating from OAuth to GitHub App2020-01-12T18:31:00+02:002020-01-12T18:31:00+02:00Kiwi TCMS Teamtag:None,2020-01-12:/blog/kiwi-tcms-team/2020/01/12/kiwi-tcms-is-migrating-from-oauth-to-github-app/<p>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 +<a href="/blog/atodorov/2019/01/10/project-mission-and-goals-for-2019/">yearly goals</a>. +This blog post outlines the differences between the old and the new!</p> +<p>The old OAuth application …</p><p>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 +<a href="/blog/atodorov/2019/01/10/project-mission-and-goals-for-2019/">yearly goals</a>. +This blog post outlines the differences between the old and the new!</p> +<p>The old OAuth application only had access to your username, name and email +for authentication purposes. Its authorization screen looked like so:</p> +<p><img src="/images/github/oauth_login.png" + alt="OAuth login screen" + style="float:none"></p> +<p>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 +<a href="https://public.tenant.kiwitcms.org">https://public.tenant.kiwitcms.org</a>. If this is your +first time logging into Kiwi TCMS after the migration you will see the following screen:</p> +<p><img src="/images/github/app_login.png" + alt="App login screen" + style="float:none"></p> +<p>Notice how the heading, information section and action button are slightly different! +The important section is <strong>Resources on your account</strong>! 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.</p> +<p>To permit this GitHub App to access your repositories and/or act on your behalf +you must <strong>Install</strong> 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 <strong>Install &amp; Authorize</strong> button on our home page or +directly from <a href="https://github.com/apps/kiwi-tcms">https://github.com/apps/kiwi-tcms</a>! +The screen should look like this:</p> +<p><img src="/images/github/app_installation.png" + alt="App installation screen" + style="float:none"></p> +<p>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 +<a href="https://github.com/kiwitcms/github-app">https://github.com/kiwitcms/github-app</a>!</p> +<p>Further ideas about integration between GitHub and Kiwi TCMS, including the original +idea about status checks from <a href="https://github.com/kiwitcms/Kiwi/issues/700">Issue #700</a>, +can be found at +<a href="https://github.com/kiwitcms/github-app/issues">https://github.com/kiwitcms/github-app/issues</a>.</p> +<h2>Help us grow</h2> +<p>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.</p> +<p>Please help us get back on track! Here's what we ask you to do (in this order):</p> +<ul> +<li>Go to <a href="https://public.tenant.kiwitcms.org">https://public.tenant.kiwitcms.org</a> and + click the GitHub login icon, follow through with the process;</li> +<li>Go to <a href="https://github.com/apps/kiwi-tcms">https://github.com/apps/kiwi-tcms</a> and + click the <strong>Install</strong> button, select account &amp; repositories and complete the + process;</li> +<li>Share this blog post with friends, co-workers and other testers who might be + interested to help!</li> +</ul> +<p>Thank you! Happy testing and happy new year!</p>Roadmap status report for 20192019-12-26T16:56:00+02:002019-12-26T16:56:00+02:00Alexander Todorovtag:None,2019-12-26:/blog/atodorov/2019/12/26/roadmap-status-report-for-2019/<p>Hello everyone, in this article I will outline the progress that the Kiwi TCMS +team has made towards achieving the goals on our +<a href="/blog/atodorov/2019/01/10/project-mission-and-goals-for-2019/">2019 roadmap</a>. +TL,DR: last year we've made lots of big and visible changes in Kiwi TCMS. +This year less so. Progress has been slower than before …</p><p>Hello everyone, in this article I will outline the progress that the Kiwi TCMS +team has made towards achieving the goals on our +<a href="/blog/atodorov/2019/01/10/project-mission-and-goals-for-2019/">2019 roadmap</a>. +TL,DR: last year we've made lots of big and visible changes in Kiwi TCMS. +This year less so. Progress has been slower than before and not so much +visible. Community and team is growing. More contributors are welcome.</p> +<h2>Complete the internal refactoring</h2> +<p><em>Status: small progress, needs help</em></p> +<p><a href="https://codeclimate.com/github/kiwitcms/Kiwi">CodeClimate</a> progress is:</p> +<ul> +<li>-60 code smells</li> +<li>-55 duplications</li> +<li>-50 other issues</li> +<li>4.4% technical debt improvement</li> +<li>-240 hrs remaining until issues are fixed</li> +</ul> +<p>The trend is showing less issues remaining +but it has been a slow progress. As we fix the easier items the remaining ones +become harder to deal with.</p> +<p>We've done minor work related to fixing issues reported by pylint. Around +150 of them still remain!</p> +<p>We have not done any targeted work to resolve other issues reported by Scrutinizer, +remove vendored-in JavaScript libraries, JavaScript refactoring or +classification of issues in 3rd party dependencies.</p> +<h2>Redesign the UI templates with the help of Patternfly</h2> +<p><em>Status: 60% done, needs help</em></p> +<p>There are 22 HTML templates remaining to be redesigned (from 59). That's mostly +due to internal cleanup and some refactoring! Test plan and Test run pages are the +two major templates that still need to be redesigned with Patternfly.</p> +<h2>Modernize reporting aka Telemetry</h2> +<p><em>Status: 60% done, in progress, behind schedule</em></p> +<p>The specs for the new <a href="/blog/kiwi-tcms-team/2019/03/03/legacy-reports-become-telemetry/">Telemetry</a> system +have been defined after taking into account feedback on GitHub issues. Anton Sankov is +the leading developer for this feature. So far we have 4 telemetry reports merged: +testing break-down, status matrix, execution trends and flaky tests.</p> +<p>There are lots of minor issues or missing functionality in these first iterations +(compared to specification). Work continues on the other telemetry use-cases +and related items.</p> +<h2>Plugins for 3rd party test automation frameworks</h2> +<p><em>Status: good, needs help</em></p> +<p><em>UPDATE:</em> no change in last 6 months.</p> +<p>If you'd like to see plugins for more test automation frameworks +and/or file formats please checkout the +<a href="https://kiwitcms.readthedocs.io/en/latest/automation-frameworks.html">documentation</a> +for links and more info.</p> +<h2>Redefine bug-tracker integration</h2> +<p><em>Status: 66% complete, in progress, behind schedule</em></p> +<p>We've been making slow progress on this milestone lately. For more info +see +<a href="https://github.com/kiwitcms/Kiwi/milestone/1">https://github.com/kiwitcms/Kiwi/milestone/1</a></p> +<h2>GitHub flow integration</h2> +<p><em>Status: done, awaiting deployment</em></p> +<p>Our team spent some time making Kiwi TCMS the first open source TCMS available +on the <a href="https://github.com/marketplace/kiwi-tcms">GitHub Marketplace</a>. At the end +of this year we were able to create a small application that allows further +integration and extending the testing workflow to the GitHub platform.</p> +<p>This is waiting on a few more clarifications from GitHub before we deploy but +for now it can be considered as done. Future functionality will be tracked +and developed directly at +<a href="https://github.com/kiwitcms/github-app/issues">https://github.com/kiwitcms/github-app/issues</a>.</p> +<h2>Agile integration with Trello</h2> +<p><em>Status: no progress, will drop</em></p> +<p>This will be dropped from roadmap for the next year until we can get more interest +from the community.</p> +<h2>Improve engineering productivity</h2> +<p><em>Status: no progress</em></p> +<p>Looking for external help here. This will stay as a low priority item on our +roadmap for 2020 until we can free more resources on the team.</p> +<h2>Community</h2> +<p><em>Status: great, on track, needs work</em></p> +<p>This is our strongest area during this year. We have a strong presence in +multiple communities, our event schedule is very busy and we are gaining more +recognition every day! Core team hit several big bumps this year and is still +recovering with a few more people onboarding.</p> +<p>Kiwi TCMS suffers from the problem that many of our users can't be contributors +or simply don't want to!</p> +<p>In short: it is important for us to follow our mission and develop our core team +so we can deliver on promises made in our roadmap! That requires a lot of time and +effort which reduces short-term productivity.</p> +<p>Happy testing!</p>Kiwi TCMS 7.22019-12-09T10:25:00+02:002019-12-09T10:25:00+02:00Kiwi TCMS Teamtag:None,2019-12-09:/blog/kiwi-tcms-team/2019/12/09/kiwi-tcms-72/<p>We're happy to announce Kiwi TCMS version 7.2! +This is an improvement &amp; bug fix release which includes +new database migrations and API methods, internal refactoring and updated +translations. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5 …</pre><p>We're happy to announce Kiwi TCMS version 7.2! +This is an improvement &amp; bug fix release which includes +new database migrations and API methods, internal refactoring and updated +translations. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +<p>Docker images:</p> +<pre class="literal-block"> +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 +</pre> +<div class="section" id="changes-since-kiwi-tcms-7-1"> +<h2>Changes since Kiwi TCMS 7.1</h2> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Base docker image to new CentOS 8</li> +<li>Update Django from 2.2.6 to 2.2.8</li> +<li>Update django-contrib-comments from 1.9.1 to 1.9.2</li> +<li>Update django-grappelli from 2.13.1 to 2.13.2</li> +<li>Update django-modern-rpc from 0.11.1 to 0.12.0</li> +<li>Update django-simple-history from 2.7.3 to 2.8.0</li> +<li>Update mysqlclient from 1.4.4 to 1.4.6</li> +<li>Update pygithub from 1.44 to 1.44.1</li> +<li>Update python-gitlab from 1.12.1 to 1.13.0</li> +<li>Several documentation updates</li> +</ul> +</div> +<div class="section" id="database-migrations"> +<h3>Database migrations</h3> +<ul class="simple"> +<li>Add new database fields <tt class="docutils literal">weight</tt>, <tt class="docutils literal">icon</tt> and <tt class="docutils literal">color</tt> to +<tt class="docutils literal">TestExecutionStatus</tt> and adjust existing code to work with them. +This is a necessary step before allowing customization of test execution +statuses, see +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/236">Issue #236</a></li> +</ul> +</div> +<div class="section" id="api"> +<h3>API</h3> +<ul class="simple"> +<li>RPC method <tt class="docutils literal">TestExecution.add_comment()</tt> now requires +<tt class="docutils literal">django_comments.add_comment</tt> permission</li> +<li>Add new RPC method <tt class="docutils literal">TestExecution.remove_comment()</tt></li> +<li>Add new RPC method <tt class="docutils literal">TestCase.add_comment()</tt></li> +<li>Add new RPC method <tt class="docutils literal">TestCase.remove_comment()</tt></li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li><tt class="docutils literal">testplans.views.DeleteCasesView</tt> now requires <tt class="docutils literal">testplans.change_testplan</tt> +permission (Svetlomir Balevski)</li> +<li><tt class="docutils literal">testplans.views.ReorderCasesView</tt> now requires <tt class="docutils literal">testplans.change_testplan</tt> +permission (Svetlomir Balevski)</li> +<li>Fix counting bug in execution trends telemetry</li> +<li>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</li> +<li>Fix broken bulk menu in TestRun page when (translated) status names +are too long</li> +<li>Automatically expand TestExecution comment history if there are comments +present. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/349">Issue #349</a> (Matt Porter)</li> +<li>Document timezone settings and show current server time in navbar. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1206">Issue #1206</a></li> +<li>Check for permissions in HTML template. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/961">Issue #961</a></li> +<li>Document bug tracker integration support. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/698">Issue #698</a></li> +<li>Delete comments when TestCase and TestExecution are removed. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1028">Issue #1028</a></li> +</ul> +</div> +<div class="section" id="refactoring"> +<h3>Refactoring</h3> +<ul class="simple"> +<li>Pylint fixes (Mariyan Garvanski)</li> +<li>Use <tt class="docutils literal">django.utils.timezone.now()</tt> instead of <tt class="docutils literal">datetime.now()</tt>. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/545">Issue #545</a></li> +<li>Use JSON-RPC instead of backend views when working with comments. Resolves +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/960">Issue #960</a></li> +<li>Remove <tt class="docutils literal">tcms.core.contrib.comments</tt> module. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/959">Issue #959</a></li> +<li>Remove <tt class="docutils literal">label=</tt> attribute from form field. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/652">Issue #652</a></li> +<li>Move and rename XML-RPC forms. Resolves +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/681">Issue #681</a></li> +<li>Convert <tt class="docutils literal">testplans.views.DeleteCasesView</tt> to JSON-RPC</li> +<li>Refactor more views from function based to class based</li> +<li>Remove duplicate JavaScript</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/bg#">Bulgarian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/zh-TW#">Chinese Traditional translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/fr#">French translation</a></li> +</ul> +</div> +</div> +<div class="section" id="important-changes"> +<h2>Important changes</h2> +<p>Soon Kiwi TCMS will switch from <em>OAuth</em> to <em>GitHub App</em> integration type with GitHub. +Login with your GitHub accounts will still be supported but you will also be +able to <em>INSTALL</em> Kiwi TCMS into your account/organization/repositories. +This will open the possibility for further integration with GitHub as expressed +in our <a class="reference external" href="/blog/atodorov/2019/01/10/project-mission-and-goals-for-2019/">roadmap for 2019</a>!</p> +<p>We are going to share more information when this becomes available.</p> +</div> +<div class="section" id="upcoming-conferences"> +<h2>Upcoming conferences</h2> +<p>The next two events we are going to participate are:</p> +<ul class="simple"> +<li><a class="reference external" href="https://www.devconf.info/cz/">DevConf.CZ, Jan 24-26, Brno</a> +where Anton Sankov will be a speaker</li> +<li><a class="reference external" href="/blog/kiwi-tcms-team/2019/11/26/kiwi-tcms-is-going-to-fosdem-2020/">FOSDEM, Feb 1-2, Brussels</a> +where you can meet with the entire team</li> +</ul> +<p>If you are around come and say &quot;Happy testing&quot;!</p> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p><a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">Backup</a> first! +If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +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 +</pre> +<p><strong>WHERE:</strong> <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> has been updated from your private git repository! +The file provided in our GitHub repository is an example. Not for production use!</p> +<p><strong>WARNING:</strong> <tt class="docutils literal">kiwitcms/kiwi:latest</tt> and <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> 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:</p> +<pre class="literal-block"> +# starting from an older Kiwi TCMS version +docker-compose down +docker pull kiwitcms/kiwi:&lt;next_upgrade_version&gt; +edit docker-compose.yml to use kiwitcms/kiwi:&lt;next_upgrade_version&gt; +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +# repeat until you have reached latest +</pre> +<p>Happy testing!</p> +</div> +Kiwi TCMS is going to FOSDEM 20202019-11-26T13:40:00+02:002019-11-26T13:40:00+02:00Kiwi TCMS Teamtag:None,2019-11-26:/blog/kiwi-tcms-team/2019/11/26/kiwi-tcms-is-going-to-fosdem-2020/<p><img src="/images/fosdem/oss_test_management_19.jpg" + alt="Stand at FOSDEM'19" + style="float:none"></p> +<p>Hello testers, Kiwi TCMS is going to <a href="http://fosdem.org/">FOSDEM 2020</a>. +This is where you can find us:</p> +<ul> +<li>Fri Jan 31st: <a href="https://fosdem.org/2020/beerevent/">after 18:00 @ Delirium Café</a> - + we are taking part of the FOSDEM Beer Event where all participants are invited. + <code>Shout out with #KiwiTCMS</code> on Twitter if you can't find us in …</li></ul><p><img src="/images/fosdem/oss_test_management_19.jpg" + alt="Stand at FOSDEM'19" + style="float:none"></p> +<p>Hello testers, Kiwi TCMS is going to <a href="http://fosdem.org/">FOSDEM 2020</a>. +This is where you can find us:</p> +<ul> +<li>Fri Jan 31st: <a href="https://fosdem.org/2020/beerevent/">after 18:00 @ Delirium Café</a> - + we are taking part of the FOSDEM Beer Event where all participants are invited. + <code>Shout out with #KiwiTCMS</code> on Twitter if you can't find us in the crowd</li> +<li>Sat Feb 1st: + <a href="https://fosdem.org/2020/schedule/track/testing_and_automation/">Testing and Automation devroom</a> - + we are proud to be co-hosting this devroom together with Linaro and SUSE. + CfP is open until Dec 10th 2019. Apply <a href="https://fosdem-testingautomation.github.io/">here</a>!</li> +<li>Sun Feb 2nd: <a href="https://fosdem.org/2020/stands/">Open Source Test Management stand</a> - + we will be together with our friends from SystemTestPortal and we are preparing + some real black-box testing for you!</li> +</ul> +<p>We would like to meet with all of you and talk about software testing, test management and +test process organization. In case you are stuck for crazy ideas checkout +<a href="/blog/atodorov/2019/01/10/project-mission-and-goals-for-2019/">our project mission</a> for inspiration.</p> +<p><small><em>Picture: FOSDEM'19 with Kiwi TCMS, ReportPortal &amp; SystemTestPortal</em></small></p> +<p>Happy testing!</p>How to override bug details in Kiwi TCMS2019-11-11T11:11:00+02:002019-11-11T11:11:00+02:00Alexander Todorovtag:None,2019-11-11:/blog/atodorov/2019/11/11/how-to-override-bug-details-in-kiwi-tcms/<p>Starting with version 7.0 Kiwi TCMS pages displaying URLs to bugs also +contain an info icon which shows additional information as tooltip. These +are designed to provide more contextual information about the bug. By default +the tooltip shows the OpenGraph metadata for that URL. This article +will explain how …</p><p>Starting with version 7.0 Kiwi TCMS pages displaying URLs to bugs also +contain an info icon which shows additional information as tooltip. These +are designed to provide more contextual information about the bug. By default +the tooltip shows the OpenGraph metadata for that URL. This article +will explain how to override this in 2 different ways.</p> +<p><img src="/images/testcase_shows_bug_details.png" alt="bug details shown" style="float:none"></p> +<h2>Option #1: using the caching layer</h2> +<p>Additional bug information is cached on the application layer. The cache +key is the bug URL! By default Kiwi TCMS uses local-memory caching which +isn't accessible for external processes but can be reconfigured very easily. +This example changes the <code>CACHES</code> setting to use a directory on the +file system like so</p> +<div class="highlight"><pre><span></span><code><span class="n">CACHES</span> <span class="o">=</span> <span class="p">{</span> + <span class="s1">&#39;default&#39;</span><span class="p">:</span> <span class="p">{</span> + <span class="s1">&#39;BACKEND&#39;</span><span class="p">:</span> <span class="s1">&#39;django.core.cache.backends.filebased.FileBasedCache&#39;</span><span class="p">,</span> + <span class="s1">&#39;LOCATION&#39;</span><span class="p">:</span> <span class="s1">&#39;/tmp/kiwi-cache&#39;</span><span class="p">,</span> + <span class="s1">&#39;TIMEOUT&#39;</span><span class="p">:</span> <span class="mi">3600</span><span class="p">,</span> + <span class="p">}</span> +<span class="p">}</span> +</code></pre></div> + + +<p>Then you need to poll your 3rd party bug tracker (and/or other systems) and +update the cache for each URL</p> +<div class="highlight"><pre><span></span><code><span class="kn">from</span> <span class="nn">django.core.cache</span> <span class="kn">import</span> <span class="n">cache</span> +<span class="kn">from</span> <span class="nn">tcms.core.contrib.linkreference.models</span> <span class="kn">import</span> <span class="n">LinkReference</span> + +<span class="k">for</span> <span class="n">reference</span> <span class="ow">in</span> <span class="n">LinkReference</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">is_defect</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span> + <span class="c1"># possibly filter objects coming only from your own bug tracker</span> + <span class="c1"># in case there are multiple trackers in use</span> + + <span class="c1"># custom methods to grab more information. Must return strings</span> + <span class="n">title</span> <span class="o">=</span> <span class="n">fetch_title_from_bug_tracker</span><span class="p">(</span><span class="n">reference</span><span class="o">.</span><span class="n">url</span><span class="p">)</span> + <span class="n">description</span> <span class="o">=</span> <span class="n">fetch_description_from_bug_tracker</span><span class="p">(</span><span class="n">reference</span><span class="o">.</span><span class="n">url</span><span class="p">)</span> + + <span class="c1"># store the information in Kiwi TCMS cache</span> + <span class="n">cache</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">reference</span><span class="p">,</span> <span class="p">{</span><span class="s1">&#39;title&#39;</span><span class="p">:</span> <span class="n">title</span><span class="p">,</span> <span class="s1">&#39;description&#39;</span><span class="p">:</span> <span class="n">description</span><span class="p">})</span> +</code></pre></div> + + +<p>Then execute the Python script above regularly. For example use the following +as your cron script</p> +<div class="highlight"><pre><span></span><code><span class="ch">#!/bin/bash</span> +<span class="nb">export</span> <span class="nv">VIRTUAL_ENV</span><span class="o">=</span>/venv +<span class="nb">export</span> <span class="nv">PATH</span><span class="o">=</span>/venv/bin:<span class="si">${</span><span class="nv">PATH</span><span class="si">}</span> +cat /path/to/cache_updater.py <span class="p">|</span> /Kiwi/manage.py shell +</code></pre></div> + + +<p><img src="/images/testcase_shows_bug_details_cache.png" alt="bug details from customized cache" style="float:none"></p> +<p><strong>IMPORTANT</strong></p> +<ul> +<li>Kiwi TCMS expires cache entries after an hour. Either change + the <code>TIMEOUT</code> setting shown above or run your script more frequently</li> +<li>How to modify default Kiwi TCMS settings is documented + <a href="https://kiwitcms.readthedocs.io/en/latest/installing_docker.html#customization">here</a></li> +<li>The Python + Bash scripts above don't need to be on the same system where Kiwi TCMS + is hosted. However they need the same Python 3 virtualenv and cache settings as + Kiwi TCMS does</li> +<li>Information about Django's cache framework and available backends + can be found <a href="https://docs.djangoproject.com/en/2.2/topics/cache/">here</a></li> +<li><code>memcached</code> is a supported cache backend option, see + <a href="https://docs.djangoproject.com/en/2.2/topics/cache/#memcached">here</a></li> +<li><a href="https://pypi.org/project/django-elasticache/">django-elasticache</a> is a + backend for Amazon ElastiCache which provides several configuration examples</li> +<li>Both <a href="https://github.com/niwinz/django-redis">django-redis</a> and + <a href="https://github.com/sebleier/django-redis-cache">django-redis-cache</a> are good + libraries which support Redis</li> +<li>Any 3rd party libraries must be <code>pip3 install</code>-ed into your own docker image</li> +</ul> +<h2>Option #2: extend bug tracker integration</h2> +<p>Let's say you are already running a customized Docker image of Kiwi TCMS. Then +you may opt-in to extend the existing bug tracker integration code which provides +the information shown in the tooltip. In this example I've extended the +<code>KiwiTCMS</code> bug tracker implementation but you can even provide your own from +scratch</p> +<div class="highlight"><pre><span></span><code><span class="k">class</span> <span class="nc">ExtendedBugTracker</span><span class="p">(</span><span class="n">KiwiTCMS</span><span class="p">):</span> + <span class="k">def</span> <span class="nf">details</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">url</span><span class="p">):</span> + <span class="n">result</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">details</span><span class="p">(</span><span class="n">url</span><span class="p">)</span> + + <span class="n">result</span><span class="p">[</span><span class="s1">&#39;title&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;EXTENDED: &#39;</span> <span class="o">+</span> <span class="n">result</span><span class="p">[</span><span class="s1">&#39;title&#39;</span><span class="p">]</span> + <span class="n">result</span><span class="p">[</span><span class="s1">&#39;description&#39;</span><span class="p">]</span> <span class="o">+=</span> <span class="s1">&#39;&lt;h1&gt;IMPORTANT&lt;/h1&gt;&#39;</span> + + <span class="k">return</span> <span class="n">result</span> +</code></pre></div> + + +<p>Then import the new <code>ExtendedBugTracker</code> class inside +<code>tcms/issuetracker/types.py</code> like so</p> +<div class="highlight"><pre><span></span><code><span class="gh">index 9ad90ac..2c76621 100644</span> +<span class="gd">--- a/tcms/issuetracker/types.py</span> +<span class="gi">+++ b/tcms/issuetracker/types.py</span> +<span class="gu">@@ -17,6 +17,9 @@ from django.conf import settings</span> + + from tcms.issuetracker.base import IssueTrackerType + from tcms.issuetracker.kiwitcms import KiwiTCMS # noqa +<span class="gi">+from tcms.issuetracker.kiwitcms import ExtendedBugTracker</span> +</code></pre></div> + + +<p>and change the bug tracker type, via https://tcms.example.com/admin/testcases/bugsystem/, +to <em>ExtendedBugTracker</em>.</p> +<p><img src="/images/testcase_shows_bug_details_extended.png" alt="bug details extended internally" style="float:none"></p> +<p><strong>IMPORTANT</strong></p> +<ul> +<li><em>ExtendedBugTracker</em> may live anywhere on the filesystem but Python must be + able to import it</li> +<li>It is best to bundle all of your customizations into a Python package and + <code>pip3 install</code> it into your customized docker image</li> +<li><em>ExtendedBugTracker</em> must be imported into <code>tcms/issuetracker/types.py</code> in order + for the admin interface and other functions to find it. You may also place the + import at the bottom of <code>tcms/issuetracker/types.py</code></li> +<li>API documentation for bug tracker integration can be found + <a href="https://kiwitcms.readthedocs.io/en/latest/modules/tcms.issuetracker.html">here</a></li> +<li>Rebuilding the docker image is outside the scope of this article. Have a look + at this + <a href="https://github.com/MrSenko/kiwitcms-enterprise/blob/master/Dockerfile">Dockerfile</a> + for inspiration</li> +</ul> +<p><strong>NOTE:</strong> starting with <a href="/blog/kiwi-tcms-team/2020/07/10/kiwi-tcms-85/">Kiwi TCMS v8.5</a> +external bug tracker integration classes are listed in the <code>EXTERNAL_BUG_TRACKERS</code> +setting. If you are using v8.5 or newer instead of +importing <code>ExtendedBugTracker</code> in <code>tcms/issuetracker/types.py</code> you should +override the list of available bug tracker integrations:</p> +<div class="highlight"><pre><span></span><code><span class="n">EXTERNAL_BUG_TRACKERS</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s1">&#39;mymodule.ExtendedBugTracker&#39;</span><span class="p">)</span> +</code></pre></div> + + +<p>Happy testing!</p>Kiwi TCMS 7.12019-10-29T13:40:00+02:002019-10-29T13:40:00+02:00Kiwi TCMS Teamtag:None,2019-10-29:/blog/kiwi-tcms-team/2019/10/29/kiwi-tcms-71/<p>We're happy to announce Kiwi TCMS version 7.1! +This is a small improvement update which includes +database schema and API changes, several other improvements, +internal refactoring and updated translations. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 …</pre><p>We're happy to announce Kiwi TCMS version 7.1! +This is a small improvement update which includes +database schema and API changes, several other improvements, +internal refactoring and updated translations. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +<p>Docker images:</p> +<pre class="literal-block"> +kiwitcms/kiwi latest c8cf36ac5ca5 602 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 +</pre> +<div class="section" id="changes-since-kiwi-tcms-7-0"> +<h2>Changes since Kiwi TCMS 7.0</h2> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update django from 2.2.5 to 2.2.6</li> +<li>Update python-gitlab from 1.11.0 to 1.12.1</li> +<li>Update pygithub from 1.43.8 to 1.44</li> +<li>Update psycopg2 from 2.8.3 to 2.8.4</li> +<li>Add help tooltips in all telemetry pages</li> +<li>Better styling for checkboxes in 'Add hyperlink' dialog, +part of TestRun page</li> +<li>Add hyperlink validation. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1147">Issue #1147</a></li> +</ul> +</div> +<div class="section" id="database-migrations"> +<h3>Database migrations</h3> +<ul class="simple"> +<li>Add <tt class="docutils literal">bugs</tt> permissions to <tt class="docutils literal">Tester</tt> group. Will make any difference +only if upgrading from existing installation</li> +</ul> +</div> +<div class="section" id="api"> +<h3>API</h3> +<ul class="simple"> +<li>New method <tt class="docutils literal">Bug.remove()</tt></li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Always build with the latest versions of translations</li> +<li>Add 'Delete' menu item in Bugs page. Fixes #1153 +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1154">Issue #1153</a></li> +<li>When deleting hyperlink from TestExecution hide the actual UI +elements from the page</li> +<li>Fix failure to delete TCs when the number of TCs inside TP is greater +than 100. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1149">Issue #1149</a> and +<a class="reference external" href="https://sentry.io/organizations/open-technologies-bulgaria-ltd/issues/1245504316/">Sentry KIWI-TCMS-8F</a></li> +</ul> +</div> +<div class="section" id="refactoring"> +<h3>Refactoring</h3> +<ul class="simple"> +<li>Rename directory <tt class="docutils literal">xmlrpc</tt> to <tt class="docutils literal">rpc</tt> and pylint updates. Refs +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/682">Issue #682</a> +(Matej Aleksandrov, Sinergise)</li> +<li>Remove labels from form fields, Refs +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/652">Issue #652</a> (Azmi YÜKSEL)</li> +<li>New base class for tests around permissions (Svetlomir Balevski)</li> +<li>New &quot;blueprint&quot; test case around permissions to make testing in this area more +robust</li> +<li>Refactor many views from function based to class based</li> +<li>Update stale tests in <tt class="docutils literal">tcms/core/tests/</tt> and make sure they aren't ignored +by the test runner</li> +<li>Remove empty class <tt class="docutils literal">XMLRPCBaseCaseForm</tt></li> +<li>Remove <tt class="docutils literal">XMLRPCNewCaseForm</tt>, duplicate of <tt class="docutils literal">NewCaseForm</tt></li> +<li>Remove <tt class="docutils literal">rpc.forms.UpdateCaseForm</tt> in favor of <tt class="docutils literal">XMLRPCUpdateCaseForm</tt></li> +<li>Update only English sources with new strings as a temporary workaround b/c +Crowdin uses different formatting heuristics than gettext. This will minimize +the number of .po format changes</li> +<li>A few pylint fixes</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sq#">Albanian translation</a> - 97%</li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/bg#">Bulgarian translation</a> - 91%</li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/zh-CN#">Chinese Simplified</a> - 71%</li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/el#">Greek translation</a> - 44%</li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/it#">Italian translation</a> - 97%</li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/ja#">Japanese translation</a> - 0%</li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/mk#">Macedonian translation</a> - 11%</li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/ru#">Russian translation</a> - 97%</li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a> - 100%</li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/es-ES#">Spanish translation</a> - 96%</li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/tr#">Turkish translation</a> - 97%</li> +</ul> +</div> +</div> +<div class="section" id="acknowledgments"> +<h2>Acknowledgments</h2> +<p>A special &quot;thank you&quot; goes to our friends from +<a class="reference external" href="https://pyconbalkan.com/">PyCon Balkan</a> in Belgrade who allowed us to host +an open source coding sprint in Belgrade during the conference!</p> +<p>A second &quot;thank you&quot; goes to +<a class="reference external" href="https://openlabs.cc/en/">Open Labs Hackerspace</a> who hosted a localization +sprint in Tirana and contributed to several different languages!</p> +<p>Thank you for being part of our community. Version 7.1 includes all of your +contributions.</p> +</div> +<div class="section" id="website-updates"> +<h2>Website updates</h2> +<p>We're using the opportunity to share that website is now serving via SSL courtesy +of GitHub and Let's encrypt.</p> +<p>Our main page has also been updated to showcase some of our customers: +Better (Slovenia), Minds, Inc. (USA), Musala Soft (Bulgaria). If you would like to +feature your corporate logo and tell us how you use Kiwi TCMS then +drop us an email!</p> +</div> +<div class="section" id="upcoming-conferences"> +<h2>Upcoming conferences</h2> +<p>The next two events we are going to participate are:</p> +<ul class="simple"> +<li><a class="reference external" href="http://www.openfest.org/">OpenFest, Nov 2-3, Sofia</a> +where we will have an info booth</li> +<li><a class="reference external" href="https://www.istacon.org/">ISTA Conference, Nov 14-15, Sofia</a> +where you can meet with Alex Todorov and some of our contributors and +customers</li> +</ul> +<p>If you are around come and say &quot;Happy testing&quot;!</p> +</div> +<div class="section" id="upcoming-fosdem-2020"> +<h2>Upcoming FOSDEM 2020</h2> +<p>We are happy to announce that our team, together with SUSE and Linaro will be +hosting the +<a class="reference external" href="http://fosdem-testingautomation.github.io/">Testing and Automation Developer Room</a> +at FOSDEM in Brussels next February.</p> +<p>Call for papers is open until December 10th 2019. Anything related to +software testing and open source is welcome. Apply from the link above.</p> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p><a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">Backup</a> first! +If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +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 +</pre> +<p><strong>WHERE:</strong> <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> has been updated from your private git repository! +The file provided in our GitHub repository is an example. Not for production use!</p> +<p><strong>WARNING:</strong> <tt class="docutils literal">kiwitcms/kiwi:latest</tt> and <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> 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:</p> +<pre class="literal-block"> +# starting from an older Kiwi TCMS version +docker-compose down +docker pull kiwitcms/kiwi:&lt;next_upgrade_version&gt; +edit docker-compose.yml to use kiwitcms/kiwi:&lt;next_upgrade_version&gt; +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +# repeat until you have reached latest +</pre> +<p>Happy testing!</p> +</div> +Kiwi TCMS 7.02019-09-24T10:30:00+03:002019-09-24T10:30:00+03:00Kiwi TCMS Teamtag:None,2019-09-24:/blog/kiwi-tcms-team/2019/09/24/kiwi-tcms-70/<p>We're happy to announce Kiwi TCMS version 7.0! +This is a major release which includes security updates, +significant database schema and API changes, many improvements, +removed functionality, bug fixes, substantial internal refactoring and +several new languages. You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>!</p> +<p>The 7.0 …</p><p>We're happy to announce Kiwi TCMS version 7.0! +This is a major release which includes security updates, +significant database schema and API changes, many improvements, +removed functionality, bug fixes, substantial internal refactoring and +several new languages. You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>!</p> +<p>The 7.0 version number happily coincides with the fact that we've surpassed +70000 downloads from <a class="reference external" href="https://hub.docker.com/r/kiwitcms/kiwi/">Docker Hub</a>.</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +<p>Docker images:</p> +<pre class="literal-block"> +kiwitcms/kiwi latest d34dc6d896bf 584 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 +</pre> +<div class="section" id="changes-since-kiwi-tcms-6-11"> +<h2>Changes since Kiwi TCMS 6.11</h2> +<div class="section" id="security"> +<h3>Security</h3> +<ul class="simple"> +<li>API method <tt class="docutils literal">BugSystem.filter()</tt> has been removed (now unused) but +it was possible to use this method to steal passwords or keys used for +Issue Tracker integration. This vulnerability could be exploited by +users logged into Kiwi TCMS and is classified as medium severity! +We advise you to change your integration API keys and passwords +immediately!</li> +</ul> +</div> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update Django from 2.2.4 to 2.2.5</li> +<li>Update django-uuslug from 1.1.8 to 1.1.9</li> +<li>Update mysqlclient from 1.4.2.post1 to 1.4.4</li> +<li>Update python-bugzilla from 2.2.0 to 2.3.0</li> +<li>Update python-gitlab from 1.10.0 to 1.11.0</li> +<li>Update patternfly from 3.59.3 to 3.59.4</li> +<li>Reduce docker image size from 1.01 GB to under 600 MB</li> +<li>Add TestCase Health telemetry</li> +<li>Add support for Redmine issue tracker. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/41">Issue #41</a> (Jesse C. Lin)</li> +<li>Add breathing room around HTML form's submit buttons (Rady Madjev)</li> +<li>New TestRun page action: bulk-add hyperlinks to TestExecution(s)</li> +<li>Make it possible to disable HTTPS by specifying the +<tt class="docutils literal">KIWI_DONT_ENFORCE_HTTPS</tt> environment variable! Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1036">Issue #1036</a> (Marco Descher)</li> +<li>Documentation updates, including internal style checker. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1000">Issue #1000</a> (Prome88)</li> +<li>When linking a TestExecution to a defect and choosing to update the +Issue Tracker Kiwi TCMS will not add a comment pointing back to +TR ID/summary/URL and TE ID/summary. This provides more detailed information +about the reproducer instead of just linking to a TestCase without any +specific execution details like we did in the past</li> +<li>Display additional defect information via Issue Tracker integration. +On Patternfly pages which show defect URLs this is accessible via a +small info icon. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/117">Issue #117</a></li> +<li>Add minimalistic defect tracker functionality. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/699">Issue #699</a><ul> +<li>integrated with Issue Tracker integration layer as if it was +an external system</li> +<li>when adding hyperlink to TestExecition (also via API method +<tt class="docutils literal">TestExecution.add_link()</tt>) this is special cased and the +references between <tt class="docutils literal">Bug</tt> and <tt class="docutils literal">TestExecution</tt> are always updated</li> +<li>when clicking 'Report bug' from inside Test Execution the new +defect is reported automatically and a new browser window opens to +display the information</li> +</ul> +</li> +</ul> +</div> +<div class="section" id="database-migrations"> +<h3>Database migrations</h3> +<ul> +<li><p class="first">Tell the migration planner to apply +<tt class="docutils literal">testruns.0006_rename_test_case_run_to_test_execution</tt> after +<tt class="docutils literal">linkreference.0001_squashed</tt>. This enables subsequent migrations +and new functionality to be applied without crashing.</p> +<blockquote> +<div class="admonition warning"> +<p class="first admonition-title">Warning</p> +<p class="last">Django should be able to handle this automatically both for +existing installations and for new ones. In any case make sure +you backup your data first and make a dry-run to verify that +nothing breaks!</p> +</div> +</blockquote> +</li> +<li><p class="first">Remove fields <tt class="docutils literal">url_reg_exp</tt>, <tt class="docutils literal">validate_reg_exp</tt> and <tt class="docutils literal">description</tt> from +<tt class="docutils literal">BugSystem</tt> model</p> +</li> +<li><p class="first">Update the following fields in <tt class="docutils literal">LinkReference</tt> model:</p> +<ul class="simple"> +<li>rename <tt class="docutils literal">test_case_run</tt> to <tt class="docutils literal">execution</tt></li> +<li>add indexing for <tt class="docutils literal">created_on</tt> and <tt class="docutils literal">url</tt></li> +<li>add <tt class="docutils literal">is_defect</tt> field</li> +</ul> +</li> +<li><p class="first">Apply <tt class="docutils literal">LinkReference</tt> permissions to default group <tt class="docutils literal">Tester</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/881">Issue #881</a></p> +<blockquote> +<div class="admonition warning"> +<p class="first admonition-title">Warning</p> +<p class="last">Administrators of existing applications will need to +apply these permissions by hand via the Admin section.</p> +</div> +</blockquote> +</li> +<li><p class="first">Remove <tt class="docutils literal">testcases.Bug</tt> model, replaced with <tt class="docutils literal">LinkReference</tt>. +Closes <a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1029">Issue #1029</a> and +obsoletes <a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/320">Issue #320</a>.</p> +<blockquote> +<div class="admonition note"> +<p class="first admonition-title">Note</p> +<p class="last">Linking bugs to TestExecution is now performed via URLs instead of +keeping a reference to BUG-ID and trying to reconstruct the URL +on the fly.</p> +</div> +<div class="admonition warning"> +<p class="first admonition-title">Warning</p> +<p class="last">The model named <tt class="docutils literal">Bug</tt> which is added by subsequent migrations +refers to defects reported into Kiwi TCMS minimalistic defect tracker!</p> +</div> +</blockquote> +</li> +<li><p class="first">New model <tt class="docutils literal">bugs.Bug</tt> is now available. Permissions of type +<tt class="docutils literal">bugs | bug | Can ...</tt> will be applied to the default group named +<tt class="docutils literal">Tester</tt> only for new installations.</p> +<blockquote> +<div class="admonition warning"> +<p class="first admonition-title">Warning</p> +<p class="last">Administrators of existing applications will need to +apply these permissions by hand via the Admin section.</p> +</div> +</blockquote> +</li> +</ul> +</div> +<div class="section" id="api"> +<h3>API</h3> +<ul class="simple"> +<li><tt class="docutils literal">TestExecution.add_link()</tt> method now returns serialized +<tt class="docutils literal">LinkReference</tt> object.</li> +<li><tt class="docutils literal">TestExecution.remove_link()</tt> method now accepts one parameter of type +<tt class="docutils literal">dict</tt> used to filter the objects which to remove</li> +<li><tt class="docutils literal">TestExecution.get_links()</tt> method now accepts one parameter of type +<tt class="docutils literal">dict</tt> instead of <tt class="docutils literal">int</tt></li> +<li><tt class="docutils literal">TestExecution.add_link()</tt> method signature changed from +(int, str, str) to (dict), where the single parameter holds field values for +the <tt class="docutils literal">LinkReference</tt> model</li> +<li>Remove <tt class="docutils literal">TestExecution.add_bug()</tt> method, use <tt class="docutils literal">TestExecution.add_link()</tt></li> +<li>Remove <tt class="docutils literal">TestExecution.remove_bug()</tt> method, use +<tt class="docutils literal">TestExecution.remove_link()</tt></li> +<li>Remove <tt class="docutils literal">TestCase.add_bug()</tt> method</li> +<li>Remove <tt class="docutils literal">TestCase.remove_bug()</tt> method</li> +<li>Remove <tt class="docutils literal">Bug.remove()</tt> method, use <tt class="docutils literal">TestExecution.remove_link()</tt></li> +<li>Remove <tt class="docutils literal">Bug.create()</tt> method, use <tt class="docutils literal">TestExecution.add_link()</tt></li> +<li>Add method <tt class="docutils literal">Bug.details()</tt> which together with the underlying +<tt class="docutils literal">IssueTracker.details()</tt> is the foundation of how Kiwi TCMS fetches +extra details from the issue tracking system. The default implementation +uses OpenGraph protocol to collect the data that will be shown. You may +override <tt class="docutils literal">.details()</tt> for each issue tracker (or add your own IT) to +extend this functionality. Information is cached for 1 hour by default. +References +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/117">Issue #117</a></li> +<li>Add methods <tt class="docutils literal">Bug.add_tag()</tt> and <tt class="docutils literal">Bug.remove_tag()</tt></li> +<li>Existing method with name <tt class="docutils literal">Bug.filter()</tt> has changed behavior. It is +now used to query objects from Kiwi TCMS minimalistic defect tracker</li> +</ul> +</div> +<div class="section" id="removed-functionality"> +<h3>Removed functionality</h3> +<ul class="simple"> +<li>Remove <tt class="docutils literal">IssueTrackerType.all_issues_link()</tt> method. This was used in +TestRun Report page to show a single link that will open all bugs in the +Issue Tracker. Most trackers don't support this and the UI portion has +been rewritten</li> +<li>Remove <tt class="docutils literal">LinkOnly</tt> issue tracker - obsolete because all defects are +now added to TestExecutions via their URLs</li> +<li>Remove bulk-add/bulk-remove of bugs in TestRun page, replaced by bulk-add +for hyperlinks</li> +</ul> +</div> +<div class="section" id="settings"> +<h3>Settings</h3> +<ul class="simple"> +<li>Respect the <tt class="docutils literal">CACHES</tt> setting, see +<a class="reference external" href="https://docs.djangoproject.com/en/2.2/ref/settings/#std:setting-CACHES">Django docs</a> +for more info. Initially this setting is used to cache defect details received +via Issue Tracker integration. See +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/117">Issue #117</a></li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Don't auto-download FontAwesome for SimpleMDE. Resolves icons disappearing +on pages which have the markdown editor. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/905">Issue #905</a></li> +<li>Reorder HTML elements so Delete button is still visible in TestCase review +comment section. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1013">Issue #1013</a> (Rady Madjev)</li> +<li>Remove section that displays bugs in TestExecution container. Bugs are now +denoted by a small icon next to their hyperlink. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/475">Issue #475</a></li> +<li>Cache Issue Tracker connections per <tt class="docutils literal">base_url</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/290">Issue #290</a></li> +</ul> +</div> +<div class="section" id="refactoring"> +<h3>Refactoring</h3> +<ul class="simple"> +<li>Lots of refactoring from function based views to class based views (Rady Madjev)</li> +<li>Use JavaScript and the API to remove case execution instead of dedicated +backend function (Rady Madjev)</li> +<li>Update pylint directives around missing permissions (Svetlomir Balevski)</li> +<li>Fix typo in identifier. Fixes +<a class="reference external" href="https://scan4.coverity.com/reports.htm#v38579/p14953/fileInstanceId=65904319&amp;defectInstanceId=11526612&amp;mergedDefectId=344186&amp;eventId=1">CID 344186</a></li> +<li>Use <tt class="docutils literal">TestExecution.add_link()</tt> and <tt class="docutils literal">TestExecution.remove_link()</tt> in UI +instead of dedicated backend function.</li> +<li>Remove unused LinkReference views, forms and tests modules</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Introduce a translation mode where you can translate the interface via +in-context editor. For more information see +<a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/contribution.html#translation">Translation guide</a>. +Fixes <a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1098">Issue #1098</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sq#">Albanian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/bg#">Bulgarian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/zh-TW#">Chinese Traditional translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/fr#">French translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/el#">Greek translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/it#">Italian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/tr#">Turkish translation</a></li> +</ul> +<p>For more information check-out +<a class="reference external" href="https://crowdin.com/project/kiwitcms">all supported languages</a>. +To request new language +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/new?title=Request+new+language:+...&amp;body=Please+enable+...+language+in+Crowdin">click here</a>!</p> +</div> +</div> +<div class="section" id="junit-xml-plugin-v0-4"> +<h2>junit.xml-plugin v0.4</h2> +<p>A few days ago we have also released +<a class="reference external" href="https://github.com/kiwitcms/junit.xml-plugin">kiwitcms-junit.xml-plugin</a> +v0.4 with the following changes:</p> +<ul class="simple"> +<li>Update junitparser from 1.3.2 to 1.3.4</li> +<li>Also support XML files with &lt;testsuites&gt; root tag (Katalon Studio). Fixes +<a class="reference external" href="https://github.com/kiwitcms/junit.xml-plugin/issues/9">Issue #9</a></li> +</ul> +</div> +<div class="section" id="tap-plugin-v0-4"> +<h2>tap-plugin v0.4</h2> +<p>We have also released +<a class="reference external" href="https://github.com/kiwitcms/tap-plugin">kiwitcms-tap-plugin</a> +v0.4 with the following changes:</p> +<ul class="simple"> +<li>Include traceback from TAP file as TestExecution comment. Fixes +<a class="reference external" href="https://github.com/kiwitcms/tap-plugin/issues/7">Issue #7</a> +(Christophe CHAUVET)</li> +</ul> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p><a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">Backup</a> first! +If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +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 +</pre> +<p><strong>WHERE:</strong> <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> has been updated from your private git repository! +The file provided in our GitHub repository is an example. Not for production use!</p> +<p><strong>WARNING:</strong> <tt class="docutils literal">kiwitcms/kiwi:latest</tt> and <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> 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:</p> +<pre class="literal-block"> +# starting from an older Kiwi TCMS version +docker-compose down +docker pull kiwitcms/kiwi:&lt;next_upgrade_version&gt; +edit docker-compose.yml to use kiwitcms/kiwi:&lt;next_upgrade_version&gt; +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +# repeat until you have reached latest +</pre> +<p>Happy testing!</p> +</div> +Open source sprints at PyCon Balkan in Belgrade2019-09-03T12:46:00+03:002019-09-03T12:46:00+03:00Kiwi TCMS Teamtag:None,2019-09-03:/blog/kiwi-tcms-team/2019/09/03/open-source-sprints-at-pycon-balkan-in-belgrade/<p>Next month our team will be at +<a href="https://pyconbalkan.com/">PyCon Balkan, Oct 3-5</a> in Belgrade. Together with +presentation and a workshop we are going to host open source sprints! +These will be an informal gathering where participants will be able to +learn more about how open source works and go through their …</p><p>Next month our team will be at +<a href="https://pyconbalkan.com/">PyCon Balkan, Oct 3-5</a> in Belgrade. Together with +presentation and a workshop we are going to host open source sprints! +These will be an informal gathering where participants will be able to +learn more about how open source works and go through their first +contributions. This is ideal for students and less experienced people +but we welcome everyone. There will be tasks ranging from easy to very hard!</p> +<p><strong>Who:</strong> 4 mentors from Kiwi TCMS and you!</p> +<p><strong>What:</strong> full day of peer programming and contributing to Kiwi TCMS</p> +<p><strong>Where:</strong> room will be announced on the days of the conference, + follow <a href="https://twitter.com/KiwiTCMS">@KiwiTCMS</a> for more info</p> +<p><strong>Why:</strong> up your tech skills, build your GitHub profile and have fun together</p> +<h2>Translate Kiwi TCMS</h2> +<p>Difficulty: easy</p> +<p>We have enabled Serbian language in our translation system. To get started +checkout our +<a href="https://kiwitcms.readthedocs.io/en/latest/contribution.html#translation">translation contribution</a> +page. +Once strings are translated <code>kiwitcms-bot</code> will automatically open a pull +request with the new text.</p> +<h2>Find unused CSS classes</h2> +<p>Difficulty: easy</p> +<p>This should be relatively easy. For each class/selector defined in our CSS files +search (grep) if any of the HTML templates use it. If it is not in use then remove +it.</p> +<h2>Find unused JavaScript code</h2> +<p>Difficulty: easy</p> +<p>Similar to the above. We're not 100% certain but there could be legacy JavaScript +functions which are no longer in use. Find them and remove them! At the very least +you have confirmed that all functions are in use!</p> +<h2>CodeClimate Minor severity issues</h2> +<p>Difficulty: easy to moderate</p> +<p>Check-out the +<a href="https://codeclimate.com/github/kiwitcms/Kiwi/issues?severity%5B%5D=minor&amp;status%5B%5D=&amp;status%5B%5D=open&amp;status%5B%5D=confirmed&amp;engine_name%5B%5D=structure&amp;engine_name%5B%5D=duplication&amp;engine_name%5B%5D=bandit&amp;engine_name%5B%5D=csslint&amp;engine_name%5B%5D=fixme&amp;engine_name%5B%5D=radon&amp;engine_name%5B%5D=sonar-python">list of Minor severity issues</a>. +There are many of them:</p> +<ul> +<li>CSS lint issues (we suggest you start with this one)</li> +<li>functions longer than 25 lines of code</li> +<li>functions with bigger cognitive and cyclomatic complexity</li> +<li>modules longer than 250 LOC</li> +</ul> +<p>Try fixing a few to see how it goes and continue if you feel confident. +Not everything may be an issue so if you have any questions ask someone from our team.</p> +<h2>CodeClimate Major severity issues</h2> +<p>Difficulty: moderate to hard</p> +<p>Check-out the +<a href="https://codeclimate.com/github/kiwitcms/Kiwi/issues?severity%5B%5D=major&amp;status%5B%5D=&amp;status%5B%5D=open&amp;status%5B%5D=confirmed&amp;engine_name%5B%5D=structure&amp;engine_name%5B%5D=duplication&amp;engine_name%5B%5D=bandit&amp;engine_name%5B%5D=csslint&amp;engine_name%5B%5D=fixme&amp;engine_name%5B%5D=radon&amp;engine_name%5B%5D=sonar-python">list of Major severity issues</a>. +There are around 150 of them:</p> +<ul> +<li>identical and similar code blocks</li> +<li>big modules</li> +<li>big functions</li> +</ul> +<p>Most of these require some sort of refactoring, either splitting snippets +of code into smaller pieces (functions or sub-modules) or using one function +in several places instead of 2 very similar but different functions, etc. +Ask our team members about which approach they prefer for fixing these issues +to minimize the effort spent here.</p> +<h2>CodeClimate Critical severity issues</h2> +<p>Difficulty: hard</p> +<p>Check-out the +<a href="https://codeclimate.com/github/kiwitcms/Kiwi/issues?severity%5B%5D=critical&amp;status%5B%5D=&amp;status%5B%5D=open&amp;status%5B%5D=confirmed&amp;engine_name%5B%5D=structure&amp;engine_name%5B%5D=duplication&amp;engine_name%5B%5D=bandit&amp;engine_name%5B%5D=csslint&amp;engine_name%5B%5D=fixme&amp;engine_name%5B%5D=radon&amp;engine_name%5B%5D=sonar-python">list of Critical severity issues</a>. +All of these are functions with high cognitive complexity and +the recommended way to deal with them is refactoring into +<a href="https://docs.djangoproject.com/en/2.2/topics/class-based-views/">class based views</a>.</p> +<h2>Improve pylint health</h2> +<p>Difficulty: easy</p> +<p>Execute pylint against the latest sources and start fixing the issues. +Looking at <a href="https://travis-ci.org/kiwitcms/Kiwi/jobs/579167487">pylint logs</a> the +following items are relatively easy to work on:</p> +<ul> +<li>Everything in module tcms.urls</li> +<li>Everything in module tcms.telemetry.api</li> +<li>Everything in module tcms.testruns.tests.test_views</li> +<li>Everything in module tcms.xmlrpc.forms</li> +<li>Everything in module tcms.testcases.tests.test_models</li> +<li>Everything in module tcms.core.forms.fields</li> +<li>Everything in module tcms.settings.common</li> +<li>Everything in module tcms.settings.test</li> +<li>All <code>module-in-directory-without-init</code> errors reported for module tcms.tests.__init__</li> +</ul> +<p>Note: <code>fixme</code>, <code>missing-permission-required</code> and <code>avoid-auto-field</code> errors are usually harder +to resolve and will require more work/refactoring. If you feel confident go ahead and +fix them, if not skip to the next error message.</p> +<p>We also use a custom pylint checker which reports function based views. +If you are looking for something harder to work on, then give it a try +(see 3rd pylint line in <code>Makefile</code>) and refactor some of the existing +view functions into class based views.</p> +<h2>Fix 3rd party security issues discovered by Bandit</h2> +<p>Difficulty: moderate to hard</p> +<p>Bandit is a static analysis tool similar to pylint. It focuses on discovering +issues which may lead to security vulnerabilities. We have resolved all such +issues in our own source code but we also execute Bandit against the entire +Python dependency stack. There it finds thousands of issues, so much so that +the reporter crashes.</p> +<p><a href="https://travis-ci.org/kiwitcms/Kiwi/jobs/579167486">In CI</a> there are around +130 issues reported. The best course of action here is to execute Bandit locally +against the offending library and then figure out what to do:</p> +<ul> +<li>report an issue upstream</li> +<li>send a pull request upstream</li> +<li>if these are test files maybe exclude them from the package (e.g. don't ship them for production)</li> +</ul> +<p>Note: inside Travis CI we have all runtime and testing dependencies which is more +than what we have inside the official Docker image for Kiwi TCMS.</p> +<h2>Work on reported issues</h2> +<p>The following issues look suitable for a sprint and don't require lots of +background knowledge. You can also find them using the +<a href="https://github.com/kiwitcms/Kiwi/labels/PyConBalkan"><code>PyConBalkan</code></a> label on +GitHub:</p> +<ul> +<li><a href="https://github.com/kiwitcms/Kiwi/issues/212">#212</a> - moderate - Convert jQ to $ - + this is an easy search &amp; rename but will require more extensive manual testing</li> +<li><a href="https://github.com/kiwitcms/Kiwi/issues/431">#431</a> - moderate to hard - Remove JavaScript fireEvent() - + 17 matches in <code>static/js/</code>. Must be replaced with direct function calls</li> +<li><a href="https://github.com/kiwitcms/Kiwi/issues/652">#652</a> - easy - Removal of labels from form fields - + all labels must be included in the HTML template and marked for translation</li> +<li><a href="https://github.com/kiwitcms/Kiwi/issues/681">#681</a>, <a href="https://github.com/kiwitcms/Kiwi/issues/682">#682</a> - moderate - + Move API modules &amp; their tests from <code>xmlrpc/api/&lt;app&gt;.py</code> to <code>&lt;app&gt;/api.py</code>. These have good test + coverage so you have to make sure you don't break anything</li> +<li><a href="https://github.com/kiwitcms/Kiwi/issues/971">#971</a> - moderate - manage.py command for changing Site URL - + will help with automatic provisioning, e.g. Ansible. For howto see + <a href="https://docs.djangoproject.com/en/2.2/howto/custom-management-commands/">Django docs</a></li> +<li><a href="https://github.com/kiwitcms/Kiwi/issues/1021">#1021</a> - moderate - Update TestCase page UI to allow adding TestPlans to cases - + use <code>TestPlan.add_case()</code> API method and refresh the widget. See how Tags and Components cards work + in the same page</li> +<li><a href="https://github.com/kiwitcms/Kiwi/issues/1070">#1070</a> - moderate - manage.py command for checking email settings - + will help with troubleshooting misconfigured email. Must raise exceptions if something fails. + For howto see + <a href="https://docs.djangoproject.com/en/2.2/howto/custom-management-commands/">Django docs</a></li> +<li><a href="https://github.com/kiwitcms/Kiwi/issues/733">#733</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/736">#736</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/738">#738</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/883">#883</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/1089">#1089</a> - hard to very hard - New checkers for pylint - + Kiwi TCMS uses customized pylint checkers to discover various conditions. We need a few more + of them and/or update of the existing ones</li> +</ul> +<p>We hope to see you in Belgrade. Until then: Happy testing!</p>Kiwi TCMS conference presence, AW20192019-08-09T10:55:00+03:002019-08-09T10:55:00+03:00Kiwi TCMS Teamtag:None,2019-08-09:/blog/kiwi-tcms-team/2019/08/09/kiwi-tcms-conference-presence-aw2019/<p>Your favorite open source test case management system is going on tour again. +During the next several months we will be at:</p> +<ul> +<li><a href="https://www.facebook.com/events/647230689047274/">DEV.BG All in One, Aug 24, Sofia</a> + where we will have an info booth</li> +<li><a href="https://www.facebook.com/Tabara.de.Testare/">Tabara de Testare Meetup, Sept 25, Bucharest</a> + where Alex Todorov will join a …</li></ul><p>Your favorite open source test case management system is going on tour again. +During the next several months we will be at:</p> +<ul> +<li><a href="https://www.facebook.com/events/647230689047274/">DEV.BG All in One, Aug 24, Sofia</a> + where we will have an info booth</li> +<li><a href="https://www.facebook.com/Tabara.de.Testare/">Tabara de Testare Meetup, Sept 25, Bucharest</a> + where Alex Todorov will join a discussion panel. To be confirmed!</li> +<li><a href="https://seetest.org/">SEETEST, Sept 26-27, Bucharest</a> - + where you can meet with Alex Todorov and some of our community friends and contributors</li> +<li><a href="https://ruseconf.com/">RuseConf, Sept 28, Ruse</a> - + where Alex Todorov and our friend Gjore Zaharchev (Seavus, Macedonia) will host + 2 presentations</li> +<li><a href="https://www.meetup.com/testival/">Testival Meetup, Oct 1-2, Zagreb</a></li> +<li><a href="https://pyconbalkan.com/">PyCon Balkan, Oct 3-5, Belgrade</a> where:<ul> +<li>Alex Todorov will present <em>Extending your static analysis for fun and profit</em></li> +<li>Kiwi TCMS team will host open source prints for 1 or 2 days (more info soon)</li> +</ul> +</li> +<li><a href="https://pionir.zamphyr.com/">Quality Assurance According to Einstein, Oct 6, Kikinda</a> + where Alex Todorov will be meeting up with the local technical community as part of our + joint work with Zamphyr</li> +<li><a href="https://www.hackconf.bg/bg/">HackConf, Oct 11-13, Sofia</a> where:<ul> +<li>Rayna Stankova &amp; Ivaylo Ivanov will be hosting <em>Git for beginners</em> workshop</li> +<li>Anton Sankov &amp; Alex Todorov will be hosting <em>Python for beginners</em> workshop</li> +<li>you can use <strong>KIWITCMS</strong> discount code</li> +</ul> +</li> +<li><a href="https://www.testcon.lt/">TestCon Europe, Oct 15-17, Vilnius</a> + where Alex Todorov will present <em>Finding security issues in open source</em> + and <em>Extend your static analysis for fun and profit</em> (backup presentation + in case other speakers don't show up)</li> +<li><a href="https://2019.testwarez.pl/">TestWarez, Oct 24-25, Ossa (near Warsaw)</a>.</li> +<li><a href="http://www.openfest.org/">OpenFest, Nov 2-3, Sofia</a> + where we will have an info booth</li> +<li><a href="https://www.istacon.org/">ISTA Conference, Nov 14-15, Sofia</a> + where you can meet with Alex Todorov and some of our contributors and + customers</li> +</ul> +<p>Feel free to ping us at <a href="https://twitter.com/KiwiTCMS">@KiwiTCMS</a> or look for the +kiwi bird logo and come to say hi. Happy testing!</p>Kiwi TCMS 6.112019-08-02T09:40:00+03:002019-08-02T09:40:00+03:00Kiwi TCMS Teamtag:None,2019-08-02:/blog/kiwi-tcms-team/2019/08/02/kiwi-tcms-611/<p>We're happy to announce Kiwi TCMS version 6.11! +This is a security and improvement release which updates +many internal dependencies, adds 2 new Telemetry reports, updates +TestPlan and TestCase cloning pages and provides several other +improvements and bug fixes. You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org …</a></p><p>We're happy to announce Kiwi TCMS version 6.11! +This is a security and improvement release which updates +many internal dependencies, adds 2 new Telemetry reports, updates +TestPlan and TestCase cloning pages and provides several other +improvements and bug fixes. You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +<p>Docker images:</p> +<pre class="literal-block"> +kiwitcms/kiwi latest 6a8249d23a67 1.011 GB +kiwitcms/kiwi 6.2 7870085ad415 957.6 MB +kiwitcms/kiwi 6.1.1 49fa42ddfe4d 955.7 MB +kiwitcms/kiwi 6.1 b559123d25b0 970.2 MB +kiwitcms/kiwi 6.0.1 87b24d94197d 970.1 MB +kiwitcms/kiwi 5.3.1 a420465852be 976.8 MB +</pre> +<div class="section" id="changes-since-kiwi-tcms-6-10"> +<h2>Changes since Kiwi TCMS 6.10</h2> +<div class="section" id="security"> +<h3>Security</h3> +<ul class="simple"> +<li>Update Django +<a class="reference external" href="https://docs.djangoproject.com/en/2.2/releases/2.2.4/">from 2.2.2 to 2.2.4</a></li> +<li>Update marked to version 0.7.0, see +<a class="reference external" href="https://github.com/markedjs/marked/releases/tag/v0.7.0">release notes</a></li> +</ul> +</div> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update python-gitlab from 1.8.0 to 1.10.0</li> +<li>Update django-grappelli from 2.12.3 to 2.13.1</li> +<li>Update django-simple-history from 2.7.2 to 2.7.3</li> +<li>Update django-attachments to 1.4.1</li> +<li>Update PyGithub from 1.43.7 to 1.43.8</li> +<li>Update patternfly to version 3.59.3</li> +<li>Update prismjs to version 1.17.0</li> +<li>Add Testing Status Matrix telemetry</li> +<li>Add Testing Execution Trends telemetry</li> +<li>Make it possible to attach files directly inside Test Plan page</li> +<li>Make it possible to attach files directly inside Test Execution widget</li> +<li>Convert Clone TestPlan page to Patternfly, greatly simplify the UI +and update behavior:<ul> +<li>Cloned TP author will always be set to the current user</li> +<li>Cloned TC author will always be set to the current user</li> +<li>Always keep the original default tester for test cases when cloning</li> +<li>Refactor to class based view</li> +<li>Fix a problem where Version values failed form validation b/c +we've been trying to filter based on non-existing field +<tt class="docutils literal">product_id</tt> instead of just <tt class="docutils literal">product</tt></li> +<li>Fixes a problem where erroneous Version value was shown in the UI</li> +</ul> +</li> +<li>Convert Clone TestCase page to Patternfly, greatly simplify the UI +and update behavior. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/838/">Issue #838</a>:<ul> +<li>Allow cloning into multiple test plans</li> +<li>Remove 'Filter another plan' option. Will be replaced by +'Add TP to TC', see +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1021">Issue #1021</a></li> +<li>Always update sortkey. Cloned TC will show at the bottom of the +TestPlan</li> +<li>Cloned TC author will always be set to the current user</li> +<li>Always keep the original default tester</li> +</ul> +</li> +</ul> +</div> +<div class="section" id="api"> +<h3>API</h3> +<ul class="simple"> +<li>First parameter of RPC method <tt class="docutils literal">Bug.report()</tt> +has been renamed from <tt class="docutils literal">test_case_run_id</tt> to <tt class="docutils literal">execution_id</tt>. This may +break existing API scripts which try to pass this argument by name +instead of by position!</li> +</ul> +</div> +<div class="section" id="settings"> +<h3>Settings</h3> +<ul class="simple"> +<li>Allow ENV variables <tt class="docutils literal">KIWI_USE_TZ</tt> and <tt class="docutils literal">KIWI_TIME_ZONE</tt> to control +settings <tt class="docutils literal">USE_TZ</tt> and <tt class="docutils literal">TIME_ZONE</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/982/">Issue #982</a> (Jason Yi)</li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Fix wrong permission label when deleting comments. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1010/">Issue #1010</a></li> +</ul> +</div> +<div class="section" id="refactoring"> +<h3>Refactoring</h3> +<ul class="simple"> +<li>Disable unnecessary pylint messages for missing-permission-required +checker (Svetlomir Balevski)</li> +<li>Remove unnecessary <tt class="docutils literal">from_plan</tt> URL variable making cleaner URLs</li> +<li>kiwi_lint: Don't check nested functions for permissions</li> +<li>Remove and regroup JavaScript functions</li> +<li>Instruct pyup-bot to monitor <tt class="docutils literal">requirements/tarballs.txt</tt> for updates</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/fr#">French translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +</ul> +</div> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p><a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">Backup</a> first! +If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +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 +</pre> +<p><strong>WHERE:</strong> <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> has been updated from your private git repository! +The file provided in our GitHub repository is an example. Not for production use!</p> +<p><strong>WARNING:</strong> <tt class="docutils literal">kiwitcms/kiwi:latest</tt> and <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> 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:</p> +<pre class="literal-block"> +# starting from an older Kiwi TCMS version +docker-compose down +docker pull kiwitcms/kiwi:&lt;next_upgrade_version&gt; +edit docker-compose.yml to use kiwitcms/kiwi:&lt;next_upgrade_version&gt; +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +# repeat until you have reached latest +</pre> +<p>Happy testing!</p> +</div> +Kiwi TCMS 6.112019-08-02T09:40:00+03:002019-08-02T09:40:00+03:00Kiwi TCMS Teamtag:None,2019-08-02:/blog/kiwi-tcms-team/2019/08/02/kiwi-tcms-611/<p>We're happy to announce Kiwi TCMS version 6.11! +This is a security and improvement release which updates +many internal dependencies, adds 2 new Telemetry reports, updates +TestPlan and TestCase cloning pages and provides several other +improvements and bug fixes. You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org …</a></p><p>We're happy to announce Kiwi TCMS version 6.11! +This is a security and improvement release which updates +many internal dependencies, adds 2 new Telemetry reports, updates +TestPlan and TestCase cloning pages and provides several other +improvements and bug fixes. You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +<p>Docker images:</p> +<pre class="literal-block"> +kiwitcms/kiwi latest 6a8249d23a67 1.011 GB +kiwitcms/kiwi 6.2 7870085ad415 957.6 MB +kiwitcms/kiwi 6.1.1 49fa42ddfe4d 955.7 MB +kiwitcms/kiwi 6.1 b559123d25b0 970.2 MB +kiwitcms/kiwi 6.0.1 87b24d94197d 970.1 MB +kiwitcms/kiwi 5.3.1 a420465852be 976.8 MB +</pre> +<div class="section" id="changes-since-kiwi-tcms-6-10"> +<h2>Changes since Kiwi TCMS 6.10</h2> +<div class="section" id="security"> +<h3>Security</h3> +<ul class="simple"> +<li>Update Django +<a class="reference external" href="https://docs.djangoproject.com/en/2.2/releases/2.2.4/">from 2.2.2 to 2.2.4</a></li> +<li>Update marked to version 0.7.0, see +<a class="reference external" href="https://github.com/markedjs/marked/releases/tag/v0.7.0">release notes</a></li> +</ul> +</div> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update python-gitlab from 1.8.0 to 1.10.0</li> +<li>Update django-grappelli from 2.12.3 to 2.13.1</li> +<li>Update django-simple-history from 2.7.2 to 2.7.3</li> +<li>Update django-attachments to 1.4.1</li> +<li>Update PyGithub from 1.43.7 to 1.43.8</li> +<li>Update patternfly to version 3.59.3</li> +<li>Update prismjs to version 1.17.0</li> +<li>Add Testing Status Matrix telemetry</li> +<li>Add Testing Execution Trends telemetry</li> +<li>Make it possible to attach files directly inside Test Plan page</li> +<li>Make it possible to attach files directly inside Test Execution widget</li> +<li>Convert Clone TestPlan page to Patternfly, greatly simplify the UI +and update behavior:<ul> +<li>Cloned TP author will always be set to the current user</li> +<li>Cloned TC author will always be set to the current user</li> +<li>Always keep the original default tester for test cases when cloning</li> +<li>Refactor to class based view</li> +<li>Fix a problem where Version values failed form validation b/c +we've been trying to filter based on non-existing field +<tt class="docutils literal">product_id</tt> instead of just <tt class="docutils literal">product</tt></li> +<li>Fixes a problem where erroneous Version value was shown in the UI</li> +</ul> +</li> +<li>Convert Clone TestCase page to Patternfly, greatly simplify the UI +and update behavior. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/838/">Issue #838</a>:<ul> +<li>Allow cloning into multiple test plans</li> +<li>Remove 'Filter another plan' option. Will be replaced by +'Add TP to TC', see +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1021">Issue #1021</a></li> +<li>Always update sortkey. Cloned TC will show at the bottom of the +TestPlan</li> +<li>Cloned TC author will always be set to the current user</li> +<li>Always keep the original default tester</li> +</ul> +</li> +</ul> +</div> +<div class="section" id="api"> +<h3>API</h3> +<ul class="simple"> +<li>First parameter of RPC method <tt class="docutils literal">Bug.report()</tt> +has been renamed from <tt class="docutils literal">test_case_run_id</tt> to <tt class="docutils literal">execution_id</tt>. This may +break existing API scripts which try to pass this argument by name +instead of by position!</li> +</ul> +</div> +<div class="section" id="settings"> +<h3>Settings</h3> +<ul class="simple"> +<li>Allow ENV variables <tt class="docutils literal">KIWI_USE_TZ</tt> and <tt class="docutils literal">KIWI_TIME_ZONE</tt> to control +settings <tt class="docutils literal">USE_TZ</tt> and <tt class="docutils literal">TIME_ZONE</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/982/">Issue #982</a> (Jason Yi)</li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Fix wrong permission label when deleting comments. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1010/">Issue #1010</a></li> +</ul> +</div> +<div class="section" id="refactoring"> +<h3>Refactoring</h3> +<ul class="simple"> +<li>Disable unnecessary pylint messages for missing-permission-required +checker (Svetlomir Balevski)</li> +<li>Remove unnecessary <tt class="docutils literal">from_plan</tt> URL variable making cleaner URLs</li> +<li>kiwi_lint: Don't check nested functions for permissions</li> +<li>Remove and regroup JavaScript functions</li> +<li>Instruct pyup-bot to monitor <tt class="docutils literal">requirements/tarballs.txt</tt> for updates</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/fr#">French translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +</ul> +</div> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p><a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">Backup</a> first! +If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +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 +</pre> +<p><strong>WHERE:</strong> <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> has been updated from your private git repository! +The file provided in our GitHub repository is an example. Not for production use!</p> +<p><strong>WARNING:</strong> <tt class="docutils literal">kiwitcms/kiwi:latest</tt> and <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> 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:</p> +<pre class="literal-block"> +# starting from an older Kiwi TCMS version +docker-compose down +docker pull kiwitcms/kiwi:&lt;next_upgrade_version&gt; +edit docker-compose.yml to use kiwitcms/kiwi:&lt;next_upgrade_version&gt; +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +# repeat until you have reached latest +</pre> +<p>Happy testing!</p> +</div> +Contributor profile: Aneta Petkova2019-07-08T17:53:00+03:002019-07-08T17:53:00+03:00Kiwi TCMS Teamtag:None,2019-07-08:/blog/kiwi-tcms-team/2019/07/08/contributor-profile-aneta-petkova/<p>Happy Monday, testers! +In this <a href="/blog/tags/community/">series</a> we are introducing the contributors behind Kiwi TCMS. +This is our community and these are their stories.</p> +<div class="member-bio"> + <img class="rounded" src="/images/contributors/aneta.jpg" height="150" width="150"> + <strong>Aneta Petkova</strong> - QA Chapter Lead at SumUp + <em></em> + + <p> + Aneta is a software engineer navigating the complex field of QA + since her first "grownup" job. She's been working in …</p></div><p>Happy Monday, testers! +In this <a href="/blog/tags/community/">series</a> we are introducing the contributors behind Kiwi TCMS. +This is our community and these are their stories.</p> +<div class="member-bio"> + <img class="rounded" src="/images/contributors/aneta.jpg" height="150" width="150"> + <strong>Aneta Petkova</strong> - QA Chapter Lead at SumUp + <em></em> + + <p> + Aneta is a software engineer navigating the complex field of QA + since her first "grownup" job. She's been working in the area of + test automation for web applications using different programming languages and tools. + + Her mission is to inspire people to think about quality from the + very inception of ideas and to blur the line between developers and + QA specialists. + </p> + + <a href="https://twitter.com/anetavp" class="bio-link"> + <i class="lab la-twitter"></i> + </a> + + <a href="https://github.com/apetkova" class="bio-link"> + <i class="lab la-github"></i> + </a> + + <a href="https://bg.linkedin.com/in/apetkova" class="bio-link"> + <i class="lab la-linkedin"></i> + </a> +</div> + +<h2>What is your professional background</h2> +<p>I have an engineering degree in computer science and I've spend the last 8 years in Quality Assurance. +Java, TestNG and UI automation with Selenium WebDriver are my strongest technical skills but +I use different programming languages and tools.</p> +<blockquote> +<p>I believe languages and tools should only support an engineer and never define them.</p> +</blockquote> +<p>Currently I am the QA Chapter Lead at <a href="https://sumup.com/">SumUp</a>, +where I can work towards achieving my goals in an amazing team of people that do what they love.</p> +<h2>When did you use open source for the first time</h2> +<p>The first time I remember was in 2011, but I've probably used it before and just didn't pay attention. +To me it seemed the same as proprietary, and I guess that means it was good.</p> +<h2>Describe your contributions to the project</h2> +<p>I created <a href="https://github.com/kiwitcms/junit-plugin/">kiwitcms-junit-plugin</a>. +This is a native Java library which you can install via Maven Central. It +will discover your automated test suite and publish test execution results in +Kiwi TCMS. This plugin is very simple and requires only minimal configuration +before it is ready to work. +Check-out the example in <a href="https://tcms.kiwitcms.org/plan/25/">TP-25</a>!</p> +<p><em>editor comment:</em> Aneta and Ivo (Kiwi TCMS) hosted the +<a href="https://www.youtube.com/watch?v=r5sp0e7LsDc">"Git crash course" workshop at HackConf 2018</a>. +Kiwi TCMS will be hosting 2 workshops this year so stay tuned!</p> +<h2>Why did you decide to contribute to Kiwi TCMS</h2> +<p>I had recently switched Java for Ruby and I was feeling nostalgic. +Also, I had spent my entire career so far in QA and I wanted to slip on +the developer shoes for at least a little bit.</p> +<h2>Was there something which was hard for you during the contribution process</h2> +<p>I'm used to working in a team and when I started working on this project +I was the only active Java developer. Luckily for me, I live in the time of StackOverflow, +so I managed to get most of my questions answered by strangers on the Internet.</p> +<blockquote> +<p>I learned tons of stuff, but mostly I learned I can build software, not just test it!</p> +</blockquote> +<h2>Which is the best part of contributing to Kiwi TCMS</h2> +<p>Doing something that has the potential to help others and that could be improved upon.</p> +<h2>What is next for you in professional and open source plan</h2> +<p>My current focus is moving slightly into DevOps direction and I am really overwhelmed +by the amount of things to learn. I feel there is so much I want to experiment with. +I am not really planning anything related to open source - it has never been a goal for me - +but when I come across a project I feel strongly about, I'd probably be tempted to contribute.</p> +<p><em>Thank you, Aneta! Happy testing!</em></p>Contributor profile: Primož Klemen2019-07-05T11:10:00+03:002019-07-05T11:10:00+03:00Kiwi TCMS Teamtag:None,2019-07-05:/blog/kiwi-tcms-team/2019/07/05/contributor-profile-primoz-klemen/<p>In this new <a href="/blog/tags/community/">series</a> we are going to introduce the contributors behind Kiwi TCMS. +This is our community and these are their stories.</p> +<div class="member-bio"> + <img class="rounded" src="/images/contributors/primoz.jpg" height="150" width="150"> + <strong>Primož Klemen</strong> - + <em>QA tester, full time dad, Manchester United F.C. supporter</em> + + <p> + Primož is an early adopter and our Slovenian translator. He's been actively engaging + in GitHub …</p></div><p>In this new <a href="/blog/tags/community/">series</a> we are going to introduce the contributors behind Kiwi TCMS. +This is our community and these are their stories.</p> +<div class="member-bio"> + <img class="rounded" src="/images/contributors/primoz.jpg" height="150" width="150"> + <strong>Primož Klemen</strong> - + <em>QA tester, full time dad, Manchester United F.C. supporter</em> + + <p> + Primož is an early adopter and our Slovenian translator. He's been actively engaging + in GitHub issues, posted pull requests for improving documentation and follows us on + <a href="https://stackoverflow.com/questions/tagged/kiwi-tcms">StackOverflow</a> as well. + </p> + + <a href="https://github.com/Prome88" class="bio-link"> + <i class="lab la-github"></i> + </a> + + <a href="https://www.linkedin.com/in/primozklemen/" class="bio-link"> + <i class="lab la-linkedin"></i> + </a> +</div> + +<h2>What is your professional background</h2> +<p>I've started working in IT as tech support for the 2nd largest Slovenian ISP at the time. +Then I've been at leading software provider for fintech in the Balkans region in the same +role and gradually transitioned into QA role. Currently, I'm working as a QA tester for +<a href="http://better.care">Better (by Marand)</a> and ensure, with help of my colleagues of course, +proper quality of administration application for health care sector.</p> +<h2>When did you use open source for the first time</h2> +<p>If I recall correctly that would be some 14 years ago when I ditched dreaded +Internet Explorer in favor of Mozilla Firefox browser. The whole Internet got better in +a matter of seconds.</p> +<h2>What are your contributions to Kiwi TCMS</h2> +<p>I mainly contribute via translating the application into my native language, Slovenian. +Currently there are +<a href="https://crowdin.com/project/kiwitcms">7 languages available</a> for Kiwi TCMS so you are +more than welcome to join and add another one. +<a href="https://kiwitcms.readthedocs.io/en/latest/contribution.html#translation">Translating via Crowdin</a> +is very simple and requires no additional technical skills. I've also dabbled into project +documentation and proposed a few updates to it. I'm also the culprit for some +<a href="https://github.com/kiwitcms/Kiwi/issues/Prome88">32 issues</a> and counting, +the majority of them being proposals for future application enhancements and few UX/UI bugs +(déformation professionnelle :-)).</p> +<h2>Why did you decide to contribute to Kiwi TCMS</h2> +<blockquote> +<p>The guys and gals from the Kiwi TCMS team provided us with an application which solved +our pain about building, maintaining and running manual regression tests.</p> +</blockquote> +<p>They did all of that for free in their spare time! So I've decided to give something back to +the whole community. This was indeed my first +contribution to the open source world but not the last. Since then I've also +contributed to other projects which I use on a regular basis.</p> +<blockquote> +<p>In hindsight, Kiwi TCMS converted me from an open source user to open source contributor!</p> +</blockquote> +<h2>Was there something which was hard for you during the contribution process</h2> +<p>Contributing to the project, as a non-developer, is very easy and intuitive by +either opening issues on GitHub or translating via Crowdin or even committing +updated documentation to git repository through GitHub Desktop client. +All of the aforementioned was new to me and I've learned in depth how to use +these tools. I've also had the pleasure to familiarize myself with project documentation +- Sphinx and reStructuredText are my two new best friends.</p> +<h2>Which is the best part of contributing to Kiwi TCMS</h2> +<p>Being able to actively improve an application that we use on a daily basis in our +development process. Getting to know more people from all around the globe and see their +insights about software quality assurance thus learning something new every day.</p> +<h2>What is next for you in professional and open source plan</h2> +<p>Professionally I'm 100% committed to <a href="http://better.care">Better (by Marand)</a> and helping us achieve +the best standard of quality for health care applications which also incorporates +using the knowledge gathered by following and/or contributing to open source. +I'm going to continue contributing to Kiwi TCMS and +Captura and if time allows maybe involve myself with some other interesting projects.</p> +<p><em>Thank you, Primož! Happy testing!</em></p>Mid-year roadmap status report2019-06-28T15:50:00+03:002019-06-28T15:50:00+03:00Alexander Todorovtag:None,2019-06-28:/blog/atodorov/2019/06/28/mid-year-roadmap-status-report/<p>Hello everyone, in this article I will outline the progress that the Kiwi TCMS +team has made towards achieving the goals on our +<a href="/blog/atodorov/2019/01/10/project-mission-and-goals-for-2019/">2019 mission and roadmap</a>. +TL,DR: Kiwi TCMS has made progress since January, it's been tough and may not have been +very visible. I feel like we've …</p><p>Hello everyone, in this article I will outline the progress that the Kiwi TCMS +team has made towards achieving the goals on our +<a href="/blog/atodorov/2019/01/10/project-mission-and-goals-for-2019/">2019 mission and roadmap</a>. +TL,DR: Kiwi TCMS has made progress since January, it's been tough and may not have been +very visible. I feel like we've been behind schedule till now! The greatest +positive thing has been community and team development!</p> +<h2>Complete the internal refactoring</h2> +<p><em>Status: minimal progress, needs help</em></p> +<p><a href="https://codeclimate.com/github/kiwitcms/Kiwi">CodeClimate</a> progress is:</p> +<ul> +<li>-30 code smells</li> +<li>-40 duplications</li> +<li>-30 other issues</li> +<li>4% technical debt improvement</li> +<li>-200 hrs remaining until issues are fixed</li> +</ul> +<p>This is mostly the result of code reviews and minor fixes, not targeted work.</p> +<p>We have not done any targeted work to resolve other issues reported by Scrutinizer, +Pylint, remove vendored-in JavaScript libraries, JavaScript refactoring or +classification of issues in 3rd party dependencies.</p> +<p>There are new people onboarding in the team right now and our plan is for +them to start grinding at these issues very soon!</p> +<h2>Redesign the UI templates with the help of Patternfly</h2> +<p><em>Status: 50% done, needs help</em></p> +<p>There are 27 HTML templates remaining to be redesigned (from 59). That's mostly +due to internal cleanup than targeted refactoring. More work on this item +will probably follow towards the end of the year after we get more priority items out of +the way and get more of the new team members rolling!</p> +<h2>Modernize reporting aka Telemetry</h2> +<p><em>Status: in progress, a bit behind schedule</em></p> +<p>The specs for the new <a href="/blog/kiwi-tcms-team/2019/03/03/legacy-reports-become-telemetry/">Telemetry</a> system +have been defined after taking into account feedback on GitHub issues. Anton Sankov is +the leading developer for this feature. So far we have 2 telemetry reports merged: +testing break-down and status matrix. The next one will be execution trends.</p> +<p>There are lots of minor issues or missing functionality in these first iterations +(compared to specification). Our plan is to have the major use-cases satisfied first +and then work to refine all of the existing telemetry pages.</p> +<h2>Plugins for 3rd party test automation frameworks</h2> +<p><em>Status: good, needs help</em></p> +<p>Until now we have released TAP, junit.xml and native JUnit 5 plugins. There's also +a PHPUnit plugin which is more or less complete but unreleased yet. Both JUnit 5 +and PHPUnit plugins are developed by external contributors!</p> +<p>We often get asked for plugins for languages and frameworks we don't use or don't +even know! Given that our expertise is mostly in Python we will gladly accept your +pull requests if you decide to maintain or contribute to one of the plugins. This +will also help us get insight into what automation frameworks people are using +and how exactly you structure a test automation workflow around Kiwi TCMS.</p> +<p>Checkout the +<a href="https://kiwitcms.readthedocs.io/en/latest/plugins.html">documentation</a> for links +and more info.</p> +<h2>Redefine bug-tracker integration</h2> +<p><em>Status: no progress</em></p> +<p>Last week, right after OpenExpo, we did a check-up session and this was one of the +areas identified with zero amount of progress. I have a strong preference to work +on this feature myself but have not been able to due to various other items that +need my attention.</p> +<p>The short version is that I'd prefer to remove all issue tracker specific code +and allow the tester to add arbitrary URLs to link to existing bugs. How to do +integration (even as simple as publishing a comment in the bug tracker) over +a generic interface still eludes me. In the next few weeks I will kick-off this +topic with a separate blog post/issue for everyone to comment on.</p> +<h2>GitHub flow integration</h2> +<p><em>Status: no progress</em></p> +<p>Our team spent some time making Kiwi TCMS the first open source TCMS available +on the <a href="https://github.com/marketplace/kiwi-tcms">GitHub Marketplace</a>. We will +continue this integration effort and flow integration will emerge from that. +There's also many things that need to be done to satisfy GitHub's .</p> +<h2>Agile integration with Trello</h2> +<p><em>Status: no progress</em></p> +<h2>Improve engineering productivity</h2> +<p><em>Status: no progress</em></p> +<p>Our mission is to transform testing in your organization by providing +the tools for that via Kiwi TCMS. It is astonishing that so far nobody has provided +any kind of feedback in <a href="https://github.com/kiwitcms/Kiwi/issues/703">Issue #703</a> +wrt improving productivity in their teams!</p> +<p>We have some ideas which have been blocked by lack of resources on the team and +refactoring tasks. Because we've adopted this as our mission this is an important +item for us and we'll continue working on it as resources allow. +Progress is to be expected towards the end of the year.</p> +<h2>Community</h2> +<p><em>Status: great, on track, needs work</em></p> +<p>This is our strongest area during the year so far. We have a strong presence in +several communities, our event schedule is busy enough and we are gaining more +recognition every day!</p> +<ul> +<li>Hosted project stand at 3/5 conferences with 2 more on-track</li> +<li>Won the OpenAward for <a href="2019-06-24-openawards-winner.markdown">Best Tech Community</a></li> +<li>Hosted several presentations and workshops with few more on track</li> +<li>Found new talent to join the core team: 2 just ready to start contributing, 5 more in training</li> +<li>1 more senior engineer as a mentor. We also have a few independent wanna-be contributors + and will be hosting qualification interviews for marketing assistant very soon</li> +<li>There are contributions and pull requests coming from users of Kiwi TCMS as well. + We'd like to see more of course.</li> +<li>There are a couple of open source projects and companies using Kiwi TCMS who + are friendly towards the project. We are working with them to get a public + endorsement on the website and engage in more technical work together. Of course + everyone has limited resources and is very busy :-(</li> +<li>Sponsors on <a href="https://opencollective.com/kiwitcms#contributors">OpenCollect</a> are just + a few but we didn't have any previously so this is a good sign.</li> +</ul> +<p>This is the moment to mention that not all is honey and roses in open source land. +Kiwi TCMS suffers from the problem that many of our users can't be contributors +or simply don't want to!</p> +<p>Manual testers can't program. This is a fact and a good sized chunk of our user base +actually performs manual testing. Those that can write automation and probably +code decently well may not be familiar with Python and Django. At least in Bulgaria +these two aren't very popular, definitely not among testers. That is to say this part +of the user-base simply doesn't have the necessary skills to contribute and the majority +of what we need is code contribution!</p> +<p>Another (fairly big IMO) group of users are coming from proprietary companies who +view open source and Kiwi TCMS as a zero cost option. Something that they take free +of charge and use it without ever contributing back. They don't understand nor really +care about the open source culture.</p> +<p>To make things worse we receive requests every single day via +our private email addresses or questions via IM despite our website clearly stating +community engagement rules. On a few occasions we have received very rude comments +of the sort "our company demands you fix this", "is this going to be ready this year" +(context implying entitlement), etc. To make things more ridiculous we've even received +support requests (via contact form) from companies and start-up +who get their return address wrong so we can't get in touch directly!</p> +<p>In short: don't demand anything from us unless you are ready to pay for it, work for it +yourself or propose a mutually beneficial scenario. We do try to keep the community +happy but more importantly follow our mission and develop our core team!</p> +<p>Happy testing!</p>Mid-year roadmap status report2019-06-28T15:50:00+03:002019-06-28T15:50:00+03:00Alexander Todorovtag:None,2019-06-28:/blog/atodorov/2019/06/28/mid-year-roadmap-status-report/<p>Hello everyone, in this article I will outline the progress that the Kiwi TCMS +team has made towards achieving the goals on our +<a href="/blog/atodorov/2019/01/10/project-mission-and-goals-for-2019/">2019 mission and roadmap</a>. +TL,DR: Kiwi TCMS has made progress since January, it's been tough and may not have been +very visible. I feel like we've …</p><p>Hello everyone, in this article I will outline the progress that the Kiwi TCMS +team has made towards achieving the goals on our +<a href="/blog/atodorov/2019/01/10/project-mission-and-goals-for-2019/">2019 mission and roadmap</a>. +TL,DR: Kiwi TCMS has made progress since January, it's been tough and may not have been +very visible. I feel like we've been behind schedule till now! The greatest +positive thing has been community and team development!</p> +<h2>Complete the internal refactoring</h2> +<p><em>Status: minimal progress, needs help</em></p> +<p><a href="https://codeclimate.com/github/kiwitcms/Kiwi">CodeClimate</a> progress is:</p> +<ul> +<li>-30 code smells</li> +<li>-40 duplications</li> +<li>-30 other issues</li> +<li>4% technical debt improvement</li> +<li>-200 hrs remaining until issues are fixed</li> +</ul> +<p>This is mostly the result of code reviews and minor fixes, not targeted work.</p> +<p>We have not done any targeted work to resolve other issues reported by Scrutinizer, +Pylint, remove vendored-in JavaScript libraries, JavaScript refactoring or +classification of issues in 3rd party dependencies.</p> +<p>There are new people onboarding in the team right now and our plan is for +them to start grinding at these issues very soon!</p> +<h2>Redesign the UI templates with the help of Patternfly</h2> +<p><em>Status: 50% done, needs help</em></p> +<p>There are 27 HTML templates remaining to be redesigned (from 59). That's mostly +due to internal cleanup than targeted refactoring. More work on this item +will probably follow towards the end of the year after we get more priority items out of +the way and get more of the new team members rolling!</p> +<h2>Modernize reporting aka Telemetry</h2> +<p><em>Status: in progress, a bit behind schedule</em></p> +<p>The specs for the new <a href="/blog/kiwi-tcms-team/2019/03/03/legacy-reports-become-telemetry/">Telemetry</a> system +have been defined after taking into account feedback on GitHub issues. Anton Sankov is +the leading developer for this feature. So far we have 2 telemetry reports merged: +testing break-down and status matrix. The next one will be execution trends.</p> +<p>There are lots of minor issues or missing functionality in these first iterations +(compared to specification). Our plan is to have the major use-cases satisfied first +and then work to refine all of the existing telemetry pages.</p> +<h2>Plugins for 3rd party test automation frameworks</h2> +<p><em>Status: good, needs help</em></p> +<p>Until now we have released TAP, junit.xml and native JUnit 5 plugins. There's also +a PHPUnit plugin which is more or less complete but unreleased yet. Both JUnit 5 +and PHPUnit plugins are developed by external contributors!</p> +<p>We often get asked for plugins for languages and frameworks we don't use or don't +even know! Given that our expertise is mostly in Python we will gladly accept your +pull requests if you decide to maintain or contribute to one of the plugins. This +will also help us get insight into what automation frameworks people are using +and how exactly you structure a test automation workflow around Kiwi TCMS.</p> +<p>Checkout the +<a href="https://kiwitcms.readthedocs.io/en/latest/plugins.html">documentation</a> for links +and more info.</p> +<h2>Redefine bug-tracker integration</h2> +<p><em>Status: no progress</em></p> +<p>Last week, right after OpenExpo, we did a check-up session and this was one of the +areas identified with zero amount of progress. I have a strong preference to work +on this feature myself but have not been able to due to various other items that +need my attention.</p> +<p>The short version is that I'd prefer to remove all issue tracker specific code +and allow the tester to add arbitrary URLs to link to existing bugs. How to do +integration (even as simple as publishing a comment in the bug tracker) over +a generic interface still eludes me. In the next few weeks I will kick-off this +topic with a separate blog post/issue for everyone to comment on.</p> +<h2>GitHub flow integration</h2> +<p><em>Status: no progress</em></p> +<p>Our team spent some time making Kiwi TCMS the first open source TCMS available +on the <a href="https://github.com/marketplace/kiwi-tcms">GitHub Marketplace</a>. We will +continue this integration effort and flow integration will emerge from that. +There's also many things that need to be done to satisfy GitHub's .</p> +<h2>Agile integration with Trello</h2> +<p><em>Status: no progress</em></p> +<h2>Improve engineering productivity</h2> +<p><em>Status: no progress</em></p> +<p>Our mission is to transform testing in your organization by providing +the tools for that via Kiwi TCMS. It is astonishing that so far nobody has provided +any kind of feedback in <a href="https://github.com/kiwitcms/Kiwi/issues/703">Issue #703</a> +wrt improving productivity in their teams!</p> +<p>We have some ideas which have been blocked by lack of resources on the team and +refactoring tasks. Because we've adopted this as our mission this is an important +item for us and we'll continue working on it as resources allow. +Progress is to be expected towards the end of the year.</p> +<h2>Community</h2> +<p><em>Status: great, on track, needs work</em></p> +<p>This is our strongest area during the year so far. We have a strong presence in +several communities, our event schedule is busy enough and we are gaining more +recognition every day!</p> +<ul> +<li>Hosted project stand at 3/5 conferences with 2 more on-track</li> +<li>Won the OpenAward for <a href="2019-06-24-openawards-winner.markdown">Best Tech Community</a></li> +<li>Hosted several presentations and workshops with few more on track</li> +<li>Found new talent to join the core team: 2 just ready to start contributing, 5 more in training</li> +<li>1 more senior engineer as a mentor. We also have a few independent wanna-be contributors + and will be hosting qualification interviews for marketing assistant very soon</li> +<li>There are contributions and pull requests coming from users of Kiwi TCMS as well. + We'd like to see more of course.</li> +<li>There are a couple of open source projects and companies using Kiwi TCMS who + are friendly towards the project. We are working with them to get a public + endorsement on the website and engage in more technical work together. Of course + everyone has limited resources and is very busy :-(</li> +<li>Sponsors on <a href="https://opencollective.com/kiwitcms#contributors">OpenCollect</a> are just + a few but we didn't have any previously so this is a good sign.</li> +</ul> +<p>This is the moment to mention that not all is honey and roses in open source land. +Kiwi TCMS suffers from the problem that many of our users can't be contributors +or simply don't want to!</p> +<p>Manual testers can't program. This is a fact and a good sized chunk of our user base +actually performs manual testing. Those that can write automation and probably +code decently well may not be familiar with Python and Django. At least in Bulgaria +these two aren't very popular, definitely not among testers. That is to say this part +of the user-base simply doesn't have the necessary skills to contribute and the majority +of what we need is code contribution!</p> +<p>Another (fairly big IMO) group of users are coming from proprietary companies who +view open source and Kiwi TCMS as a zero cost option. Something that they take free +of charge and use it without ever contributing back. They don't understand nor really +care about the open source culture.</p> +<p>To make things worse we receive requests every single day via +our private email addresses or questions via IM despite our website clearly stating +community engagement rules. On a few occasions we have received very rude comments +of the sort "our company demands you fix this", "is this going to be ready this year" +(context implying entitlement), etc. To make things more ridiculous we've even received +support requests (via contact form) from companies and start-up +who get their return address wrong so we can't get in touch directly!</p> +<p>In short: don't demand anything from us unless you are ready to pay for it, work for it +yourself or propose a mutually beneficial scenario. We do try to keep the community +happy but more importantly follow our mission and develop our core team!</p> +<p>Happy testing!</p>Kiwi TCMS is OpenAwards 2019 Best Tech Community Winner2019-06-24T13:10:00+03:002019-06-24T13:10:00+03:00Alexander Todorovtag:None,2019-06-24:/blog/atodorov/2019/06/24/kiwi-tcms-is-openawards-2019-best-tech-community-winner/<p><img src="/images/openexpo/award.jpg" + alt="Image of the award" + style="float: none"></p> +<p>Kiwi TCMS is the winner at OpenAwards'19 category Best Tech Community! +Big thanks to the jury, our contributors and core-team and the larger +open source and quality assurance communities who voted for us and supported +the project during all of those years.</p> +<p>This award is the best present we could …</p><p><img src="/images/openexpo/award.jpg" + alt="Image of the award" + style="float: none"></p> +<p>Kiwi TCMS is the winner at OpenAwards'19 category Best Tech Community! +Big thanks to the jury, our contributors and core-team and the larger +open source and quality assurance communities who voted for us and supported +the project during all of those years.</p> +<p>This award is the best present we could get to mark the 10th anniversary +of the project. More news of how we are progressing with current roadmap will +follow soon in a separate blog post.</p> +<p>Thank you &amp; happy testing!</p>Kiwi TCMS 6.102019-06-18T22:45:00+03:002019-06-18T22:45:00+03:00Kiwi TCMS Teamtag:None,2019-06-18:/blog/kiwi-tcms-team/2019/06/18/kiwi-tcms-610/<p>We're happy to announce Kiwi TCMS version 6.10! +This is a small security and improvement update. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 …</pre><p>We're happy to announce Kiwi TCMS version 6.10! +This is a small security and improvement update. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +<p>Docker images:</p> +<pre class="literal-block"> +kiwitcms/kiwi latest bbb581d60ed1 1.005 GB +kiwitcms/kiwi 6.2 7870085ad415 957.6 MB +kiwitcms/kiwi 6.1.1 49fa42ddfe4d 955.7 MB +kiwitcms/kiwi 6.1 b559123d25b0 970.2 MB +kiwitcms/kiwi 6.0.1 87b24d94197d 970.1 MB +kiwitcms/kiwi 5.3.1 a420465852be 976.8 MB +</pre> +<div class="section" id="changes-since-kiwi-tcms-6-9"> +<h2>Changes since Kiwi TCMS 6.9</h2> +<div class="section" id="security"> +<h3>Security</h3> +<ul class="simple"> +<li>Update Django from 2.2.1 to 2.2.2 for medium severity +CVE-2019-12308 (XSS), CVE-2019-11358 (jQuery). +<a class="reference external" href="https://docs.djangoproject.com/en/2.2/releases/2.2.2/">More info</a></li> +<li>Add missing permission checks for menus in Test run page UI template. +Permission check added for TestExecution status and comment menu. +References <a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/716">Issue #716</a></li> +<li>Re-enable static analysis with <tt class="docutils literal">bandit</tt> and <tt class="docutils literal">Coverity Scan</tt> in +Travis CI (Svetlomir Balevski)</li> +</ul> +</div> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update psycopg2 from 2.8.2 to 2.8.3</li> +<li>Update markdown from 3.1 to 3.1.1</li> +<li>Update patternfly to version 3.59.2</li> +<li>Override <tt class="docutils literal">PasswordResetForm</tt> because <tt class="docutils literal">Site.objects.get_current()</tt> +didn't produce correct results when working with <tt class="docutils literal"><span class="pre">kiwitcms-tenants</span></tt></li> +<li>Show column <tt class="docutils literal">is_active</tt> in user admin page</li> +</ul> +</div> +<div class="section" id="refactoring"> +<h3>Refactoring</h3> +<ul class="simple"> +<li>Add test for <tt class="docutils literal">email_case_deletion()</tt> (Rik)</li> +<li>New linter to warn about usage of <tt class="docutils literal">AutoField</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/737">Issue #737</a> (Ivo Donchev, HackSoft)</li> +<li>New linter to discover empty classed. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/739">Issue #739</a> (Daniel Goshev)</li> +<li>New linter to warn about usage of <tt class="docutils literal">OneToOneField</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/735">Issue #735</a> (George Goranov)</li> +<li>New linter to warn about usage of function based views. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/734">Issue #734</a> (Yavor Lulchev, Uber)</li> +<li>New linter to discover Python files in directories without <tt class="docutils literal">__init__.py</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/790">Issue #790</a></li> +</ul> +</div> +</div> +<div class="section" id="join-us-at-openexpo-in-madrid"> +<h2>Join us at OpenExpo in Madrid</h2> +<p>Kiwi TCMS is exhibitor at <a class="reference external" href="https://openexpoeurope.com/">OpenExpo Europe</a> +on June 20th in Madrid. We will be hosting an info booth and 2 technical +presentations delivered by +<a class="reference external" href="https://openexpoeurope.com/speaker/anton-sankov/">Anton Sankov</a> and +<a class="reference external" href="https://openexpoeurope.com/speaker/alexander-todorov/">Alex Todorov</a>.</p> +<p>Kiwi TCMS is also the leading finalist in the +<a class="reference external" href="https://a.cstmapp.com/entries/31129/sort:votes/direction:desc">Best Tech Community</a> +category at Open Awards 2019!</p> +<p>Use <strong>OE19SPEAKERINVITE</strong> 100% discount code! Get your ticket +<a class="reference external" href="https://www.eventbrite.es/e/openexpo-europe-2019-the-leading-enterprise-it-open-innovation-summit-tickets-56499351080?discount=OE19SPEAKERINVITE#tickets">here</a>!</p> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p>If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +cd Kiwi/ +git pull +docker-compose down +docker pull kiwitcms/kiwi +docker pull centos/mariadb +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +</pre> +<p>Don't forget to <a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">backup</a> +before upgrade!</p> +<p><strong>WARNING:</strong> <tt class="docutils literal">kiwitcms/kiwi:latest</tt> and <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> 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:</p> +<pre class="literal-block"> +# starting from an older Kiwi TCMS version +docker-compose down +docker pull kiwitcms/kiwi:&lt;next_upgrade_version&gt; +edit docker-compose.yml to use kiwitcms/kiwi:&lt;next_upgrade_version&gt; +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +# repeat until you have reached latest +</pre> +<p>Happy testing!</p> +</div> +Kiwi TCMS needs your help winning OpenAwards 20192019-05-27T16:15:00+03:002019-05-27T16:15:00+03:00Kiwi TCMS Teamtag:None,2019-05-27:/blog/kiwi-tcms-team/2019/05/27/kiwi-tcms-needs-your-help-winning-openawards-2019/<p><img src="/images/openexpo/openawards2019.jpg" + alt="Vote for Kiwi TCMS at OpenAwards 2019" + style="float: none"></p> +<p>Thanks to you, our community supporters, Anton Sankov and Alex Todorov +<a href="/blog/kiwi-tcms-team/2019/03/13/taking-the-lead-at-openexpo-europe-cfp-votes/">took the lead at OpenExpo 2019 CfP votes</a>. +We need your help one more time. Our team has submitted participation in +'Best Tech Community' and 'Best Success Story' categories.</p> +<p>Unfortunately our submission into 'Best Success Story' has been pulled …</p><p><img src="/images/openexpo/openawards2019.jpg" + alt="Vote for Kiwi TCMS at OpenAwards 2019" + style="float: none"></p> +<p>Thanks to you, our community supporters, Anton Sankov and Alex Todorov +<a href="/blog/kiwi-tcms-team/2019/03/13/taking-the-lead-at-openexpo-europe-cfp-votes/">took the lead at OpenExpo 2019 CfP votes</a>. +We need your help one more time. Our team has submitted participation in +'Best Tech Community' and 'Best Success Story' categories.</p> +<p>Unfortunately our submission into 'Best Success Story' has been pulled down! +We used that category to share the story from a dead open source project into +a thriving open source community with lots of users and contributors and to +highlight some of our milestones. Here's the short version:</p> +<ul> +<li>lots of technical updates and refactoring, latest everything, modern UI</li> +<li>the <strong>only</strong> open source test case management system on GitHub Marketplace</li> +<li>nearly 60000 downloads on Docker Hub</li> +<li>growing and active core team</li> +<li>active OSS contributors</li> +</ul> +<p>Please help us gain more recognition:</p> +<ul> +<li><a href="https://a.cstmapp.com/voteme/31129/633186885">Vote for Kiwi TCMS</a> + in the Best Tech Community category!</li> +</ul> +<p>Thanks you &amp; happy testing!</p>Pylint workshop with Django Bulgaria user group2019-05-25T14:27:00+03:002019-05-25T14:27:00+03:00Alexander Todorovtag:None,2019-05-25:/blog/atodorov/2019/05/25/pylint-workshop-with-django-bulgaria-user-group/<p>On Tuesday I hosted my pylint workshop during the regular +<a href="https://www.facebook.com/events/295673718035353/">Django Bulgaria meetup</a>. +This edition was the first which was practice based.</p> +<p>Attendance numbers were low but participation was very good. We managed to +create 4 new checkers for Kiwi TCMS:</p> +<ul> +<li><a href="https://github.com/kiwitcms/Kiwi/pull/949">PR #949 - AutoField checker</a></li> +<li><a href="https://github.com/kiwitcms/Kiwi/pull/950">PR #950 - OneToOneField checker</a></li> +<li><a href="https://github.com/kiwitcms/Kiwi/pull/951">PR …</a></li></ul><p>On Tuesday I hosted my pylint workshop during the regular +<a href="https://www.facebook.com/events/295673718035353/">Django Bulgaria meetup</a>. +This edition was the first which was practice based.</p> +<p>Attendance numbers were low but participation was very good. We managed to +create 4 new checkers for Kiwi TCMS:</p> +<ul> +<li><a href="https://github.com/kiwitcms/Kiwi/pull/949">PR #949 - AutoField checker</a></li> +<li><a href="https://github.com/kiwitcms/Kiwi/pull/950">PR #950 - OneToOneField checker</a></li> +<li><a href="https://github.com/kiwitcms/Kiwi/pull/951">PR #951 - discover directories without __init__.py</a></li> +<li><a href="https://github.com/kiwitcms/Kiwi/pull/952">PR #952 - empty class checker</a></li> +<li><a href="https://github.com/kiwitcms/Kiwi/pull/955">PR #955 - function based view checker</a></li> +</ul> +<p>Many thanks to all contributors. These new checkers have discovered quite a +few new issues with Kiwi TCMS so this is an area which our team is going to improve.</p> +<p>Those who missed the workshop will be able to catch up one of the next editions:</p> +<ul> +<li>26-29 August, GUADEC, Thessaloniki - TBC (presentation)</li> +<li>end of September, Python meetup, Zagreb - TBA</li> +<li>03-05 October, PyCon Balkan, Belgrade - TBC</li> +<li>11-13 October, HackConf, Sofia</li> +<li>15-17 October, TestCon Europe, Vilnius - TBC (backup presentation)</li> +<li>23-25 October, Testwarez, Ossa, Poland - TBC (presentation)</li> +<li>14-15 November, Software Engineering Conference Russia, Saint-Petersburg - TBC</li> +<li>20-22 November, ConTEST, New York - TBC (workshop and/or presentation)</li> +</ul> +<p>Happy testing!</p>Kiwi TCMS 6.92019-05-16T16:20:00+03:002019-05-16T16:20:00+03:00Kiwi TCMS Teamtag:None,2019-05-16:/blog/kiwi-tcms-team/2019/05/16/kiwi-tcms-69/<p>We're happy to announce Kiwi TCMS version 6.9! +This is a small improvement and bug-fix update which introduces +our first telemetry report: testing breakdown. You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer …</pre><p>We're happy to announce Kiwi TCMS version 6.9! +This is a small improvement and bug-fix update which introduces +our first telemetry report: testing breakdown. You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +<p>Docker images:</p> +<pre class="literal-block"> +kiwitcms/kiwi latest a01eaeddf213 1.001 GB +kiwitcms/kiwi 6.2 7870085ad415 957.6 MB +kiwitcms/kiwi 6.1.1 49fa42ddfe4d 955.7 MB +kiwitcms/kiwi 6.1 b559123d25b0 970.2 MB +kiwitcms/kiwi 6.0.1 87b24d94197d 970.1 MB +kiwitcms/kiwi 5.3.1 a420465852be 976.8 MB +</pre> +<div class="section" id="changes-since-kiwi-tcms-6-8"> +<h2>Changes since Kiwi TCMS 6.8</h2> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update mysqlclient from 1.4.2 to 1.4.2.post1</li> +<li>Ship with prism.js so it can be used for syntax highlighting</li> +<li>Add Testing Breakdown telemetry</li> +<li>Mark more strings for translations</li> +<li>Add <tt class="docutils literal">delete_user()</tt> function which can delete data across +Postgre schemas (if kiwitcms-tenants add-on is installed)</li> +</ul> +</div> +<div class="section" id="api"> +<h3>API</h3> +<ul class="simple"> +<li>Remove deprecated <tt class="docutils literal">TestCaseRun.</tt> API methods. Use the new +<tt class="docutils literal">TestExecution.</tt> methods introduced in v6.7. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/889/">Issue #889</a></li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Fix typos in documentation (&#64;Prome88)</li> +<li>Fix <tt class="docutils literal">TemplateParseError</tt> in email templates when removing test cases. +On-delete email notification is now sent properly</li> +</ul> +</div> +<div class="section" id="refactoring"> +<h3>Refactoring</h3> +<ul class="simple"> +<li>Add more tests around TestRun/TestExecution menu permissions</li> +<li>Minor pylint fixes</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/fr#">French translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +</ul> +</div> +</div> +<div class="section" id="join-us-at-openexpo-in-madrid"> +<h2>Join us at OpenExpo in Madrid</h2> +<p>Kiwi TCMS is exhibitor at <a class="reference external" href="https://openexpoeurope.com/">OpenExpo Europe</a> +on June 20th in Madrid. We will be hosting an info booth and 2 technical +presentations delivered by Anton Sankov and Alex Todorov.</p> +<p>Next week we are going to announce 100% discount tickets +for our guests at the conference. If you are interested in coming +<a class="reference external" href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">subscribe to our newsletter</a> +and don't miss the announcement!</p> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p>If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +cd Kiwi/ +git pull +docker-compose down +docker pull kiwitcms/kiwi +docker pull centos/mariadb +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +</pre> +<p>Don't forget to <a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">backup</a> +before upgrade!</p> +<p><strong>WARNING:</strong> <tt class="docutils literal">kiwitcms/kiwi:latest</tt> and <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> 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:</p> +<pre class="literal-block"> +# starting from an older Kiwi TCMS version +docker-compose down +docker pull kiwitcms/kiwi:&lt;next_upgrade_version&gt; +edit docker-compose.yml to use kiwitcms/kiwi:&lt;next_upgrade_version&gt; +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +# repeat until you have reached latest +</pre> +<p>Happy testing!</p> +</div> +Kiwi TCMS 6.82019-05-03T13:45:00+03:002019-05-03T13:45:00+03:00Kiwi TCMS Teamtag:None,2019-05-03:/blog/kiwi-tcms-team/2019/05/03/kiwi-tcms-68/<p>We're happy to announce Kiwi TCMS version 6.8! +This is a small improvement and bug-fix update. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 …</pre><p>We're happy to announce Kiwi TCMS version 6.8! +This is a small improvement and bug-fix update. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +<p>Docker images:</p> +<pre class="literal-block"> +kiwitcms/kiwi latest fca095f95475 994.8 MB +kiwitcms/kiwi 6.2 7870085ad415 957.6 MB +kiwitcms/kiwi 6.1.1 49fa42ddfe4d 955.7 MB +kiwitcms/kiwi 6.1 b559123d25b0 970.2 MB +kiwitcms/kiwi 6.0.1 87b24d94197d 970.1 MB +kiwitcms/kiwi 5.3.1 a420465852be 976.8 MB +</pre> +<div class="section" id="changes-since-kiwi-tcms-6-7"> +<h2>Changes since Kiwi TCMS 6.7</h2> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update Django from 2.2 to 2.2.1</li> +<li>Update django-simple-history from 2.7.0 to 2.7.2</li> +<li>Update django-grappelli from 2.12.2 to 2.12.3</li> +<li>Update psycopg2 from 2.8 to 2.8.2</li> +<li>Update pygithub from 1.43.6 to 1.43.7</li> +<li>Upgrade pip and setuptools inside Docker image</li> +<li>Update documentation with newer screenshots and updated Tutotial. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/837/">Issue #837</a> (&#64;Prome88)</li> +<li>Document how to enable public read-only views</li> +<li>Remove deprecated documentation section about Bugzilla authentication</li> +<li>Install PostgreSQL libraries in Docker image which makes it easier to +switch the DB backend without rebuilding the entire image</li> +<li>Remove npm, libxml2-devel and libxslt-devel from Docker image</li> +<li>Database engine configuration now respects the <tt class="docutils literal">KIWI_DB_ENGINE</tt> environment +variable which defaults to <tt class="docutils literal">django.db.backends.mysql</tt>. This will make it +easier for admins to change DB engine by updating their <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt></li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Pin bootstrap-switch to version 3.3.4 in <tt class="docutils literal">package.json</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/916/">Issue #916</a></li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/fr#">French translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +<li>New language <a class="reference external" href="https://crowdin.com/project/kiwitcms/ru#">Russian</a></li> +<li>New language <a class="reference external" href="https://crowdin.com/project/kiwitcms/cz#">Czech</a></li> +</ul> +</div> +<div class="section" id="refactoring"> +<h3>Refactoring</h3> +<ul class="simple"> +<li>Don't use <tt class="docutils literal">Site.objects.get_current()</tt> because it has an internal cache +and causes email notifications from tenants to use the wrong URL</li> +<li>More changes around renaming of TestCaseRun to TestExecution</li> +</ul> +</div> +</div> +<div class="section" id="github-marketplace"> +<h2>GitHub Marketplace</h2> +<p>During the past week we have silently launched Kiwi TCMS on +<a class="reference external" href="https://github.com/marketplace/kiwi-tcms/">GitHub Marketplace</a>. Free plans +will be redirected to +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">public.tenant.kiwitcms.org</a> +while paid plans will be hosted under <tt class="docutils literal">*.tenant.kiwitcms.org</tt> sub-domains!</p> +<p>Our team is still working on all requirements for GitHub integration and we will +issue a formal statement when ready!</p> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p>If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +cd Kiwi/ +git pull +docker-compose down +docker pull kiwitcms/kiwi +docker pull centos/mariadb +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +</pre> +<p>Don't forget to <a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">backup</a> +before upgrade!</p> +<p><strong>WARNING:</strong> <tt class="docutils literal">kiwitcms/kiwi:latest</tt> and <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> 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:</p> +<pre class="literal-block"> +# starting from an older Kiwi TCMS version +docker-compose down +docker pull kiwitcms/kiwi:&lt;next_upgrade_version&gt; +edit docker-compose.yml to use kiwitcms/kiwi:&lt;next_upgrade_version&gt; +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +# repeat until you have reached latest +</pre> +<p>Happy testing!</p> +</div> +Kiwi TCMS 6.72019-04-06T17:15:00+03:002019-04-06T17:15:00+03:00Kiwi TCMS Teamtag:None,2019-04-06:/blog/kiwi-tcms-team/2019/04/06/kiwi-tcms-67/<p>We're happy to announce Kiwi TCMS version 6.7! +This is a small improvement and bug-fix update. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 …</pre><p>We're happy to announce Kiwi TCMS version 6.7! +This is a small improvement and bug-fix update. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +<p>Docker images:</p> +<pre class="literal-block"> +kiwitcms/kiwi latest 702a78976de7 993.5 MB +kiwitcms/kiwi 6.2 7870085ad415 957.6 MB +kiwitcms/kiwi 6.1.1 49fa42ddfe4d 955.7 MB +kiwitcms/kiwi 6.1 b559123d25b0 970.2 MB +kiwitcms/kiwi 6.0.1 87b24d94197d 970.1 MB +kiwitcms/kiwi 5.3.1 a420465852be 976.8 MB +</pre> +<div class="section" id="changes-since-kiwi-tcms-6-6"> +<h2>Changes since Kiwi TCMS 6.6</h2> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update Django from 2.1.7 to 2.2</li> +<li>Update markdown from 3.0.1 to 3.1</li> +<li>Update psycopg2 from 2.7.7 to 2.8</li> +<li>Update pygithub from 1.43.5 to 1.43.6</li> +<li>Update bleach-whitelist from 0.0.9 to 0.0.10</li> +<li>Update marked(.js) to version 0.6.2</li> +<li>Support arbitrary depth for <tt class="docutils literal">MENU_ITEMS</tt> setting</li> +<li>Support auto-discovery of 3rd party Telemetry plugins, see +<a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/telemetry/index.html">documentation</a></li> +</ul> +</div> +<div class="section" id="database-migrations"> +<h3>Database migrations</h3> +<ul class="simple"> +<li>Rename <tt class="docutils literal">TestCaseRun</tt> to <tt class="docutils literal">TestExecution</tt> including renaming existing +permissions</li> +<li>Rename <tt class="docutils literal">TestCaseRunStatus</tt> to <tt class="docutils literal">TestExecutionStatus</tt></li> +</ul> +</div> +<div class="section" id="api"> +<h3>API</h3> +<ul class="simple"> +<li>Rename <tt class="docutils literal">TestCaseRun.*</tt> to <tt class="docutils literal">TestExecution.*</tt></li> +<li>Rename <tt class="docutils literal">TestCaseRunStatus.*</tt> to <tt class="docutils literal">TestExecution.*</tt></li> +<li>This version keeps the old names for backwards compatibility reasons but they +will be removed in +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/889">Issue #889</a></li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Prompt user before deleting attachments. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/867">Issue #867</a> (Martin Jordanov)</li> +<li><tt class="docutils literal">email_case_deletion()</tt> format error fixed so notifications when +test cases are deleted are not sent (Rik)</li> +</ul> +</div> +<div class="section" id="refactoring"> +<h3>Refactoring</h3> +<ul class="simple"> +<li>Remove unused images</li> +<li>Install <tt class="docutils literal">node_modules/</tt> under <tt class="docutils literal">tcms/</tt> and include it inside PyPI tarball</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +</ul> +</div> +</div> +<div class="section" id="native-junit-5-plugin"> +<h2>Native JUnit 5 plugin</h2> +<p>Our team is happy to announce the availability of +<a class="reference external" href="https://github.com/kiwitcms/junit-plugin/">kiwitcms-junit-plugin</a>. +This is a native JUnit 5 plugin which will read the results from your +automated test suite and send them back to Kiwi TCMS.</p> +<p>Version 1.0.3 and the latest changes in master branch are still to be considered +Beta quality. They are available for early preview and feedback.</p> +<p>Many thanks to <a class="reference external" href="https://github.com/apetkova">Aneta Petkova</a> who is the +main contributor behind this plugin!</p> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p>If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +cd Kiwi/ +git pull +docker-compose down +docker pull kiwitcms/kiwi +docker pull centos/mariadb +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +</pre> +<p>Don't forget to <a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">backup</a> +before upgrade!</p> +<p><strong>WARNING:</strong> <tt class="docutils literal">kiwitcms/kiwi:latest</tt> and <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> 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:</p> +<pre class="literal-block"> +# starting from an older Kiwi TCMS version +docker-compose down +docker pull kiwitcms/kiwi:&lt;next_upgrade_version&gt; +edit docker-compose.yml to use kiwitcms/kiwi:&lt;next_upgrade_version&gt; +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +# repeat until you have reached latest +</pre> +<p>Happy testing!</p> +</div> +Kiwi TCMS 6.62019-03-19T22:40:00+02:002019-03-19T22:40:00+02:00Kiwi TCMS Teamtag:None,2019-03-19:/blog/kiwi-tcms-team/2019/03/19/kiwi-tcms-66/<p>We're happy to announce Kiwi TCMS version 6.6! This is a +medium severity security update, improvement and bug-fix update. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0 …</pre><p>We're happy to announce Kiwi TCMS version 6.6! This is a +medium severity security update, improvement and bug-fix update. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +<p>Docker images:</p> +<pre class="literal-block"> +kiwitcms/kiwi latest c4734f98ca37 971.3 MB +kiwitcms/kiwi 6.2 7870085ad415 957.6 MB +kiwitcms/kiwi 6.1.1 49fa42ddfe4d 955.7 MB +kiwitcms/kiwi 6.1 b559123d25b0 970.2 MB +kiwitcms/kiwi 6.0.1 87b24d94197d 970.1 MB +kiwitcms/kiwi 5.3.1 a420465852be 976.8 MB +</pre> +<div class="section" id="changes-since-kiwi-tcms-6-5-3"> +<h2>Changes since Kiwi TCMS 6.5.3</h2> +<div class="section" id="security"> +<h3>Security</h3> +<ul class="simple"> +<li>Explicitly require marked v0.6.1 to fix medium severity ReDoS vulnerability. See +<a class="reference external" href="https://snyk.io/vuln/SNYK-JS-MARKED-73637">SNYK-JS-MARKED-73637</a></li> +</ul> +</div> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update <tt class="docutils literal"><span class="pre">python-gitlab</span></tt> from 1.7.0 to 1.8.0</li> +<li>Update <tt class="docutils literal"><span class="pre">django-contrib-comments</span></tt> from 1.9.0 to 1.9.1</li> +<li>More strings marked as translatable (Christophe CHAUVET)</li> +<li>When creating new TestCase you can now change notification settings. +Previously this was only possible during editing</li> +<li>Document import-export approaches. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/795">Issue #795</a></li> +<li>Document available test automation plugins</li> +<li>Improve documentation around Docker customization and SSL termination</li> +<li>Add documentation example of reverse rroxy configuration for HAProxy (Nicolas Auvray)</li> +<li><tt class="docutils literal">TestPlan.add_case()</tt> will now set the sortkey to highest in plan + 10 (Rik)</li> +<li>Add <tt class="docutils literal">LinkOnly</tt> issue tracker. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/289">Issue #289</a></li> +<li>Use the same HTML template for both TestCase new &amp; edit</li> +<li>New API methods for adding, removing and listing attachments. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/446">Issue #446</a>:<ul> +<li>TestPlan.add_attachment()</li> +<li>TestCase.add_attachment()</li> +<li>TestPlan.list_attachments()</li> +<li>TestCase.list_attachments()</li> +<li>Attachments.remove_attachment()</li> +</ul> +</li> +</ul> +</div> +<div class="section" id="database-migrations"> +<h3>Database migrations</h3> +<ul> +<li><p class="first">Populate missing <tt class="docutils literal">TestCase.text</tt> history. +In version 6.5 the <tt class="docutils literal">TestCase</tt> model was updated to store the text +into a single field called <tt class="docutils literal">text</tt> instead of 4 separate fields. +During that migration historical records were updated to have +the new <tt class="docutils literal">text</tt> field but values were not properly assigned.</p> +<p>The &quot;effect&quot; of this is that in TestCaseRun records you were not +able to see the actual text b/c it was None.</p> +<p>This change ammends <tt class="docutils literal">0006_merge_text_field_into_testcase_model</tt> for +installations which have not yet migrated to 6.5 or later. We also +provide the data-only migration <tt class="docutils literal">0009_populate_missing_text_history</tt> +which will inspect the current state of the DB and copy the text to +the last historical record.</p> +</li> +</ul> +</div> +<div class="section" id="removed-functionality"> +<h3>Removed functionality</h3> +<ul> +<li><p class="first">Remove legacy reports. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/657">Issue #657</a></p> +</li> +<li><p class="first">Remove &quot;Save &amp; Continue&quot; functionality from TestCase edit page</p> +</li> +<li><p class="first">Renamed API methods:</p> +<ul class="simple"> +<li><tt class="docutils literal">TestCaseRun.add_log()</tt> -&gt; <tt class="docutils literal">TestCaseRun.add_link()</tt></li> +<li><tt class="docutils literal">TestCaseRun.remove_log()</tt> -&gt; <tt class="docutils literal">TestCaseRun.remove_link()</tt></li> +<li><tt class="docutils literal">TestCaseRun.get_logs()</tt> -&gt; <tt class="docutils literal">TestCaseRun.get_links()</tt></li> +</ul> +<p>These methods work with URL links, which can be added or removed to +test case runs.</p> +</li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Remove hard-coded timestamp in TestCase page template, References +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/765">Issue #765</a></li> +<li>Fix handling of <tt class="docutils literal"><span class="pre">?from_plan</span></tt> URL parameter in TestCase page</li> +<li>Make <tt class="docutils literal">TestCase.text</tt> occupy 100% width when rendered. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/798">Issue #798</a></li> +<li>Enable <tt class="docutils literal">markdown.extensions.tables</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/816">Issue #816</a></li> +<li>Handle form erros and default values for TestPlan new/edit. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/864">Issue #864</a></li> +<li>Tests + fix for failing TestCase rendering in French</li> +<li>Show color-coded statuses on dashboard page when seen with non-English +language</li> +<li>Refactor check for confirmed test cases when editting to work with +translations</li> +<li>Fix form values when filtering test cases inside TestPlan. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/674">Issue #674</a> (&#64;marion2016)</li> +<li>Show delete icon for attachments. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/847">Issue #847</a></li> +</ul> +</div> +<div class="section" id="refactoring"> +<h3>Refactoring</h3> +<ul class="simple"> +<li>Remove unused <tt class="docutils literal">.current_user</tt> instance attribute</li> +<li>Remove <tt class="docutils literal">EditCaseForm</tt> and use <tt class="docutils literal">NewCaseForm</tt> instead, References +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/708">Issue #708</a>, +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/812">Issue #812</a></li> +<li>Fix &quot;Select All&quot; checkbox. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/828">Issue #828</a> (Rady)</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/zh-CN#">Chinese Simplified translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/zh-TW#">Chinese Traditional translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/de#">German translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/fr#">French translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +<li>Changed misspelled source string <tt class="docutils literal">Requirments</tt> -&gt; <tt class="docutils literal">Requirements</tt> (&#64;Prome88)</li> +</ul> +</div> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p>If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +cd Kiwi/ +git pull +docker-compose down +docker pull kiwitcms/kiwi +docker pull centos/mariadb +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +</pre> +<p>Don't forget to <a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">backup</a> +before upgrade!</p> +<p><strong>WARNING:</strong> <tt class="docutils literal">kiwitcms/kiwi:latest</tt> and <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> 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:</p> +<pre class="literal-block"> +# starting from an older Kiwi TCMS version +docker-compose down +docker pull kiwitcms/kiwi:&lt;next_upgrade_version&gt; +edit docker-compose.yml to use kiwitcms/kiwi:&lt;next_upgrade_version&gt; +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +# repeat until you have reached latest +</pre> +<p>Happy testing!</p> +</div> +Taking the lead at OpenExpo Europe CfP votes2019-03-13T07:27:00+02:002019-03-13T07:27:00+02:00Kiwi TCMS Teamtag:None,2019-03-13:/blog/kiwi-tcms-team/2019/03/13/taking-the-lead-at-openexpo-europe-cfp-votes/<p><img src="/images/openexpo/vote_openexpo19.jpg" + alt="Vote for Kiwi TCMS at OpenExpo" + style="float: none"></p> +<p>We are happy to announce that Anton Sankov and Alex Todorov are currently taking +the lead at OpenExpo Europe's CfP votes!</p> +<p>Going to OpenExpo will be huge boost for Kiwi TCMS so please help us make this happen! +Voting is open until March 17th 2019! You can cast your vote …</p><p><img src="/images/openexpo/vote_openexpo19.jpg" + alt="Vote for Kiwi TCMS at OpenExpo" + style="float: none"></p> +<p>We are happy to announce that Anton Sankov and Alex Todorov are currently taking +the lead at OpenExpo Europe's CfP votes!</p> +<p>Going to OpenExpo will be huge boost for Kiwi TCMS so please help us make this happen! +Voting is open until March 17th 2019! You can cast your vote via Facebook login +but remember to confirm your email address!</p> +<ul> +<li>Vote for Alex'es + <a href="https://a.cstmapp.com/entries/29369/sort:votes/direction:desc">cyber security presentation</a></li> +<li>Vote for Anton's + <a href="https://a.cstmapp.com/entries/30063/sort:votes/direction:desc">micro-services tech talk</a></li> +<li>Vote for Alex'es + <a href="https://a.cstmapp.com/entries/30063/sort:votes/direction:desc">pylint plugins tech-talk</a>: + currently 3rd in the Open Source Tech Talks category</li> +</ul> +<p>Thank you &amp; happy testing!</p>Legacy reports become Telemetry2019-03-03T21:27:00+02:002019-03-03T21:27:00+02:00Kiwi TCMS Teamtag:None,2019-03-03:/blog/kiwi-tcms-team/2019/03/03/legacy-reports-become-telemetry/<p>As we've <a href="/blog/atodorov/2019/01/10/project-mission-and-goals-for-2019/">promised</a> Kiwi TCMS is +starting work on improving the legacy reports functionality. +After analyzing your feedback in +<a href="https://github.com/kiwitcms/Kiwi/issues/657">Issue #657</a> here's what we came up +with. <em>Note: screenshots below are mockups.</em></p> +<h2>General tech specs</h2> +<ul> +<li>Once a self-contained tarball is installed inside the Docker image (or inside local virtualenv) + Kiwi …</li></ul><p>As we've <a href="/blog/atodorov/2019/01/10/project-mission-and-goals-for-2019/">promised</a> Kiwi TCMS is +starting work on improving the legacy reports functionality. +After analyzing your feedback in +<a href="https://github.com/kiwitcms/Kiwi/issues/657">Issue #657</a> here's what we came up +with. <em>Note: screenshots below are mockups.</em></p> +<h2>General tech specs</h2> +<ul> +<li>Once a self-contained tarball is installed inside the Docker image (or inside local virtualenv) + Kiwi TCMS will be able to find it automatically and update the menu options. Aka plugins. + No further configuration should be necessary other than providing the source code implementing + the new functionality</li> +<li>Navigation menu will be able to support several layers of menus</li> +<li>Where possible Telemetry pages will reuse existing HTML templates</li> +<li>Telemetry data will be implemented as an RPC method that can be consumed by the front-end + via JSON-RPC</li> +<li>Charts will be rendered in the browser with c3/d3, + see <a href="https://www.patternfly.org/pattern-library/data-visualization/area-chart/">Data Visualization</a></li> +</ul> +<h2>Feature: Rename TestCaseRun to TestExecution</h2> +<p>Inside Kiwi TCMS the term "test case" is used to refer to specific scenario of +testing steps. A "test run" is the collection of multiple "test cases" which +will be executed against a particular product build and environment.</p> +<p>The specific results are kept into what is now called "test case run". This will +be renamed to "test execution" (internally <code>TestExecution</code> class) to make it more +clear and easier to distinguish among other artifacts.</p> +<h2>Feature: Better color coding for test execution status</h2> +<p>As a webUI user I want to easily distinguish between PASSED, FAILED and other statuses +when looking at charts and graphical visualizations.</p> +<p><img src="/images/telemetry/tr_progress_bar.png" alt="TestRun progress" style="float: none"></p> +<p>This feature request comes from the TestRun progress bar. +Other charts should use the same 4 status categories and color coding standards:</p> +<ul> +<li>IDLE - <code>pf-black-600</code></li> +<li>PASSED - <code>pf-green-400</code></li> +<li>FAILED - <code>pf-red-100</code></li> +<li>OTHER - <code>pf-orange-400</code>. This includes other statuses which are not PASSED, FAILED and IDLE.</li> +</ul> +<p>Here the percent value will continue to mean <em>percent completed, aka non-IDLE</em>.</p> +<p>Implementation wise the <code>TestCaseRunStatus</code> class defines methods for the actual icons to be used. +The same can be done for colors and this can be used directly in the HTML templates. +For color definitions see <a href="https://www.patternfly.org/styles/color-palette/">Status Palette</a>.</p> +<h2>Feature: Printable Test Execution Report</h2> +<p>As a tester I want to have a nice looking TestRun execution report which I can present to +my managers, stakeholders and/or customers. The page needs to be printer friendly for +“Print to PDF” or print on paper!</p> +<p>Kiwi TCMS already has this feature. Clicking the <code>[Report]</code> button +in the progress widget at <a href="https://public.tenant.kiwitcms.org/runs/625/">TR-625</a> presents +TestRun execution information in a simplified format found at +<a href="https://public.tenant.kiwitcms.org/runs/625/report/">TR-625/Report</a>. +In order to improve the current implementation:</p> +<ul> +<li>Convert TestRun page to Patternfly which generally prints better</li> +<li>Add bug list at the bottom of the page, below all test execution rows</li> +<li>Keep “View all in Issue Tracker” link (supported only for some bug trackers)</li> +<li>The widget for TestRun progress must be kept</li> +<li>Tweak CSS classes to disable printing for visual elements that we don't need. + This will be decided after the entire page has been converted to Patternfly</li> +<li>Remove the existing <code>testruns.views.TestRunReportView</code> and associated templates, + JavaScript and CSS because they will not be needed anymore</li> +</ul> +<h2>Feature: Individual or team performance telemetry</h2> +<p>As a manager I want to know what the work-load/performance of individual teams and +engineers is. I can use this information either for performance review or for +capacity planning of future work.</p> +<p><img src="/images/telemetry/performance_indicator.png" alt="Individual/team performance" style="float: none"></p> +<p>A new page will be available under TELEMETRY -&gt; Management -&gt; Performance which will:</p> +<ul> +<li>Allow filtering by<ul> +<li>Group (multi-select)</li> +<li>User (multi select, depends on Group)</li> +<li>Start / Stop dates</li> +<li>Product</li> +</ul> +</li> +<li>Show results per User or per Group (if no users are selected)</li> +<li>Allow grouping per TestRun ID or calendar week number</li> +</ul> +<p>The backend will query <code>TestExecution.objects</code> and apply the selected +filters and grouping logic! +The returned data is the count of how many tests this person/team was able to execute.</p> +<p>Further refinement: +Aggregate count by statuses (executed vs. non-executed or PASSED vs. FAILED vs. OTHER). +May be represented as a stacked bar chart if grouping of series is supported.</p> +<h2>Feature: Time-tracking telemetry</h2> +<p>As a manager I want to know how much time it took to complete previous testing activities. +I can use this information for predicting future capacity.</p> +<p>New page under TELEMETRY -&gt; Management -&gt; Time tracking.</p> +<ul> +<li>Filtering will be the same as performance telemetry</li> +<li>Grouping will be the same as performance telemetry</li> +<li><strong>Unknown:</strong> total execution time is calculated as<ul> +<li>the sum of duration for each TestExecution (not available ATM, + automation plugins not sending this info) or</li> +<li>the total time for the entire TestRrun (not supported by automation plugins)</li> +</ul> +</li> +</ul> +<p>Visually this will be a line chart with one line for each user/group which have +been selected. It will be very good if the existing chart libraries allow for a +stacked line chart or a stacked area chart here!</p> +<h2>Feature: Estimate TestRun completion time</h2> +<p>As a test lead I want to know approximately when testing is expected to complete.</p> +<p>This feature will utilize time-tracking data from previous executions and +display the approximated calculation in the web UI. The most obvious place for this +is the TestRun progress widget (under the progress bar) or the Test Run page +(near the Started at/Finished at fields).</p> +<p>Example text:</p> +<div class="highlight"><pre><span></span><code>Started at: YYYY-MM-DD 10:38 +Status: Running +Duration: 1.2 / 3 hrs +Estimated completion at: 13:30 +</code></pre></div> + + +<p><strong>Unknown:</strong> where does baseline duration come from? Either from the most recent TestRun +or an average from all of the previous Test Runs. Note that cumulative TestRun duration +is calculated between Start/Finish events while individual TestExecution records may +sum up to a different value! This needs to be clarified.</p> +<h2>Feature: TestCase health telemetry</h2> +<p>As a tester and/or manager I want to be able to discover which TestCase(s) are the most +common source of problems, that is they fail all the time or from time to time. +This may indicate poor test design or bad practices when developing the product. +This is also known as test stability or flaky tests!</p> +<p><img src="/images/telemetry/flaky_tests.png" alt="Flaky tests" style="float: none"></p> +<p>New page under TELEMETRY -&gt; Testing -&gt; Flaky tests</p> +<ul> +<li>Allow filtering by<ul> +<li>Product</li> +<li>Test plan (refined by product)</li> +<li>Start / Stop dates</li> +</ul> +</li> +<li>Show results in table form as shown in the image above</li> +<li>PASS/non-PASS stats will be calculated based on <code>TestExecution.objects</code></li> +<li>100% failing rate will be reported in the first table as ALWAYS FAILING</li> +<li>Executions where failing rate is &gt;0% and &lt;100% will be reported as FLAKY TESTS</li> +</ul> +<h2>Feature: TestCase breakdown telemetry</h2> +<p>As a tester and/or manager I want to see a breakdown of tests so that I have an +idea how the existing tests for the product are distributed!</p> +<p><img src="/images/telemetry/tc_breakdown.png" alt="Test case breakdown" style="float: none"></p> +<p>New page under TELEMETRY -&gt; Testing -&gt; Breakdown</p> +<ul> +<li>Allow filtering by<ul> +<li>Product</li> +<li>Test plan (refined by product)</li> +<li>Start / Stop dates</li> +</ul> +</li> +</ul> +<p>Shows combined bar/line charts with information about test case priorities, categories, +automation status and confirmed status.</p> +<h2>Feature: Individual TestCase health widget</h2> +<p>As a test engineer I want to be able to quickly see health information about individual +test case. This can help me visually locate TCs that need improvement so I can edit them +or will help me visually judge the past history of the TC I am looking at.</p> +<p><img src="/images/telemetry/tc_executions_card.png" alt="Individual TestCase health" style="float: none"></p> +<p>This depends on the previous feature. Possible places where health status can be shown:</p> +<ul> +<li>Test Case page, Executions card: info per TP</li> +<li>Test Run page, Test Executions table - visual icon + % to hint the user + about expected TC stability</li> +</ul> +<h2>Feature: Execution trends telemetry</h2> +<p>As a test manager I want to see information if Product builds are getting better or worse. +In other words what is the trend in TestExecution number and status!</p> +<p><img src="/images/telemetry/build_status.png" alt="Build status" style="float: none"></p> +<p>This is going to be a new page at TELEMETRY -&gt; Testing -&gt; Execution trends</p> +<ul> +<li>Filter by<ul> +<li>Product</li> +<li>Version (refined by Product)</li> +<li>Build (refined by Version)</li> +<li>Test Plan (refined by Product)</li> +<li>Start / Stop dates</li> +</ul> +</li> +<li>Shows total count of <code>TestExecution.objects</code> (stacked area chart) with color codes for status</li> +<li>Group by TestRun ID or calendar week</li> +</ul> +<p>You will be able to select TestRuns and/or weeks for detailed comparison.</p> +<h2>Feature: TestRun status matrix telemetry</h2> +<p>As a test manager I want to see detailed information about testing status for +specific test run(s) or a calendar period. I also want to be able to compare +the results between various weeks and/or test runs.</p> +<p><img src="/images/telemetry/compare_testruns.png" alt="Compare TestRuns" style="float: none"></p> +<p>This is a continuation of Execution trends telemetry but can be used on its own as well. +It will be accessible from TELEMETRY -&gt; Testing -&gt; Status matrix</p> +<p>Filtering options are the same. Results are displayed in a table format where +columns are the filtered (or previously selected) TestRun objects or calendar weeks. +The rows are the names of individual test cases that have been executed. If a case +is missing the cell will be empty.</p> +<p>Cells contain color coded information about status, timestamp of execution, +execution duration, links to the TestExecution object, latest comment in case +of failure.</p> +<p>Links to bugs will be shown in each cell with a summarized bug table below the +charts.</p> +<h2>Feature: Search and compare TestRuns</h2> +<p>This is complimentary to the TestRun status matrix feature! While searching +for TestRuns in SEARCH -&gt; Test Runs the user will be able to select several +rows and proceed to compare them as described above.</p> +<p>Happy testing!</p>Want to hack open source ?2019-03-02T19:40:00+02:002019-03-02T19:40:00+02:00Kiwi TCMS Teamtag:None,2019-03-02:/blog/kiwi-tcms-team/2019/03/02/want-to-hack-open-source/<p><img src="/images/team/hiring_banner.png" style="float:none;clear-both;margin:0;max-width: 100%"></p> +<p>Have you ever wanted to be part of an open source team? +Have you ever wanted to contribute back the open source community ? +Have you ever wanted to see your code used by thousands of people ?</p> +<p>If yes now you have the opportunity! Read on to learn how you can …</p><p><img src="/images/team/hiring_banner.png" style="float:none;clear-both;margin:0;max-width: 100%"></p> +<p>Have you ever wanted to be part of an open source team? +Have you ever wanted to contribute back the open source community ? +Have you ever wanted to see your code used by thousands of people ?</p> +<p>If yes now you have the opportunity! Read on to learn how you can help +Kiwi TCMS and how our team can help you.</p> +<h2>Inexperienced Python developer(s)</h2> +<p>It is fine not to have any experience at all! You will compensate with +commitment and hard work. Initially you are going to work on refactoring, +cleaning up pylint errors, removing duplicate code and other issues +reported by <a href="https://codeclimate.com/github/kiwitcms/Kiwi">CodeClimate</a>.</p> +<p>By doing this you will have the opportunity to learn git, Python, Django, +some CSS, JavaScript and Patternfly HTML of course. We are going to provide +you with all the learning materials plus help and guidance from existing team members.</p> +<p>Everyone on the team has gone though the same training procedure and grueling tasks +and so will you! Once you can demonstrate progress and learn the ropes you +will continue working on more complicated tasks.</p> +<h2>Experienced Python developer(s)</h2> +<p>So you have some experience already, you've probably contributed code before and are +now looking for more green stripes on your GitHub profile. We've got you covered!</p> +<p>There are many areas to choose from: issue tracker integration, GitHub integration, +GitLab integration, external API library, Kiwi TCMS plugins written in Python and +customized pylint linters! This is going to be where you get your hands dirty and +show your strengths. Our team is here to help if necessary but we expect you to +show progress by yourself.</p> +<p>A challenge for you will be to review pull requests from other contributors and +be patient with less experienced contributors and team members. This is an excellent +opportunity to work on your people skills as well.</p> +<h2>Experienced non-Python developer(s) (with Java)</h2> +<p>Kiwi TCMS is primarily looking for Java developers who will own our test automation +plugins. Currently we have a plugin for JUnit 5 and TestNG is in planning. Maybe +there will be a plugin for Jenkins as well. You are going to own these components +and work solely on them. Unless you decide to learn Python and Django that would +be a very easy job!</p> +<p>.NET, PHP, Ruby, JavaScript ? We don't have a lot of code written in these languages +but you can help change this. The main thing we'd like you to know +(or become familiar with) are the internals of popular test automation frameworks +for these languages and how to create plugins for them.</p> +<h2>QA engineer with Python</h2> +<p>You are going to test a lot! You are going to write test automation a lot! Ideally you +already have a medium level of experience in the software testing field and +want to improve your coding skills and/or get more experience into a different +application domain. We also have Linux and Docker in the mix, just for fun!</p> +<p>Your responsibility will be to design test scenarios for various features (new or existing), +write test automation scripts and help improve overall test coverage and quality +of Kiwi TCMS. You will also check-in on non-Python developers and +help them with test design when necessary.</p> +<p>There are other things that can be tested as well, for example Kiwi TCMS +performance and scalability. Here you will have to get down to the nitty-gritty +stuff and do some profiling to pin-point where the root cause of the problem is.</p> +<h2>Security freak</h2> +<p>We've got <a href="https://scan.coverity.com/projects/kiwitcms-kiwi">Coverity scan</a> and +<a href="https://snyk.io/test/github/kiwitcms/Kiwi">Snyk</a> automatically inspecting our +code base. We do have some other tools as well and we know they can never be enough.</p> +<p>You will be responsible for triaging the numerous issues being reported by these +tools and help us decide if they are a real threat or a false positive. For example +Coverity reports hundreds of issues mostly coming from our Python and Node.js dependency +stack. We haven't had the time to classify them and work with upstream communities +to fix them thus the majority of your contributions will be outside of the +Kiwi TCMS code base.</p> +<h2>Graphics designer</h2> +<p>Your main job is going to be creating beautiful images for our website, +blog posts and promotional material. All the images we use are licensed under +Creative Commons which we then modify with the specific Kiwi TCMS look and +feel. This is not going to change, your work will remain under a permissive +license!</p> +<h2>Marketing specialist</h2> +<p>You will be directly responsible for driving more traffic to our website, +interpreting Google Analytics metrics and coming up with creative ideas +how to boost Kiwi TCMS popularity. This means, but not limited to blog posts, +collaborations with other projects and/or bloggers, professional magazines, etc. +You will also be in charge of events and conferences that we go to! Whenever +possible you will be coming with us as well!</p> +<p>A challenge for you will be to learn some technical jargon and learn more +about the software testing profession and software testers in general!</p> +<h2>What's in it for you ?</h2> +<p>You will sharpen your skills! You will use Kiwi TCMS as a platform to +improve your career. You will experience the gratification of our community of users.</p> +<p>This blog is the medium where you can share tips +and tricks and technical articles about interesting features in Kiwi TCMS. +If you'd rather have your personal blog working on Kiwi TCMS will give you lots +of topics to write about.</p> +<p>We go to conferences and meetups too. If public speaking is your thing +you will have plenty of topics to talk about. We can also help you +deliver your first presentation! Everyone on the team has done it!</p> +<p>Our existing team will help you learn and we will help you grow. Our personal time +is the most expensive item we can offer to you! In return we expect you to +fulfill your commitments and when you promise something will be done you will +make sure it is done!</p> +<h2>How to apply ?</h2> +<p>You can figure this out yourself.</p> +<p>Happy testing!</p>How to use Kiwi TCMS plugins, Pt. 12019-02-22T15:10:00+02:002019-02-22T15:10:00+02:00Alexander Todorovtag:None,2019-02-22:/blog/atodorov/2019/02/22/how-to-use-kiwi-tcms-plugins-pt-1/<p>In +<a href="/blog/kiwi-tcms-team/2019/02/01/kiwi-tcms-65/">release notes for v6.5</a> +we announced several plugins which will fetch test names and execution results +from your automated test suite.</p> +<p>Plugins can be controlled via environment variables which will affect how +test results are recorded in the Kiwi TCMS database! This blog post is an introduction +how …</p><p>In +<a href="/blog/kiwi-tcms-team/2019/02/01/kiwi-tcms-65/">release notes for v6.5</a> +we announced several plugins which will fetch test names and execution results +from your automated test suite.</p> +<p>Plugins can be controlled via environment variables which will affect how +test results are recorded in the Kiwi TCMS database! This blog post is an introduction +how that works and what you can do with it! For this purpose I will be using the +<a href="https://github.com/kiwitcms/plugin-demo">plugin-demo</a> repository, which simulates +real development work.</p> +<p><em>Full documentation and list of available plugins is available in chapter +<a href="https://kiwitcms.readthedocs.io/en/latest/plugins.html">Automation Frameworks Plugins</a>!</em></p> +<h2>Always create new TestRun by default</h2> +<p>The default behavior is always to create a new TestRun if controlling variables +are not overridden! Product name, version and build will receive default values +if tests are running in Travis CI or Jenkins. For example +<a href="https://travis-ci.org/kiwitcms/plugin-demo/builds/496217246">Travis Build #2</a> for +<a href="https://github.com/kiwitcms/plugin-demo/commit/d455fb42fb7c2aedadfd5f66de7d131109c03350">commit d455fb4</a> +creates <a href="https://tcms.kiwitcms.org/runs/12/">TR-12</a> and +<a href="https://tcms.kiwitcms.org/plan/10/">TP-10</a>!</p> +<div class="highlight"><pre><span></span><code>Product=kiwitcms/plugin-demo +Version=d455fb42fb7c2aedadfd5f66de7d131109c03350 +Build=2 +</code></pre></div> + + +<p>Next we convert the README file from Markdown to reStructuredText which triggers +<a href="https://travis-ci.org/kiwitcms/plugin-demo/builds/496220575">Travis Build #3</a> for +<a href="https://github.com/kiwitcms/plugin-demo/commit/418b80b3bbb65a799f695dc59d488c76f560fa2b">commit 418b80b</a>. +This build <strong>again</strong> creates a new TestRun and new TestPlan for it. Respectively +<a href="https://tcms.kiwitcms.org/runs/14/">TR-14</a> and +<a href="https://tcms.kiwitcms.org/plan/12/">TP-12</a>!</p> +<div class="highlight"><pre><span></span><code>Product=kiwitcms/plugin-demo +Version=418b80b3bbb65a799f695dc59d488c76f560fa2b +Build=3 +</code></pre></div> + + +<p><strong>Important:</strong> we can see that version is different which will affect how artifacts +are organized in Kiwi TCMS, possibly affect how you will report status to stakeholders!</p> +<h2>Override ENV variables for more control</h2> +<p>Let's say the QA team has decided that all test results must be reported under the +same TestPlan. This means version must be the same between various builds in Travis CI! +To control this we export <code>TCMS_PRODUCT_VERSION=master</code> in CI <strong>before</strong> executing +the TAP plugin! Checkout the commit on GitHub to see how it is done!</p> +<p>This triggers +<a href="https://travis-ci.org/kiwitcms/plugin-demo/builds/496223505">Travis Build #4</a> for +<a href="https://github.com/kiwitcms/plugin-demo/commit/e484e59023caf665e8f93341395af6f397691b93">commit e484e59</a>. +Because this is the first time where Version == master the plugin creates +<a href="https://tcms.kiwitcms.org/plan/14/">TP-14</a> and reports the results under +<a href="https://tcms.kiwitcms.org/runs/16/">TR-16</a>.</p> +<div class="highlight"><pre><span></span><code>Product=kiwitcms/plugin-demo +Version=master +Build=4 +</code></pre></div> + + +<p>Right after that I realized we can make this configuration a bit more generic +because our team is planning to support multiple versions of the product and +development will be done in separate branches! +<a href="https://travis-ci.org/kiwitcms/plugin-demo/builds/496228021">Travis Build #5</a> for +<a href="https://github.com/kiwitcms/plugin-demo/commit/f1f2878d80a7327b54c8e33d1c6d6f14153d6d12">commit f1f2878</a> +still ends up with Version == master because we are still working on the <code>master</code> +branch! That is to say, the product is in active mode of development.</p> +<p>Results are reported in +<a href="https://tcms.kiwitcms.org/runs/18/">TR-18</a> which is again part of +<a href="https://tcms.kiwitcms.org/plan/14/">TP-14</a>.</p> +<div class="highlight"><pre><span></span><code>Product=kiwitcms/plugin-demo +Version=master +Build=5 +</code></pre></div> + + +<p><a href="https://travis-ci.org/kiwitcms/plugin-demo/builds/496229819">Travis Build #6</a> for +<a href="https://github.com/kiwitcms/plugin-demo/commit/df6153b2495bfc6825f25e544ae1806108aa490f">commit df6153b</a> +adds the new functionality <em>README badges</em> and reports test results in +<a href="https://tcms.kiwitcms.org/runs/20/">TR-20</a> which is again part of +<a href="https://tcms.kiwitcms.org/plan/14/">TP-14</a>.</p> +<h2>More ENV overrides</h2> +<p>While giving status reports back to stakeholders and developers the information that +we have in the TestRun is Build number! This follows the numbering scheme in Travis CI +(or Jenkins job number) and isn't very useful.</p> +<p>Let's define <code>TCMS_BUILD</code> to be the first 7 characters of the commit hash! When QA +tells devel that something isn't working and redirects them to the TestRun they can +immediately use the Build information and git checkout the offending variant of the product +for investigation.</p> +<p>This results in +<a href="https://travis-ci.org/kiwitcms/plugin-demo/builds/496233565">Travis Build #7</a> for +<a href="https://github.com/kiwitcms/plugin-demo/commit/bf75d0abe9695e3ee3b49b8944bab9db43bb25e6">commit bf75d0a</a>, +<a href="https://tcms.kiwitcms.org/runs/22/">TR-22</a>, +<a href="https://tcms.kiwitcms.org/plan/14/">TP-14</a>.</p> +<div class="highlight"><pre><span></span><code>Product=kiwitcms/plugin-demo +Version=master +Build=bf75d0a +</code></pre></div> + + +<h2>Report results in pre-existing TestRun</h2> +<p>There are many reasons you may want to do this:</p> +<ul> +<li>include both manual and automation tests for the same build;</li> +<li>mix results from multiple test suites for the same build, + e.g. unit, functional, performance</li> +<li>mix results from multiple but similar platforms in the same build, + e.g. cross-platform application for iOS and Android</li> +</ul> +<p>To do so I've created <a href="https://tcms.kiwitcms.org/runs/24/">TR-24</a> beforehand and +configured <code>TCMS_RUN_ID=24</code> in my CI environment. TR-24 also contains +<a href="https://tcms.kiwitcms.org/case/57/">TC-57: Verify we can report results from several plugins into the same TR</a>. +this was created and added via the web interface.</p> +<p><strong>Note:</strong> mixing additional test cases can be done either before or after +automation results are reported with the plugin!</p> +<p><strong>Important:</strong> when reporting results to an existing TestRun Kiwi TCMS plugins +don't care in which TestPlan this TR is! In theory it is possible to report +the results for <code>Product=kiwitcms/plugin-demo</code> into any TP/TR pair! However we +don't want to do this crazy thing and instead I've created TR-24 inside the already +existing TP-14!</p> +<p><strong>Note:</strong> because I don't know what is the git commit beforehand I've configured +TR-24 with <code>Build=unspecified</code>. If I wanted I could update this with the correct value +once I know the commit hash for the related changes I am testing.</p> +<p><strong>Important:</strong> the plugin-demo repository uses both kiwitcms-tap-plugin and +kiwitcms-junit.xml-plugin at the same time! They differ in the way test names +are compiled! Both are reported in TR-24. See TC-57 text for information how to +distinguish between the two.</p> +<p>See +<a href="https://travis-ci.org/kiwitcms/plugin-demo/builds/496237911">Travis Build #8</a> for +<a href="https://travis-ci.org/kiwitcms/plugin-demo/builds/496237911">commit 85ad939</a>, +<a href="https://tcms.kiwitcms.org/runs/24/">TR-24</a>, +<a href="https://tcms.kiwitcms.org/plan/14/">TP-14</a>.</p> +<div class="highlight"><pre><span></span><code>Product=kiwitcms/plugin-demo +Version=master +Build=unspecified +</code></pre></div> + + +<p>Also check-out comments in TR executions to see when and who had executed the test case.</p> +<p>So far there have been some tests which were failing (although Travis reports PASS) so +I decided to fix them. +<a href="https://travis-ci.org/kiwitcms/plugin-demo/builds/496240713">Travis Build #9</a> for +<a href="https://github.com/kiwitcms/plugin-demo/commit/a25b3841e656d47a7539c608e375cecbf3bed2ac">commit a25b384</a> +is still configured with <code>TCMS_RUN_ID=24</code>. This means results will be reported in +TR-24, effectively overwriting previous results.</p> +<p>Check-out <em>Change Log</em> under each individual execution and you will see several +time stamps when status was updated! In other words, as long as <code>TCMS_RUN_ID</code> is +pointing to an existing TestRun this TR will keep the results of the last test suite execution!</p> +<h2>Continue development, restore ENV configuration</h2> +<p><a href="https://travis-ci.org/kiwitcms/plugin-demo/builds/496243124">Travis Build #10</a> for +<a href="https://github.com/kiwitcms/plugin-demo/commit/c4f1ae5ecadb249d39923cedbbf53a85e50420b3">commit c4f1ae5</a> +removes <code>TCMS_RUN_ID</code>! Results are reported in +<a href="https://tcms.kiwitcms.org/runs/25/">TR-25</a>, +<a href="https://tcms.kiwitcms.org/plan/14/">TP-14</a>.</p> +<div class="highlight"><pre><span></span><code>Product=kiwitcms/plugin-demo +Version=master +Build=c4f1ae5 +</code></pre></div> + + +<h2>Branch out for an LTS version</h2> +<p>Our team has decided to make the first LTS release of the product. We branch out into +<code>lts-v0</code> branch in git and cut the first NVR. This results in +<a href="https://travis-ci.org/kiwitcms/plugin-demo/builds/496245067">Travis Build #11</a> for +<a href="https://github.com/kiwitcms/plugin-demo/commit/9f1ef717e3fb248d65535ed66b5c4e61e6f85a6e">commit 9f1ef71</a> +<a href="https://tcms.kiwitcms.org/runs/27/">TR-27</a>, +<a href="https://tcms.kiwitcms.org/plan/16/">TP-16</a>.</p> +<div class="highlight"><pre><span></span><code>Product=kiwitcms/plugin-demo +Version=lts-v0 +Build=9f1ef71 +</code></pre></div> + + +<p>Because this is the first time we are running tests for this product version +we end up with the newly created TP-16!</p> +<p><strong>Note:</strong> see how version was populated with the correct value for the git branch! +This is because my CI config uses <code>TCMS_PRODUCT_VERSION=$TRAVIS_BRANCH</code> and no further +changes were required! I made this change back in Travis Build #5 anticipating what +will come in the future!</p> +<p>The product is now live and customers have reported critical bugs for it: +<em>URLs for the badges in README are wrong</em>! I fix those and add more tests of course, see: +<a href="https://travis-ci.org/kiwitcms/plugin-demo/builds/496247347">Travis Build #12</a> for +<a href="https://github.com/kiwitcms/plugin-demo/commit/2d72754d3f911ef4e25287f203471f4466b95d12">commit 2d72754</a>, +<a href="https://tcms.kiwitcms.org/runs/29/">TR-29</a> for +<a href="https://tcms.kiwitcms.org/plan/16/">TP-16</a>.</p> +<div class="highlight"><pre><span></span><code>Product=kiwitcms/plugin-demo +Version=lts-v0 +Build=2d72754 +</code></pre></div> + + +<p>TR-29 contains the new <a href="https://tcms.kiwitcms.org/case/58/">TC-58</a>!</p> +<h2>cherry-pick between branches</h2> +<p>In the <code>lts-v0</code> branch customers have identified a serious issue. It doesn't exist on <code>master</code> +but the test is still valid so I cherry-pick it! In git you can backport or forwardport very +easily. Regardless of the direction Kiwi TCMS plugins will record the test results for you.</p> +<p>See +<a href="https://travis-ci.org/kiwitcms/plugin-demo/builds/496252529">Travis Build #13</a> for +<a href="https://github.com/kiwitcms/plugin-demo/commit/31ae5b3358137fde7d2b5c3656b384acc7331d95">commit 31ae5b3</a>, +<a href="https://tcms.kiwitcms.org/runs/31/">TR-31</a> for +<a href="https://tcms.kiwitcms.org/plan/14/">TP-14</a>.</p> +<p>We can see that TC-58, which was originally implemented on the <code>lts-v0</code> branch +is now present!</p> +<h2>Summary</h2> +<p>This is a very basic example of how you can organize collection and reporting for +your automation test suite results with Kiwi TCMS. The links here only refer to +artifacts created by <code>kiwitcms-tap-plugin</code> while in the DB we keep others as well.</p> +<p>There are feature requests for more ENV variables which will allow you to control +TestPlan creation and child/parent relationship between test plans. See +<a href="https://github.com/kiwitcms/tap-plugin/issues">https://github.com/kiwitcms/tap-plugin/issues</a> and vote with a <code>:+1:</code> reaction +to help us plan for these features.</p> +<p>Kiwi TCMS automation framework plugins are nothing more than result parsers +which talk back to a database. It is up to you to decide how to organize the +collection of test results and how to report on them later, when the need arises.</p> +<p>Future installments in this post series will take a look at workflows with +feature branches and pull requests and discuss possible organization scenarios. +You are welcome to share your ideas in the comments below.</p> +<p>Happy testing!</p>Kiwi TCMS 6.5.32019-02-12T00:20:00+02:002019-02-12T00:20:00+02:00Kiwi TCMS Teamtag:None,2019-02-12:/blog/kiwi-tcms-team/2019/02/12/kiwi-tcms-653/<p>We're happy to announce Kiwi TCMS version 6.5.3! This is a +security, improvement and bug-fix update that includes new +versions of Django, includes several database migrations and fixes several bugs. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5 …</pre><p>We're happy to announce Kiwi TCMS version 6.5.3! This is a +security, improvement and bug-fix update that includes new +versions of Django, includes several database migrations and fixes several bugs. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +<p>Docker images:</p> +<pre class="literal-block"> +kiwitcms/kiwi latest b9355cf85833 1.039 GB +kiwitcms/kiwi 6.2 7870085ad415 957.6 MB +kiwitcms/kiwi 6.1.1 49fa42ddfe4d 955.7 MB +kiwitcms/kiwi 6.1 b559123d25b0 970.2 MB +kiwitcms/kiwi 6.0.1 87b24d94197d 970.1 MB +kiwitcms/kiwi 5.3.1 a420465852be 976.8 MB +</pre> +<div class="section" id="changes-since-kiwi-tcms-6-5"> +<h2>Changes since Kiwi TCMS 6.5</h2> +<div class="section" id="security"> +<h3>Security</h3> +<ul class="simple"> +<li>Update Django from 2.1.5 to 2.1.7. Fixes CVE-2019-6975: +Memory exhaustion in <tt class="docutils literal">django.utils.numberformat.format()</tt></li> +</ul> +</div> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update mysqlclient from 1.4.1 to 1.4.2</li> +<li>Multiple template strings marked as translatable (Christophe CHAUVET)</li> +</ul> +</div> +<div class="section" id="database-migrations"> +<h3>Database migrations</h3> +<ul class="simple"> +<li>Email notifications for TestPlan and TestCase now default to True</li> +<li>Remove <tt class="docutils literal">TestPlanEmailSettings.is_active</tt> field</li> +</ul> +</div> +<div class="section" id="api"> +<h3>API</h3> +<ul class="simple"> +<li>New method <tt class="docutils literal">Bug.report()</tt>, References +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/18">Issue #18</a></li> +<li>Method <tt class="docutils literal">Bug.create()</tt> now accepts parameter <tt class="docutils literal">auto_report=False</tt></li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/de#">German translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/fr#">French translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Show the user who actually tested a TestCase instead of hard-coded value. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/765">Issue #765</a></li> +<li>Properly handle pagination button states and page numbers. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/767">Issue #767</a></li> +<li>Add TestCase to TestPlan if creating from inside a TestPlan. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/777">Issue #777</a></li> +<li>Made TestCase text more readable. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/764">Issue #764</a></li> +<li>Include missing templates and static files from PyPI tarball</li> +</ul> +</div> +<div class="section" id="refactoring"> +<h3>Refactoring</h3> +<ul class="simple"> +<li>Use <tt class="docutils literal">find_packages()</tt> when building PyPI tarball</li> +<li>Install Kiwi TCMS as tarball package inside Docker image instead of copying +from the source directory</li> +<li>Pylint fixes</li> +<li>Remove <tt class="docutils literal">testcases.views.ReturnActions()</tt> which is now unused</li> +<li>Refactor New TestCase to class-based view and add tests</li> +</ul> +</div> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p>If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +cd Kiwi/ +git pull +docker-compose down +docker pull kiwitcms/kiwi +docker pull centos/mariadb +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +</pre> +<p>Don't forget to <a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">backup</a> +before upgrade!</p> +<p><strong>WARNING:</strong> <tt class="docutils literal">kiwitcms/kiwi:latest</tt> and <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> 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:</p> +<pre class="literal-block"> +# starting from an older Kiwi TCMS version +docker-compose down +docker pull kiwitcms/kiwi:&lt;next_upgrade_version&gt; +edit docker-compose.yml to use kiwitcms/kiwi:&lt;next_upgrade_version&gt; +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +# repeat until you have reached latest +</pre> +<p>Happy testing!</p> +</div> +Kiwi TCMS 6.52019-02-01T09:35:00+02:002019-02-01T09:35:00+02:00Kiwi TCMS Teamtag:None,2019-02-01:/blog/kiwi-tcms-team/2019/02/01/kiwi-tcms-65/<p>We're happy to announce Kiwi TCMS version 6.5! This is a minor security, +improvement and bug-fix update that includes new +versions of Django and other dependencies, removes some database fields, +includes backend API updates and fixes several bugs. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Together …</p><p>We're happy to announce Kiwi TCMS version 6.5! This is a minor security, +improvement and bug-fix update that includes new +versions of Django and other dependencies, removes some database fields, +includes backend API updates and fixes several bugs. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Together with this release we announce:</p> +<ul class="simple"> +<li><a class="reference external" href="https://github.com/kiwitcms/tap-plugin">kiwitcms-tap-plugin</a> : for reading +Test Anything Protocol (TAP) files and uploading the results to Kiwi TCMS</li> +<li><a class="reference external" href="https://github.com/kiwitcms/junit.xml-plugin">kiwitcms-junit.xml-plugin</a> : +for reading junit.xml formatted files and uploading the results to Kiwi TCMS</li> +</ul> +<p>Both of these are implemented in Python and should work on standard TAP and +junit.xml files generated by various tools!</p> +<p>Additionally 3 more plugins are currently under development by contributors:</p> +<ul class="simple"> +<li>Native <a class="reference external" href="https://github.com/kiwitcms/junit-plugin/">JUnit 5 plugin</a> written +in Java</li> +<li>Native <a class="reference external" href="https://github.com/kiwitcms/phpunit-plugin/">PHPUnit</a> written +in PHP</li> +<li><a class="reference external" href="https://github.com/kiwitcms/pytest-plugin/">py.test plugin</a></li> +</ul> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +<p>Docker images:</p> +<pre class="literal-block"> +kiwitcms/kiwi latest 7ca4fda602fc 1.002 GB +kiwitcms/kiwi 6.2 7870085ad415 957.6 MB +kiwitcms/kiwi 6.1.1 49fa42ddfe4d 955.7 MB +kiwitcms/kiwi 6.1 b559123d25b0 970.2 MB +kiwitcms/kiwi 6.0.1 87b24d94197d 970.1 MB +kiwitcms/kiwi 5.3.1 a420465852be 976.8 MB +</pre> +<div class="section" id="changes-since-kiwi-tcms-6-4"> +<h2>Changes since Kiwi TCMS 6.4</h2> +<div class="section" id="security"> +<h3>Security</h3> +<ul class="simple"> +<li>Better override of SimpleMDE markdown rendering to prevent XSS vulnerabilities +in SimpleMDE</li> +</ul> +</div> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update patternfly to version 3.59.1</li> +<li>Update bleach from 3.0.2 to 3.1.0</li> +<li>Update django-vinaigrette from 1.1.1 to 1.2.0</li> +<li>Update django-simple-history from 2.6.0 to 2.7.0</li> +<li>Update django-grappelli from 2.12.1 to 2.12.2</li> +<li>Update mysqlclient from 1.3.14 to 1.4.1</li> +<li>Update psycopg2 from 2.7.6.1 to 2.7.7</li> +<li>Update pygithub from 1.43.4 to 1.43.5</li> +<li>Convert TestCase page to Patternfly<ul> +<li>page menu is under <tt class="docutils literal">...</tt> in navigation bar</li> +<li>Test plans card is missing the old 'add plan' functionality b/c we are not +at all sure if adding plans to test cases is used at all. Can bring it back +upon user request!</li> +<li>Bugs card is missing the add/remove functionality for b/c we are not +quite sure how that functionality is used outside test runs!</li> +</ul> +</li> +<li>Convert new TestCase page to Patternfly and provide Given-When-Then text +template. This prompts the author to use a BDD style definition for their +scenarios. We believe this puts the tester into a frame of mind more +suitable for expressing what needs to be tested</li> +<li>Add a favicon. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/532">Issue #532</a></li> +<li>Sort Component, Product and Version objects alphabetically. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/633">Issue #633</a></li> +<li>Search test case page now shows Components and Tags</li> +<li>Search test case page now allows filtering by date. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/715">Issue #715</a></li> +<li>Search test case page now uses radio buttons to filter by automation status</li> +<li>Small performance improvement when searching test plans and test cases</li> +<li>Search test run page now allows to filter by Product but still continue to +display all Builds in the selected Product</li> +<li>Updated doc-string formatting for some <tt class="docutils literal">tcms</tt> modules</li> +</ul> +</div> +<div class="section" id="database-migrations"> +<h3>Database migrations</h3> +<p><strong>Known issues:</strong> on our demo installation we have observed that permission +labels were skewed after applying migrations. The symptom is that labels for +removed models are still available, labels for some models may have been removed +from groups/users or there could be permission labels appearing twice in the +database.</p> +<p>This may affect only existing installations, new installations do not have +this problem!</p> +<p>We are not certain what caused this but a quick fix is to remove all permissions +from the default <em>Tester</em> group and re-add them again!</p> +<ul class="simple"> +<li>Remove <tt class="docutils literal">TestCase.alias</tt></li> +<li>Remove <tt class="docutils literal">TestCaseRun.running_date</tt></li> +<li>Remove <tt class="docutils literal">TestCaseRun.notes</tt></li> +<li>Remove <tt class="docutils literal">TestCase.is_automated_proposed</tt></li> +<li>Remove <tt class="docutils literal">TestCaseText</tt> model, merge into <tt class="docutils literal">TestCase.text</tt> field. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/198">Issue #198</a></li> +<li>Remove <tt class="docutils literal">Priority.sortkey</tt></li> +<li>Remove <tt class="docutils literal">Build.description</tt></li> +<li>Remove <tt class="docutils literal">Classification.sortkey</tt> and <tt class="docutils literal">Classification.description</tt></li> +<li>Convert <tt class="docutils literal">TestCase.is_automated</tt> from <tt class="docutils literal">int</tt> to <tt class="docutils literal">bool</tt></li> +<li>Rename <tt class="docutils literal">TestCaseRun.case_run_status</tt> to <tt class="docutils literal">status</tt></li> +</ul> +</div> +<div class="section" id="api"> +<h3>API</h3> +<ul class="simple"> +<li>New method <tt class="docutils literal">TestCaseRunStatus.filter()</tt></li> +<li>New method <tt class="docutils literal">Product.create()</tt></li> +<li>New method <tt class="docutils literal">Classification.filter()</tt></li> +<li>New method <tt class="docutils literal">BugSystem.filter()</tt></li> +<li>Changes to <tt class="docutils literal">TestCase.add_component()</tt>:<ul> +<li>now accepts component name instead of id</li> +<li>now fails if trying to add components linked to another Product.</li> +<li>now returns serialized <tt class="docutils literal">TestCase</tt> object</li> +</ul> +</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/fr#">French translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Fix for missing migrations from <tt class="docutils literal"><span class="pre">django-simple-history</span></tt>, see +<a class="reference external" href="https://github.com/treyhunner/django-simple-history/issues/512">DSH #512</a> and +<a class="reference external" href="https://stackoverflow.com/questions/54177838/">StackOverflow #54177838</a></li> +<li>Fix cloning of test cases by surrounding bootstrap-selectpicker call with +<tt class="docutils literal"><span class="pre">try-catch</span></tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/695">Issue #695</a></li> +<li>Fix a traceback with TestRun report page when the RPC connection to Bugzilla +can't be established</li> +</ul> +</div> +<div class="section" id="refactoring"> +<h3>Refactoring</h3> +<ul class="simple"> +<li>Remove unused form classes, methods, fields and label attributes</li> +<li>Remove unused or duplicate methods from <tt class="docutils literal">TestCase</tt> model</li> +<li>Remove useless methods from BaseCaseForm()</li> +<li>Add test for discovering missing migrations</li> +<li>Add test for sanity checking PyPI packages which will always +build tarball and wheel packages</li> +</ul> +</div> +</div> +<div class="section" id="tcms-api-5-2-30-jan-2019"> +<h2>tcms-api 5.2 (30 Jan 2019)</h2> +<ul class="simple"> +<li>Add <tt class="docutils literal">plugin_helpers.Backend</tt> which implements our test runner plugin +<a class="reference external" href="http://kiwitcms.org/blog/atodorov/2018/11/05/test-runner-plugin-specification/">specification</a> +in Python</li> +<li>Add dependency to <tt class="docutils literal">kerberos</tt> (Aniello Barletta)</li> +</ul> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p>If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +cd Kiwi/ +git pull +docker-compose down +docker pull kiwitcms/kiwi +docker pull centos/mariadb +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +</pre> +<p>Don't forget to <a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">backup</a> +before upgrade!</p> +<p><strong>WARNING:</strong> <tt class="docutils literal">kiwitcms/kiwi:latest</tt> and <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> 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:</p> +<pre class="literal-block"> +# starting from an older Kiwi TCMS version +docker-compose down +docker pull kiwitcms/kiwi:&lt;next_upgrade_version&gt; +edit docker-compose.yml to use kiwitcms/kiwi:&lt;next_upgrade_version&gt; +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +# repeat until you have reached latest +</pre> +<p>Happy testing!</p> +</div> +Kiwi TCMS is going to FOSDEM 20192019-01-17T17:30:00+02:002019-01-17T17:30:00+02:00Kiwi TCMS Teamtag:None,2019-01-17:/blog/kiwi-tcms-team/2019/01/17/kiwi-tcms-is-going-to-fosdem-2019/<p>Hello testers, Kiwi TCMS is going to <a href="http://fosdem.org/">FOSDEM</a> this year. +This is where you can find us:</p> +<p><img src="/images/kiwi_sticker.jpg" style="float:left; margin-right: 25px;" + alt="Kiwi TCMS sticker" title="Kiwi TCMS sticker"></p> +<ul> +<li>Fri Feb 1st: <a href="https://fosdem.org/2019/beerevent/">after 18:00 @ Delirium Café</a> - + we are taking part of the FOSDEM Beer Event where all participants are invited. + <code>Shout out with #KiwiTCMS</code> on Twitter if you can't find us …</li></ul><p>Hello testers, Kiwi TCMS is going to <a href="http://fosdem.org/">FOSDEM</a> this year. +This is where you can find us:</p> +<p><img src="/images/kiwi_sticker.jpg" style="float:left; margin-right: 25px;" + alt="Kiwi TCMS sticker" title="Kiwi TCMS sticker"></p> +<ul> +<li>Fri Feb 1st: <a href="https://fosdem.org/2019/beerevent/">after 18:00 @ Delirium Café</a> - + we are taking part of the FOSDEM Beer Event where all participants are invited. + <code>Shout out with #KiwiTCMS</code> on Twitter if you can't find us in the crowd</li> +<li>Both days: <a href="https://fosdem.org/2019/stands/">Building K, Level 2, Stand 10</a>. + We will be together with our friends from ReportPortal and SystemTestPortal at + the Open Source Test Management stand</li> +<li>Sat Feb 2nd: + <a href="https://fosdem.org/2019/schedule/track/lightning_talks/">18:00 @ Room H.2215 (Lightning Talks)</a> - + <a href="https://fosdem.org/2019/schedule/event/test_case_management/">10 years of open source test case management <em>with Kiwi TCMS</em></a> + lightning talk</li> +<li>Sun Feb 3rd: + <a href="https://fosdem.org/2019/schedule/track/python/">10:00 @ UD2.120 (Python devroom)</a> - + <a href="https://fosdem.org/2019/schedule/event/python_write_pylint_plugins/">How to write pylint plugins</a> + presentation with examples of plugins which our team uses to make Kiwi TCMS better</li> +</ul> +<p>We would like to meet with all of you and talk about test management and +test process organization. In case you are stuck for crazy ideas checkout +<a href="/blog/atodorov/2019/01/10/project-mission-and-goals-for-2019/">our project mission</a> for inspiration.</p> +<h2>Be part of the community</h2> +<p>We are turning 10 years old and we have presents for you! You will have to perform +a small challenge and you can get your hands(errr, feet) on a pair of these:</p> +<p><img src="/images/kiwi_socks.jpg" style="float:none" + alt="Kiwi TCMS socks" title="Kiwi TCMS socks"></p> +<p>Here's what else you can do to help us:</p> +<ul> +<li><a href="https://github.com/kiwitcms/Kiwi/stargazers">Become a stargazer</a> by clicking the + <code>Star</code> button on our GitHub repository</li> +<li><a href="https://twitter.com/KiwiTCMS">Follow @KiwiTCMS on Twitter</a></li> +<li><a href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Subscribe to our newsletter</a> - + we are GDPR compliant and we don't spam, we promise!</li> +<li>Send us testimonials and feedback about using Kiwi TCMS. + We will be happy to publish them on our website</li> +<li><a href="https://opencollective.com/kiwitcms">Become a sponsor</a>!</li> +</ul> +<p>Happy testing!</p>Project mission and goals for 20192019-01-10T10:35:00+02:002019-01-10T10:35:00+02:00Alexander Todorovtag:None,2019-01-10:/blog/atodorov/2019/01/10/project-mission-and-goals-for-2019/<p>Hello testers, Kiwi TCMS has taken on a brave new +mission! We would like to transform the testing process by making it more +organized, transparent &amp; accountable for everyone on your team. Our goal +is to improve engineering productivity and participation in +testing. The following blog post outlines how we would …</p><p>Hello testers, Kiwi TCMS has taken on a brave new +mission! We would like to transform the testing process by making it more +organized, transparent &amp; accountable for everyone on your team. Our goal +is to improve engineering productivity and participation in +testing. The following blog post outlines how we would like to achieve +this and what goals we put before ourselves for this year.</p> +<h2>Complete the internal refactoring</h2> +<p>Last year we took on the challenge to bring a legacy code base up to modern +coding standard. We did not complete that effort but made very good progress +along the way. This is not a small task and that's why our team will continue +with it this year.</p> +<p><img src="/images/codeclimate_jan_2019.png" style="float:none" + alt="CodeClimate report" title="CodeClimate report"></p> +<ul> +<li><a href="https://codeclimate.com/github/kiwitcms/Kiwi">CodeClimate</a>: + 0 issues, 0% technical debt, health score A</li> +<li><a href="https://scrutinizer-ci.com/g/kiwitcms/Kiwi/">Scrutinizer</a>: + only A and B type issues</li> +<li><a href="https://travis-ci.org/kiwitcms/Kiwi/jobs/475946313">Pylint</a>: 0 issues</li> +<li>Remove vendored-in Handlebars, jQuery, jQuery-UI and TableDnD JavaScript + libraries in favor of existing npm dependencies</li> +<li>Front-end uses the existing JSON-RPC instead of backend views that + are only used for AJAX requests. Tip: these are usually accessed via + <code>postToURL()</code> and <code>jQ.ajax()</code> on the front-end</li> +<li>Inspect and classify all 3rd party issues reported from + <a href="https://scan.coverity.com/projects/kiwitcms-kiwi">Coverity</a> and + <a href="https://travis-ci.org/kiwitcms/Kiwi/jobs/475946312">Bandit</a>. Report and fix + what we can, ignore the rest that do not affect Kiwi TCMS.</li> +</ul> +<h2>Redesign the UI templates with the help of Patternfly</h2> +<p>There are 59 templates remaining to be converted to a modern look and feel. +Along with them comes more refactoring and even redesign of the existing pages +and the workflow around them. Together with refactoring this will make Kiwi TCMS +easier to use and also to maintain.</p> +<h2>Modernize reporting</h2> +<p>We are planning to remove the existing reports feature because they are not well +designed. We will re-implement existing functionality that our community finds useful, +add new types of reports (incl. nicer graphics and UI) and make it possible for the +reporting sub-system to be more easily extendable.</p> +<p>Phase out is planned to begin after 1st March 2019! Until then we are looking for your +feedback. Please comment in +<a href="https://github.com/kiwitcms/Kiwi/issues/657">Issue #657</a>!</p> +<h2>Plugins for 3rd party test automation frameworks</h2> +<p>These will make it easier to collect results from automated test suites into +Kiwi TCMS for later analysis. Instead of creating scripts that parse the +results and talk to our API you will only have to install an additional package +in your test environment and configure the test runner to use it! Automation +test results will then appear inside Kiwi TCMS.</p> +<ul> +<li><a href="https://github.com/kiwitcms/junit-plugin">JUnit 5 plugin</a> - already in progress</li> +<li><a href="https://github.com/kiwitcms/Kiwi/issues/692">TestNG plugin</a> - RFC</li> +<li><a href="https://github.com/kiwitcms/Kiwi/issues/693">Django plugin</a> - RFC</li> +<li><a href="https://github.com/kiwitcms/Kiwi/issues/694">py.test plugin</a> - RFC</li> +</ul> +<p>If you would like to use such functionality leave your vote inside GitHub +issues! In case you would like to write a test-runner plugin you can find the +specification +<a href="http://kiwitcms.org/blog/atodorov/2018/11/05/test-runner-plugin-specification/">here</a>.</p> +<h2>Redefine bug-tracker integration</h2> +<blockquote> +<p>Question: Does Kiwi TCMS integrate with JIRA?</p> +<p>Answer: Well, it does. How exactly do you want to integrate?</p> +<p>... silence ...</p> +</blockquote> +<p>The following dialog happens every time someone asks me about bug-tracker +integration, especially with JIRA. The thing is integration is a specified +set of behavior which may or may not be desired in a particular team. As of now +Kiwi TCMS is able to open a URL to your bug-tracker with predefined field +values, add comments to bug reports and report a simple summary of bugs +inside a TestRun.</p> +<p>We recognize this may not be enough and together with the community we +really need to define what bug tracker integration means! The broader domain +of application lifecycle management tools (of which TCMS is a sub-set) have an +integrated bug tracking system. We can add something like this and save you +the trouble of using JIRA, however many teams have already invested in +integrating their infrastructure or just like other tools. For example we love +GitHub issues and our team regularly makes public reports about issues that +we find internally!</p> +<ul> +<li>Goal: Redefine what bug-tracker integration means, vote in + <a href="https://github.com/kiwitcms/Kiwi/issues/698">Issue #698</a></li> +<li>Goal: Bug-tracker functionality inside Kiwi TCMS, similar to + GitHub Issues. Vote in + <a href="https://github.com/kiwitcms/Kiwi/issues/699">Issue #699</a></li> +<li>Goal: Integration with Redmine (per current specification), vote in + <a href="https://github.com/kiwitcms/Kiwi/issues/41">Issue #41</a></li> +<li>Goal: fix existing bugs around bug-tracker integration + (per current specification). Vote in + <a href="https://github.com/kiwitcms/Kiwi/issues/97">Issue #97</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/117">Issue #117</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/289">Issue #289</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/290">Issue #290</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/320">Issue #320</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/479">Issue #479</a> and + <a href="https://github.com/kiwitcms/Kiwi/issues/530">Issue #530</a></li> +</ul> +<h2>GitHub flow integration</h2> +<p>Developers have their +<a href="https://guides.github.com/introduction/flow/">GitHub PR flow</a> and if they +have done the job of having unit tests then they will merge only when things +are green! This leaves additional testing efforts kind of to the side and +doesn't really help with transparency and visibility. I'm not going to mention +having an automatically deployed staging environment for every change +because very few teams actually have managed to do this effectively.</p> +<p><img src="/images/github_kiwitcms_pr_status.png" style="float:none" + alt="Kiwi TCMS statuses on GitHub PR" title="Kiwi TCMS statuses on GitHub PR"></p> +<ul> +<li>Goal: Figure out how Kiwi TCMS can integrate with GitHub flow and bridge the gap. + Please share and <code>+1</code> your wildest ideas in + <a href="https://github.com/kiwitcms/Kiwi/issues/700">Issue #700</a>.</li> +<li>Follow up: depending on the results in #700 we will follow with other goals and + sub-tasks</li> +</ul> +<h2>Agile integration with Trello</h2> +<p>Speaking of modern engineering flow is your team truly agile? When and how +do you plan your testing activities ? Before the devel sprint or afterwards? +How many testers take part in refining product backlog and working on user stories?</p> +<p>Similar to GitHub flow lots of teams and open source projects are using Trello +to effectively organize their development process. Testing should not be left +behind and Kiwi TCMS may be able to help.</p> +<ul> +<li>Goal: Figure out how Kiwi TCMS fits into the overall <code>devel-test-planning</code> + process for agile teams and what we can do to make this easier for testers. + Please share and <code>+1</code> your wildest ideas in + <a href="https://github.com/kiwitcms/Kiwi/issues/701">Issue #701</a></li> +<li>Follow up: depending on the results in #701 we will follow with other goals and + sub-tasks</li> +</ul> +<h2>Improve engineering productivity</h2> +<p>What makes a test engineer productive when they need to assess product risk and +new features, when mapping product requirements documents (PRD) to test plans and +test cases, when collaborating on user stories and behavior specification ? +What makes developers, product owners, designers and other professionals productive +when it comes to dealing with testing ?</p> +<p>For example consider the following workflow:</p> +<ul> +<li>Company has idea for a new product</li> +<li>In case this is a big product it may have its own mission, i.e. what kind + of problem is it trying to solve and for which group of customers</li> +<li>Product backlog is then created which outlines features that map + to the product mission</li> +<li>Then the team, together with test engineers perform example mapping + and discuss and refine the initial feature requirements. User stories + are created</li> +<li>Behavior specification may also be created</li> +<li>Test plans and test cases are the immediate product of BDD specs and + desired user stories</li> +</ul> +<p>Later we iterate through the sprints and for each sprint something like +this happens:</p> +<ul> +<li>Desired product features are planned for development. They must be <em>complete</em> + at least in terms of requirements, specs and tests</li> +<li>Devel writes code, maybe some unit tests, testers can also write automated tests + and/or manually verify the current state of the feature being developed</li> +<li>Testing, including exploratory is performed before feature is merged</li> +<li>Rinse and repeat</li> +</ul> +<p>Devel is also part of testing, right? Product owners, UX and interaction +designers as well. Producing quality software product is a team effort!</p> +<p>In every step of the way Kiwi TCMS can provide notification wizards, guidelines +and/or documentation for best practices, facilitate tooling, e.g. to write user stories +and assess them or map out an exploratory testing session, etc. The list +of ideas is virtually endless. We can even go into deep learning, AI and +blockchain but honestly who knows how to use them in testing ?</p> +<p>Our team is not quite sure how this goal will look like 3 months from now +but we are certain that testing needs to happen first, last and all the time +during the entire software development lifecycle. By providing the necessary +functionality and tools in Kiwi TCMS we can boost engineering productivity +and steer the testing process in your organization into a better, more productive +direction which welcomes participation from all engineering groups.</p> +<p>Let's consider another point of view: testing is a creative activity +which is benefited by putting your brain into a specific state of mind! +For example Gherkin (the Given-When-Then language) has the benefit of +forcing you to think about behavior and while doing so you are vocalizing +the various roles in the system, what kind of actions are accepted and +what sort of result is expected! Many times this will help you remember or +discover missing scenarios, edge cases and raise even more questions!</p> +<p>Crazy ideas, brain dumps and <code>+1</code> as always are welcome in +<a href="https://github.com/kiwitcms/Kiwi/issues/703">Issue #703</a>.</p> +<h2>Community</h2> +<p>Coding alone is not fun! Here's what you can do to help us:</p> +<ul> +<li><a href="https://github.com/kiwitcms/Kiwi/stargazers">Become a stargazer</a> by clicking the + <code>Star</code> button on our GitHub repository</li> +<li><a href="https://twitter.com/KiwiTCMS">Follow @KiwiTCMS on Twitter</a></li> +<li><a href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Subscribe to our newsletter</a> - + we are GDPR compliant and we don't spam, we promise!</li> +<li>Vote with a <code>+1</code> reaction on GitHub issues (top-right corner)</li> +<li>Send us testimonials and feedback about using Kiwi TCMS. + We will be happy to publish them on our website</li> +<li>Send us a pull request on GitHub</li> +<li><a href="https://opencollective.com/kiwitcms">Become a sponsor</a>!</li> +</ul> +<p>We are also looking to expand our core team and the list of occasional +contributors. The following are mostly organizational goals:</p> +<ul> +<li>Goal: participate in 5 conferences with a project stand</li> +<li>Goal: define how we find, recruit and onboard new team members. The + foundation is already set in + <a href="https://tcms.kiwitcms.org/plan/3/kiwi-tcms-team-onboarding#testcases">TP-3</a></li> +<li>Goal: clearly mark GitHub issues which are suitable for external contributors + which don’t want to spend lots of time learning how Kiwi TCMS works under the hood. + We're going to tag all such issues with the + <a href="https://github.com/kiwitcms/Kiwi/labels/help%20wanted"> + <img src="/images/github_helpwanted.png" style="float: none; margin:0" + alt="GitHub help wanted" title="GitHub help wanted"> + </a> label</li> +</ul> +<h2>Development policy</h2> +<p>Our team will be working on areas related to the goals above. A <code>+1</code> +reaction on GitHub issues will help us prioritize what we work on!</p> +<p><img src="/images/github_plus_one.png" style="float:none" + alt="GitHub +1" title="GitHub +1"></p> +<p>Bug fixes and other +issues will be occasionally slipped into the stream and pull requests from +non-team contributors will be reviewed and merged in a timely fashion.</p> +<p>There is at least 1 full day of work that goes behind the scenes when +a new version is officially released: compile changelog, build images and +upload them, create blog post and newsletter announcement, share on social +media, etc. We also deploy on our own Kiwi TCMS instance as a stop-gap +measure before making everything public!</p> +<p>New PyPI tarballs and Docker images will be released every few weeks as +we see fit, this has been our standard process. We try to align releases +with Django's release schedule and try to cut a new version when there are known +security vulnerabilities fixed. However we can't guarantee this will always +be the case!</p> +<p>If you are in a hurry and need something quickly the best option is to +send a pull request, build your own Docker image from source and +maybe consider +<a href="https://opencollective.com/kiwitcms">sponsoring us via Open Collective</a>!</p> +<p>Happy testing!</p>Kiwi TCMS 6.42019-01-07T15:25:00+02:002019-01-07T15:25:00+02:00Kiwi TCMS Teamtag:None,2019-01-07:/blog/kiwi-tcms-team/2019/01/07/kiwi-tcms-64/<p>We're happy to announce Kiwi TCMS version 6.4! This is a security, +improvement and bug-fix update that includes new versions of Django, +Patternfly and other dependencies. You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 …</pre><p>We're happy to announce Kiwi TCMS version 6.4! This is a security, +improvement and bug-fix update that includes new versions of Django, +Patternfly and other dependencies. You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +<p>Docker images:</p> +<pre class="literal-block"> +kiwitcms/kiwi latest 39fcb88182bb 963.4 MB +kiwitcms/kiwi 6.2 7870085ad415 957.6 MB +kiwitcms/kiwi 6.1.1 49fa42ddfe4d 955.7 MB +kiwitcms/kiwi 6.1 b559123d25b0 970.2 MB +kiwitcms/kiwi 6.0.1 87b24d94197d 970.1 MB +kiwitcms/kiwi 5.3.1 a420465852be 976.8 MB +</pre> +<div class="section" id="changes-since-kiwi-tcms-6-3"> +<h2>Changes since Kiwi TCMS 6.3</h2> +<div class="section" id="security"> +<h3>Security</h3> +<ul class="simple"> +<li>Update Django from 2.1.4 to 2.1.5, which deals with CVE-2019-3498: +Content spoofing possibility in the default 404 page</li> +<li>Update Patternfly to version 3.59.0, which deals with XSS issue in bootstrap. +See CVE-2018-14041</li> +<li>By default session cookies will expire after 24 hours. This can be controlled +via the <tt class="docutils literal">SESSION_COOKIE_AGE</tt> setting. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/556">Issue #556</a></li> +</ul> +</div> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update mysqlclient from 1.3.13 to 1.3.14</li> +<li>Update python-gitlab from 1.6.0 to 1.7.0</li> +<li>Update django-simple-history from 2.5.1 to 2.6.0</li> +<li>Update pygithub from 1.43.3 to 1.43.4</li> +<li>New API method <tt class="docutils literal">TestCase.remove()</tt>. Initially requested as +<a class="reference external" href="https://stackoverflow.com/questions/53844380/">SO #53844380</a></li> +<li>Drop down select widges in Patternfly pages are now styled with +<tt class="docutils literal"><span class="pre">bootstrap-select</span></tt> giving them more consistent look and feel with +the rest of the page (Anton Sankov)</li> +<li>Create new TestPlan page now includes toggles to control notifications +and whether or not the test plan is active. This was previously available +only in edit page (Anton Sankov)</li> +<li>By default TestPlan notification toggles are turned on. Previously they +were off (Anton Sankov)</li> +<li>Create and Edit TestPlan pages now look the same (Anton Sankov)</li> +<li>Kiwi TCMS is now accepting donations via +<a class="reference external" href="https://opencollective.com/kiwitcms">Open Collective</a></li> +</ul> +</div> +<div class="section" id="removed-functionality"> +<h3>Removed functionality</h3> +<ul class="simple"> +<li>Remove <tt class="docutils literal">TestPlan page <span class="pre">-&gt;</span> Run menu <span class="pre">-&gt;</span> Add cases to run</tt> action. +This is the same as <tt class="docutils literal">TestRun page <span class="pre">-&gt;</span> Cases menu <span class="pre">-&gt;</span> Add</tt> action</li> +<li>Legacy reports will be removed after 1st March 2019. Provide your +feedback in +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/657">Issue #657</a></li> +<li>The <tt class="docutils literal">/run/</tt> URL path has been merged with <tt class="docutils literal">/runs/</tt> due to configuration +refactoring. This may break your bookmarks or permalinks!</li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Don't traceback if markdown text is <tt class="docutils literal">None</tt>. Originally reported as +<a class="reference external" href="https://stackoverflow.com/questions/53662887/">SO #53662887</a></li> +<li>Show loading spinner when searching. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/653">Issue #653</a></li> +<li>Quick fix: when viewing TestPlan cases make TC summary link to the test case. +Previously the summary column was a link to nowhere.</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/zh-TW#">Chinese Traditional translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/fr#">French translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +</ul> +</div> +<div class="section" id="refactoring"> +<h3>Refactoring</h3> +<ul class="simple"> +<li>Pylint fixes</li> +<li>New and updated internal linters</li> +<li>Refactor <tt class="docutils literal">testplans.views.new</tt> to class based view (Anton Sankov)</li> +<li>Refactor <tt class="docutils literal">TestCase <span class="pre">-&gt;</span> Bugs tab <span class="pre">-&gt;</span> Remove</tt> to JSON-RPC. References +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/18">Issue #18</a></li> +<li>Refactor <tt class="docutils literal">removeCaseRunBug()</tt> to JSON-RPC, References +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/18">Issue #18</a></li> +<li>Remove unused <tt class="docutils literal">render_form()</tt> methods</li> +<li>Remove unnecessary string-to-int conversion (Ivaylo Ivanov)</li> +<li>Remove obsolete label fields. References +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/652">Issue #652</a> (Anton Sankov)</li> +<li>Remove JavaScript that duplicates <tt class="docutils literal">requestOperationUponFilteredCases()</tt></li> +<li>Remove <tt class="docutils literal">QuerySetIterationProxy</tt> class - not used anymore</li> +</ul> +</div> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p>If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +cd Kiwi/ +git pull +docker-compose down +docker pull kiwitcms/kiwi +docker pull centos/mariadb +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +</pre> +<p>Don't forget to <a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">backup</a> +before upgrade!</p> +<p><strong>WARNING:</strong> <tt class="docutils literal">kiwitcms/kiwi:latest</tt> and <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> 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:</p> +<pre class="literal-block"> +# starting from an older Kiwi TCMS version +docker-compose down +docker pull kiwitcms/kiwi:&lt;next_upgrade_version&gt; +edit docker-compose.yml to use kiwitcms/kiwi:&lt;next_upgrade_version&gt; +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +# repeat until you have reached latest +</pre> +<p>Happy testing!</p> +</div> +Roadmap status report for 20182018-12-17T15:50:00+02:002018-12-17T15:50:00+02:00Alexander Todorovtag:None,2018-12-17:/blog/atodorov/2018/12/17/roadmap-status-report-for-2018/<p>Hello everyone, in this article I will outline the progress that the Kiwi TCMS +team has made towards achieving the goals in our 2018 +<a href="/blog/kiwi-tcms-team/2018/01/22/kiwi-tcms-roadmap-for-2018/">roadmap</a> +(<a href="/blog/atodorov/2018/07/25/mid-year-roadmap-status-report/">mid-year update here</a>). +TLDR; goals are completed at 62%. Refactoring legacy code is showing good results, +less so on the front-end side and there are …</p><p>Hello everyone, in this article I will outline the progress that the Kiwi TCMS +team has made towards achieving the goals in our 2018 +<a href="/blog/kiwi-tcms-team/2018/01/22/kiwi-tcms-roadmap-for-2018/">roadmap</a> +(<a href="/blog/atodorov/2018/07/25/mid-year-roadmap-status-report/">mid-year update here</a>). +TLDR; goals are completed at 62%. Refactoring legacy code is showing good results, +less so on the front-end side and there are items still in progress!</p> +<h2>Make code easier to maintain</h2> +<p><em>Status: good progress</em></p> +<p>Initially <a href="https://codeclimate.com/github/kiwitcms/Kiwi">CodeClimate</a> reported +a "D" rating with 600+ code smells and 600+ duplications and a 1 year estimation +to resolve these. We're now down to "C" rating with 171 smells and 203 duplications.</p> +<p>The level of technical debt has dropped from 32.5% down to 17.7% and we have removed +around 14000 lines of Python code and 8000 lines of JavaScript code without +losing significant functionality.</p> +<p>Checkout +<a href="https://codeclimate.com/github/kiwitcms/Kiwi/trends/technical_debt">the stats</a> +for more info!</p> +<h2>Use pylint and pylint-django</h2> +<p><em>Status: almost finished</em></p> +<p>Both pylint and pylint-django have been integrated into our CI workflow. There are even +some custom built plugins that we use. The number of issues reported is down to 100 +from 4000+ initially. These are predominantly <code>fixme</code> comments which are also in parts +of the code that are scheduled for removal and refactoring.</p> +<h2>Render HTML, return JSON</h2> +<p><em>Status: moderate progress</em></p> +<p>Several views were modified to return pure JSON but we've not +done any targeted work to resolve this issue. A number of other views have been +removed in favor of using the existing JSON-RPC layer.</p> +<p>This is an internal refactoring effort which isn't very visible from the outside. +This is also one of the factors contributing to the high number of removed +source code.</p> +<h2>Submit forms, post JSON, GET clean URLs</h2> +<p><em>Status: no progress</em></p> +<p>Not much has been done in this area except the occasional refactoring to +JSON-RPC.</p> +<h2>API layer</h2> +<p><em>Status: complete</em></p> +<h2>Documentation</h2> +<p><em>Status: moderate progress, dropped</em></p> +<p>All RPC methods have been documented! The rest of the internals will be documented +as we go along.</p> +<h2>No vendored JavaScript libraries</h2> +<p><em>Status: good progress</em></p> +<p>We still carry around jQuery, jQuery-UI and Handlebars.js. They will be +removed once the pages using them are converted to use the Patternfly widgets +library.</p> +<h2>Less HTML templates with better organization</h2> +<p><em>Status: moderate progress</em></p> +<p>There are still over 50 HTML templates in <code>tcms/templates/</code> that need to be +refactored into Patternfly. We've been working on them one at a time and will +focus more on this effort in the next couple of months.</p> +<h2>Modern interface with Patternfly</h2> +<p><em>Status: moderate progress</em></p> +<p>Some of the pages have been converted to use Patternfly. The most important pages +that still have a different look and feel are TestPlan view, TestCase view and +TestRun view. These are also the hardest to convert because they have lots of +tabs/components which pull information from various places. Our goal is to create +reusable widgets for the various components (e.g. a list of TestCases) and then +include these components into several different templates to minimize code +duplication.</p> +<h2>JavaScript updates and front-end testing</h2> +<p><em>Status: moderate progress</em></p> +<p>A number of JavaScript functions have been refactored and removed during the +past few releases but there are still thousands of lines of code left to deal with. +This effort is mostly happening in parallel with the Patternfly redesign. +We still don't have anything to test front-end JavaScript functionality!</p> +<h2>Community efforts</h2> +<p><em>Status: good progress</em></p> +<p>We are seeing a steady stream of new users registered on +<a href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a> and +there are several active contributors on GitHub. Most of our translators are +very active and keep their respective languages fresh and up to date!</p> +<p>Kiwi TCMS was represented at OSCAL Tirana, DjangoCon Heidelberg, PyCon Prague, +HackConf Sofia, PiterPy St. Petersburg and OpenFest Sofia. We've also been +approved for a project stand at FOSDEM 2019 so watch this blog for more news.</p> +<p>Happy testing!</p>Kiwi TCMS 6.32018-12-04T09:15:00+02:002018-12-04T09:15:00+02:00Kiwi TCMS Teamtag:None,2018-12-04:/blog/kiwi-tcms-team/2018/12/04/kiwi-tcms-63/<p>We're happy to announce Kiwi TCMS version 6.3! This is a medium severity +security update that includes new versions of Django and Patternfly, +new database migrations, lots of improvements, bug fixes and internal +refactoring. This version also introduces integration with GitLab issue +tracker! You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https …</a></p><p>We're happy to announce Kiwi TCMS version 6.3! This is a medium severity +security update that includes new versions of Django and Patternfly, +new database migrations, lots of improvements, bug fixes and internal +refactoring. This version also introduces integration with GitLab issue +tracker! You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +<p>Docker images:</p> +<pre class="literal-block"> +kiwitcms/kiwi latest 8135624fdca2 960.3 MB +kiwitcms/kiwi 6.2 7870085ad415 957.6 MB +kiwitcms/kiwi 6.1.1 49fa42ddfe4d 955.7 MB +kiwitcms/kiwi 6.1 b559123d25b0 970.2 MB +kiwitcms/kiwi 6.0.1 87b24d94197d 970.1 MB +kiwitcms/kiwi 5.3.1 a420465852be 976.8 MB +</pre> +<div class="section" id="changes-since-kiwi-tcms-6-2-1"> +<h2>Changes since Kiwi TCMS 6.2.1</h2> +<div class="section" id="security"> +<h3>Security</h3> +<ul class="simple"> +<li>Resolve medium severity XSS vulnerability which can be exploited when +previewing malicious text in Simple MDE editor. See +<a class="reference external" href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-19057">CVE-2018-19057</a>, +<a class="reference external" href="https://snyk.io/vuln/SNYK-JS-SIMPLEMDE-72570">SNYK-JS-SIMPLEMDE-72570</a></li> +<li>Use <tt class="docutils literal">mozilla/bleach</tt> before rendering Markdown to the user as a second layer +of protection against the previously mentioned XSS vulnerability</li> +</ul> +</div> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update to <a class="reference external" href="https://docs.djangoproject.com/en/2.1/releases/2.1.4/">Django 2.1.4</a></li> +<li>Update to <a class="reference external" href="https://github.com/patternfly/patternfly/releases">Patternfly 3.58.0</a></li> +<li>Make docker container restartable (Maik Opitz, Adam Hall)</li> +<li>Add GitLab issue tracker integration. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/176">Issue #176</a> +(Filipe Arruda, Federal Institute of Pernambuco)</li> +<li>Convert <tt class="docutils literal">Create new TestPlan</tt> page to Patternfly (Anton Sankov)</li> +<li>Upon successful registration show the list of super-users in case new +accounts must be activated manually. This can be the same or expanded +version of the addresses in the <tt class="docutils literal">ADMIN</tt> setting. Include super-users +in email notifications sent via <tt class="docutils literal">tcms.signals.notify_admins()</tt>.</li> +<li>Don't include <tt class="docutils literal"><span class="pre">admin/js/*.js</span></tt> files in templates when not +necessary. Results in faster page load. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/209">Issue #209</a></li> +<li>Enable <tt class="docutils literal">nl2br</tt> Markdown extension which allows newline characters +to be rendered as <tt class="docutils literal">&lt;br&gt;</tt> tags in HTML. Visually the rendered +text will look closer to what you seen in the text editor. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/623">Issue #623</a></li> +<li>Use auto-complete for adding components to TestCase</li> +</ul> +</div> +<div class="section" id="removed-functionality"> +<h3>Removed functionality</h3> +<ul class="simple"> +<li>Bulk-update of Category for selected TestCase(s) inside of +TestPlan</li> +<li>Bulk-update of Components for selected TestCase(s) inside of +TestPlan</li> +<li>Bulk-update of automated status for selected TestCase(s) inside of +TestPlan</li> +<li>Bulk-remove for TestCase Component tab</li> +</ul> +<p>These actions have always been a bit broken and didn't check the +correct permission labels. You can still update items individually!</p> +<ul class="simple"> +<li>Selection of Components when creating new TestCase. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/565">Issue #565</a>. +Everywhere else Kiwi TCMS doesn't allow selection of many-to-many +relationships when creating or editing objects. Tags, Bugs, Components, +TestPlans can be added via dedicated tabs once the object has been saved.</li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Hide <tt class="docutils literal">KiwiUserAdmin.password</tt> field from super-user. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/610">Issue #610</a></li> +<li>Don't show inactive Priority. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/637">Issue #637</a></li> +<li>Don't traceback when adding new users via Admin. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/642">Issue #642</a></li> +<li>Teach <tt class="docutils literal">TestRun.update()</tt> API method to process the <tt class="docutils literal">stop_date</tt> +field. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/554">Issue #554</a> (Anton Sankov)</li> +<li>Previously when reporting issues to Bugzilla, directly from a TestRun, +Kiwi TCMS displayed the error <tt class="docutils literal">Enable reporting to this Issue Tracker by +configuring its base_url</tt> although that has already been configured. +This is now fixed. See +<a class="reference external" href="https://stackoverflow.com/questions/53434949/">Stack Overflow #53434949</a></li> +</ul> +</div> +<div class="section" id="database"> +<h3>Database</h3> +<ul class="simple"> +<li>Remove <tt class="docutils literal">TestPlan.owner</tt> field, duplicates <tt class="docutils literal">TestPlan.author</tt></li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/fr#">French translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +</ul> +</div> +<div class="section" id="refactoring"> +<h3>Refactoring</h3> +<ul class="simple"> +<li>Remove <tt class="docutils literal">fmt_queries()</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/330">Issue #330</a> (Anton Sankov)</li> +<li>Remove unused parameter from <tt class="docutils literal">plan_from_request_or_none()</tt>. Refers to +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/303">Issue #303</a> (Anton Sankov)</li> +<li>Remove <tt class="docutils literal">ComponentActions()</tt> class. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/20">Issue #20</a></li> +<li>Convert lots of AJAX calls to JSON-RPC</li> +<li>Remove lots of unused Python, JavaScript and templates. Both after migration +to JSON RPC and other leftovers</li> +<li>Pylint fixes (Alexander Todorov, Anton Sankov)</li> +</ul> +</div> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p>If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +cd Kiwi/ +git pull +docker-compose down +docker pull kiwitcms/kiwi +docker pull centos/mariadb +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +</pre> +<p>Don't forget to <a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">backup</a> +before upgrade!</p> +<p><strong>WARNING:</strong> <tt class="docutils literal">kiwitcms/kiwi:latest</tt> and <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> 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:</p> +<pre class="literal-block"> +# starting from an older Kiwi TCMS version +docker-compose down +docker pull kiwitcms/kiwi:&lt;next_upgrade_version&gt; +edit docker-compose.yml to use kiwitcms/kiwi:&lt;next_upgrade_version&gt; +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +# repeat until you have reached latest +</pre> +<p>Happy testing!</p> +</div> +Kiwi TCMS 6.2.12018-11-12T14:45:00+02:002018-11-12T14:45:00+02:00Kiwi TCMS Teamtag:None,2018-11-12:/blog/kiwi-tcms-team/2018/11/12/kiwi-tcms-621/<p>We're happy to announce Kiwi TCMS version 6.2.1! This is a small release +that includes some improvements and bug-fixes. You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6 …</pre><p>We're happy to announce Kiwi TCMS version 6.2.1! This is a small release +that includes some improvements and bug-fixes. You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +<p>Docker images:</p> +<pre class="literal-block"> +kiwitcms/kiwi latest 24338088bf46 956.8 MB +kiwitcms/kiwi 6.2 7870085ad415 957.6 MB +kiwitcms/kiwi 6.1.1 49fa42ddfe4d 955.7 MB +kiwitcms/kiwi 6.1 b559123d25b0 970.2 MB +kiwitcms/kiwi 6.0.1 87b24d94197d 970.1 MB +kiwitcms/kiwi 5.3.1 a420465852be 976.8 MB +</pre> +<div class="section" id="changes-since-kiwi-tcms-6-2"> +<h2>Changes since Kiwi TCMS 6.2</h2> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update to <a class="reference external" href="https://github.com/patternfly/patternfly/releases">Patternfly 3.57.0</a></li> +<li>Update to <a class="reference external" href="http://initd.org/psycopg/articles/tag/release/">psycopg2 2.7.6.1</a></li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Fix InvalidQuery, field <tt class="docutils literal">TestCase.default_tester</tt> cannot be both deferred and +traversed using <tt class="docutils literal">select_related</tt> at the same time. References +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/346">Issue #346</a></li> +</ul> +</div> +<div class="section" id="refactoring"> +<h3>Refactoring</h3> +<ul class="simple"> +<li>Pylint fixes (Ivaylo Ivanov)</li> +<li>Remove JavaScript and Python functions in favor of existing JSON-RPC</li> +<li>Remove vendored-in <tt class="docutils literal">js/lib/jquery.dataTables.js</tt> which is now replaced by +the npm package <tt class="docutils literal">datatables.net</tt> (required by Patternfly)</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>New <a class="reference external" href="https://crowdin.com/project/kiwitcms/fr#">French translation</a> +(Christophe CHAUVET)</li> +</ul> +</div> +<div class="section" id="misc"> +<h3>Misc</h3> +<ul class="simple"> +<li><a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a> is +using a new SSL certificate with serial number +<tt class="docutils literal">46:78:80:EA:80:A4:FC:65:17:E4:59:EC:1D:C2:27:47</tt></li> +<li>Version 6.2.1 has been published to +<a class="reference external" href="https://pypi.org/project/kiwitcms/">PyPI</a> to facilitate people who want +to deploy Kiwi TCMS on Heroku. <strong>Important</strong>: PyPI package will be provided +as a convenience for those who know what they are doing. Valid bugs and +issues will be dealth with accordingly. As we do not deploy from a PyPI +tarball we ask you to provide all the necessary +details when reporting issues! <em>If you have no idea what all of this means +then stick to the official Docker images!</em></li> +</ul> +</div> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p>If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +cd Kiwi/ +git pull +docker-compose down +docker pull kiwitcms/kiwi +docker pull centos/mariadb +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +</pre> +<p>Don't forget to <a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">backup</a> +before upgrade!</p> +<p><strong>WARNING:</strong> <tt class="docutils literal">kiwitcms/kiwi:latest</tt> and <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> 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:</p> +<pre class="literal-block"> +# starting from an older Kiwi TCMS version +docker-compose down +docker pull kiwitcms/kiwi:&lt;next_upgrade_version&gt; +edit docker-compose.yml to use kiwitcms/kiwi:&lt;next_upgrade_version&gt; +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +# repeat until you have reached latest +</pre> +<p>Happy testing!</p> +</div> +Test runner plugin specification2018-11-05T16:05:00+02:002018-11-05T16:05:00+02:00Alexander Todorovtag:None,2018-11-05:/blog/atodorov/2018/11/05/test-runner-plugin-specification/<p>Happy Monday testers! Kiwi TCMS needs your help! We are looking for developers who +wish to create plugins for popular test runners that will record test results +in Kiwi TCMS! Initially we are looking for plugins for Python's unittest, +<a href="https://docs.djangoproject.com/en/2.1/topics/testing/advanced/#using-different-testing-frameworks">Django</a> +and <a href="https://junit.org/junit4/plugins.html">JUnit</a>!</p> +<h2>What is a test runner?</h2> +<p>When working with …</p><p>Happy Monday testers! Kiwi TCMS needs your help! We are looking for developers who +wish to create plugins for popular test runners that will record test results +in Kiwi TCMS! Initially we are looking for plugins for Python's unittest, +<a href="https://docs.djangoproject.com/en/2.1/topics/testing/advanced/#using-different-testing-frameworks">Django</a> +and <a href="https://junit.org/junit4/plugins.html">JUnit</a>!</p> +<h2>What is a test runner?</h2> +<p>When working with automated testing you have several components:</p> +<ul> +<li>A test module (or test script), e.g. <code>test_models.py</code> which contains + tests for your software;</li> +<li>A test framework, e.g. Python nose, which provides the structure + for test classes and methods and assert methods to use;</li> +<li>A test runner, which knows how to discover your test scripts, load them, + execute the testing scenarios inside of them and report the results.</li> +</ul> +<p>Very often all of the components above live together inside the testing framework +but don't need to. For example the standard <code>unittest</code> module in Python +provides a test runner but there are also <code>nose</code> and <code>py.test</code> and Django provides +its own test runner that knows how to work with the database.</p> +<h2>Workflow organization</h2> +<p>Once you agree to writing a plugin we are going to create a separate GitHub +repository where you will be granted write privileges making you an independent +contributor to the Kiwi TCMS project!</p> +<p>Design and architecture of the plugin is up to you, following the practices +established by the testing framework in question. You will also have to create +a test suite for your plugin based on the specification below.</p> +<p>You are expected to use +<a href="https://public.tenant.kiwitcms.org/login/github-app/">public.tenant.kiwitcms.org</a> while working on the +plugin and afterwards. This is known as eating your own dog food!</p> +<p>For Python we provide the <code>tcms-api</code> module which already takes care of the +communications layer. For other languages you will have to create this layer or +depend on other open source libraries that provide a XML-RPC or JSON-RPC +client!</p> +<p>You can use +<a href="https://gist.github.com/atodorov/f5aed028b6f254d97bcaf93453abe8d2">this gist</a> +for inspiration!</p> +<h2>Behavior Specification</h2> +<p><em>Please use the comments section to discuss unclear behavior and missing scenarios!</em></p> +<div class="highlight"><pre><span></span><code> <span class="n">SUMMARY</span><span class="p">:</span> <span class="n">Will</span> <span class="n">use</span> <span class="n">configuration</span> <span class="n">file</span> <span class="k">if</span> <span class="n">it</span> <span class="n">exists</span> + <span class="n">GIVEN</span><span class="p">:</span> <span class="n">the</span> <span class="n">file</span> <span class="o">~/.</span><span class="n">tcms</span><span class="o">.</span><span class="n">conf</span> <span class="n">exists</span> + <span class="n">WHEN</span><span class="p">:</span> <span class="n">plugin</span> <span class="n">initializes</span> + <span class="n">THEN</span><span class="p">:</span> <span class="n">the</span> <span class="n">plugin</span> <span class="n">will</span> <span class="nb">log</span> <span class="n">an</span> <span class="n">info</span> <span class="n">message</span><span class="p">,</span> <span class="n">read</span> <span class="n">the</span> <span class="n">file</span> <span class="ow">and</span> + <span class="n">THEN</span><span class="p">:</span> <span class="n">configure</span> <span class="n">TCMS_API_URL</span><span class="p">,</span> <span class="n">TCMS_USERNAME</span><span class="p">,</span> <span class="n">TCMS_PASSWORD</span> + <span class="n">variables</span> <span class="n">with</span> <span class="n">the</span> <span class="n">respective</span> <span class="n">values</span> + + + <span class="n">SUMMARY</span><span class="p">:</span> <span class="n">Will</span> <span class="n">use</span> <span class="n">ENVIRONMENT</span> <span class="k">if</span> <span class="n">configuration</span> <span class="n">file</span> <span class="n">doesn</span><span class="s1">&#39;t exist</span> + <span class="n">GIVEN</span><span class="p">:</span> <span class="n">the</span> <span class="n">file</span> <span class="o">~/.</span><span class="n">tcms</span><span class="o">.</span><span class="n">conf</span> <span class="n">does</span> <span class="ow">not</span> <span class="n">exists</span> + <span class="n">WHEN</span><span class="p">:</span> <span class="n">plugin</span> <span class="n">initializes</span> + <span class="n">THEN</span><span class="p">:</span> <span class="n">the</span> <span class="n">plugin</span> <span class="n">will</span> <span class="n">read</span> <span class="n">configuration</span> <span class="n">from</span> <span class="n">environment</span> <span class="ow">and</span> <span class="n">configure</span> + <span class="n">the</span> <span class="n">following</span> <span class="n">variables</span><span class="o">/</span><span class="k">class</span> <span class="n">members</span><span class="p">:</span> + <span class="n">TCMS_API_URL</span><span class="p">,</span> <span class="n">TCMS_USERNAME</span> <span class="ow">and</span> <span class="n">TCMS_PASSWORD</span> + + + <span class="n">SUMMARY</span><span class="p">:</span> <span class="n">Will</span> <span class="n">exit</span> <span class="k">if</span> <span class="n">TCMS_API_URL</span> <span class="ow">not</span> <span class="n">configured</span> + <span class="n">GIVEN</span><span class="p">:</span> <span class="n">TCMS_API_URL</span> <span class="n">variable</span> <span class="k">is</span> <span class="n">empty</span> + <span class="n">WHEN</span><span class="p">:</span> <span class="n">plugin</span> <span class="n">initializes</span> + <span class="n">THEN</span><span class="p">:</span> <span class="nb">log</span> <span class="n">a</span> <span class="n">warning</span> <span class="n">message</span> <span class="ow">and</span> <span class="n">exit</span> + <span class="n">AND</span><span class="p">:</span> <span class="n">depending</span> <span class="n">on</span> <span class="n">the</span> <span class="n">test</span> <span class="n">runner</span> <span class="n">framework</span> <span class="n">set</span> <span class="n">exist</span> <span class="n">status</span> <span class="mi">1</span> + + + <span class="n">SUMMARY</span><span class="p">:</span> <span class="n">Will</span> <span class="n">exit</span> <span class="k">if</span> <span class="n">TCMS_USERNAME</span> <span class="ow">not</span> <span class="n">configured</span> + <span class="n">GIVEN</span><span class="p">:</span> <span class="n">TCMS_USERNAME</span> <span class="k">is</span> <span class="n">empty</span> + <span class="n">WHEN</span><span class="p">:</span> <span class="n">plugin</span> <span class="n">initializes</span> + <span class="n">THEN</span><span class="p">:</span> <span class="nb">log</span> <span class="n">a</span> <span class="n">warning</span> <span class="n">message</span> <span class="ow">and</span> <span class="n">exit</span> + <span class="n">AND</span><span class="p">:</span> <span class="n">depending</span> <span class="n">on</span> <span class="n">the</span> <span class="n">test</span> <span class="n">runner</span> <span class="n">framework</span> <span class="n">set</span> <span class="n">exist</span> <span class="n">status</span> <span class="mi">1</span> + + + <span class="n">SUMMARY</span><span class="p">:</span> <span class="n">Will</span> <span class="n">exit</span> <span class="k">if</span> <span class="n">TCMS_PASSWORD</span> <span class="ow">not</span> <span class="n">configured</span> + <span class="n">GIVEN</span><span class="p">:</span> <span class="n">TCMS_PASSWORD</span> <span class="k">is</span> <span class="n">empty</span> + <span class="n">WHEN</span><span class="p">:</span> <span class="n">plugin</span> <span class="n">initializes</span> + <span class="n">THEN</span><span class="p">:</span> <span class="nb">log</span> <span class="n">a</span> <span class="n">warning</span> <span class="n">message</span> <span class="ow">and</span> <span class="n">exit</span> + <span class="n">AND</span><span class="p">:</span> <span class="n">depending</span> <span class="n">on</span> <span class="n">the</span> <span class="n">test</span> <span class="n">runner</span> <span class="n">framework</span> <span class="n">set</span> <span class="n">exist</span> <span class="n">status</span> <span class="mi">1</span> + + + <span class="n">SUMMARY</span><span class="p">:</span> <span class="n">Will</span> <span class="n">re</span><span class="o">-</span><span class="n">use</span> <span class="n">existing</span> <span class="n">TestPlan</span> <span class="k">if</span> <span class="n">configured</span> + <span class="n">GIVEN</span><span class="p">:</span> <span class="n">TCMS_RUN_ID</span> <span class="n">environment</span> <span class="n">variable</span> <span class="k">is</span> <span class="ow">not</span> <span class="n">empty</span> + <span class="n">WHEN</span><span class="p">:</span> <span class="n">plugin</span> <span class="n">initializes</span> + <span class="n">THEN</span><span class="p">:</span> <span class="n">this</span> <span class="n">will</span> <span class="n">be</span> <span class="n">the</span> <span class="n">Current_TestRun</span> <span class="n">record</span> <span class="n">to</span> <span class="n">which</span> <span class="n">the</span> <span class="n">plugin</span> <span class="k">is</span> + <span class="n">going</span> <span class="n">to</span> <span class="n">add</span> <span class="n">test</span> <span class="n">execution</span> <span class="n">results</span> + <span class="n">AND</span><span class="p">:</span> <span class="n">Current_TestPlan</span> <span class="n">document</span> <span class="ow">in</span> <span class="n">which</span> <span class="n">the</span> <span class="n">plugin</span> <span class="n">will</span> + <span class="n">search</span> <span class="k">for</span> <span class="n">test</span> <span class="n">cases</span> <span class="n">becomes</span> <span class="n">Current_TestRun</span><span class="o">.</span><span class="n">plan</span> + + + <span class="n">SUMMARY</span><span class="p">:</span> <span class="n">Will</span> <span class="n">create</span> <span class="n">new</span> <span class="n">TestPlan</span> <span class="o">&amp;</span> <span class="n">TestRun</span> <span class="k">if</span> <span class="n">TCMS_RUN_ID</span> <span class="ow">not</span> <span class="n">configured</span> + <span class="n">GIVEN</span><span class="p">:</span> <span class="n">TCMS_RUN_ID</span> <span class="n">environment</span> <span class="n">variable</span> <span class="k">is</span> <span class="n">empty</span> + <span class="n">THEN</span><span class="p">:</span> <span class="n">plugin</span> <span class="n">will</span> <span class="n">create</span> <span class="n">a</span> <span class="n">new</span> <span class="n">TestPlan</span> <span class="ow">in</span> <span class="n">Kiwi</span> <span class="n">TCMS</span> <span class="n">with</span> <span class="n">attributes</span><span class="p">:</span> + <span class="n">name</span><span class="o">=</span><span class="s1">&#39;Automated test plan for %(product)&#39;</span> + <span class="n">product</span><span class="o">=</span><span class="s1">&#39;%(product)&#39;</span> + <span class="n">product_version</span><span class="o">=</span><span class="s1">&#39;%(version)&#39;</span> + <span class="n">type</span><span class="o">=</span><span class="s1">&#39;Unit&#39;</span> + <span class="n">WHERE</span><span class="p">:</span> <span class="o">%</span><span class="p">(</span><span class="n">product</span><span class="p">)</span> <span class="k">is</span> <span class="n">a</span> <span class="n">placeholder</span> <span class="k">for</span> <span class="n">TCMS_PRODUCT</span><span class="o">==</span><span class="n">TRAVIS_REPO_SLUG</span><span class="o">==</span><span class="n">JOB_NAME</span> + <span class="o">%</span><span class="p">(</span><span class="n">version</span><span class="p">)</span> <span class="k">is</span> <span class="n">a</span> <span class="n">placeholder</span> <span class="k">for</span> <span class="n">TCMS_PRODUCT_VERSION</span><span class="o">==</span><span class="n">TRAVIS_COMMIT</span><span class="o">==</span><span class="n">TRAVIS_PULL_REQUEST_SHA</span><span class="o">==</span><span class="n">GIT_COMMIT</span> + <span class="n">THEN</span><span class="p">:</span> <span class="n">plugin</span> <span class="n">will</span> <span class="n">crate</span> <span class="n">a</span> <span class="n">new</span> <span class="n">TestRun</span> <span class="ow">in</span> <span class="n">Kiwi</span> <span class="n">TCMS</span> <span class="n">with</span> <span class="n">attributes</span><span class="p">:</span> + <span class="n">summary</span><span class="o">=</span><span class="s1">&#39;Automated test run ....&#39;</span> + <span class="n">plan</span><span class="o">=</span><span class="n">Current</span> <span class="n">TestPlan</span> + <span class="n">build</span><span class="o">=</span><span class="s1">&#39;%(build)&#39;</span> + <span class="n">manager</span><span class="o">=</span><span class="n">TCMS_USERNAME</span> + <span class="n">WHERE</span><span class="p">:</span> <span class="o">%</span><span class="p">(</span><span class="n">build</span><span class="p">)</span> <span class="k">is</span> <span class="n">a</span> <span class="n">placeholder</span> <span class="k">for</span> <span class="n">TCMS_BUILD</span><span class="o">==</span><span class="n">TRAVIS_BUILD_NUMBER</span><span class="o">==</span><span class="n">BUILD_NUMBER</span> + <span class="n">Environment</span> <span class="n">variables</span> <span class="n">are</span> <span class="n">specified</span> <span class="ow">in</span><span class="p">:</span> + <span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">docs</span><span class="o">.</span><span class="n">travis</span><span class="o">-</span><span class="n">ci</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">user</span><span class="o">/</span><span class="n">environment</span><span class="o">-</span><span class="n">variables</span><span class="c1">#default-environment-variables</span> + <span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">wiki</span><span class="o">.</span><span class="n">jenkins</span><span class="o">.</span><span class="n">io</span><span class="o">/</span><span class="n">display</span><span class="o">/</span><span class="n">JENKINS</span><span class="o">/</span><span class="n">Building</span><span class="o">+</span><span class="n">a</span><span class="o">+</span><span class="n">software</span><span class="o">+</span><span class="n">project</span><span class="c1">#Buildingasoftwareproject-belowJenkinsSetEnvironmentVariables</span> + + <span class="n">SUMMARY</span><span class="p">:</span> <span class="n">Will</span> <span class="ow">not</span> <span class="n">create</span> <span class="n">duplicate</span> <span class="n">Product</span><span class="p">,</span> <span class="n">Version</span> <span class="o">&amp;</span> <span class="n">Build</span> <span class="k">if</span> <span class="n">they</span> <span class="n">already</span> <span class="n">exist</span> + <span class="n">GIVEN</span><span class="p">:</span> <span class="n">TCMS_RUN_ID</span> <span class="k">is</span> <span class="ow">not</span> <span class="n">configured</span> + <span class="n">AND</span><span class="p">:</span> <span class="o">%</span><span class="p">(</span><span class="n">product</span><span class="p">)</span> <span class="n">exists</span> + <span class="n">AND</span><span class="p">:</span> <span class="o">%</span><span class="p">(</span><span class="n">version</span><span class="p">)</span> <span class="n">exists</span> + <span class="n">AND</span><span class="p">:</span> <span class="o">%</span><span class="p">(</span><span class="n">build</span><span class="p">)</span> <span class="n">exists</span> + <span class="n">WHEN</span><span class="p">:</span> <span class="n">plugin</span> <span class="n">tries</span> <span class="n">to</span> <span class="n">auto</span><span class="o">-</span><span class="n">create</span> <span class="n">TestPlan</span> <span class="ow">and</span> <span class="n">TestRun</span> + <span class="n">THEN</span><span class="p">:</span> <span class="n">plugin</span> <span class="n">will</span> <span class="n">re</span><span class="o">-</span><span class="n">use</span> <span class="o">%</span><span class="p">(</span><span class="n">product</span><span class="p">),</span> <span class="o">%</span><span class="p">(</span><span class="n">version</span><span class="p">)</span> <span class="ow">and</span> <span class="o">%</span><span class="p">(</span><span class="n">build</span><span class="p">)</span> <span class="n">from</span> <span class="n">the</span> <span class="n">database</span> + <span class="n">AND</span><span class="p">:</span> <span class="ow">not</span> <span class="n">try</span> <span class="n">to</span> <span class="n">auto</span><span class="o">-</span><span class="n">create</span> <span class="n">them</span> + + + <span class="n">SUMMARY</span><span class="p">:</span> <span class="n">Will</span> <span class="n">auto</span><span class="o">-</span><span class="n">create</span> <span class="n">Product</span><span class="p">,</span> <span class="n">Version</span> <span class="o">&amp;</span> <span class="n">Build</span> <span class="k">if</span> <span class="n">they</span> <span class="n">don</span><span class="s1">&#39;t exist</span> + <span class="n">GIVEN</span><span class="p">:</span> <span class="n">TCMS_RUN_ID</span> <span class="k">is</span> <span class="ow">not</span> <span class="n">configured</span> + <span class="n">AND</span><span class="p">:</span> <span class="o">%</span><span class="p">(</span><span class="n">product</span><span class="p">)</span> <span class="n">doesn</span><span class="s1">&#39;t exist</span> + <span class="n">AND</span><span class="p">:</span> <span class="o">%</span><span class="p">(</span><span class="n">version</span><span class="p">)</span> <span class="n">doesn</span><span class="s1">&#39;t exist</span> + <span class="n">AND</span><span class="p">:</span> <span class="o">%</span><span class="p">(</span><span class="n">build</span><span class="p">)</span> <span class="n">doesn</span><span class="s1">&#39;t exist</span> + <span class="n">WHEN</span><span class="p">:</span> <span class="n">plugin</span> <span class="n">tries</span> <span class="n">to</span> <span class="n">auto</span><span class="o">-</span><span class="n">create</span> <span class="n">TestPlan</span> <span class="ow">and</span> <span class="n">TestRun</span> + <span class="n">THEN</span><span class="p">:</span> <span class="o">%</span><span class="p">(</span><span class="n">product</span><span class="p">),</span> <span class="o">%</span><span class="p">(</span><span class="n">version</span><span class="p">)</span> <span class="ow">and</span> <span class="o">%</span><span class="p">(</span><span class="n">build</span><span class="p">)</span> <span class="n">be</span> <span class="n">created</span> <span class="n">automatically</span> + + + <span class="n">SUMMARY</span><span class="p">:</span> <span class="n">Unit</span> <span class="n">test</span> <span class="n">names</span> <span class="n">are</span> <span class="n">added</span> <span class="n">to</span> <span class="n">TestPlan</span> + <span class="n">GIVEN</span><span class="p">:</span> <span class="n">we</span> <span class="n">have</span> <span class="n">good</span> <span class="n">plugin</span> <span class="n">configuration</span> + <span class="n">WHEN</span><span class="p">:</span> <span class="n">plugin</span> <span class="n">loops</span> <span class="n">over</span> <span class="n">unit</span> <span class="n">tests</span> <span class="n">emitted</span> <span class="n">by</span> <span class="n">the</span> <span class="n">test</span> <span class="n">runner</span> + <span class="n">THEN</span><span class="p">:</span> <span class="n">plugin</span> <span class="n">will</span> <span class="n">check</span> <span class="n">Current_TestPlan</span> <span class="k">for</span> <span class="n">a</span> <span class="n">TestCase</span> <span class="n">with</span> <span class="n">the</span> <span class="n">same</span> <span class="n">name</span> + <span class="n">AND</span><span class="p">:</span> <span class="k">if</span> <span class="n">test</span> <span class="n">case</span> <span class="n">doesn</span><span class="s1">&#39;t exist in Current_TestPlan</span> + <span class="n">THEN</span><span class="p">:</span> <span class="n">it</span> <span class="n">will</span> <span class="n">be</span> <span class="n">added</span> <span class="n">to</span> <span class="n">Current_TestPlan</span> + <span class="n">hint</span><span class="p">:</span> <span class="n">it</span> <span class="k">is</span> <span class="n">probably</span> <span class="n">best</span> <span class="n">to</span> <span class="n">process</span> <span class="n">all</span> <span class="n">unit</span> <span class="n">test</span> <span class="n">results</span> <span class="n">at</span> <span class="n">the</span> <span class="n">end</span><span class="o">!</span> + + + <span class="n">SUMMARY</span><span class="p">:</span> <span class="n">Unit</span> <span class="n">test</span> <span class="n">names</span> <span class="n">are</span> <span class="n">added</span> <span class="n">to</span> <span class="n">TestRun</span> + <span class="n">GIVEN</span><span class="p">:</span> <span class="n">we</span> <span class="n">have</span> <span class="n">good</span> <span class="n">plugin</span> <span class="n">configuration</span> + <span class="n">WHEN</span><span class="p">:</span> <span class="n">plugin</span> <span class="n">loops</span> <span class="n">over</span> <span class="n">unit</span> <span class="n">tests</span> <span class="n">emitted</span> <span class="n">by</span> <span class="n">the</span> <span class="n">test</span> <span class="n">runner</span> + <span class="n">THEN</span><span class="p">:</span> <span class="n">plugin</span> <span class="n">will</span> <span class="n">check</span> <span class="n">Current_TestRun</span> <span class="k">for</span> <span class="n">a</span> <span class="n">TestCaseRun</span> <span class="n">object</span> <span class="n">which</span> <span class="n">matches</span> + <span class="n">the</span> <span class="n">current</span> <span class="n">unit</span> <span class="n">test</span> <span class="n">name</span> + <span class="n">hint</span><span class="p">:</span> <span class="p">(</span><span class="ow">or</span> <span class="n">Current_TestCase</span> <span class="n">object</span> <span class="n">from</span> <span class="n">previous</span> <span class="n">scenario</span><span class="p">,</span> <span class="n">depending</span> <span class="n">on</span> <span class="n">implementation</span><span class="p">)</span> + <span class="n">AND</span><span class="p">:</span> <span class="k">if</span> <span class="n">such</span> <span class="n">TestCaseRun</span> <span class="n">doesn</span><span class="s1">&#39;t exist in Current_TestRun</span> + <span class="n">THEN</span><span class="p">:</span> <span class="n">it</span> <span class="n">will</span> <span class="n">be</span> <span class="n">added</span> <span class="n">to</span> <span class="n">Current_TestRun</span> + <span class="n">hint</span><span class="p">:</span> <span class="n">it</span> <span class="k">is</span> <span class="n">probably</span> <span class="n">best</span> <span class="n">to</span> <span class="n">process</span> <span class="n">all</span> <span class="n">unit</span> <span class="n">test</span> <span class="n">results</span> <span class="n">at</span> <span class="n">the</span> <span class="n">end</span><span class="o">!</span> + + + <span class="n">SUMMARY</span><span class="p">:</span> <span class="n">Current_TestRun</span> <span class="k">is</span> <span class="n">updated</span> <span class="n">with</span> <span class="n">unit</span> <span class="n">test</span> <span class="n">results</span> + <span class="n">GIVEN</span><span class="p">:</span> <span class="n">we</span> <span class="n">have</span> <span class="n">good</span> <span class="n">plugin</span> <span class="n">configuration</span> + <span class="n">WHEN</span><span class="p">:</span> <span class="n">plugin</span> <span class="n">loops</span> <span class="n">over</span> <span class="n">unit</span> <span class="n">tests</span> <span class="n">emitted</span> <span class="n">by</span> <span class="n">the</span> <span class="n">test</span> <span class="n">runner</span> + <span class="n">THEN</span><span class="p">:</span> <span class="n">plugin</span> <span class="n">will</span> <span class="n">check</span> <span class="n">Current_TestRun</span> <span class="k">for</span> <span class="n">a</span> <span class="n">TestCaseRun</span> <span class="n">object</span> <span class="n">which</span> <span class="n">matches</span> + <span class="n">the</span> <span class="n">current</span> <span class="n">unit</span> <span class="n">test</span> <span class="n">name</span> + <span class="n">hint</span><span class="p">:</span> <span class="p">(</span><span class="ow">or</span> <span class="n">Current_TestCase</span> <span class="n">object</span> <span class="n">from</span> <span class="n">previous</span> <span class="n">scenario</span><span class="p">,</span> <span class="n">depending</span> <span class="n">on</span> <span class="n">implementation</span><span class="p">)</span> + <span class="n">AND</span><span class="p">:</span> <span class="k">if</span> <span class="n">TestCaseRun</span> <span class="n">object</span> <span class="n">exists</span> <span class="ow">in</span> <span class="n">Current_TestRun</span> + <span class="n">THEN</span><span class="p">:</span> <span class="n">its</span> <span class="n">status</span> <span class="n">will</span> <span class="n">be</span> <span class="n">updated</span> <span class="n">with</span> <span class="n">the</span> <span class="n">execution</span> <span class="n">result</span> <span class="n">coming</span> <span class="n">from</span> <span class="n">the</span> <span class="n">test</span> <span class="n">runner</span> + <span class="n">hint</span><span class="p">:</span> <span class="n">it</span> <span class="k">is</span> <span class="n">probably</span> <span class="n">best</span> <span class="n">to</span> <span class="n">process</span> <span class="n">all</span> <span class="n">unit</span> <span class="n">test</span> <span class="n">results</span> <span class="n">at</span> <span class="n">the</span> <span class="n">end</span><span class="o">!</span> +</code></pre></div> + + +<p>Happy testing!</p>Kiwi TCMS 6.22018-11-02T12:15:00+02:002018-11-02T12:15:00+02:00Kiwi TCMS Teamtag:None,2018-11-02:/blog/kiwi-tcms-team/2018/11/02/kiwi-tcms-62/<p>We're happy to announce Kiwi TCMS version 6.2! This is a small release +that removes squashed migrations from previous releases and includes a few +improvements. You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a> or +find our info booth at <a class="reference external" href="http://www.openfest.org">OpenFest</a> in Sofia during +the weekend and do …</p><p>We're happy to announce Kiwi TCMS version 6.2! This is a small release +that removes squashed migrations from previous releases and includes a few +improvements. You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a> or +find our info booth at <a class="reference external" href="http://www.openfest.org">OpenFest</a> in Sofia during +the weekend and do a live demo with the team!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (latest) +</pre> +<p>Docker images:</p> +<pre class="literal-block"> +kiwitcms/kiwi latest 7870085ad415 957.6 MB +kiwitcms/kiwi 6.2 7870085ad415 957.6 MB +kiwitcms/kiwi 6.1.1 49fa42ddfe4d 955.7 MB +kiwitcms/kiwi 6.1 b559123d25b0 970.2 MB +kiwitcms/kiwi 6.0.1 87b24d94197d 970.1 MB +kiwitcms/kiwi 5.3.1 a420465852be 976.8 MB +</pre> +<div class="section" id="changes-since-kiwi-tcms-6-1-1"> +<h2>Changes since Kiwi TCMS 6.1.1</h2> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update to <a class="reference external" href="https://docs.djangoproject.com/en/2.1/releases/2.1.3/">Django 2.1.3</a></li> +<li>Update Apache config to print logs on the console. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/549">Issue #549</a></li> +<li><a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a> now +allows email associations when logging via GitHub. If you have an existing +account which shares the same email address with your GitHub profile you +will be redirected to that account upon logging in via GitHub! +This also resolves a problem where existing users trying to login via GitHub +were presented with error message that their email exists in the database! +Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/573">Issue #573</a></li> +</ul> +</div> +<div class="section" id="database"> +<h3>Database</h3> +<ul class="simple"> +<li>Remove old variants of squashed migrations from earlier releases</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/de#">German translation</a></li> +</ul> +</div> +<div class="section" id="refactoring"> +<h3>Refactoring</h3> +<ul class="simple"> +<li>Update <tt class="docutils literal">tcms.tests.factories.BugFactory</tt> (Ivaylo Ivanov)</li> +<li>Add test for <tt class="docutils literal">tcms.testcases.views.group_case_bugs</tt> (Ivaylo Ivanov)</li> +<li>Pylint fixes (Ivaylo Ivanov)</li> +<li>Remove unused JavaScript and re-use the existing JSON RPC methods</li> +</ul> +</div> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p>If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +cd Kiwi/ +git pull +docker-compose down +docker pull kiwitcms/kiwi +docker pull centos/mariadb +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +</pre> +<p>Don't forget to <a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">backup</a> +before upgrade!</p> +<p><strong>WARNING:</strong> <tt class="docutils literal">kiwitcms/kiwi:latest</tt> and <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> 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:</p> +<pre class="literal-block"> +# starting from an older Kiwi TCMS version +docker-compose down +docker pull kiwitcms/kiwi:&lt;next_upgrade_version&gt; +edit docker-compose.yml to use kiwitcms/kiwi:&lt;next_upgrade_version&gt; +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +# repeat until you have reached latest +</pre> +</div> +<div class="section" id="subscription-based-online-service"> +<h2>Subscription based online service</h2> +<p>We are planning to convert +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a> into +a subscription based service for people who don't want to bother installing +Kiwi TCMS on their own systems and just want to use it for test collaboration +with their team.</p> +<p>The income from this service will go towards covering operating costs and +supporting the +<a class="reference external" href="/team/">development team</a>. Watch this +blog for further announcements about this. Meanwhile you may share your +thoughts via +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/515">Issue #515</a>.</p> +</div> +<div class="section" id="plans-to-remove-deprecated-functionality"> +<h2>Plans to remove deprecated functionality</h2> +<p><tt class="docutils literal">TestRun.product_version</tt> will be removed from the database schema in favor of +<tt class="docutils literal">TestRun.plan.product_version</tt>! With the latest web interface it is not possible +to select a product version different than the one selected in the Test Plan. +Test runs should only be able to select product builds (after +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/246">Issue #246</a> is fixed).</p> +</div> +Kiwi TCMS 6.1.12018-10-29T16:00:00+02:002018-10-29T16:00:00+02:00Kiwi TCMS Teamtag:None,2018-10-29:/blog/kiwi-tcms-team/2018/10/29/kiwi-tcms-611/<p>We're happy to announce Kiwi TCMS version 6.1.1! This release +squashes database migrations and removes +older migrations that have been squashed in previous releases, a few +improvements and bug fixes. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>.</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5 …</pre><p>We're happy to announce Kiwi TCMS version 6.1.1! This release +squashes database migrations and removes +older migrations that have been squashed in previous releases, a few +improvements and bug fixes. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>.</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +</pre> +<p>Docker images:</p> +<pre class="literal-block"> +kiwitcms/kiwi latest 49fa42ddfe4d 955.7 MB +kiwitcms/kiwi 6.1.1 49fa42ddfe4d 955.7 MB +kiwitcms/kiwi 6.1 b559123d25b0 970.2 MB +kiwitcms/kiwi 6.0.1 87b24d94197d 970.1 MB +kiwitcms/kiwi 5.3.1 a420465852be 976.8 MB +</pre> +<div class="section" id="changes-since-kiwi-tcms-6-1"> +<h2>Changes since Kiwi TCMS 6.1</h2> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Dashboard will now show TestRuns which have test cases assigned to current +user. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/520">Issue #520</a></li> +<li>API method <tt class="docutils literal">TestRun.add_case()</tt> now returns a serialized TestCaseRun object. +Previously this method returned None</li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Don't show disabled Priority records in UI. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/334">Issue #334</a></li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +</ul> +</div> +<div class="section" id="refactoring"> +<h3>Refactoring</h3> +<ul class="simple"> +<li>Fix some pylint errors (Ivaylo Ivanov)</li> +</ul> +</div> +<div class="section" id="database"> +<h3>Database</h3> +<ul class="simple"> +<li>Remove old squashed migrations for <tt class="docutils literal">management</tt>, <tt class="docutils literal">testplans</tt>, +<tt class="docutils literal">testcases</tt> and <tt class="docutils literal">testruns</tt> apps</li> +<li>Squash the remaining migrations for <tt class="docutils literal">management</tt>, <tt class="docutils literal">testplans</tt>, +<tt class="docutils literal">testcases</tt> and <tt class="docutils literal">testruns</tt> apps</li> +</ul> +</div> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p>If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +cd Kiwi/ +git pull +docker-compose down +docker pull kiwitcms/kiwi +docker pull centos/mariadb +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +</pre> +<p>Don't forget to <a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">backup</a> +before upgrade!</p> +</div> +<div class="section" id="subscription-based-online-service"> +<h2>Subscription based online service</h2> +<p>We are planning to convert +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a> into +a subscription based service for people who don't want to bother installing +Kiwi TCMS on their own systems and just want to use it for test collaboration +with their team.</p> +<p>The income from this service will go towards covering operating costs and +supporting the +<a class="reference external" href="/team/">development team</a>. Watch this +blog for further announcements about this. Meanwhile you may share your +thoughts via +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/515">Issue #515</a>.</p> +</div> +<div class="section" id="plans-to-remove-deprecated-functionality"> +<h2>Plans to remove deprecated functionality</h2> +<p><tt class="docutils literal">TestRun.product_version</tt> will be removed from the database schema in favor of +<tt class="docutils literal">TestRun.plan.product_version</tt>! With the latest web interface it is not possible +to select a product version different than the one selected in the Test Plan. +Test runs should only be able to select product builds (after +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/246">Issue #246</a> is fixed).</p> +</div> +Kiwi TCMS 6.1.12018-10-29T16:00:00+02:002018-10-29T16:00:00+02:00Kiwi TCMS Teamtag:None,2018-10-29:/blog/kiwi-tcms-team/2018/10/29/kiwi-tcms-611/<p>We're happy to announce Kiwi TCMS version 6.1.1! This release +squashes database migrations and removes +older migrations that have been squashed in previous releases, a few +improvements and bug fixes. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>.</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5 …</pre><p>We're happy to announce Kiwi TCMS version 6.1.1! This release +squashes database migrations and removes +older migrations that have been squashed in previous releases, a few +improvements and bug fixes. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>.</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +</pre> +<p>Docker images:</p> +<pre class="literal-block"> +kiwitcms/kiwi latest 49fa42ddfe4d 955.7 MB +kiwitcms/kiwi 6.1.1 49fa42ddfe4d 955.7 MB +kiwitcms/kiwi 6.1 b559123d25b0 970.2 MB +kiwitcms/kiwi 6.0.1 87b24d94197d 970.1 MB +kiwitcms/kiwi 5.3.1 a420465852be 976.8 MB +</pre> +<div class="section" id="changes-since-kiwi-tcms-6-1"> +<h2>Changes since Kiwi TCMS 6.1</h2> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Dashboard will now show TestRuns which have test cases assigned to current +user. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/520">Issue #520</a></li> +<li>API method <tt class="docutils literal">TestRun.add_case()</tt> now returns a serialized TestCaseRun object. +Previously this method returned None</li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Don't show disabled Priority records in UI. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/334">Issue #334</a></li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +</ul> +</div> +<div class="section" id="refactoring"> +<h3>Refactoring</h3> +<ul class="simple"> +<li>Fix some pylint errors (Ivaylo Ivanov)</li> +</ul> +</div> +<div class="section" id="database"> +<h3>Database</h3> +<ul class="simple"> +<li>Remove old squashed migrations for <tt class="docutils literal">management</tt>, <tt class="docutils literal">testplans</tt>, +<tt class="docutils literal">testcases</tt> and <tt class="docutils literal">testruns</tt> apps</li> +<li>Squash the remaining migrations for <tt class="docutils literal">management</tt>, <tt class="docutils literal">testplans</tt>, +<tt class="docutils literal">testcases</tt> and <tt class="docutils literal">testruns</tt> apps</li> +</ul> +</div> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p>If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +cd Kiwi/ +git pull +docker-compose down +docker pull kiwitcms/kiwi +docker pull centos/mariadb +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +</pre> +<p>Don't forget to <a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">backup</a> +before upgrade!</p> +</div> +<div class="section" id="subscription-based-online-service"> +<h2>Subscription based online service</h2> +<p>We are planning to convert +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a> into +a subscription based service for people who don't want to bother installing +Kiwi TCMS on their own systems and just want to use it for test collaboration +with their team.</p> +<p>The income from this service will go towards covering operating costs and +supporting the +<a class="reference external" href="/team/">development team</a>. Watch this +blog for further announcements about this. Meanwhile you may share your +thoughts via +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/515">Issue #515</a>.</p> +</div> +<div class="section" id="plans-to-remove-deprecated-functionality"> +<h2>Plans to remove deprecated functionality</h2> +<p><tt class="docutils literal">TestRun.product_version</tt> will be removed from the database schema in favor of +<tt class="docutils literal">TestRun.plan.product_version</tt>! With the latest web interface it is not possible +to select a product version different than the one selected in the Test Plan. +Test runs should only be able to select product builds (after +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/246">Issue #246</a> is fixed).</p> +</div> +Kiwi TCMS API performance baseline2018-10-26T16:47:00+03:002018-10-26T16:47:00+03:00Alexander Todorovtag:None,2018-10-26:/blog/atodorov/2018/10/26/kiwi-tcms-api-performance-baseline/<p>A friend from Red Hat sent me an email asking about Kiwi TCMS performance so I did +an experiment to establish a baseline. +For API requests I got <strong>7.5 req/sec or 130 msec/req</strong> which is +1.5x <a href="https://blog.github.com/2012-09-05-how-we-keep-github-fast/">slower than GitHub</a>!</p> +<p>I used <code>perf-script</code> +(<a href="https://github.com/kiwitcms/api-scripts/blob/master/perf-script">see here</a>) +to measure …</p><p>A friend from Red Hat sent me an email asking about Kiwi TCMS performance so I did +an experiment to establish a baseline. +For API requests I got <strong>7.5 req/sec or 130 msec/req</strong> which is +1.5x <a href="https://blog.github.com/2012-09-05-how-we-keep-github-fast/">slower than GitHub</a>!</p> +<p>I used <code>perf-script</code> +(<a href="https://github.com/kiwitcms/api-scripts/blob/master/perf-script">see here</a>) +to measure that. The script takes the first 250 test cases from our test suite +and on every execution creates a new TestPlan (1 API request), then creates +new test cases (250 requests), adds cases to test plan (250 requests), +creates new product build (1 API request), creates new TestRun (1 API request), +adds test cases to test run (250 requests) and finally updates the statuses +(250 requests).</p> +<p>A total of 1003 API requests are sent to Kiwi TCMS every time you start this script! +An example is available at <a href="https://public.tenant.kiwitcms.org/run/567/">TR #567</a>!</p> +<p>On localhost, running the development server (<code>./manage.py runserver</code>) with an +SQLite database I got:</p> +<div class="highlight"><pre><span></span><code>$ <span class="nb">time</span> python perf-script + +real 2m6.450s +user 0m1.069s +sys 0m0.331s + +$ <span class="nb">time</span> python perf-script + +real 2m7.472s +user 0m1.057s +sys 0m0.342s + +$ <span class="nb">time</span> python perf-script + +real 2m9.368s +user 0m1.072s +sys 0m0.351s + +$ <span class="nb">time</span> python perf-script + +real 2m9.197s +user 0m1.050s +sys 0m0.353s +</code></pre></div> + + +<p>This measures at 120 msec/req or 7.85 req/sec!</p> +<p><a href="https://public.tenant.kiwitcms.org/login/github-app/">public.tenant.kiwitcms.org</a> is running on an +<a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html#burstable-performance-instances-hardware">AWS t2.micro</a> +instance (via docker-compose) with the default <code>centos/mariadb</code> image! +No extra settings or changes. I used the same computer over a WiFi +connection and a pretty standard home-speed Internet connection. Times are:</p> +<div class="highlight"><pre><span></span><code>$ <span class="nb">time</span> python perf-script + +real 2m18.983s +user 0m1.175s +sys 0m0.095s + +$ <span class="nb">time</span> python perf-script + +real 2m25.937s +user 0m1.156s +sys 0m0.108s + +$ <span class="nb">time</span> python perf-script + +real 2m24.120s +user 0m1.102s +sys 0m0.098s + +$ <span class="nb">time</span> python perf-script + +real 2m21.521s +user 0m1.154s +sys 0m0.091s +</code></pre></div> + + +<p>This measures at 140 sec/req or 7.05 req/sec!</p> +<p>Note: since I am using Python 3.6 I had to modify the file +<code>/opt/rh/rh-python36/root/lib64/python3.6/ssl.py</code> to read:</p> +<div class="highlight"><pre><span></span><code><span class="c1"># Used by http.client if no context is explicitly passed.</span> +<span class="n">_create_default_https_context</span> <span class="o">=</span> <span class="n">_create_unverified_context</span> <span class="c1"># this disables HTTPS cert validation</span> +</code></pre></div> + + +<p>The issue has been reported in +<a href="https://bugzilla.redhat.com/show_bug.cgi?id=1643454">RHBZ #1643454</a></p> +<p>Happy testing!</p>Kiwi TCMS 6.12018-10-20T14:40:00+03:002018-10-20T14:40:00+03:00Kiwi TCMS Teamtag:None,2018-10-20:/blog/kiwi-tcms-team/2018/10/20/kiwi-tcms-61/<p>We're happy to announce Kiwi TCMS version 6.1! This release +introduces new database migrations, +internal updates and bug fixes. It is a small release designed +to minimize the number of database migrations by squashing them together. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>.</p> +<p><strong>NOTE:</strong> there is …</p><p>We're happy to announce Kiwi TCMS version 6.1! This release +introduces new database migrations, +internal updates and bug fixes. It is a small release designed +to minimize the number of database migrations by squashing them together. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>.</p> +<p><strong>NOTE:</strong> there is the 6.0.1 release which resolves an upgrade problem +caused by non-applied migrations which have been later squashed and +released in the same release! It is best to jump through the intermediate +releases to ensure a smooth upgrade!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +</pre> +<p>Docker images:</p> +<pre class="literal-block"> +kiwitcms/kiwi latest b559123d25b0 970.2 MB +kiwitcms/kiwi 6.1 b559123d25b0 970.2 MB +kiwitcms/kiwi 6.0.1 87b24d94197d 970.1 MB +kiwitcms/kiwi 5.3.1 a420465852be 976.8 MB +</pre> +<div class="section" id="changes-since-kiwi-tcms-6-0"> +<h2>Changes since Kiwi TCMS 6.0</h2> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update <a class="reference external" href="https://github.com/pycontribs/jira">Jira from 1.0.10 to 2.0.0</a></li> +<li>Update to <a class="reference external" href="https://github.com/patternfly/patternfly/releases">Patternfly 3.55.0</a></li> +<li>Use button instead of HTML link for deleting test plan (Oleg Kainov)</li> +<li>New middleware that will check missing settings. At the moment will only +check Base URL configuration which often gets forgotten!</li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Hot-fix for error caused by the API method <tt class="docutils literal">TestRun.update</tt>. Error was +initially reported on +<a class="reference external" href="https://stackoverflow.com/questions/52865463/">StackOverflow</a>. +This patch makes it possible to use the API without crashing however the +<tt class="docutils literal">TestRun.update</tt> method doesn't handle the <tt class="docutils literal">stop_date</tt> field at the moment!</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/de#">German translation</a></li> +<li>Updated translation source strings</li> +</ul> +</div> +<div class="section" id="refactoring"> +<h3>Refactoring</h3> +<ul class="simple"> +<li>Fix pylint errors (Ivaylo Ivanov)</li> +<li>Remove unused <tt class="docutils literal">TestRun.list</tt> and <tt class="docutils literal">TestCase.list_confirmed</tt> methods</li> +<li>Remove unused <tt class="docutils literal">plan_by_id_or_name()</tt> and <tt class="docutils literal">is_int()</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/269">Issue #269</a></li> +</ul> +</div> +<div class="section" id="database"> +<h3>Database</h3> +<ul class="simple"> +<li>Rename <tt class="docutils literal">tcms.core.contrib.auth</tt> to <tt class="docutils literal">tcms.kiwi_auth</tt></li> +<li>Remove field <tt class="docutils literal">user</tt> from <tt class="docutils literal">TestCaseTag</tt>, <tt class="docutils literal">TestRunTag</tt> and <tt class="docutils literal">TestPlanTag</tt> +models</li> +<li>Squash migrations for <tt class="docutils literal">management</tt> app</li> +<li>Squash migrations for <tt class="docutils literal">testcases</tt> app</li> +<li>Squash migrations for <tt class="docutils literal">testplans</tt> app</li> +<li>Squash migrations for <tt class="docutils literal">testruns</tt> app</li> +</ul> +</div> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p>If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +cd Kiwi/ +git pull +docker-compose down +docker pull kiwitcms/kiwi +docker pull centos/mariadb +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +</pre> +<p>Don't forget to <a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">backup</a> +before upgrade!</p> +</div> +<div class="section" id="subscription-based-online-service"> +<h2>Subscription based online service</h2> +<p>We are planning to convert +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a> into +a subscription based service for people who don't want to bother installing +Kiwi TCMS on their own systems and just want to use it for test collaboration +with their team.</p> +<p>The income from this service will go towards covering operating costs and +supporting the +<a class="reference external" href="/team/">development team</a>. Watch this +blog for further announcements about this. Meanwhile you may share your +thoughts via +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/515">Issue #515</a>.</p> +</div> +<div class="section" id="plans-to-remove-deprecated-functionality"> +<h2>Plans to remove deprecated functionality</h2> +<p><tt class="docutils literal">TestRun.product_version</tt> will be removed from the database schema in favor of +<tt class="docutils literal">TestRun.plan.product_version</tt>! With the latest web interface it is not possible +to select a product version different than the one selected in the Test Plan. +Test runs should only be able to select product builds (after +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/246">Issue #246</a> is fixed).</p> +</div> +Kiwi TCMS team updates2018-10-12T11:10:00+03:002018-10-12T11:10:00+03:00Alexander Todorovtag:None,2018-10-12:/blog/atodorov/2018/10/12/kiwi-tcms-team-updates/<p>I am happy to announce that <a href="/team/">our team</a> is steadily growing! +As we work through our <a href="/blog/kiwi-tcms-team/2018/01/22/kiwi-tcms-roadmap-for-2018/">roadmap</a>, +<a href="/blog/atodorov/2018/07/25/mid-year-roadmap-status-report/">status update here</a>, and +on-board new team members I start to feel the need for a bit more structure +and organization behind the scenes. I also wish for consistent contributions +to the project …</p><p>I am happy to announce that <a href="/team/">our team</a> is steadily growing! +As we work through our <a href="/blog/kiwi-tcms-team/2018/01/22/kiwi-tcms-roadmap-for-2018/">roadmap</a>, +<a href="/blog/atodorov/2018/07/25/mid-year-roadmap-status-report/">status update here</a>, and +on-board new team members I start to feel the need for a bit more structure +and organization behind the scenes. I also wish for consistent contributions +to the project (commit early, commit often) so I can better estimate the resources +that we have!</p> +<p>I am also actively discussing Kiwi TCMS with lots of people at various conferences +and generate many ideas for the future. The latest SEETEST in Belgrade was particularly +fruitful. Some of these ideas are pulling into different directions and I need help +to keep them under control!</p> +<p>Development-wise sometimes I lose track of what's going on and who's doing what between +working on Kiwi TCMS, preparing for conferences and venues to promote the project, +doing code review of other team members, trying not to forget to check-in on +progress (especially by interns), recruiting fresh blood and thinking about +the overall future of the project. Our user base is growing and there are days +where I feel like everything is happening at once or that something +needs to be implemented ASAP (which is usually true anyway)!</p> +<p><img class="rounded" src="/images/team/rstankova.jpg"></p> +<p>Meet Rayna Stankova in the role of our team coach! +Reny is a director for Women Who Code Sofia, senior QA engineer at VMware, +mentor with CoderDojo Bulgaria and a long-time friend of mine. +Although she is an experienced QA in her own right she will be contributing +to the people side of Kiwi TCMS and less so technically!</p> +<p>Her working areas will be planning and organization:</p> +<ul> +<li>help us (re)define the project vision and goals</li> +<li>work with us on roadmaps and action plans so we can meet + the project goals faster</li> +<li>help us (self) organize so that we are more efficient, + including checking progress and blockers (aka enforcer) and + meet the aforementioned consistency point</li> +<li>serve as our professional coach, motivator and somebody who will + take care of team health (yes I really suck at motivating others)</li> +</ul> +<p>and generally serving as another very experienced member of the team!</p> +<p>We did a quick brainstorming yesterday and started to produce results +(#smileyface)! We do have a team docs space to share information +(non-public for now, will open it gradually as we grow) and came up +with the idea to use Kiwi TCMS as a check-list for our on-boarding/internship +process!</p> +<p>I don't know how it will play out but I do expect from the +team to self-improve, be inspired, become more focused and more productive! +<strong>All of this also applies to myself, even more so!</strong></p> +<h2>Existing team members progress</h2> +<p>Last year we started with 2 existing team members (Tony and myself) and 3 +new interns (Ivo, Kaloyan and Tseko) who built this website!</p> +<p>Tony is the #4 contributor to Kiwi TCMS in +terms of <a href="https://github.com/kiwitcms/Kiwi/graphs/contributors">number of commits</a> +and is on track to surpass one of the original authors (before Kiwi TCMS was forked)! +He's been working mostly on internal refactoring and resolving the thousands +of pylint errors that we had (down to around 500 I think). This summer Tony and I +visited the OSCAL conference in Tirana and hosted an info booth for the project.</p> +<p>Ivo is the #5 contributor in terms of numbers of commits. He did learn very +quickly and is working on getting rid of the remaining pylint errors. His ability +to adapt and learn is quite impressive actually. Last month he co-hosted a +git workshop at HackConf, a 1000+ people IT event in Sofia.</p> +<p>Kaloyan did most of the work on our website initially (IIRC). +Now he is studying in the Netherlands +and not active on the project. We are working to reboot his on-boarding +and I'm hoping he will find the time to contribute to Kiwi TCMS regularly.</p> +<p>From the starting team only Tseko decided to move on to other ventures after +he contributed to the website.</p> +<h2>Internship program</h2> +<p>At Kiwi TCMS we have a set of training +programs that teach all the necessary technical skills before we let anyone +actively work on the project, let alone become a team member.</p> +<p>Our new interns are Denitsa Uzunova and Desislava Koleva. Both of them are +coming from Vratsa Software Community and were mentors at the recently held +CodeWeek hackathon in their home city! I wish them fast learning and good luck!</p> +<p>Happy testing!</p>Kiwi TCMS winter conference presence2018-10-11T11:53:00+03:002018-10-11T11:53:00+03:00Kiwi TCMS Teamtag:None,2018-10-11:/blog/kiwi-tcms-team/2018/10/11/kiwi-tcms-winter-conference-presence/<p>We are happy to announce that <a href="http://www.openfest.org">OpenFest</a> - the biggest +open source conference in Bulgaria has provided an info booth for our project. +This year the event will be held on 3rd and 4th of November at Sofia Tech Park!</p> +<p>Last time the team went to a conference together we had …</p><p>We are happy to announce that <a href="http://www.openfest.org">OpenFest</a> - the biggest +open source conference in Bulgaria has provided an info booth for our project. +This year the event will be held on 3rd and 4th of November at Sofia Tech Park!</p> +<p>Last time the team went to a conference together we had a lot of fun! Join us +at OpenFest to learn more about Kiwi TCMS and have fun with us!</p> +<blockquote class="twitter-tweet" data-lang="en"> +<p lang="en" dir="ltr"> + <a href="https://twitter.com/hashtag/KiwiTCMS?src=hash&amp;ref_src=twsrc%5Etfw">#KiwiTCMS</a> + is at <a href="https://twitter.com/hashtag/hackconf?src=hash&amp;ref_src=twsrc%5Etfw">#hackconf</a> + <a href="https://twitter.com/hashtag/HC18?src=hash&amp;ref_src=twsrc%5Etfw">#HC18</a>. + Find <a href="https://twitter.com/atodorov_?ref_src=twsrc%5Etfw">@atodorov_</a> and + <a href="https://twitter.com/ivo0926?ref_src=twsrc%5Etfw">@ivo0926</a> if you want to talk + <a href="https://twitter.com/hashtag/opensource?src=hash&amp;ref_src=twsrc%5Etfw">#opensource</a> + <a href="https://twitter.com/hashtag/test?src=hash&amp;ref_src=twsrc%5Etfw">#test</a> case management! + <a href="https://t.co/ioRCnds7jY">pic.twitter.com/ioRCnds7jY</a></p>&mdash; Kiwi TCMS (@KiwiTcms) + <a href="https://twitter.com/KiwiTcms/status/1040938917401378816?ref_src=twsrc%5Etfw">September 15, 2018</a> +</p> +</blockquote> + +<blockquote class="twitter-tweet" data-lang="en"> +<p lang="en" dir="ltr"> + <a href="https://twitter.com/KiwiTcms?ref_src=twsrc%5Etfw">@KiwiTcms</a> at + <a href="https://twitter.com/HackConf_?ref_src=twsrc%5Etfw">@HackConf_</a> + day 2. Find me or <a href="https://twitter.com/atodorov_?ref_src=twsrc%5Etfw">@atodorov_</a> + if you want to talk about open source test case management system + <a href="https://twitter.com/hashtag/opensource?src=hash&amp;ref_src=twsrc%5Etfw">#opensource</a> + <a href="https://twitter.com/hashtag/tcms?src=hash&amp;ref_src=twsrc%5Etfw">#tcms</a> + <a href="https://twitter.com/hashtag/kiwitcms?src=hash&amp;ref_src=twsrc%5Etfw">#kiwitcms</a> + <a href="https://t.co/OGsj0Z9Dww">pic.twitter.com/OGsj0Z9Dww</a></p>&mdash; Anton Sankov (@a_sankov) + <a href="https://twitter.com/a_sankov/status/1041260417669124097?ref_src=twsrc%5Etfw">September 16, 2018</a> +</p> +</blockquote> + +<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> + +<p>In case you are unable to visit Sofia, which you totally should, you can catch up with +us in Russia until the end of the year:</p> +<ul> +<li><a href="https://piterpy.com/materials/2440">PiterPy, 2nd-3rd November, St. Petersburg</a> - + where Alex Todorov will talk about pylint plugins and how we use them inside + Kiwi TCMS</li> +<li><a href="https://heisenbug-moscow.ru/2018/msk/talks/3vjkn0micguu6sqgu2kkyu/">Heisenbug, 6th-7th December, Moscow</a> - + where Alex will talk about tools and methods that we use to make Kiwi TCMS more + secure</li> +</ul> +<p>Feel free to ping us at <a href="https://twitter.com/KiwiTCMS">@KiwiTCMS</a> or look for the +kiwi bird logo and come to say hi. Happy testing!</p>Kiwi TCMS 6.02018-10-04T12:45:00+03:002018-10-04T12:45:00+03:00Kiwi TCMS Teamtag:None,2018-10-04:/blog/kiwi-tcms-team/2018/10/04/kiwi-tcms-60/<p>We're happy to announce Kiwi TCMS version 6.0! This release +introduces new database migrations, removal of +environment properties in favor of tags, internal updates and bug fixes. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>.</p> +<p>This release removes squashed migrations. Direct upgrades from versions +&lt; 5.3.1 …</p><p>We're happy to announce Kiwi TCMS version 6.0! This release +introduces new database migrations, removal of +environment properties in favor of tags, internal updates and bug fixes. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>.</p> +<p>This release removes squashed migrations. Direct upgrades from versions +&lt; 5.3.1 to 6.0 will break without an intermediate upgrade to 5.3.1!</p> +<p>Docker images:</p> +<pre class="literal-block"> +kiwitcms/kiwi latest cd087297f349 991.3 MB +</pre> +<div class="section" id="changes-since-kiwi-tcms-5-3-1"> +<h2>Changes since Kiwi TCMS 5.3.1</h2> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update to <a class="reference external" href="https://docs.djangoproject.com/en/2.1/releases/2.1.2/">Django 2.1.2</a> +due to high severity security issue</li> +<li>Update to <a class="reference external" href="https://github.com/patternfly/patternfly/releases">Patternfly 3.54.8</a></li> +<li><tt class="docutils literal">Tag</tt> objects are now shown in Admin panel</li> +<li>Add autocomplete when adding tags to <tt class="docutils literal">TestRun</tt> via UI</li> +</ul> +</div> +<div class="section" id="removed-functionality"> +<h3>Removed functionality</h3> +<ul class="simple"> +<li>TestCase new and edit views no longer allow editing of tags. Tags can be +added/removed from the Tags tab which also makes sure to properly account +for permissions</li> +<li>Remove <tt class="docutils literal">EnvGroup</tt>, <tt class="docutils literal">EnvProperty</tt> and <tt class="docutils literal">EnvValue</tt> models in favor of tags. +Existing values and properties are converted into tags and automatically added +to test runs!</li> +<li>Convert squashed database migrations to regular ones and remove older migrations. +<strong>WARNING:</strong> upgrade from versions &lt;= 5.3.1 to 6.0 will break without an intermediate +upgrade to <tt class="docutils literal">kiwitcms/kiwi:5.3.1 a420465852be</tt>.</li> +<li>Remove deprecated <tt class="docutils literal">TestCase.estimated_time</tt> and <tt class="docutils literal">TestRun.estimated_time</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/514">Issue #514</a></li> +</ul> +</div> +</div> +<div class="section" id="backend-api"> +<h2>Backend API</h2> +<ul class="simple"> +<li>No longer use <tt class="docutils literal">product_version</tt> for <tt class="docutils literal">TestRun.create</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/522">Issue #522</a><ul> +<li>'product' is no longer required</li> +<li>'product_version' is no longer required</li> +<li>'manager' and 'default_tester' can be usernames or IDs</li> +</ul> +</li> +<li><tt class="docutils literal">TestCase.create</tt> no longer accepts 'tag' values</li> +<li><tt class="docutils literal">TestRun.add_tag</tt> and <tt class="docutils literal">TestRun.remove_tag</tt> now return list of tags. +Previously these methods returned <tt class="docutils literal">None</tt>! +This is the list of tags assigned to the TestRun that is being modified!</li> +</ul> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Fix mismatched HTML tag in <tt class="docutils literal">plan/get.html</tt> template (Oleg Kainov)</li> +<li>Don't use <tt class="docutils literal">|slugify</tt> filter in templates which breaks HTML links with non-ASCII +TestPlan names. Fixes +<a class="reference external" href="https://sentry.io/open-technologies-bulgaria-ltd/kiwi-tcms/issues/676626096/">Sentry KIWI-TCMS-38</a></li> +</ul> +</div> +<div class="section" id="refactoring"> +<h3>Refactoring</h3> +<ul class="simple"> +<li>Fix pylint errors (Ivaylo Ivanov, Anton Sankov)</li> +<li>Use existing JSON-RPC methods to add/remove tags via webUI and remove specialized +backend methods that handled these requests. Also make sure to obey respective +permissions</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +</ul> +</div> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p>If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +cd Kiwi/ +git pull +docker-compose down +docker pull kiwitcms/kiwi +docker pull centos/mariadb +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +</pre> +<p>Don't forget to <a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">backup</a> +before upgrade!</p> +</div> +<div class="section" id="subscription-based-online-service"> +<h2>Subscription based online service</h2> +<p>We are planning to convert +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a> into +a subscription based service for people who don't want to bother installing +Kiwi TCMS on their own systems and just want to use it for test collaboration +with their team.</p> +<p>The income from this service will go towards covering operating costs and +supporting the +<a class="reference external" href="https://github.com/orgs/kiwitcms/people">development team</a>. Watch this +blog for further announcements about this. Meanwhile you may share your +thoughts via +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/515">Issue #515</a>.</p> +</div> +<div class="section" id="plans-to-remove-deprecated-functionality"> +<h2>Plans to remove deprecated functionality</h2> +<p><tt class="docutils literal">TestRun.product_version</tt> will be removed from the database schema in favor of +<tt class="docutils literal">TestRun.plan.product_version</tt>! With the latest web interface it is not possible +to select a product version different than the one selected in the Test Plan. +Test runs should only be able to select product builds (after +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/246">Issue #246</a> is fixed).</p> +</div> +Happy birthday Kiwi TCMS2018-09-13T13:50:00+03:002018-09-13T13:50:00+03:00Kiwi TCMS Teamtag:None,2018-09-13:/blog/kiwi-tcms-team/2018/09/13/happy-birthday-kiwi-tcms/<p><img alt="1 year infographic" src="/images/1year_infographic.png" title="1 year infographic"></p>How to add API logging for Kiwi TCMS2018-09-07T22:00:00+03:002018-09-07T22:00:00+03:00Alexander Todorovtag:None,2018-09-07:/blog/atodorov/2018/09/07/how-to-add-api-logging-for-kiwi-tcms/<p>In this blog post I will show more ways to customize Kiwi TCMS by adding +logging capabilities to the API backend. Indeed this is a feature that +our team deemed not required for upstream and was removed in +<a href="https://github.com/kiwitcms/Kiwi/pull/436">PR #436</a>.</p> +<p>Start by creating the following directory structure:</p> +<div class="highlight"><pre><span></span><code> api_logging/ + __init__.py …</code></pre></div><p>In this blog post I will show more ways to customize Kiwi TCMS by adding +logging capabilities to the API backend. Indeed this is a feature that +our team deemed not required for upstream and was removed in +<a href="https://github.com/kiwitcms/Kiwi/pull/436">PR #436</a>.</p> +<p>Start by creating the following directory structure:</p> +<div class="highlight"><pre><span></span><code> api_logging/ + __init__.py + handlers.py + models.py +</code></pre></div> + + +<p>This is a small Django application that will log every call to the API backend. +Each file looks like this:</p> +<div class="highlight"><pre><span></span><code> <span class="c1"># models.py contains DB schema for your new table</span> + <span class="kn">from</span> <span class="nn">django.db</span> <span class="kn">import</span> <span class="n">models</span> + <span class="kn">from</span> <span class="nn">django.conf</span> <span class="kn">import</span> <span class="n">settings</span> + + <span class="k">class</span> <span class="nc">ApiCallLog</span><span class="p">(</span><span class="n">models</span><span class="o">.</span><span class="n">Model</span><span class="p">):</span> + <span class="n">executed_at</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">DateTimeField</span><span class="p">(</span><span class="n">auto_now_add</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + <span class="n">user</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">ForeignKey</span><span class="p">(</span><span class="n">settings</span><span class="o">.</span><span class="n">AUTH_USER_MODEL</span><span class="p">,</span> <span class="n">null</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">blank</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> + <span class="n">on_delete</span><span class="o">=</span><span class="n">models</span><span class="o">.</span><span class="n">CASCADE</span><span class="p">)</span> + <span class="n">method</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">CharField</span><span class="p">(</span><span class="n">max_length</span><span class="o">=</span><span class="mi">255</span><span class="p">)</span> + <span class="n">args</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">TextField</span><span class="p">(</span><span class="n">blank</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + + <span class="k">def</span> <span class="fm">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="k">return</span> <span class="s2">&quot;</span><span class="si">%s</span><span class="s2">: </span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">user</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">method</span><span class="p">)</span> +</code></pre></div> + + +<p>Then</p> +<div class="highlight"><pre><span></span><code> <span class="c1"># handlers.py overrides the RPC handlers coming from django-modernrpc</span> + <span class="kn">from</span> <span class="nn">modernrpc</span> <span class="kn">import</span> <span class="n">handlers</span> + + <span class="kn">from</span> <span class="nn">django.conf</span> <span class="kn">import</span> <span class="n">settings</span> + <span class="kn">from</span> <span class="nn">django.contrib.auth</span> <span class="kn">import</span> <span class="n">get_user_model</span> + + <span class="kn">from</span> <span class="nn">.models</span> <span class="kn">import</span> <span class="n">ApiCallLog</span> + + <span class="k">def</span> <span class="nf">log_call</span><span class="p">(</span><span class="n">request</span><span class="p">,</span> <span class="n">method_name</span><span class="p">,</span> <span class="n">args</span><span class="p">):</span> + <span class="sd">&quot;&quot;&quot; Log an RPC call to the database or stdout in DEBUG mode. &quot;&quot;&quot;</span> + <span class="n">request_user</span> <span class="o">=</span> <span class="n">request</span><span class="o">.</span><span class="n">user</span> + <span class="k">if</span> <span class="ow">not</span> <span class="n">request_user</span><span class="o">.</span><span class="n">is_authenticated</span><span class="p">:</span> + <span class="c1"># create an anonymous user object for logging purposes</span> + <span class="n">request_user</span><span class="p">,</span> <span class="n">_</span> <span class="o">=</span> <span class="n">get_user_model</span><span class="p">()</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">get_or_create</span><span class="p">(</span> + <span class="n">username</span><span class="o">=</span><span class="s1">&#39;Anonymous&#39;</span><span class="p">,</span> + <span class="n">is_active</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> + + <span class="k">if</span> <span class="n">method_name</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> + <span class="n">method_name</span> <span class="o">=</span> <span class="s1">&#39;--- method_name missing ---&#39;</span> + + <span class="k">if</span> <span class="n">settings</span><span class="o">.</span><span class="n">DEBUG</span><span class="p">:</span> + <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;API call:: user: </span><span class="si">{0}</span><span class="s1">, method: </span><span class="si">{1}</span><span class="s1">, args: </span><span class="si">{2}</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span> + <span class="n">request_user</span><span class="p">,</span> + <span class="n">method_name</span><span class="p">,</span> + <span class="n">args</span><span class="p">))</span> + <span class="k">else</span><span class="p">:</span> + <span class="n">ApiCallLog</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">create</span><span class="p">(</span> + <span class="n">user</span><span class="o">=</span><span class="n">request_user</span><span class="p">,</span> + <span class="n">method</span><span class="o">=</span><span class="n">method_name</span><span class="p">,</span> + <span class="n">args</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="n">args</span><span class="p">))</span> + + <span class="k">class</span> <span class="nc">XMLRPCHandler</span><span class="p">(</span><span class="n">handlers</span><span class="o">.</span><span class="n">XMLRPCHandler</span><span class="p">):</span> + <span class="k">def</span> <span class="nf">process_request</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="n">encoding</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">request</span><span class="o">.</span><span class="n">encoding</span> <span class="ow">or</span> <span class="s1">&#39;utf-8&#39;</span> + <span class="n">data</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">request</span><span class="o">.</span><span class="n">body</span><span class="o">.</span><span class="n">decode</span><span class="p">(</span><span class="n">encoding</span><span class="p">)</span> + <span class="n">params</span><span class="p">,</span> <span class="n">method_name</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">loads</span><span class="p">(</span><span class="n">data</span><span class="p">)</span> + + <span class="n">log_call</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">request</span><span class="p">,</span> <span class="n">method_name</span><span class="p">,</span> <span class="n">params</span><span class="p">)</span> + <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">process_request</span><span class="p">()</span> + + <span class="k">class</span> <span class="nc">JSONRPCHandler</span><span class="p">(</span><span class="n">handlers</span><span class="o">.</span><span class="n">JSONRPCHandler</span><span class="p">):</span> + <span class="k">def</span> <span class="nf">process_single_request</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">payload</span><span class="p">):</span> + <span class="n">method_name</span> <span class="o">=</span> <span class="n">payload</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;method&#39;</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span> + <span class="n">params</span> <span class="o">=</span> <span class="n">payload</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;params&#39;</span><span class="p">)</span> + + <span class="n">log_call</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">request</span><span class="p">,</span> <span class="n">method_name</span><span class="p">,</span> <span class="n">params</span><span class="p">)</span> + <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">process_single_request</span><span class="p">(</span><span class="n">payload</span><span class="p">)</span> +</code></pre></div> + + +<p><strong>NOTE:</strong> +You will have to execute <code>./manage.py makemigrations api_logging</code> to create the +initial migration for Django. This could be easier if you place the above directory +into existing Django application or craft the migration file by hand!</p> +<p>The last thing you want to do is create a <code>local_settings.py</code> file which will override +Kiwi TCMS defaults:</p> +<div class="highlight"><pre><span></span><code> <span class="c1"># local_settings.py</span> + <span class="kn">from</span> <span class="nn">django.conf</span> <span class="kn">import</span> <span class="n">settings</span> + + <span class="n">settings</span><span class="o">.</span><span class="n">INSTALLED_APPS</span> <span class="o">+=</span> <span class="p">[</span> + <span class="s1">&#39;api_logging&#39;</span><span class="p">,</span> + <span class="p">]</span> + + <span class="n">MODERNRPC_HANDLERS</span> <span class="o">=</span> <span class="p">[</span><span class="s1">&#39;api_logging.handlers.XMLRPCHandler&#39;</span><span class="p">,</span> + <span class="s1">&#39;api_logging.handlers.JSONRPCHandler&#39;</span><span class="p">]</span> +</code></pre></div> + + +<p>Then place everything in <code>Dockerfile</code> like so:</p> +<div class="highlight"><pre><span></span><code> FROM kiwitcms/kiwi + + COPY ./api_logging/ /venv/lib64/python3.6/site-packages/api_logging/ + COPY local_settings.py /venv/lib64/python3.6/site-packages/tcms/settings/ +</code></pre></div> + + +<p>Kiwi TCMS will import your <code>local_settings.py</code> and enable the logging application. +Now build your customized Docker image and use it for deployment!</p> +<p>Happy testing!</p>Kiwi TCMS 5.3.12018-09-04T23:00:00+03:002018-09-04T23:00:00+03:00Kiwi TCMS Teamtag:None,2018-09-04:/blog/kiwi-tcms-team/2018/09/04/kiwi-tcms-531/<p>We're happy to announce Kiwi TCMS version 5.3.1! This release +brings lots of UI updates and removal of unused +and/or duplicated functionality and source code. Many pages have been redesigned +with the Patternfly library to have a modern look and feel which you can +experience at <a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https …</a></p><p>We're happy to announce Kiwi TCMS version 5.3.1! This release +brings lots of UI updates and removal of unused +and/or duplicated functionality and source code. Many pages have been redesigned +with the Patternfly library to have a modern look and feel which you can +experience at <a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>.</p> +<p>This will be the last release to carry around squashed migrations. In version +6.0 older migrations will be deleted and replaced with their squashed equivalents. +Upgrades from versions &lt; 5.3 to 6.0 will break without an intermediate upgrade to 5.3.1!</p> +<p>Use <tt class="docutils literal">kiwitcms/kiwi:5.3.1</tt> from Docker Hub when upgrading at some point in the future!</p> +<p>Docker images:</p> +<pre class="literal-block"> +kiwitcms/kiwi 5.3.1 a420465852be 976.8 MB +kiwitcms/kiwi latest a420465852be 976.8 MB +</pre> +<div class="section" id="changes-since-kiwi-tcms-5-2"> +<h2>Changes since Kiwi TCMS 5.2</h2> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update to <a class="reference external" href="https://docs.djangoproject.com/en/2.1/releases/2.1.1/">Django 2.1.1</a></li> +<li>Update Patternfly version. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/381">Issue #381</a></li> +<li>Replace TinyMCE with SimpleMDE markdown editor. Used for TestPlan text and +TestCase action, setup, breakdown, effect fields</li> +<li>Allow downstream builds to customize the login templates by +providing <tt class="docutils literal">registration/custom_login.html</tt> template. It can either +override the entire login page or provide additional information inside +the <tt class="docutils literal">custom_login</tt> block!</li> +</ul> +</div> +<div class="section" id="known-issues"> +<h3>Known issues</h3> +<ul class="simple"> +<li>You may need to strip existing texts from HTML tags that were generated by +TinyMCE. Either do this manually as you go along and use/edit records or in bulk via +the API and tools like <a class="reference external" href="https://pypi.org/project/html2text/">html2text</a>. +We strongly advise you to <a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">backup</a> +your database before attempting to automatically edit text fields!</li> +</ul> +</div> +<div class="section" id="visual-changes"> +<h3>Visual changes</h3> +<ul class="simple"> +<li>Remove breadcrumbs at the top of pages. Only admin pages still have them</li> +<li>Convert login and registration templates to Patternfly. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/211">Issue #211</a></li> +<li>Convert 404 and 500 templates to Patternfly</li> +<li>Convert dashboard page to Patternfly</li> +<li>Convert TestRun new, edit and clone pages to Patternfly. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/17">Issue #17</a></li> +<li>Convert Search Test Plans page to Patternfly</li> +<li>Convert Search Test Runs page to Patternfly</li> +<li>Convert Search Test Cases page to Patternfly</li> +<li>TestPlan view page, Runs tab now re-uses the search form for test runs +which is built using Patternfly</li> +<li>Added pagination controls to pages with search results</li> +</ul> +</div> +<div class="section" id="removed-functionality"> +<h3>Removed functionality</h3> +<ul class="simple"> +<li>When creating or editing TestRun<ul> +<li>field <tt class="docutils literal">estimated_time</tt> is scheduled for removal and is not shown</li> +<li><tt class="docutils literal">product_version</tt> is scheduled for removal in favor of +<tt class="docutils literal">TR.plan.product_version</tt></li> +<li>Product &amp; Version can't be edited anymore. Must be set on the parent +TestPlan instead. Still allows to specify builds</li> +</ul> +</li> +<li>Remove the ability to clone multiple TestPlans from search results</li> +<li>Remove the ability to upload TestPlan document files in favor of +the existing API</li> +<li>Remove TestCase export to XML in favor of existing API</li> +<li>Remove Advanced Search functionality. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/448">Issue #448</a>, +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/108">Issue #108</a></li> +<li>Remove tech preview feature: Django Report Builder</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/de#">German translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +<li>Marked more strings as translatable</li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Don't use <tt class="docutils literal">get_full_url()</tt> where not needed. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/380">Issue #380</a></li> +<li>Remove unused templates. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/114">Issue #114</a></li> +<li>Submit filter form when clicking on tag value. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/426">Issue #426</a></li> +<li>Update <tt class="docutils literal">TestCaseRun.tested_by</tt> when setting status. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/459">Issue #459</a></li> +<li>Add tests for <tt class="docutils literal">KiwiUserAdmin</tt>. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/489">Issue #489</a></li> +</ul> +</div> +<div class="section" id="settings"> +<h3>Settings</h3> +<ul class="simple"> +<li>The following settings have been removed <tt class="docutils literal">MOTD_LOGIN</tt>, <tt class="docutils literal">WELCOME_MESSAGE</tt> +and <tt class="docutils literal">TINYMCE_DEFAULT_CONFIG</tt></li> +</ul> +</div> +<div class="section" id="refactoring"> +<h3>Refactoring</h3> +<ul class="simple"> +<li>Fix pylint errors (Anton Sankov, Ivaylo Ivanov)</li> +<li>Remove lots of unused functions and classes</li> +<li>Remove old or unnecessary templates</li> +<li>Remove <tt class="docutils literal">html2text</tt> dependency</li> +<li>Remove unused CSS and vendored-in JavaScript libraries</li> +<li>Add JavaScript JSON-RPC client which is now used by the front-end to +communicate with the existing JSON-RPC API on the back-end. This +replaces many 'ajax' views which are only used to render the UI and were +duplicating functionality with existing API</li> +<li>Non <tt class="docutils literal">dist/</tt> files are no longer removed from <tt class="docutils literal">node_modules/</tt> when building +a docker image because packages like <tt class="docutils literal">moment.js</tt> and <tt class="docutils literal"><span class="pre">bootstrap-datetimepicker.js</span></tt> +don't ship their files in <tt class="docutils literal">dist/</tt></li> +<li>Convert TestPlans.TreeView to JSON RPC</li> +</ul> +</div> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p>If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +cd Kiwi/ +git pull +docker-compose down +docker pull kiwitcms/kiwi +docker pull centos/mariadb +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +</pre> +<p>Don't forget to <a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">backup</a> +before upgrade!</p> +</div> +<div class="section" id="ask-your-questions-on-stackoverflow"> +<h2>Ask your questions on StackOverflow</h2> +<p>Kiwi TCMS is now using the +<a class="reference external" href="https://stackoverflow.com/questions/tagged/kiwi-tcms">'kiwi-tcms'</a> +tag on StackOverflow to track questions. Please submit your support requests +and general questions to +<a class="reference external" href="https://stackoverflow.com/questions/tagged/kiwi-tcms">StackOverflow</a> tagged +with the 'kiwi-tcms' tag! Support requests via GitHub or email will not be answered +anymore (GitHub issues are for bugs or feature discussions only)!</p> +</div> +<div class="section" id="subscription-based-online-service"> +<h2>Subscription based online service</h2> +<p>We are planning to convert +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a> into +a subscription based service for people who don't want to bother installing +Kiwi TCMS on their own systems and just want to use it for test collaboration +with their team.</p> +<p>The income from this service will go towards covering operating costs and +supporting the +<a class="reference external" href="https://github.com/orgs/kiwitcms/people">development team</a>. Watch this +blog for further announcements about this. Meanwhile you may share your +thoughts via +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/515">Issue #515</a>.</p> +</div> +<div class="section" id="plans-to-remove-deprecated-functionality"> +<h2>Plans to remove deprecated functionality</h2> +<p><tt class="docutils literal">TestRun.product_version</tt> will be removed from the database schema in favor of +<tt class="docutils literal">TestRun.plan.product_version</tt>! With the latest web interface it is not possible +to select a product version different than the one selected in the Test Plan. +Test runs should only be able to select product builds (after +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/246">Issue #246</a> is fixed).</p> +<p><tt class="docutils literal">TestRun.estimated_time</tt> is scheduled for removal if not used. Objections +and use-cases must be shared via +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/514">Issue #514</a>.</p> +<p><tt class="docutils literal">EnvGroup</tt> and <tt class="docutils literal">EnvProperty</tt> models are scheduled for removal in favor +of <tt class="docutils literal">Tag</tt>. Internally tags are referenced in more places inside Kiwi TCMS' +source code and they appear to be more fully developed. On the other hand +while environment appears very similar to tags it is not exactly the same. +Ongoing discussion is happening via +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/484">Issue #484</a>.</p> +</div> +Kiwi TCMS 5.22018-08-07T22:45:00+03:002018-08-07T22:45:00+03:00Kiwi TCMS Teamtag:None,2018-08-07:/blog/kiwi-tcms-team/2018/08/07/kiwi-tcms-52/<p>We're happy to announce Kiwi TCMS version 5.2! This release +introduces new database migrations and converts +the Docker image to a non-root user with uid 1001. You may have to adjust +ownership/permissions on the <tt class="docutils literal">kiwi_uploads</tt> Docker volume!</p> +<p>The new <tt class="docutils literal">kiwitcms/kiwi:latest</tt> docker image has Image ID <tt class="docutils literal">6bc4e3124fd4 …</tt></p><p>We're happy to announce Kiwi TCMS version 5.2! This release +introduces new database migrations and converts +the Docker image to a non-root user with uid 1001. You may have to adjust +ownership/permissions on the <tt class="docutils literal">kiwi_uploads</tt> Docker volume!</p> +<p>The new <tt class="docutils literal">kiwitcms/kiwi:latest</tt> docker image has Image ID <tt class="docutils literal">6bc4e3124fd4</tt>. +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a> +has also been updated!</p> +<div class="section" id="changes-since-kiwi-tcms-5-1"> +<h2>Changes since Kiwi TCMS 5.1</h2> +<div class="section" id="enhancements"> +<h3>Enhancements</h3> +<ul class="simple"> +<li>Upgrade to <a class="reference external" href="https://docs.djangoproject.com/en/2.1/releases/2.1/">Django 2.1</a></li> +<li>Upgrade to <tt class="docutils literal"><span class="pre">django-report-builder</span> 6.2.2</tt>, compatible with Django 2.1</li> +<li>Docker image now executes with uid 1001 instead of root<ul> +<li>image based on <tt class="docutils literal">centos7</tt> image instead of <tt class="docutils literal">centos/httpd</tt></li> +<li>image now exposes ports 8080 and 8443</li> +<li>Apache logs now printed on Docker console</li> +<li>SSL certificates copied to <tt class="docutils literal">/Kiwi/ssl</tt> inside Docker image instead of being bind-mounted</li> +<li>uploads dir changed to <tt class="docutils literal">/Kiwi/uploads</tt></li> +<li>static dir changed to <tt class="docutils literal">/Kiwi/static</tt></li> +<li><tt class="docutils literal">/Kiwi</tt> is now owned by uid 1001</li> +<li><tt class="docutils literal">/venv</tt> is now owned by uid 1001</li> +<li><tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> is updated to match</li> +</ul> +</li> +<li>Fix pylint errors (Ivaylo Ivanov)</li> +<li>Allow users to see other profiles via Admin</li> +<li>Use password change form from Admin instead of custom one</li> +<li><tt class="docutils literal">product.py</tt> will try to import <tt class="docutils literal">local_settings.py</tt> if available in the +same directory. This can be used to customize settings in downstream +distributions</li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Make password reset views public</li> +<li>Don't crash when adding new users via Admin</li> +</ul> +</div> +<div class="section" id="refactoring"> +<h3>Refactoring</h3> +<ul class="simple"> +<li>Remove <tt class="docutils literal">UserProfile</tt> model. Kiwi TCMS doesn't needs extra information +about users so we remove this part of the application. Custom installations +may choose to define their own profiles if they wish</li> +<li>Remove custom <tt class="docutils literal">DBModelBackend</tt> authentication backend</li> +<li>Remove unused <tt class="docutils literal">tcms.core.context_processors.auth_backend_processor</tt></li> +<li>Remove unused <tt class="docutils literal">get_using_backend()</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/261">Issue #261</a></li> +<li>Remove <tt class="docutils literal">dj_pagination</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/110">Issue #110</a></li> +</ul> +</div> +<div class="section" id="settings"> +<h3>Settings</h3> +<ul class="simple"> +<li><tt class="docutils literal">AUTHENTICATION_BACKENDS</tt> is removed</li> +<li><tt class="docutils literal">PAGINATION_DEFAULT_PAGINATION</tt> is removed</li> +<li>Navigation menu links are now defined in <tt class="docutils literal">MENU_ITEMS</tt> and can be redefined</li> +</ul> +</div> +<div class="section" id="signals"> +<h3>Signals</h3> +<ul class="simple"> +<li><tt class="docutils literal">USER_REGISTERED_SIGNAL</tt> now doesn't receive the <tt class="docutils literal">backend</tt> parameter</li> +</ul> +</div> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p>If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +cd Kiwi/ +git pull +docker-compose down +docker pull kiwitcms/kiwi +docker pull centos/mariadb +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +</pre> +<p>Don't forget to <a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">backup</a> +before upgrade!</p> +</div> +How to override templates for Kiwi TCMS2018-08-06T11:40:00+03:002018-08-06T11:40:00+03:00Alexander Todorovtag:None,2018-08-06:/blog/atodorov/2018/08/06/how-to-override-templates-for-kiwi-tcms/<p>This is the first publication in our customization series. It will show you +how to override any template used by Kiwi TCMS. As an example we will override +the email template that is used when registering new account. By default the +email text looks like this:</p> +<div class="highlight"><pre><span></span><code><span class="x"> Welcome </span><span class="cp">{{</span> <span class="nv">user</span> <span class="cp">}}</span><span class="x">,</span> +<span class="x"> thank you …</span></code></pre></div><p>This is the first publication in our customization series. It will show you +how to override any template used by Kiwi TCMS. As an example we will override +the email template that is used when registering new account. By default the +email text looks like this:</p> +<div class="highlight"><pre><span></span><code><span class="x"> Welcome </span><span class="cp">{{</span> <span class="nv">user</span> <span class="cp">}}</span><span class="x">,</span> +<span class="x"> thank you for signing up for an </span><span class="cp">{{</span> <span class="nv">site_domain</span> <span class="cp">}}</span><span class="x"> account!</span> + +<span class="x"> To activate your account, click this link:</span> +<span class="x"> </span><span class="cp">{{</span> <span class="nv">confirm_url</span> <span class="cp">}}</span><span class="x"></span> +</code></pre></div> + + +<p><a href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a> +runs a custom Docker image based on +<code>kiwitcms/kiwi</code>. For this image the confirmation email looks like this</p> +<div class="highlight"><pre><span></span><code><span class="x"> Welcome </span><span class="cp">{{</span> <span class="nv">user</span> <span class="cp">}}</span><span class="x">,</span> +<span class="x"> thank you for signing up for our Kiwi TCMS demo!</span> + +<span class="x"> To activate your account, click this link:</span> +<span class="x"> </span><span class="cp">{{</span> <span class="nv">confirm_url</span> <span class="cp">}}</span><span class="x"></span> + +<span class="x"> GDPR no longer allows us to automatically subscribe you to</span> +<span class="x"> our newsletter. If you wish to keep in touch and receive emails</span> +<span class="x"> with news and updates around Kiwi TCMS please subscribe at:</span> +<span class="x"> https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581</span> + +<span class="x"> --</span> +<span class="x"> Happy testing!</span> +<span class="x"> The Kiwi TCMS team</span> +<span class="x"> http://kiwitcms.org</span> +</code></pre></div> + + +<p>The file that we want to override is <code>tcms/templates/email/confirm_registration.txt</code>.</p> +<p>Create a local directory (git repository) which will hold customization configuration +and create a file named <code>templates.d/email/confirm_registration.txt</code> with your text!</p> +<p>Next you want to make this file available inside your docker image so your <code>Dockerfile</code> +should look like this:</p> +<div class="highlight"><pre><span></span><code> FROM kiwitcms/kiwi + + COPY ./templates.d/ /venv/lib64/python3.6/site-packages/tcms/overridden_templates/ + COPY local_settings.py /venv/lib64/python3.6/site-packages/tcms/settings/ +</code></pre></div> + + +<p>where <code>local_settings.py</code> contains</p> +<div class="highlight"><pre><span></span><code> <span class="kn">import</span> <span class="nn">os</span> + <span class="kn">from</span> <span class="nn">django.conf</span> <span class="kn">import</span> <span class="n">settings</span> + + <span class="n">settings</span><span class="o">.</span><span class="n">TEMPLATES</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="s1">&#39;DIRS&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">insert</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">settings</span><span class="o">.</span><span class="n">TCMS_ROOT_PATH</span><span class="p">,</span> <span class="s1">&#39;overridden_templates&#39;</span><span class="p">))</span> +</code></pre></div> + + +<p>The following code states <em>instruct Django to look into <code>overridden_templates</code> first and +use any templates it finds there; also make my files available in that specific location +inside the docker image</em>.</p> +<p>This approach can be used for all templates that you wish to override. Take into +account that file names must match (Django searches templates by directory path). +Now build your customized Docker image and use that for deployment!</p> +<p>Happy testing!</p>Kiwi TCMS 5.12018-07-31T12:00:00+03:002018-07-31T12:00:00+03:00Kiwi TCMS Teamtag:None,2018-07-31:/blog/kiwi-tcms-team/2018/07/31/kiwi-tcms-51/<p>We're happy to announce Kiwi TCMS version 5.1! This release +introduces new database migrations, an experimental reporting feature, +deprecated functionality and bug fixes.</p> +<p>The new <tt class="docutils literal">kiwitcms/kiwi:latest</tt> docker image has Image ID <tt class="docutils literal">cc9b55aa664d</tt>. +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a> +has also been updated!</p> +<div class="section" id="changes-since-kiwi-tcms-5-0"> +<h2>Changes since Kiwi TCMS 5.0 …</h2></div><p>We're happy to announce Kiwi TCMS version 5.1! This release +introduces new database migrations, an experimental reporting feature, +deprecated functionality and bug fixes.</p> +<p>The new <tt class="docutils literal">kiwitcms/kiwi:latest</tt> docker image has Image ID <tt class="docutils literal">cc9b55aa664d</tt>. +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a> +has also been updated!</p> +<div class="section" id="changes-since-kiwi-tcms-5-0"> +<h2>Changes since Kiwi TCMS 5.0</h2> +<div class="section" id="enhancements"> +<h3>Enhancements</h3> +<ul class="simple"> +<li>Integrate with Django Report Builder as tech-preview. This makes it possible +for power users and administrators to generate +<a class="reference external" href="http://django-report-builder.readthedocs.io/en/latest/howto/">tabular reports</a>. +You will have to know the existing DB schema if you want to create your own reports. +See <a class="reference external" href="http://kiwitcms.readthedocs.io/en/latest/db.html">http://kiwitcms.readthedocs.io/en/latest/db.html</a>. This feature is in +tech-preview and it may be removed if it doesn't work out. Please comment at: +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/452">Issue #452</a>.</li> +<li>Allow using <tt class="docutils literal">manage.py dumpdata|loaddata|sqlflush|dbshell</tt> for backups, see +<a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">blog post</a></li> +<li>In TestCase view page add a link to delete the current test case</li> +<li>In TestCase Admin page the <tt class="docutils literal">+ Add TestCase</tt> button now allows to create new +test case</li> +<li>The version menu item in the helper menu now links to +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/blob/master/CHANGELOG.rst#change-log">Changelog</a></li> +</ul> +</div> +<div class="section" id="deprecated-functionality"> +<h3>Deprecated functionality</h3> +<ul class="simple"> +<li>Start showing deprecation warning for Advanced search, see +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/448">Issue #448</a></li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Allows Product/Version/Build to be shown in Testing Report. Fixes +<a class="reference external" href="https://sentry.io/open-technologies-bulgaria-ltd/kiwi-tcms/issues/618688608/">Sentry KIWI-TCMS-2C</a></li> +<li>Default to <tt class="docutils literal"><span class="pre">https://</span></tt> links if not running locally. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/450">Issue #450</a></li> +<li>Apply missing CSS class for object history table so it can be displayed nicely</li> +</ul> +</div> +<div class="section" id="refactoring"> +<h3>Refactoring</h3> +<ul class="simple"> +<li>Squash some database migrations</li> +<li>Fix a number of pylint issues</li> +<li>Remove unused <tt class="docutils literal"><span class="pre">testruns.views::view_caseruns()</span></tt>. References +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/316">Issue #316</a></li> +<li>Remove unused template <tt class="docutils literal">report/caserun.html</tt></li> +<li>Handle TestRun deletion via admin not home grown code</li> +</ul> +</div> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p>If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +cd Kiwi/ +git pull +docker-compose down +docker pull kiwitcms/kiwi +docker pull centos/mariadb +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +</pre> +<p>Don't forget to <a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">backup</a> +before upgrade!</p> +</div> +<div class="section" id="help-us-make-kiwi-tcms-better"> +<h2>Help us make Kiwi TCMS better</h2> +<p>According to <a class="reference external" href="/blog/atodorov/2018/07/25/mid-year-roadmap-status-report/">our 2018 roadmap update</a> +the Kiwi TCMS team is investing a great deal of our time to make the code base more +maintainable! For the past few releases we've been balancing code refactoring +with bug-fixing and enhancements and we have lots of ideas down the line.</p> +<p>We want to hear your voice! Tell us how you use Kiwi TCMS inside your organization. +We want to know what works for you and what doesn't so we can make it better. Feel +free to comment below, file GitHub issues or send us an email.</p> +<p>Happy testing!</p> +</div> +How to backup Docker volumes for Kiwi TCMS2018-07-30T00:25:00+03:002018-07-30T00:25:00+03:00Alexander Todorovtag:None,2018-07-30:/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/<p>When you start Kiwi TCMS by running <code>docker-compose up</code> +(see <a href="http://kiwitcms.readthedocs.io/en/latest/installing_docker.html#start-docker-compose">here</a>) +it will automatically create 2 volumes: <code>kiwi_db_data</code> and <code>kiwi_uploads</code>. +This blog post will outline how to backup these docker volumes.</p> +<p><strong>Note:</strong> in the instructions below <code>kiwi_db</code> is the container name and <code>kiwi</code> is the +database name used inside the …</p><p>When you start Kiwi TCMS by running <code>docker-compose up</code> +(see <a href="http://kiwitcms.readthedocs.io/en/latest/installing_docker.html#start-docker-compose">here</a>) +it will automatically create 2 volumes: <code>kiwi_db_data</code> and <code>kiwi_uploads</code>. +This blog post will outline how to backup these docker volumes.</p> +<p><strong>Note:</strong> in the instructions below <code>kiwi_db</code> is the container name and <code>kiwi</code> is the +database name used inside the <code>docker-compose.yml</code> file!</p> +<h2>MariaDB/MySQL database</h2> +<p>To export all contents from the docker container execute the command:</p> +<div class="highlight"><pre><span></span><code><span class="nv">docker</span> <span class="k">exec</span> <span class="o">-</span><span class="nv">u</span> <span class="mi">0</span> <span class="o">-</span><span class="nv">i</span> <span class="nv">kiwi_db</span> <span class="nv">mysqldump</span> <span class="nv">kiwi</span> <span class="o">&gt;</span> <span class="nv">backup</span>.<span class="nv">sql</span> +</code></pre></div> + + +<p>This will create a file named <code>backup.sql</code> in the current directory, outside of the running container!</p> +<p>You can restore the database contents by using the following command:</p> +<div class="highlight"><pre><span></span><code><span class="nv">cat</span> <span class="nv">backup</span>.<span class="nv">sql</span> <span class="o">|</span> <span class="nv">docker</span> <span class="k">exec</span> <span class="o">-</span><span class="nv">u</span> <span class="mi">0</span> <span class="o">-</span><span class="nv">i</span> <span class="nv">kiwi_db</span> <span class="nv">mysql</span> <span class="o">-</span><span class="nv">v</span> <span class="nv">kiwi</span> +</code></pre></div> + + +<p><strong>Notes:</strong></p> +<ol> +<li>The commands above using <code>-u 0</code> are executed with <code>root</code> privileges inside the + container. In this way you don't need to type-in the database password!</li> +<li>Depending on your scenario you may want to remove the existing volume + (<code>docker-compose down &amp;&amp; docker volume rm kiwi_db_data</code>) before restoring the database!</li> +</ol> +<h2>Postgres database</h2> +<p>To export all contents from the docker container execute the command:</p> +<div class="highlight"><pre><span></span><code><span class="nv">docker</span> <span class="k">exec</span> <span class="o">-</span><span class="nv">i</span> <span class="nv">kiwi_db</span> <span class="nv">pg_dump</span> <span class="o">--</span><span class="nv">dbname</span><span class="o">=</span><span class="nv">kiwi</span> <span class="o">-</span><span class="nv">F</span> <span class="nv">c</span> <span class="o">&gt;</span> <span class="nv">backup</span>.<span class="nv">bak</span> +</code></pre></div> + + +<p>This will create a file named <code>backup.bak</code> in the current directory, outside of the running container. +This is a PostgreSQL custom database dump format which contains all data and schema definitions. +That is a binary file which can be read with the <code>pg_restore</code> command!</p> +<p>To drop and restore the entire database execute:</p> +<div class="highlight"><pre><span></span><code><span class="nv">docker</span> <span class="k">exec</span> <span class="o">-</span><span class="nv">i</span> <span class="nv">kiwi_db</span> <span class="nv">psql</span> <span class="o">-</span><span class="nv">c</span> <span class="s2">&quot;</span><span class="s">DROP DATABASE IF EXISTS kiwi;</span><span class="s2">&quot;</span> +<span class="nv">cat</span> <span class="nv">backup</span>.<span class="nv">bak</span> <span class="o">|</span> <span class="nv">docker</span> <span class="k">exec</span> <span class="o">-</span><span class="nv">i</span> <span class="nv">kiwi_db</span> <span class="nv">pg_restore</span> <span class="o">--</span><span class="nv">dbname</span><span class="o">=</span><span class="nv">template1</span> <span class="o">-</span><span class="nv">vcC</span> +</code></pre></div> + + +<h2>Multi-tenant database</h2> +<p>The <a href="https://github.com/kiwitcms/tenants">kiwitcms-tenant</a> add-on and/or +<a href="https://github.com/kiwitcms/enterprise">Kiwi TCMS Enterprise</a> work only on +Postgres! Each tenant (aka name-space) uses a separate database schema. +The first schema name is <code>public</code>.</p> +<p>The backup and restore instructions shown above operate on all tenants together! +If you want to [drop and] restore an individual tenant then use the commands:</p> +<div class="highlight"><pre><span></span><code><span class="nv">docker</span> <span class="k">exec</span> <span class="o">-</span><span class="nv">it</span> <span class="nv">kiwi_db</span> <span class="nv">psql</span> <span class="o">--</span><span class="nv">dbname</span><span class="o">=</span><span class="nv">kiwi</span> + +<span class="nv">kiwi</span><span class="o">=&gt;</span> <span class="nv">DROP</span> <span class="nv">SCHEMA</span> $<span class="nv">tenant_name</span> <span class="nv">CASCADE</span><span class="c1">;</span> +.... +<span class="nv">DROP</span> <span class="nv">SCHEMA</span> +<span class="nv">kiwi</span><span class="o">=&gt;</span> <span class="nv">CREATE</span> <span class="nv">SCHEMA</span> $<span class="nv">tenant_name</span><span class="c1">;</span> +<span class="nv">CREATE</span> <span class="nv">SCHEMA</span> +<span class="nv">kiwi</span><span class="o">=&gt;</span><span class="nv">Ctrl</span><span class="o">+</span><span class="nv">D</span> + +<span class="nv">cat</span> <span class="nv">backup</span>.<span class="nv">bak</span> <span class="o">|</span> <span class="nv">docker</span> <span class="k">exec</span> <span class="o">-</span><span class="nv">i</span> <span class="nv">kiwi_db</span> <span class="nv">pg_restore</span> <span class="o">--</span><span class="nv">dbname</span><span class="o">=</span><span class="nv">kiwi</span> <span class="o">-</span><span class="nv">v</span> <span class="o">--</span><span class="nv">schema</span> $<span class="nv">tenant_name</span> +</code></pre></div> + + +<h2>Backing up file uploads</h2> +<p>Uploaded files can easily be backed up with:</p> +<div class="highlight"><pre><span></span><code><span class="n">docker</span> <span class="n">exec</span> <span class="o">-</span><span class="n">i</span> <span class="n">kiwi_web</span> <span class="o">/</span><span class="n">bin</span><span class="o">/</span><span class="n">tar</span> <span class="o">-</span><span class="n">cP</span> <span class="o">/</span><span class="n">Kiwi</span><span class="o">/</span><span class="n">uploads</span> <span class="o">&gt;</span> <span class="n">uploads</span><span class="o">.</span><span class="n">tar</span> +</code></pre></div> + + +<p>and then restored with:</p> +<div class="highlight"><pre><span></span><code><span class="n">cat</span> <span class="n">uploads</span><span class="o">.</span><span class="n">tar</span> <span class="o">|</span> <span class="n">docker</span> <span class="n">exec</span> <span class="o">-</span><span class="n">i</span> <span class="n">kiwi_web</span> <span class="o">/</span><span class="n">bin</span><span class="o">/</span><span class="n">tar</span> <span class="o">-</span><span class="n">x</span> +</code></pre></div> + + +<p>You may also try the <code>rsync</code> command but be aware that it is not installed +by default!</p> +<p><strong>Note:</strong> +the same approach may be used to backup <code>/var/lib/mysql/</code> or <code>/var/lib/pgsql/data</code> +from the <code>kiwi_db</code> container.</p> +<h2>Backing up multi-tenant uploads</h2> +<p>By default multi-tenant file uploads are stored under <code>/Kiwi/uploads/tenant/$tenant_name</code>. +You can archive all contents with the same procedure above. If you wish to restore +files per tenant you will have to upload the <code>$tenant_name</code> directory into the +docker volume.</p> +<h2>Alternatives</h2> +<p>By default both docker volumes created for Kiwi TCMS use the <code>local</code> driver +and are available under <code>/var/lib/docker/volumes/&lt;volume_name&gt;</code> on the host +running your containers. You can try backing them up from there as well.</p> +<p>Another alternative is to use the +<a href="https://www.projectatomic.io/blog/2016/05/docker-lvm-plugin/">docker-lvm-plugin</a> +and create these volumes as LVM2 block devices. Then use +<code>lvcreate -s</code> command to create a snapshot volume. For more information see +<a href="https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html-single/logical_volume_manager_administration/index#snapshot_volumes">chapter 2.3.5. Snapshot Volumes</a> +from the LVM Administrator Guide for Red Hat Enterprise Linux 7.</p> +<p>Happy testing!</p>Mid-year roadmap status report2018-07-25T16:30:00+03:002018-07-25T16:30:00+03:00Alexander Todorovtag:None,2018-07-25:/blog/atodorov/2018/07/25/mid-year-roadmap-status-report/<p>Hello everyone, in this article I will outline the progress that the Kiwi TCMS +team has made towards achieving the goals on our +<a href="/blog/kiwi-tcms-team/2018/01/22/kiwi-tcms-roadmap-for-2018/">roadmap</a>.</p> +<h2>Make code easier to maintain</h2> +<p><em>Status: moderate progress</em></p> +<p>Initially <a href="https://codeclimate.com/github/kiwitcms/Kiwi">CodeClimate</a> reported +a "D" rating with a 1 year estimated effort. Now it is still on "D …</p><p>Hello everyone, in this article I will outline the progress that the Kiwi TCMS +team has made towards achieving the goals on our +<a href="/blog/kiwi-tcms-team/2018/01/22/kiwi-tcms-roadmap-for-2018/">roadmap</a>.</p> +<h2>Make code easier to maintain</h2> +<p><em>Status: moderate progress</em></p> +<p>Initially <a href="https://codeclimate.com/github/kiwitcms/Kiwi">CodeClimate</a> reported +a "D" rating with a 1 year estimated effort. Now it is still on "D" rating with +a 7 months estimated effort to bring the project back in shape. +Code smells have dropped from 600+ to 418, duplications have been reduced from 600+ to 359! +At the same time technical debt ratio has been decreased from 32,5% to 21,6% and +little over 10000 lines of code have been removed from the source code. +Checkout +<a href="https://codeclimate.com/github/kiwitcms/Kiwi/trends/technical_debt">the stats</a> +for more info!</p> +<h2>Use pylint and pylint-django</h2> +<p><em>Status: good progress</em></p> +<p>Both pylint and pylint-django have been integrated into our CI workflow. There are even +a few custom built plugins that we use. The number of issues reported is down to around 900 +from 4000+ initially. The cleanup has been lead by <a href="https://github.com/asankov">Anton Sankov</a> +with help from <a href="https://github.com/ivo0126">Ivaylo Ivanov</a> and myself.</p> +<h2>Render HTML, return JSON</h2> +<p><em>Status: no progress</em></p> +<p>Several views were probably modified to return pure JSON in the meantime but we've not +done any targeted work to resolve this issue.</p> +<h2>Submit forms, post JSON, GET clean URLs</h2> +<p><em>Status: no progress</em></p> +<p>Same as above, not much has been done in this area.</p> +<h2>API layer</h2> +<p><em>Status: complete</em></p> +<p>After Kiwi TCMS v4.0 the server side API has been reorganized and updated +to follow the model/method names used internally.</p> +<p>After the recent version 5.0 the client side API library has been stripped +to its most basic form so that you can work directly with the responses from +the server.</p> +<p>There is no more duplication and ambiguity in names because there isn't +a lot of code left!</p> +<h2>Documentation</h2> +<p><em>Status: moderate progress, dropped</em></p> +<p>All RPC methods have been documented! The rest of the internals will be documented +as we go along.</p> +<h2>No vendored JavaScript libraries</h2> +<p><em>Status: moderate progress</em></p> +<p>Several JavaScript libraries have been removed but we still carry around jQuery +and Handlebars.js. No work has been done to convert Kiwi TCMS to use the jQuery +version provided with Django.</p> +<h2>Less HTML templates with better organization</h2> +<p><em>Status: minimal progress</em></p> +<p>There are still over 100 HTML templates in Kiwi TCMS. Some of the HTML templates +have been merged together, some email templates have been refactored and marked +as translatable but the majority of them have not been updated for a long time.</p> +<h2>Modern interface with Patternfly</h2> +<p><em>Status: no progress</em></p> +<h2>JavaScript updates and front-end testing</h2> +<p><em>Status: small progress</em></p> +<p>A number of JavaScript functions have been refactored and removed during the +past few releases but there are still thousands of lines of code left to deal with.</p> +<h2>Community efforts</h2> +<p><em>Status: moderate progress</em></p> +<p>We are seeing a steady stream of new users registered on +<a href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a> and +there are several active contributors (issues, translations).</p> +<p>Kiwi TCMS was represented at OSCAL Tirana, DjangoCon Heidelberg and PyCon Prague! +We're planning to attend HackConf and OpenFest in Sofia by the end of the year.</p> +<p>Happy testing!</p>Mid-year roadmap status report2018-07-25T16:30:00+03:002018-07-25T16:30:00+03:00Alexander Todorovtag:None,2018-07-25:/blog/atodorov/2018/07/25/mid-year-roadmap-status-report/<p>Hello everyone, in this article I will outline the progress that the Kiwi TCMS +team has made towards achieving the goals on our +<a href="/blog/kiwi-tcms-team/2018/01/22/kiwi-tcms-roadmap-for-2018/">roadmap</a>.</p> +<h2>Make code easier to maintain</h2> +<p><em>Status: moderate progress</em></p> +<p>Initially <a href="https://codeclimate.com/github/kiwitcms/Kiwi">CodeClimate</a> reported +a "D" rating with a 1 year estimated effort. Now it is still on "D …</p><p>Hello everyone, in this article I will outline the progress that the Kiwi TCMS +team has made towards achieving the goals on our +<a href="/blog/kiwi-tcms-team/2018/01/22/kiwi-tcms-roadmap-for-2018/">roadmap</a>.</p> +<h2>Make code easier to maintain</h2> +<p><em>Status: moderate progress</em></p> +<p>Initially <a href="https://codeclimate.com/github/kiwitcms/Kiwi">CodeClimate</a> reported +a "D" rating with a 1 year estimated effort. Now it is still on "D" rating with +a 7 months estimated effort to bring the project back in shape. +Code smells have dropped from 600+ to 418, duplications have been reduced from 600+ to 359! +At the same time technical debt ratio has been decreased from 32,5% to 21,6% and +little over 10000 lines of code have been removed from the source code. +Checkout +<a href="https://codeclimate.com/github/kiwitcms/Kiwi/trends/technical_debt">the stats</a> +for more info!</p> +<h2>Use pylint and pylint-django</h2> +<p><em>Status: good progress</em></p> +<p>Both pylint and pylint-django have been integrated into our CI workflow. There are even +a few custom built plugins that we use. The number of issues reported is down to around 900 +from 4000+ initially. The cleanup has been lead by <a href="https://github.com/asankov">Anton Sankov</a> +with help from <a href="https://github.com/ivo0126">Ivaylo Ivanov</a> and myself.</p> +<h2>Render HTML, return JSON</h2> +<p><em>Status: no progress</em></p> +<p>Several views were probably modified to return pure JSON in the meantime but we've not +done any targeted work to resolve this issue.</p> +<h2>Submit forms, post JSON, GET clean URLs</h2> +<p><em>Status: no progress</em></p> +<p>Same as above, not much has been done in this area.</p> +<h2>API layer</h2> +<p><em>Status: complete</em></p> +<p>After Kiwi TCMS v4.0 the server side API has been reorganized and updated +to follow the model/method names used internally.</p> +<p>After the recent version 5.0 the client side API library has been stripped +to its most basic form so that you can work directly with the responses from +the server.</p> +<p>There is no more duplication and ambiguity in names because there isn't +a lot of code left!</p> +<h2>Documentation</h2> +<p><em>Status: moderate progress, dropped</em></p> +<p>All RPC methods have been documented! The rest of the internals will be documented +as we go along.</p> +<h2>No vendored JavaScript libraries</h2> +<p><em>Status: moderate progress</em></p> +<p>Several JavaScript libraries have been removed but we still carry around jQuery +and Handlebars.js. No work has been done to convert Kiwi TCMS to use the jQuery +version provided with Django.</p> +<h2>Less HTML templates with better organization</h2> +<p><em>Status: minimal progress</em></p> +<p>There are still over 100 HTML templates in Kiwi TCMS. Some of the HTML templates +have been merged together, some email templates have been refactored and marked +as translatable but the majority of them have not been updated for a long time.</p> +<h2>Modern interface with Patternfly</h2> +<p><em>Status: no progress</em></p> +<h2>JavaScript updates and front-end testing</h2> +<p><em>Status: small progress</em></p> +<p>A number of JavaScript functions have been refactored and removed during the +past few releases but there are still thousands of lines of code left to deal with.</p> +<h2>Community efforts</h2> +<p><em>Status: moderate progress</em></p> +<p>We are seeing a steady stream of new users registered on +<a href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a> and +there are several active contributors (issues, translations).</p> +<p>Kiwi TCMS was represented at OSCAL Tirana, DjangoCon Heidelberg and PyCon Prague! +We're planning to attend HackConf and OpenFest in Sofia by the end of the year.</p> +<p>Happy testing!</p>Kiwi TCMS 5.02018-07-24T16:30:00+03:002018-07-24T16:30:00+03:00Kiwi TCMS Teamtag:None,2018-07-24:/blog/kiwi-tcms-team/2018/07/24/kiwi-tcms-50/<p>We're happy to announce Kiwi TCMS and tcms-api version 5.0! This release +introduces object history tracking, removal of old functionality and unused code, +lots of internal updates and bug fixes.</p> +<p>The new <tt class="docutils literal">kiwitcms/kiwi:latest</tt> docker image has Image ID <tt class="docutils literal">468de0abe8a8</tt>. +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a> has also been …</p><p>We're happy to announce Kiwi TCMS and tcms-api version 5.0! This release +introduces object history tracking, removal of old functionality and unused code, +lots of internal updates and bug fixes.</p> +<p>The new <tt class="docutils literal">kiwitcms/kiwi:latest</tt> docker image has Image ID <tt class="docutils literal">468de0abe8a8</tt>. +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a> has also been updated!</p> +<div class="section" id="changes-since-kiwi-tcms-4-2"> +<h2>Changes since Kiwi TCMS 4.2</h2> +<div class="section" id="settings"> +<h3>Settings</h3> +<ul class="simple"> +<li>Remove <tt class="docutils literal">CACHE</tt> because not used</li> +<li>Remove <tt class="docutils literal">PLAN_EMAIL_TEMPLATE</tt>, <tt class="docutils literal">CASE_EMAIL_TEMPLATE</tt> and +<tt class="docutils literal">CASE_DELETE_EMAIL_TEMPLATE</tt>. Templates can still be overridden if desired</li> +</ul> +</div> +<div class="section" id="enhancements"> +<h3>Enhancements</h3> +<ul class="simple"> +<li>Upgrade to <a class="reference external" href="https://docs.djangoproject.com/en/2.0/releases/2.0.7/">Django 2.0.7</a></li> +<li>Allow to delete TestPlan. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/273">Issue #273</a></li> +<li>Don't include username in dashboard URL</li> +<li>Copy latest TestPlan text when cloning</li> +<li>Always require users to be logged in. Anonymous users will not be allowed +access by default. Read-only access to some views (e.g. get TestPlan or TestRun) +can be enabled by disabling <tt class="docutils literal">GlobalLoginRequiredMiddleware</tt>! Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/230">Issue #230</a></li> +<li>Start tracking change history for TestPlan, TestCase, TestRun and TestCaseRun. +Fixes <a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/294">Issue #294</a></li> +<li>History changes are recorded as unified diff which is a universally recognized format</li> +<li>Show the actual changes in email notifications. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/199">Issue #199</a></li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Fix <tt class="docutils literal">UnboundLocalError local variable 'message' referenced before assignment</tt>. Fixes +<a class="reference external" href="https://sentry.io/open-technologies-bulgaria-ltd/kiwi-tcms/issues/589209883/">Sentry KIWI-TCMS-1S</a></li> +<li>Make email address unique when adding users via admin panel. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/352">Issue #352</a> and +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/68">Issue #68</a></li> +<li>Fix <tt class="docutils literal">unsupported operand type(s) for +=: 'int' and 'datetime.timedelta'</tt> by +initializing timedelta variable properly. Fixes +<a class="reference external" href="https://sentry.io/open-technologies-bulgaria-ltd/kiwi-tcms/issues/593838484/">Sentry KIWI-TCMS-1Y</a></li> +<li>Remove <tt class="docutils literal">core.models.fields</tt> with MySQL time conversions. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/390">Issue #390</a></li> +<li>Fix bad JavaScript comparison. Fixes Coverity #289956</li> +<li>Remove expression with no effect. Fixes Coverity #289974</li> +<li>Rewrite <tt class="docutils literal">request_host_link()</tt> to fix Coverity #289987</li> +<li>Fix Coverity #289923 - Typo in identifier</li> +<li>Don't send emails for changes performed by myself. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/216">Issue #216</a></li> +</ul> +</div> +<div class="section" id="refactoring"> +<h3>Refactoring</h3> +<ul class="simple"> +<li>Fix pylint issues in several modules (Anton Sankov &amp; Ivaylo Ivanov)</li> +<li>Fix wrong Plan Type template variable in advanced search form</li> +<li>Do not use <tt class="docutils literal">Model.objects.update()</tt> because it doesn't respect history</li> +<li>Use the standard <tt class="docutils literal">ModelChoiceField</tt> instead of custom one</li> +<li>Use <tt class="docutils literal">updateRunStatus()</tt> instead of deprecated <tt class="docutils literal">updateObject()</tt></li> +<li>Simplify JavaScript function <tt class="docutils literal">getInfo()</tt> and use it multiple times</li> +<li>Simplify <tt class="docutils literal">previewPlan()</tt> by removing unused parameters</li> +<li>Unify <tt class="docutils literal">addChildPlan()</tt> and <tt class="docutils literal">removeChildPlan()</tt></li> +<li>Unify <tt class="docutils literal">getInfoAndUpdateObject()</tt> with <tt class="docutils literal">changeCaseRunAssignee()</tt></li> +<li>Unify <tt class="docutils literal">onTestCaseStatusChange()</tt> with <tt class="docutils literal">changeTestCaseStatus()</tt></li> +<li>Convert <tt class="docutils literal">TestCaseEmailSettings.cc_list</tt> to string field</li> +<li>Merge <tt class="docutils literal">report/caseruns_table.html</tt> with <tt class="docutils literal">reports/caseruns.html</tt></li> +<li>Rename model <tt class="docutils literal">UserActivateKey</tt> to <tt class="docutils literal">UserActivationKey</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/276">Issue #276</a></li> +<li>Remove <tt class="docutils literal">cached_entities()</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/307">Issue #307</a></li> +<li>Remove <tt class="docutils literal">TestPlanText.checksum</tt> field</li> +<li>Remove checksum fields for <tt class="docutils literal">TestCaseText</tt> model</li> +<li>Remove unused and home-grown template tags</li> +<li>Remove unused fields <tt class="docutils literal">auto_blinddown</tt>, <tt class="docutils literal">description</tt>, <tt class="docutils literal">sortkey</tt> from +<tt class="docutils literal">TestCaseRunStatus</tt> model. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/186">Issue #186</a></li> +<li>Remove <tt class="docutils literal">Meta.db_name</tt> effectively renaming all tables. New names will use +Django's default naming scheme</li> +<li>Remove RawSQL queries. We are now 100% ORM based. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/36">Issue #36</a></li> +<li>Remove duplicate <tt class="docutils literal">MultipleEmailField</tt> definition</li> +<li>Remove <tt class="docutils literal">TCMSLog</tt> view, <tt class="docutils literal">TCMSLogManager</tt>, <tt class="docutils literal">TCMSLogModel</tt></li> +<li>Remove <tt class="docutils literal">TestPlanText</tt> model, use <tt class="docutils literal">TestPlan.text</tt> instead</li> +<li>Remove unused JavaScript files +- <tt class="docutils literal">lib/detetmine_type.js</tt> +- <tt class="docutils literal">lib/hole.js</tt> +- <tt class="docutils literal"><span class="pre">lib/scriptaculous-controls.js.patch</span></tt> +- <tt class="docutils literal">lib/validations.js</tt> +- <tt class="docutils literal">static/js/index.js</tt></li> +<li>Remove <tt class="docutils literal">constructPlanParentPreviewDialog()</tt></li> +<li>Remove <tt class="docutils literal">changeCasePriority()</tt></li> +<li>Remove <tt class="docutils literal">changeCaseRunOrder()</tt></li> +<li>Remove <tt class="docutils literal">debug_output()</tt> from JavaScript files</li> +<li>Remove deprecated <tt class="docutils literal">/ajax/update/</tt> end-point</li> +<li>Remove <tt class="docutils literal">taggleSortCaseRun()</tt></li> +<li>Remove <tt class="docutils literal">strip_parameters()</tt></li> +<li>Remove <tt class="docutils literal">_InfoObjects.users()</tt></li> +<li>Remove <tt class="docutils literal">get_value_by_type()</tt></li> +<li>Remove <tt class="docutils literal">testcases.views.get_log()</tt></li> +<li>Remove <tt class="docutils literal">mail_scene()</tt> methods and related templates</li> +</ul> +</div> +<div class="section" id="removed-functionality"> +<h3>Removed functionality</h3> +<ul class="simple"> +<li>TestRun completion status is no longer updated automatically. You can still +update the status manually via the 'Set Finished' or 'Set Running' links! +Fixes <a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/367">Issue #367</a></li> +<li>Remove bookmarks functionality. There are many great bookmark manager apps +and if the user is keen on bookmarks they should use one of them. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/67">Issue #67</a> and +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/210">Issue #210</a></li> +<li>Don't track &amp; display history of changes for <tt class="docutils literal">EnvGroup</tt> model</li> +<li>Remove Disable/Enable buttons from TestPlan page. Enabling and disabling +can still be done via the edit page</li> +<li>Remove <tt class="docutils literal">changeParentPlan()</tt> and the ability to change TestPlan parents +from the 'Tree View' tab. This can be done via the edit page</li> +<li>When viewing a TestPlan the user is no longer able to specify a sorkey for a +particular TestCase. Instead they can use the <tt class="docutils literal"><span class="pre">Re-order</span> cases</tt> button and +move around the entire row of cases to adjust the sort order</li> +<li>When working with test case results, inside a TestRun you will not be allowed +to change the order of execution. Order should be defined inside the TestPlan +instead</li> +<li>Remove <tt class="docutils literal">XmlRpcLog()</tt> model. Kiwi TCMS will no longer log RPC calls to the +database. This leads to a small performance boost and can be overridden on +individual basis if you need to do so.</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>More source strings marked as translatable</li> +<li>New translations for Chinese Simplified, Chinese Traditional, German and Slovenian</li> +<li>Stop keeping compiled translations under git. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/387">Issue #387</a></li> +</ul> +</div> +</div> +<div class="section" id="tcms-api-changes-since-4-2"> +<h2>tcms-api changes since 4.2</h2> +<ul class="simple"> +<li>Requires Python 3.6 or newer because it fixes bugs related to Django's +disabling of keep-alive connections. See <a class="reference external" href="https://bugs.python.org/issue26402">https://bugs.python.org/issue26402</a></li> +<li>The rpc client is now accessed via <tt class="docutils literal"><span class="pre">TCMS().exec.&lt;Server-Method&gt;</span></tt></li> +<li>Leave only XML-RPC transport classes! This removes the top-level interface +behind the API client and the consuming side is left to work with Python +dictionaries instead of objects.</li> +<li>Remove the interactive <tt class="docutils literal">tcms</tt> script</li> +<li>Remove <tt class="docutils literal">tcms_api.config</tt> module</li> +<li>Remove logging class</li> +<li>Remove <tt class="docutils literal">script_examples/</tt> directory. These were never tested and maintained</li> +</ul> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p>If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +cd Kiwi/ +git pull +docker-compose down +docker pull kiwitcms/kiwi +docker pull centos/mariadb +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +docker exec -it kiwi_web /Kiwi/manage.py populate_history --auto +</pre> +</div> +<div class="section" id="help-us-make-kiwi-tcms-better"> +<h2>Help us make Kiwi TCMS better</h2> +<p>According to <a class="reference external" href="/blog/kiwi-tcms-team/2018/01/22/kiwi-tcms-roadmap-for-2018/">our 2018 roadmap</a> the +Kiwi TCMS team is investing a great deal of our time to make the code base more +maintainable! For the past few releases we've been balancing code refactoring +with bug-fixing and minor enhancements and we have lots of ideas down the line.</p> +<p>We want to hear your voice! Tell us how you use Kiwi TCMS inside your organization. +We want to know what works for you and what doesn't so we can make it better. Feel +free to comment below, file GitHub issues or send us an email.</p> +<p>Happy testing!</p> +</div> +Kiwi TCMS 4.22018-06-24T17:05:00+03:002018-06-24T17:05:00+03:00Kiwi TCMS Teamtag:None,2018-06-24:/blog/kiwi-tcms-team/2018/06/24/kiwi-tcms-42/<p>We're happy to announce Kiwi TCMS and tcms-api version 4.2! +This is a security, bug-fix and enhancement update which upgrades to the latest +Django version under Python 3.6. +We've pushed new <code>kiwitcms/kiwi:latest</code> docker image to Docker Hub and updated the +demo instance at <a href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant …</a></p><p>We're happy to announce Kiwi TCMS and tcms-api version 4.2! +This is a security, bug-fix and enhancement update which upgrades to the latest +Django version under Python 3.6. +We've pushed new <code>kiwitcms/kiwi:latest</code> docker image to Docker Hub and updated the +demo instance at <a href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>!</p> +<p>This version also includes GDPR related changes which affect our project. Read below +for the details.</p> +<h2>Changes since Kiwi TCMS 4.1.4</h2> +<p><strong>IMPORTANT:</strong> this release introduces new database migrations</p> +<h3>Security</h3> +<ul> +<li>Enable testing with Badit. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/237">Issue #237</a></li> +<li>Enable testing with + <a href="https://scan.coverity.com/projects/kiwitcms-kiwi">Coverity Scan</a></li> +<li>Enable testing with + <a href="https://pyup.io/repos/github/kiwitcms/Kiwi/">pyup.io</a></li> +<li>Enable testing with + <a href="https://snyk.io/test/github/kiwitcms/Kiwi">Snyk</a></li> +<li>Use SHA256 instead of MD5 and SHA1</li> +<li>Use the <code>secrets</code> module for activation keys</li> +<li>Remove unnecessary AJAX view that had remote code execution vulnerability</li> +<li>Don't use hard-coded temporary directories</li> +<li>Upgrade to + <a href="https://github.com/patternfly/patternfly/releases/tag/v3.36.0">Patternfly 3.36.0</a> + which fixes the following vulnerabilities:<ul> +<li><a href="https://snyk.io/vuln/npm:moment:20161019">https://snyk.io/vuln/npm:moment:20161019</a></li> +<li><a href="https://snyk.io/vuln/npm:moment:20170905">https://snyk.io/vuln/npm:moment:20170905</a></li> +</ul> +</li> +</ul> +<h3>Settings</h3> +<ul> +<li><code>BUGZILLA_AUTH_CACHE_DIR</code> is a new setting that may be specified to control + where Bugzilla auth cookies are saved! It is not specified by default and + Kiwi TCMS uses a temporary directory each time we try to login into Bugzilla!</li> +</ul> +<h3>Enhancements</h3> +<ul> +<li>Upgrade to Python 3.6. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/91">Issue #91</a></li> +<li>Upgrade to <a href="https://docs.djangoproject.com/en/2.0/releases/2.0.6/">Django 2.0.6</a></li> +<li>Fix around 100 pylint issues (Anton Sankov)</li> +<li>Update email confirmation template for newly registered users and make the + text translatable</li> +<li>Display <code>Last login</code> column in User admin page</li> +<li>Add tests for <code>tcms.management.views</code> (Anton Sankov)</li> +<li>Remove unused CSS selectors</li> +<li>Remove unnecessary <code>templates/comments/comments.html</code></li> +</ul> +<h3>Bug fixes</h3> +<ul> +<li>Remove unused deferred field <code>product_version</code>. Fixes + <a href="https://sentry.io/open-technologies-bulgaria-ltd/kiwi-tcms/issues/523948048/">Sentry KIWI-TCMS-1C</a></li> +<li>Rename left-over <code>get_url()</code> to <code>get_full_url()</code>. Fixes + <a href="https://sentry.io/open-technologies-bulgaria-ltd/kiwi-tcms/issues/523855781/">Sentry KIWI-TCMS-1B</a></li> +<li>Fix empty TestPlan url and Product fields in TestRun email notification. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/353">Issue #353</a> (Matt Porter, Konsulko Group)</li> +</ul> +<h3>Translations</h3> +<ul> +<li>Updated translations for Chinese Simplified</li> +<li>Updated translations for Chinese Traditional</li> +<li>New language and translations for Slovenian</li> +</ul> +<h3>Documentation</h3> +<ul> +<li>Added <code>git clone</code> command to documentation. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/344">Issue #344</a> (Anton Sankov)</li> +</ul> +<h3>Models and database migrations</h3> +<ul> +<li>Increase checksum fields size to hold the new checksum values</li> +<li>Increase <code>activation_key</code> field size to 64 chars</li> +</ul> +<h3>GDPR related</h3> +<ul> +<li>Allow users to delete their accounts. Link is present on <code>My profile</code> page. + This will also delete any related objects using cascade delete</li> +<li>Try not to be so obvious when it comes to displaying email addresses across + the web interface. Instead show username and link to profile</li> +</ul> +<p>In addition the following changes were deployed to our infrastructure:</p> +<ul> +<li>On our website the <code>Subscribe to our newsletter</code> is now a link, instead of + embedded form because embedded forms can't display GDPR compliance fields. + If you wish to receive email from Kiwi TCMS you need to select the <code>Email</code> + checkbox when signing up for the newsletter.</li> +<li>Double opt-in is now enabled when subscribing to our newsletter</li> +<li>All newsletter addresses that have been unsubscribed have been deleted</li> +<li>Upon registration for <a href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a> + you are no longer subscribed + to the newsletter. Now we send a welcome email with a link to the newsletter + so you can subscribe if you want</li> +<li><a href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a> + now runs a cron job which deletes inactive accounts + and all of their related data. The cron job runs weekly</li> +</ul> +<p>We're trying to be respectful to your private data and not expose that to any +3rd parties or use it for means other than making Kiwi TCMS better open source +software. If you spot areas for improvement please +<a href="https://github.com/kiwitcms/Kiwi/issues/new">report an issue</a> so we can take +a look at it!</p> +<h2>tcms-api changes since 4.0.0</h2> +<ul> +<li>Remove coloring. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/185">Issue #185</a></li> +<li>Fix using the API client against <code>https://</code> URLs (Adam Łoszyn, Samsung)</li> +</ul> +<h2>How to upgrade</h2> +<p>If you are using Kiwi TCMS as a Docker container then</p> +<div class="highlight"><pre><span></span><code><span class="nv">cd</span> <span class="nv">Kiwi</span><span class="o">/</span> +<span class="nv">git</span> <span class="nv">pull</span> +<span class="nv">docker</span><span class="o">-</span><span class="nv">compose</span> <span class="nv">down</span> +<span class="nv">docker</span> <span class="nv">pull</span> <span class="nv">kiwitcms</span><span class="o">/</span><span class="nv">kiwi</span> +<span class="nv">docker</span> <span class="nv">pull</span> <span class="nv">centos</span><span class="o">/</span><span class="nv">mariadb</span> +<span class="nv">docker</span><span class="o">-</span><span class="nv">compose</span> <span class="nv">up</span> <span class="o">-</span><span class="nv">d</span> +<span class="nv">docker</span> <span class="k">exec</span> <span class="o">-</span><span class="nv">it</span> <span class="nv">kiwi_web</span> <span class="o">/</span><span class="nv">Kiwi</span><span class="o">/</span><span class="nv">manage</span>.<span class="nv">py</span> <span class="nv">migrate</span> +</code></pre></div> + + +<h2>Help us make Kiwi TCMS better</h2> +<p>According to <a href="/blog/kiwi-tcms-team/2018/01/22/kiwi-tcms-roadmap-for-2018/">our 2018 roadmap</a> the +Kiwi TCMS team is investing a great deal of our time to make the code base more +maintainable! For the past few releases we've been balancing code refactoring +with bug-fixing and minor enhancements and we have lots of ideas down the line.</p> +<p>We want to hear your voice! Tell us how you use Kiwi TCMS inside your organization. +We want to know what works for you and what doesn't so we can make it better. Feel +free to comment below, file GitHub issues or send us an email.</p> +<p>Happy testing!</p>Kiwi TCMS conference presence2018-04-11T15:35:00+03:002018-04-11T15:35:00+03:00Kiwi TCMS Teamtag:None,2018-04-11:/blog/kiwi-tcms-team/2018/04/11/kiwi-tcms-conference-presence/<p>Kiwi TCMS is going on a small conference tour. This is where you can find us +in the next couple of months:</p> +<ul> +<li><a href="http://bulgariawebsummit.com/">Bulgaria Web Summit</a> - 14 April, Sofia</li> +<li><a href="https://oscal.openlabs.cc/">OSCAL</a> - 19 &amp; 20 May, Tirana</li> +<li><a href="https://2018.djangocon.eu/">DjangoCon Europe</a> - 23-27 May, Heidelberg</li> +</ul> +<p>For all of the 3 conferences we're going to have a project …</p><p>Kiwi TCMS is going on a small conference tour. This is where you can find us +in the next couple of months:</p> +<ul> +<li><a href="http://bulgariawebsummit.com/">Bulgaria Web Summit</a> - 14 April, Sofia</li> +<li><a href="https://oscal.openlabs.cc/">OSCAL</a> - 19 &amp; 20 May, Tirana</li> +<li><a href="https://2018.djangocon.eu/">DjangoCon Europe</a> - 23-27 May, Heidelberg</li> +</ul> +<p>For all of the 3 conferences we're going to have a project presence. In addition +to that you can catch-up with Alex Todorov, Kiwi's project lead at: +<a href="https://testconf.ru/">TestCon Moscow</a>(17-19 April, Moscow), +<a href="https://romaniatesting.ro/">Romanian Testing Conference</a>(9-11 May, Cluj-Napoca), +<a href="https://cz.pycon.org/2018/">PyCon CZ</a>(1-3 June, Prague) and +<a href="https://devitconf.org/">DEVit</a>(10-11 June, Thessaloniki).</p> +<p>If you can ping us at <a href="https://twitter.com/KiwiTCMS">@KiwiTCMS</a> or look for the +kiwi bird logo and come to say hi!</p>Kiwi TCMS 4.1.42018-04-10T21:45:00+03:002018-04-10T21:45:00+03:00Kiwi TCMS Teamtag:None,2018-04-10:/blog/kiwi-tcms-team/2018/04/10/kiwi-tcms-414/<p>We're happy to announce Kiwi TCMS version 4.1.4! +This is a bug-fix and enhancement update which upgrades to the latest Django +version, resolves several issues and includes lots of internal code updates.</p> +<p>We've pushed new <code>kiwitcms/kiwi</code> docker image to Docker Hub and updated the +demo instance at …</p><p>We're happy to announce Kiwi TCMS version 4.1.4! +This is a bug-fix and enhancement update which upgrades to the latest Django +version, resolves several issues and includes lots of internal code updates.</p> +<p>We've pushed new <code>kiwitcms/kiwi</code> docker image to Docker Hub and updated the +demo instance at +<a href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>!</p> +<h2>Changes since Kiwi TCMS 4.1.3</h2> +<h3>Enhancements</h3> +<ul> +<li>Upgrade to <a href="https://docs.djangoproject.com/en/2.0/releases/2.0.4/">Django 2.0.4</a></li> +<li>Enable pylint and fix around 700 issues (Anton Sankov)</li> +<li>Add pylint plugin to check docstrings for triple double quotes. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/296">Issue #296</a></li> +<li>Add pylint plugin to check for list comprehensions. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/270">Issue #270</a></li> +<li>Add pylint plugin to check for class attributes enclosed with double underscores. + These are dunders and are reserved for Python!</li> +</ul> +<h3>Signals</h3> +<p><strong>BREAKING CHANGES</strong>:</p> +<ul> +<li>Renamed <code>user_registered</code> to <code>USER_REGISTERED_SIGNAL</code> and + <code>post_update</code> to <code>POST_UPDATE_SIGNAL</code>!</li> +</ul> +<h3>Bug fixes</h3> +<ul> +<li>Change util function to default to https. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/220">Issue #220</a></li> +<li>Fix + <a href="https://sentry.io/open-technologies-bulgaria-ltd/kiwi-tcms/issues/495015101/">Sentry KIWI-TCMS-17</a></li> +<li>Cast iterator to list. Fixes + <a href="https://sentry.io/open-technologies-bulgaria-ltd/kiwi-tcms/issues/501200394/">Sentry KIWI-TCMS-19</a></li> +<li>Don't crash in Custom Report. Fixes + <a href="https://sentry.io/open-technologies-bulgaria-ltd/kiwi-tcms/issues/499389305/">Sentry KIWI-TCMS-18</a></li> +<li>Better handling of TestPlan documents. Fixes + <a href="https://sentry.io/open-technologies-bulgaria-ltd/kiwi-tcms/issues/501695244/">Sentry KIWI-TCMS-1A</a></li> +<li>Fix sorting of entries in TestPlan -&gt; Runs tab. Fixes + <a href="https://sentry.io/open-technologies-bulgaria-ltd/kiwi-tcms/issues/472757670/">Sentry KIWI-TCMS-E</a></li> +</ul> +<h3>Refactoring</h3> +<ul> +<li>Move Bugzilla and Kerberos backends code into their own repositories. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/239">Issue #239</a></li> +<li>Remove cache from TestCaseRunStatus. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/279">Issue #279</a></li> +<li>Rewrite <code>UrlMixin</code>. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/157">Issue #157</a> (Chenxiong Qi)</li> +<li>Remove unused <code>split_as_option</code> template tag</li> +<li>Internal refactoring and more tests in <code>tcms/core/ajax.py</code></li> +<li>Delete unused file <code>tcms/core/forms/widgets.py</code></li> +<li>Merge <code>case/form/filter.html</code> into <code>plan/get_cases.html</code></li> +<li>Remove unused <code>TestCaseStatus.id_to_string()</code></li> +</ul> +<h2>How to upgrade</h2> +<p>If you are using Kiwi TCMS as a Docker container then</p> +<div class="highlight"><pre><span></span><code><span class="nv">cd</span> <span class="nv">Kiwi</span><span class="o">/</span> +<span class="nv">git</span> <span class="nv">pull</span> +<span class="nv">docker</span><span class="o">-</span><span class="nv">compose</span> <span class="nv">down</span> +<span class="nv">docker</span> <span class="nv">pull</span> <span class="nv">kiwitcms</span><span class="o">/</span><span class="nv">kiwi</span> +<span class="nv">docker</span> <span class="nv">pull</span> <span class="nv">centos</span><span class="o">/</span><span class="nv">mariadb</span> +<span class="nv">docker</span><span class="o">-</span><span class="nv">compose</span> <span class="nv">up</span> <span class="o">-</span><span class="nv">d</span> +<span class="nv">docker</span> <span class="k">exec</span> <span class="o">-</span><span class="nv">it</span> <span class="nv">kiwi_web</span> <span class="o">/</span><span class="nv">Kiwi</span><span class="o">/</span><span class="nv">manage</span>.<span class="nv">py</span> <span class="nv">migrate</span> +</code></pre></div> + + +<h2>Help us make Kiwi TCMS better</h2> +<p>According to <a href="/blog/kiwi-tcms-team/2018/01/22/kiwi-tcms-roadmap-for-2018/">our 2018 roadmap</a> the +Kiwi TCMS team is investing a great deal of our time to make the code base more +maintainable! For the past few releases we've been balancing code refactoring +with bug-fixing and minor enhancements and we have lots of ideas down the line.</p> +<p>We want to hear your voice! Tell us how you use Kiwi TCMS inside your organization. +We want to know what works for you and what doesn't so we can make it better. Feel +free to comment below, file GitHub issues or send us an email.</p> +<p>Happy testing!</p>Kiwi TCMS 4.1.32018-03-16T10:45:00+02:002018-03-16T10:45:00+02:00Kiwi TCMS Teamtag:None,2018-03-16:/blog/kiwi-tcms-team/2018/03/16/kiwi-tcms-413/<p>We're happy to announce Kiwi TCMS version 4.1.3! +This is a bug-fix and enhancement update which upgrades to the latest Django +version, provides easier way for Docker administrators to override SSL certificates +and access httpd log files and resolves several issues. This release also includes +lots of internal …</p><p>We're happy to announce Kiwi TCMS version 4.1.3! +This is a bug-fix and enhancement update which upgrades to the latest Django +version, provides easier way for Docker administrators to override SSL certificates +and access httpd log files and resolves several issues. This release also includes +lots of internal code refactoring which removes code duplication and brings down +<a href="https://codeclimate.com/github/kiwitcms/Kiwi">CodeClimate</a> metrics +to 26.9% of technical debt or 10 months to fix.</p> +<p>We've pushed the new <code>kiwitcms/kiwi</code> docker image to Docker Hub and updated the +demo instance at +<a href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>. +Starting forward the demo will use +the <code>info-at-kiwitcms.org</code> email address for all communication sent. There are real +people behind this address so if you write to us we will reply!</p> +<h2>Changes since Kiwi TCMS 4.1.0</h2> +<h3>Enhancements</h3> +<ul> +<li>Upgrade to <a href="https://docs.djangoproject.com/en/2.0/releases/2.0.3/">Django 2.0.3</a></li> +<li>Show <code>date_joined</code> column for user admin</li> +<li>Expose httpd logs to the host running docker. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/191">Issue #191</a></li> +</ul> +<h3>Bug fixes</h3> +<ul> +<li>Move SSL keys under common directory in the container. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/231">Issue #231</a></li> +<li>Always select active builds for TestRun. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/245">Issue #245</a></li> +<li>Swap <code>escape</code> and <code>escapejs</code> filters. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/234">Issue #234</a></li> +<li>Globally disable <code>delete_selected</code> action in Admin, this removes the + drop down selection widget! Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/221">Issue #221</a></li> +<li>Fix error in TestCase view when <code>from_plan</code> is empty string. Fixes + <a href="https://sentry.io/open-technologies-bulgaria-ltd/kiwi-tcms/issues/474369640/">Sentry KIWI-TCMS-Z</a></li> +<li>Fix sorting issue when None is compared to int. Fixes + <a href="https://sentry.io/open-technologies-bulgaria-ltd/kiwi-tcms/issues/473996504/">Sentry KIWI-TCMS-V</a></li> +<li>Validate form field as integer, not char. Fixes + <a href="https://sentry.io/open-technologies-bulgaria-ltd/kiwi-tcms/issues/474058623/">Sentry KIWI-TCMS-W</a></li> +<li>[docs] Remove information about importing test cases via XML. This functionality + was removed in version 3.49</li> +</ul> +<h3>Refactoring</h3> +<ul> +<li>Refactor inner class <code>CaseActions</code>. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/21">Issue #21</a> (Chenxiong Qi)</li> +<li>Only use <code>get_cases.html</code> template. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/176">Issue #176</a></li> +<li>Unify <code>get_details_review.html</code> and <code>get_details.html</code> templates</li> +<li>Remove internal <code>Prompt.render</code> class and replace with Django messages</li> +<li>Remove <code>mail/delete_plan.txt</code> template</li> +<li>Remove <code>handle_emails_pre_plan_delete</code> signal handler</li> +<li>Remove the <code>Export</code> button from TestPlan view, use Case-&gt;Export sub-menu + item in the Cases tab. Also remove the export buttons from search and advanced + search result templates. If you'd like to export the cases from a given + plan you have to open it in a new browser window and use the menu</li> +<li>Remove the <code>Print</code> button from plan search form</li> +<li>Remove TestRun cloning from search results and plan details, use sub-menu</li> +<li>Remove unnecessary JavaScript handling for <code>EnvGroup</code> edit view</li> +</ul> +<h3>Settings</h3> +<ul> +<li>Remove <code>PLAN_DELELE_EMAIL_TEMPLATE</code> setting (not used)</li> +</ul> +<h3>Models and database migrations</h3> +<ul> +<li>Use Django's own <code>DurationField</code>, instead of custom one. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/183">Issue #183</a></li> +</ul> +<p>API clients must now send values for <code>estimated_time</code> which must be in a +format that <code>parse_duration()</code> understands, for example 'DD HH:MM:SS'! See +<a href="https://docs.djangoproject.com/en/2.0/ref/utils/#django.utils.dateparse.parse_duration">https://docs.djangoproject.com/en/2.0/ref/utils/#django.utils.dateparse.parse_duration</a></p> +<p><strong>IMPORTANT:</strong> this release introduces new database migrations!</p> +<h3>Translations</h3> +<p>There are new translatable strings introduced with this release! At this moment +translating Kiwi TCMS in languages other than English is purely a +community effort. If you'd like to help consult our +<a href="http://kiwitcms.readthedocs.io/en/latest/contribution.html#translation">translations contribution page</a>.</p> +<h2>How to upgrade</h2> +<p>If you are using Kiwi TCMS as a Docker container then</p> +<div class="highlight"><pre><span></span><code><span class="nv">cd</span> <span class="nv">Kiwi</span><span class="o">/</span> +<span class="nv">git</span> <span class="nv">pull</span> +<span class="nv">docker</span><span class="o">-</span><span class="nv">compose</span> <span class="nv">down</span> +<span class="nv">docker</span> <span class="nv">pull</span> <span class="nv">kiwitcms</span><span class="o">/</span><span class="nv">kiwi</span> +<span class="nv">docker</span> <span class="nv">pull</span> <span class="nv">centos</span><span class="o">/</span><span class="nv">mariadb</span> +<span class="nv">docker</span><span class="o">-</span><span class="nv">compose</span> <span class="nv">up</span> <span class="o">-</span><span class="nv">d</span> +<span class="nv">docker</span> <span class="k">exec</span> <span class="o">-</span><span class="nv">it</span> <span class="nv">kiwi_web</span> <span class="o">/</span><span class="nv">Kiwi</span><span class="o">/</span><span class="nv">manage</span>.<span class="nv">py</span> <span class="nv">migrate</span> +</code></pre></div> + + +<h2>Help us make Kiwi TCMS better</h2> +<p>According to <a href="/blog/kiwi-tcms-team/2018/01/22/kiwi-tcms-roadmap-for-2018/">our 2018 roadmap</a> the +Kiwi TCMS team is investing a great deal of our time to make the code base more +maintainable! For the past few releases we've been balancing code refactoring +with bug-fixing and minor enhancements and we have lots of ideas down the line.</p> +<p>We want to hear your voice! Tell us how you use Kiwi TCMS inside your organization. +We want to know what works for you and what doesn't so we can make it better. Feel +free to comment below, file GitHub issues or send us an email.</p> +<p>Happy testing!</p>Kiwi TCMS 4.1.02018-02-21T22:45:00+02:002018-02-21T22:45:00+02:00Kiwi TCMS Teamtag:None,2018-02-21:/blog/kiwi-tcms-team/2018/02/21/kiwi-tcms-410/<p>We're happy to announce Kiwi TCMS version 4.1.0! +This is a bug-fix and enhancement update centered around providing more +flexibility for administrators to configure the user approval process. +Refer to the documentation for more information about +<a href="http://kiwitcms.readthedocs.io/en/latest/modules/tcms.signals.html">signals handling</a> +in Kiwi TCMS.</p> +<h2>Changes since Kiwi TCMS 4.0.0 …</h2><p>We're happy to announce Kiwi TCMS version 4.1.0! +This is a bug-fix and enhancement update centered around providing more +flexibility for administrators to configure the user approval process. +Refer to the documentation for more information about +<a href="http://kiwitcms.readthedocs.io/en/latest/modules/tcms.signals.html">signals handling</a> +in Kiwi TCMS.</p> +<h2>Changes since Kiwi TCMS 4.0.0</h2> +<h3>Enhancements and bug fixes</h3> +<ul> +<li>Add tests for <code>tcms.core.ajax.tag</code> (Anton Sankov)</li> +<li>Remove unused code from <code>tcms.core.ajax.tag</code> (Anton Sankov)</li> +<li>Refactor <code>tcms.core.ajax.tag</code> to work with only one object. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/135">Issue #135</a> (Anton Sankov)</li> +<li>Add test for tcms_api.TestRun. Closes + <a href="https://github.com/kiwitcms/Kiwi/issues/194">Issue #194</a></li> +<li>Send the <code>user_registered</code> signal when new users are registered</li> +<li>Add signal handler to notify admins on new users. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/205">Issue #205</a></li> +<li>Add <code>is_superuser</code> column to User admin. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/206">Issue #206</a></li> +<li>Properly pass variables to blocktrans tag. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/225">Issue #225</a></li> +<li>Minor documentation updates</li> +</ul> +<h3>Refactoring</h3> +<ul> +<li>Remove double thread when sending email on <code>post_save</code> signal</li> +<li>Remove unused <code>EmailBackend</code> authentication backend</li> +<li>Remove unused <code>tcms.core.models.signals</code> module</li> +<li>Consolidate all signals and handlers in <code>tcms.signals</code></li> +<li>Make use of <code>django_messages</code> during account registration</li> +</ul> +<h3>Settings</h3> +<ul> +<li>Remove <code>LISTENING_MODEL_SIGNAL</code> (internal setting)</li> +<li>New setting <code>AUTO_APPROVE_NEW_USERS</code>. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/203">Issue #203</a></li> +</ul> +<h3>Models and database migrations</h3> +<ul> +<li>Remove unused fields from <code>Product</code> model: + <code>disallow_new</code>, <code>max_vote_super_bug</code>, <code>vote_super_user</code>, + <code>field votes_to_confirm</code>, <code>default_milestone</code>, <code>milestone_url</code></li> +<li>Remove unused <code>Milestone</code> model</li> +</ul> +<p><strong>IMPORTANT:</strong> this release introduces new database migrations!</p> +<h3>Translations</h3> +<p>There are new translatable strings introduced with this release, +including translations of a few email templates! At this moment +translating Kiwi TCMS in languages other than English is purely a +community effort. If you'd like to help consult our +<a href="http://kiwitcms.readthedocs.io/en/latest/contribution.html#translation">translations contribution page</a>.</p> +<h2>How to upgrade</h2> +<p>If you are using Kiwi TCMS as a Docker container then</p> +<div class="highlight"><pre><span></span><code><span class="nv">cd</span> <span class="nv">Kiwi</span><span class="o">/</span> +<span class="nv">docker</span><span class="o">-</span><span class="nv">compose</span> <span class="nv">down</span> +<span class="nv">docker</span> <span class="nv">pull</span> <span class="nv">kiwitcms</span><span class="o">/</span><span class="nv">kiwi</span> +<span class="nv">docker</span><span class="o">-</span><span class="nv">compose</span> <span class="nv">up</span> <span class="o">-</span><span class="nv">d</span> +<span class="nv">docker</span> <span class="k">exec</span> <span class="o">-</span><span class="nv">it</span> <span class="nv">kiwi_web</span> <span class="o">/</span><span class="nv">Kiwi</span><span class="o">/</span><span class="nv">manage</span>.<span class="nv">py</span> <span class="nv">migrate</span> +</code></pre></div> + + +<p>Happy testing!</p>Kiwi TCMS & tcms-api version 4.0.02018-02-10T15:30:00+02:002018-02-10T15:30:00+02:00Kiwi TCMS Teamtag:None,2018-02-10:/blog/kiwi-tcms-team/2018/02/10/kiwi-tcms-tcms-api-version-400/<p>We're happy to announce Kiwi TCMS version 4.0.0 +and the corresponding tcms-api version 4.0.0! This is a very big release +which introduces tons of backwards incompatible changes to the RPC layer +as well as several bug-fixes and enhancements!</p> +<p>With this release Kiwi TCMS meets one of …</p><p>We're happy to announce Kiwi TCMS version 4.0.0 +and the corresponding tcms-api version 4.0.0! This is a very big release +which introduces tons of backwards incompatible changes to the RPC layer +as well as several bug-fixes and enhancements!</p> +<p>With this release Kiwi TCMS meets one of our +<a href="/blog/kiwi-tcms-team/2018/01/22/kiwi-tcms-roadmap-for-2018/">milestones for 2018</a>! All XML-RPC +namespaces now match DB model names and the API client class names. Lots of +similar and duplicate methods were removed and existing ones were simplified. +We've also reduced code duplication and technical debth by 1 month +according to stats by <a href="https://codeclimate.com/github/kiwitcms/Kiwi">CodeClimate</a>.</p> +<p><strong>IMPORTANT:</strong> this is also the first release to officially publish the +<code>kiwitcms/kiwi</code> image on Docker Hub!</p> +<p><strong>WARNING:</strong> upgrading to Kiwi TCMS 4.0.0 means you will have to upgrade +the tcms-api client as well. None of the 4.x releases is compatible with +older releases due to the massive ammount of changes in the RPC layer.</p> +<h2>Changes since Kiwi TCMS 3.50</h2> +<h3>Enhancements and bug fixes</h3> +<ul> +<li>Upgrade to Django 2.0.2 which patches a security issue</li> +<li>Pin JIRA client version to 1.0.10. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/195">Issue #195</a></li> +<li>Generate api-docs for model classes</li> +<li>Updated documentation for all RPC methods</li> +<li>Use Grappelli jQuery initialization, fixes popup windows</li> +<li>Unify RPC namespaces, API client class names and server-side model names. + Fixes <a href="https://github.com/kiwitcms/Kiwi/issues/153">Issue #153</a></li> +</ul> +<h3>Settings</h3> +<ul> +<li>Remove <code>ADMIN_PREFIX</code> setting</li> +</ul> +<h3>RPC methods refactoring</h3> +<ul> +<li>Remove <code>Build.check_build</code>, use <code>Build.filter</code></li> +<li>Remove <code>Build.get</code>, use <code>Build.filter</code></li> +<li>Remove <code>Build.get_caseruns</code>, use <code>TestCaseRun.filter</code></li> +<li> +<p>Remove <code>Build.get_runs</code>, use <code>TestRun.filter</code></p> +</li> +<li> +<p>Rename <code>Env.filter_groups</code>, use <code>Env.Group.filter</code></p> +</li> +<li>Rename <code>Env.filter_properties</code>, use <code>Env.Property.filter</code></li> +<li> +<p>Rename <code>Env.filter_values</code>, use <code>Env.Value.filter</code></p> +</li> +<li> +<p>Remove <code>Product.add_component</code>, use <code>Component.create</code></p> +</li> +<li>Remove <code>Product.add_version</code>, use <code>Version.create</code></li> +<li>Remove <code>Product.check_category</code>, use <code>Category.filter</code></li> +<li>Remove <code>Product.check_component</code>, use <code>Component.filter</code></li> +<li>Remove <code>Product.check_product</code>, use <code>Product.filter</code></li> +<li>Remove <code>Product.filter_categories</code>, use <code>Category.filter</code></li> +<li>Remove <code>Product.filter_components</code>, use <code>Component.filter</code></li> +<li>Remove <code>Product.filter_versions</code>, use <code>Version.filter</code></li> +<li>Remove <code>Product.get</code>, use <code>Product.filter</code></li> +<li>Remove <code>Product.get_builds</code>, use <code>Build.filter</code></li> +<li>Remove <code>Product.get_cases</code>, use <code>TestCase.filter</code></li> +<li>Remove <code>Product.get_categories</code>, use <code>Category.filter</code></li> +<li>Remove <code>Product.get_category</code>, use <code>Category.filter</code></li> +<li>Remove <code>Product.get_component</code>, use <code>Component.filter</code></li> +<li> +<p>Remove <code>Product.update_component</code>, use <code>Component.update</code></p> +</li> +<li> +<p>Rename <code>Tag.get_tags</code> to <code>Tag.filter</code></p> +</li> +<li> +<p>Remove <code>TestCase.add_comment</code></p> +</li> +<li>Update signature for <code>TestCase.add_component</code></li> +<li>Update signature for <code>TestCase.add_tag</code></li> +<li>Remove <code>TestCase.add_to_run</code>, use <code>TestRun.add_case</code></li> +<li>Remove <code>TestCase.attach_bug</code>, use <code>Bug.create</code></li> +<li>Remove <code>TestCase.calculate_average_estimated_time</code></li> +<li>Remove <code>TestCase.calculate_total_estimated_time</code></li> +<li>Remove <code>TestCase.check_case_status</code>, use <code>TestCaseStatus.filter</code></li> +<li>Remove <code>TestCase.check_priority</code>, use <code>Priority.filter</code></li> +<li>Update signature for <code>TestCase.create</code>, no longer accepts <code>plan</code>, + <code>component</code> and <code>bug</code> dict attributes. Instead use + <code>TestPlan.add_case</code>, <code>TestCase.add_component</code> and <code>Bug.create</code></li> +<li>Remove <code>TestCase.detach_bug</code>, use <code>Bug.remove</code></li> +<li>Remove <code>TestCase.filter_count</code></li> +<li>Remove <code>TestCase.get</code>, use <code>TestCase.filter</code></li> +<li>Remove <code>TestCase.get_bugs</code>, use <code>Bug.filter({'case': ?})</code></li> +<li>Remove <code>TestCase.get_bug_systems</code></li> +<li>Remove <code>TestCase.get_case_status</code>, use <code>TestCaseStatus.filter</code></li> +<li>Update signature for <code>TestCase.get_components</code></li> +<li>Remove <code>TestCase.get_plans</code>, use <code>TestPlan.filter({'case': ?})</code></li> +<li>Remove <code>TestCase.get_priority</code>, use <code>Priority.filter</code></li> +<li>Remove <code>TestCase.get_tags</code>, use <code>Tag.filter({'case': ?})</code></li> +<li>Remove <code>TestCase.get_text</code>, use <code>TestCase.filter</code></li> +<li>Remove <code>TestCase.link_plan</code>, use <code>TestPlan.add_case</code></li> +<li>Rename <code>TestCase.notification_add_cc</code> to <code>TestCase.add_notification_cc</code> + and update signature</li> +<li>Rename <code>TestCase.notification_get_cc_list</code> to <code>TestCase.get_notification_cc</code> + and update signature</li> +<li>Rename <code>TestCase.notification_remove_cc</code> to <code>TestCase.remove_notification_cc</code> + and update signature</li> +<li>Update signature for <code>TestCase.remove_component</code></li> +<li>Update signature for <code>TestCase.remove_tag</code></li> +<li>Remove <code>TestCase.store_text</code>, use <code>TestCase.update</code> with + <code>setup</code>, <code>breakdown</code>, <code>action</code> and <code>effect</code> attributes in the parameter dict</li> +<li> +<p>Remove <code>TestCase.unlink_plan</code>, use <code>TestPlan.remove_case</code></p> +</li> +<li> +<p>Remove <code>TestCasePlan.get</code></p> +</li> +<li> +<p>Remove <code>TestCasePlan.update</code></p> +</li> +<li> +<p>Update <code>TestCaseRun.add_comment</code> to accept a single ID as first parameter</p> +</li> +<li>Remove <code>TestCaseRun.attach_bug</code>, use <code>Bug.create</code></li> +<li>Rename <code>TestCaseRun.attach_log</code> to <code>TestCaseRun.add_log</code></li> +<li>Remove <code>TestCaseRun.detach_bug</code>, use <code>Bug.remove</code></li> +<li>Rename <code>TestCaseRun.detach_log</code> to <code>TestCaseRun.remove_log</code></li> +<li>Remove <code>TestCaseRun.get</code>, use <code>TestCaseRun.filter</code></li> +<li>Remove <code>TestCaseRun.get_bugs</code>, use <code>Bug.filter({'case_run': ?})</code></li> +<li>Remove <code>TestCaseRun.get_case_run_status_by_name</code></li> +<li> +<p>Update signature for <code>TestCaseRun.update</code></p> +</li> +<li> +<p>Remove <code>TestPlan.add_component</code></p> +</li> +<li>Update signature for <code>TestPlan.add_tag</code></li> +<li>Remove <code>TestPlan.check_plan_type</code>, use <code>PlanType.filter</code></li> +<li>Remove <code>TestPlan.filter_count</code></li> +<li>Remove <code>TestPlan.get</code>, use <code>TestPlan.filter</code></li> +<li>Remove <code>TestPlan.get_all_cases_tags</code></li> +<li>Remove <code>TestPlan.get_components</code></li> +<li>Remove <code>TestPlan.get_env_groups</code>, use <code>Env.Group.filter({'testplan': ?})</code></li> +<li>Remove <code>TestPlan.get_plan_type</code>, use <code>PlanType.filter</code></li> +<li>Remove <code>TestPlan.get_product</code>, use <code>Product.filter({'plan': ?})</code></li> +<li>Remove <code>TestPlan.get_tags</code>, use <code>Tag.filter({'plan': ?})</code></li> +<li>Remove <code>TestPlan.get_test_cases</code>, use <code>TestCase.filter({'plan': ?})</code></li> +<li>Remove <code>TestPlan.get_test_runs</code>, use <code>TestRun.filter({'plan': ?})</code></li> +<li>Remove <code>TestPlan.get_text</code>, use <code>TestPlan.filter</code></li> +<li>Rename <code>TestPlan.link_env_value</code> to <code>TestPlan.add_env_value</code> + and update signature</li> +<li>Remove <code>TestPlan.remove_component</code></li> +<li>Update signature for <code>TestPlan.remove_tag</code></li> +<li>Remove <code>TestPlan.store_text</code>, use <code>TestPlan.update</code> with + a <code>text</code> attribute in the parameter values</li> +<li> +<p>Rename <code>TestPlan.unlink_env_value</code> to <code>TestPlan.remove_env_value</code> + and update signature</p> +</li> +<li> +<p>Rename <code>TestRun.add_cases</code> to <code>TestRun.add_case</code> and update signature</p> +</li> +<li>Update signature for <code>TestRun.add_tag</code></li> +<li>Update signature for <code>TestRun.create</code>, no longer accepts <code>case</code> + dict attribute. Instead use <code>TestRun.add_case</code></li> +<li>Remove <code>TestRun.filter_count</code></li> +<li>Remove <code>TestRun.get</code>, use <code>TestRun.filter</code></li> +<li>Remove <code>TestRun.get_bugs</code></li> +<li>Remove <code>TestRun.get_env_values</code>, use <code>Env.Value.filter({'testrun': ?})</code></li> +<li>Remove <code>TestRun.get_tags</code>, use <code>Tag.filter({'run': ?})</code></li> +<li>Rename <code>TestRun.get_test_cases</code> to <code>TestRun.get_cases</code></li> +<li>Remove <code>TestRun.get_test_case_runs</code>, use <code>TestCaseRun.filter({'run': ?})</code></li> +<li>Remove <code>TestRun.get_test_plan</code>, use <code>TestPlan.filter({'run': ?})[0]</code></li> +<li>Rename <code>TestRun.remove_cases</code> to <code>TestRun.remove_case</code> and update signature</li> +<li>Update signature for <code>TestRun.remove_tag</code></li> +<li> +<p>Update signature for <code>TestRun.update</code></p> +</li> +<li> +<p>Rename <code>User.get</code> to <code>User.filter</code></p> +</li> +<li>Rename <code>User.join</code> to <code>User.join_group</code></li> +<li>Update signature for <code>User.update</code></li> +</ul> +<h3>Models and database migrations</h3> +<ul> +<li>Remove model <code>TestEnvironment</code></li> +<li>Remove model <code>TestEnvironmentCategory</code></li> +<li>Remove model <code>TestEnvironmentElement</code></li> +<li>Remove model <code>TestEnvironmentMap</code></li> +<li>Remove model <code>TestEnvironmentProperty</code></li> +<li>Remove model <code>TestPlanComponent</code></li> +<li>Remove <code>TestPlan.get_text_with_version()</code></li> +<li>Remove <code>TestRun.get_previous_or_next()</code></li> +</ul> +<p><strong>IMPORTANT:</strong> this release introduces new database migrations!</p> +<h2>tcms-api changes since 1.5.1</h2> +<ul> +<li><strong>Make the code compatible with Kiwi TCMS XML-RPC v4.0.0</strong></li> +<li>Rename <code>Status</code> to <code>TestCaseRunStatus</code></li> +<li>Rename <code>CaseRun</code> to <code>TestCaseRun</code></li> +<li>Remove <code>PlanStatus</code>, use <code>TestPlan.is_active</code></li> +<li>Remove <code>RunStatus</code>, use <code>TestRun.finished</code></li> +<li>Remove <code>TestPlan.components</code> container</li> +<li>Update signature for <code>TestPlan</code>. Now accept <code>text</code> kwarg in constructor + instead of <code>document</code>.</li> +</ul> +<h2>How to upgrade</h2> +<p>If you are using Kiwi TCMS as a Docker container then</p> +<div class="highlight"><pre><span></span><code><span class="nv">cd</span> <span class="nv">Kiwi</span><span class="o">/</span> +<span class="nv">docker</span><span class="o">-</span><span class="nv">compose</span> <span class="nv">down</span> +<span class="nv">docker</span> <span class="nv">pull</span> <span class="nv">kiwitcms</span><span class="o">/</span><span class="nv">kiwi</span> +<span class="nv">docker</span><span class="o">-</span><span class="nv">compose</span> <span class="nv">up</span> <span class="o">-</span><span class="nv">d</span> +<span class="nv">docker</span> <span class="k">exec</span> <span class="o">-</span><span class="nv">it</span> <span class="nv">kiwi_web</span> <span class="o">/</span><span class="nv">Kiwi</span><span class="o">/</span><span class="nv">manage</span>.<span class="nv">py</span> <span class="nv">migrate</span> +</code></pre></div> + + +<p>Happy testing!</p>Kiwi TCMS version 3.502018-01-25T11:30:00+02:002018-01-25T11:30:00+02:00Kiwi TCMS Teamtag:None,2018-01-25:/blog/kiwi-tcms-team/2018/01/25/kiwi-tcms-version-350/<p>We're happy to announce Kiwi TCMS version 3.50 +and the corresponding tcms-api version 1.5.1! This is a bug-fix and +enhancement release and we advise you to upgrade as soon as possible!</p> +<h2>Changes since Kiwi TCMS 3.49</h2> +<h3>Enhancements and bug fixes</h3> +<ul> +<li>Update documentation for XML-RPC and positional …</li></ul><p>We're happy to announce Kiwi TCMS version 3.50 +and the corresponding tcms-api version 1.5.1! This is a bug-fix and +enhancement release and we advise you to upgrade as soon as possible!</p> +<h2>Changes since Kiwi TCMS 3.49</h2> +<h3>Enhancements and bug fixes</h3> +<ul> +<li>Update documentation for XML-RPC and positional arguments, translations, + environment groups</li> +<li>Enable translations. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/129">Issue #129</a></li> +<li>Register models for DB translations. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/182">Issue #182</a></li> +<li>New German translations (@xbln)</li> +<li>Require django-attachments&gt;=1.3 and restore attachments count in tabs</li> +<li>Fix missing tag names in TestPlan page</li> +<li>Hide admin forms for some models not supposed to be edited by users. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/174">Issue #174</a></li> +<li>Use django-grappelli for the admin templates: modern look and feel and + less template files overridden by Kiwi TCMS</li> +<li>Load values for default property in TestRun 'Add Property' dialog. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/142">Issue #142</a></li> +<li>Correctly find property ID when renaming environment properties. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/167">Issue #167</a></li> +<li>Convert request body to string. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/177">Issue #177</a></li> +</ul> +<h3>Refactoring</h3> +<ul> +<li>Remove batch tag Add/Remove sub-menu in TestPlan view (Anton Sankov)</li> +<li>Remove Edit tag button in Tag tab (Anton Sankov)</li> +<li>Remove template functions. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/107">Issue #107</a></li> +<li>Remove custom HttpJSONResponse classes</li> +<li>Remove unused and duplicate code</li> +</ul> +<h2>tcms-api changes since 1.5.0</h2> +<ul> +<li>Fix order of TestCaseRun statuses. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/184">Issue #184</a></li> +</ul> +<p><strong>IMPORTANT:</strong> this release introduces new database migrations!</p> +<h2>How to upgrade</h2> +<p>If you are using Kiwi TCMS as a Docker container then</p> +<div class="highlight"><pre><span></span><code><span class="nv">cd</span> <span class="nv">Kiwi</span><span class="o">/</span> +<span class="nv">docker</span><span class="o">-</span><span class="nv">compose</span> <span class="nv">down</span> +<span class="nv">make</span> <span class="nv">docker</span><span class="o">-</span><span class="nv">image</span> +<span class="nv">docker</span><span class="o">-</span><span class="nv">compose</span> <span class="nv">up</span> <span class="o">-</span><span class="nv">d</span> +<span class="nv">docker</span> <span class="k">exec</span> <span class="o">-</span><span class="nv">it</span> <span class="nv">kiwi_web</span> <span class="o">/</span><span class="nv">Kiwi</span><span class="o">/</span><span class="nv">manage</span>.<span class="nv">py</span> <span class="nv">migrate</span> +</code></pre></div> + + +<p>Happy testing!</p>Kiwi TCMS roadmap for 20182018-01-22T12:10:00+02:002018-01-22T12:10:00+02:00Kiwi TCMS Teamtag:None,2018-01-22:/blog/kiwi-tcms-team/2018/01/22/kiwi-tcms-roadmap-for-2018/<p>Hello everyone. As you know Kiwi TCMS has been around for a while and it has +gone through some big changes in the last year! It started as an abandoned +Django 1.6 project with broken test suite and is now currently running on the +latest Django 2.0.1 …</p><p>Hello everyone. As you know Kiwi TCMS has been around for a while and it has +gone through some big changes in the last year! It started as an abandoned +Django 1.6 project with broken test suite and is now currently running on the +latest Django 2.0.1 with Python 3.5! It is clearly a legacy code base!</p> +<p>We, the Kiwi TCMS team, have learned a lot more about the project and this +blog post describes our roadmap for 2018 in terms of technical work and community +engagement. The general technical direction is cleaner/simpler code, +improved UI/UX and more tests!</p> +<h2>Make code easier to maintain</h2> +<p>The current code is a bunch of very large modules and functions and classes +bundled together. It is also old and sometimes looks like spaghetti code. +<a href="https://codeclimate.com/github/kiwitcms/Kiwi">CodeClimate</a> gives us a "D" rating +for maintainability with a 1 year estimated effort to fix that. There are 600+ +code smells and 600+ duplications detected by CodeClimate. Our goal is to get this +number down to zero!</p> +<h2>Use pylint and pylint-django</h2> +<p>pylint is the standard static analyzer for Python and currently it reports over +4000 errors and warnings when executed against Kiwi TCMS. This is a huge number and +it needs to become zero! We've also identified interesting patterns that will +make it into pylint and pylint-django plugins!</p> +<h2>Render HTML, return JSON</h2> +<p>The current state of affairs is a mix and match of everything. There are views that +render HTML, others which return pure JSON, other which return HTML encoded as JSON string +and probably everything in between. Views that render pages need to do just that +and views that are used with AJAX calls from the UI need to return pure JSON! +A lot of these are hiding in plain sight and will come to light when we start +overhauling the user interface.</p> +<h2>Submit forms, post JSON, GET clean URLs</h2> +<p>There are lots of forms in Kiwi TCMS. Sometimes they are submitted by the user and +other times they are serialized and POSTed by some JavaScript code. This isn't +very easy to understand plus this entire home-grown utility code doesn't bring +anything useful to the project. All of these need to be identified and cleaned up. +JavaScript code needs to send or consume JSON, nothing else!</p> +<p>There are also lots of places where Kiwi issues GET requests with a number of +query parameters. Our goal is to minimize these and where possible have the +parameters as part of the Django urls scheme, not as query strings.</p> +<h2>API layer</h2> +<p>The current API module is a bit disorganized. API namespaces don't match the +names of the underlying DB models and the API client classes don't match any +of the other two! The way we pass parameters and what these parameters are +named should match between the client, the RPC method and the underlying model!</p> +<p>In earlier releases we've removed duplicate or similar RPC methods and we +think there are more of these that need our love.</p> +<h2>Documentation</h2> +<p>We've started producing documentation from doc-strings and most of the RPC +methods have such. However it is unformatted and barely readable, sometimes +even inaccurate. Previous releases made progress on this but there's a lot +more to cover.</p> +<p>All RPC methods should be documented first and then the rest of Kiwi's +internals to make development easier!</p> +<h2>No vendored JavaScript libraries</h2> +<p>There are 11 vendored-in JavaScript files that we carry around in Kiwi TCMS. +Most notable are jQuery plus a few addons and Handlebars.js. To the extent possible +our goal is to use jQuery provided by Django or installed via NPM dependencies!</p> +<h2>Less HTML templates with better organization</h2> +<p>There are over 100 HTML templates in Kiwi TCMS. There are also email and even +JavaScript templates. For example there are <code>get_cases.html</code> and <code>get_review_cases.html</code> +which are essentially the same. This is kind of also true for templates used in +new and edit views! Such templates should be unified!</p> +<p>Those JavaScript templates need to be totally gone!</p> +<p>All templates are stuffed together in a single directory and their names +are not very predictable. They need to be split per application and follow +some kind of naming convention.</p> +<h2>Modern interface with Patternfly</h2> +<p>The UI already uses the Patternfly library for some of its widgets. Most notably +the main navigation header. Our goal is for the entire UI to be ported to Patternfly +by updating widgets HTML and CSS where needed. +This will also help clean things up a lot. At the same time we'll be rethinking how +information is organized on screen and how the person interacts with it! Usability +suggestions are very welcome!</p> +<p>This move will also help us get rid of the Handlebars dependency which is now +used for pop-up dialogs.</p> +<h2>JavaScript updates and front-end testing</h2> +<p>There's lots of JavaScript code on the front-end and honestly we don't quite know +what it does or how it is organized. There are also no tests on the front-end +whatsoever!</p> +<p>It is our goal for this to change with the intention to not overdo the JavaScript +part and keep things very minimal. At the moment we're thinking about vanilla jQuery +that will act as a proxy between the browser and the back-end!</p> +<h2>Community efforts</h2> +<p>A year ago hardly anybody knew what Kiwi TCMS was, the project didn't even have +this name, there was 1 active contributor and hardly any users! Now the community +has started to slowly revitalize, we're seeing some contributions from our +junior team members (more on this in another blog post) and also seeing +folks installing and using Kiwi TCMS and reporting interesting bugs and feature +requests around it!</p> +<p>For the upcoming year our goal is to seek active engagement with other open source +projects that could make use of Kiwi TCMS and work with them. Kudos to +openSUSE for being the first +<a href="https://github.com/openSUSE/mentoring/issues/95">to propose such integration</a>! +We're also planning couple of appearances at a few conferences but there's +nothing confirmed yet.</p> +<p>Every other contribution in terms of bug reports, new users and feature requests +is of course welcome but we're very conscious of the fact that there's tons +of work to be done and the team is still very small!</p> +<p>Team wise we'd like to get the existing team members up to speed and tackle +the above tasks with priority. This will also help us introduce bug fixes +and new features more quickly!</p> +<p>Happy testing!</p>Kiwi TCMS version 3.492018-01-02T15:30:00+02:002018-01-02T15:30:00+02:00Kiwi TCMS Teamtag:None,2018-01-02:/blog/kiwi-tcms-team/2018/01/02/kiwi-tcms-version-349/<p>Happy New Year to everyone. We're happy to announce Kiwi TCMS version 3.49 +and the corresponding tcms-api version 1.5.0! This release includes a fair +amount of bug fixes and many changes related to Kiwi's RPC layer!</p> +<p>Most importantly Kiwi is updated to Django 2.0.1, the …</p><p>Happy New Year to everyone. We're happy to announce Kiwi TCMS version 3.49 +and the corresponding tcms-api version 1.5.0! This release includes a fair +amount of bug fixes and many changes related to Kiwi's RPC layer!</p> +<p>Most importantly Kiwi is updated to Django 2.0.1, the API client no longer +supports Python 2 and many RPC methods have been removed or updated. +<a href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a> +has also been updated so you can explore the new version.</p> +<h2>Changes since Kiwi TCMS 3.48</h2> +<h3>Enhancements and bug fixes</h3> +<ul> +<li>Upgrade to Django 2.0.1</li> +<li>Don't log passwords sent via RPC</li> +<li>Log XML-RPC requests from anonymous users. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/126">Issue #126</a></li> +<li>Order <code>TCMSEnvValue</code> records by property name and value. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/155">Issue #155</a></li> +<li>flake8 fixes (Anton Sankov)</li> +<li>Start building source code documentation from Python doc strings</li> +<li>Properly urlencode emails in personal menu links</li> +<li>Remove test case import via XML files</li> +<li>Use django-attachments for user uploaded files. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/160">Issue #160</a> + As part of this change we no longer copy Plan and Case attachments when + cloning these objects.</li> +</ul> +<p>NOTE: Since django-attachments introduces new permission objects + you will have to adjust default permissions for existing users! + In order for them to be able to upload/delete their own files they + need to have <code>attachments.add_attachment</code> and <code>atachments.delete_attachment</code> + permissions.</p> +<p>These same permissions are added by default to the 'Tester' group. + If you are running an existing installation registering a new user + with Kiwi TCMS will update the default permissions for this group!</p> +<h3>Refactoring</h3> +<ul> +<li>Remove unused class EditCaseNotifyThread (Chenxiong Qi)</li> +<li>Remove model TestPlanActivity (Chenxiong Qi)</li> +<li>Remove many unused models and classes</li> +<li>Execute tests via <code>manage.py test</code> and drop py.test dependency</li> +<li>Remove useless <code>TestTag.string_to_list</code> method. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/106">Issue #106</a></li> +<li>Use <code>settings.AUTH_USER_MODEL</code> in ForeignKey definitions. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/143">Issue #143</a></li> +</ul> +<h4>Settings</h4> +<ul> +<li>Rename <code>EMAIL_FROM</code> to <code>DEFAULT_FROM_EMAIL</code>. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/128">Issue #128</a></li> +<li>Rename <code>FILE_UPLOAD_DIR</code> to <code>MEDIA_ROOT</code></li> +<li>Rename <code>MAX_UPLOAD_SIZE</code> to <code>FILE_UPLOAD_MAX_SIZE</code></li> +<li>New setting <code>DELETE_ATTACHMENTS_FROM_DISK</code></li> +<li>Remove unused <code>XMLRPC_TEMPLATE</code> and <code>TESTOPIA_XML_VERSION</code></li> +</ul> +<h3>Server side API</h3> +<ul> +<li>Migrate to <code>django-modern-rpc</code> and remove home-grown XML-RPC handling code. + As part of this change the XML-RPC endpoint has been changed to <code>/xml-rpc/</code>. + There's also a new JSON-RPC endpoint at <code>/json-rpc/</code>!</li> +<li><code>Auth.login</code> method now accepts positional parameters <code>username, password</code> + instead of dict</li> +<li><code>TestCaseRun.get</code> method now accepts a query dict as parameter</li> +<li><code>TestCaseRun.get_bugs</code> method now accepts a query dict as parameter</li> +<li>Remove <code>Build.lookup_id_by_name</code>, <code>Build.lookup_name_by_id</code> RPC methods</li> +<li>Remove <code>Product.lookup_name_by_id</code>, <code>Product.lookup_id_by_name</code> RPC methods</li> +<li>Remove <code>Product.get_components</code>, use <code>Product.filter_components</code> instead</li> +<li>Remove <code>Product.get_plans</code>, use <code>TestPlan.filter</code> instead</li> +<li>Remove <code>Product.get_runs</code>, use <code>TestRun.filter</code> instead</li> +<li>Remove <code>Product.get_tag</code>, use <code>Tag.get_tags</code> instead</li> +<li>Remove <code>Product.get_versions</code>, use <code>Product.filter_versions</code> instead</li> +<li>Remove <code>TestCaseRun.filter_count</code>, use <code>TestCaseRun.filter</code> instead</li> +<li>Remove <code>TestCaseRun.get_s</code>, use <code>TestCaseRun.get</code> instead</li> +<li>Remove <code>TestCaseRun.get_bugs_s</code>, use <code>TestCaseRun.get_bugs</code> instead</li> +<li>Remove <code>TestCaseRun.get_case_run_status</code>, use + <code>TestCaseRun.get_case_run_status_by_name</code> instead</li> +<li>Remove <code>TestCaseRun.get_completion_time</code>, <code>TestCaseRun.get_completion_time_s</code> + RPC methods. Instead calculate them on the client side</li> +<li>Rename <code>TestCaseRun.check_case_run_status</code> to <code>TestCaseRun.get_case_run_status_by_name</code></li> +<li><code>TestCaseRun.detach_log</code> will not raise exceptions when deleting logs from + non-existing TestCaseRun objects.</li> +<li>Remove <code>User.get_me</code>, instead use <code>User.get</code> without parameters</li> +<li>Remove <code>Version.</code> and <code>Testopia.</code> RPC modules</li> +<li>Update documentation for RPC methods in <code>Auth</code>, <code>Build</code> and <code>Env</code> namespaces. + Unformatted documentation is also available for the rest of the RPC methods</li> +</ul> +<h2>tcms-api changes since 1.4.0</h2> +<ul> +<li>Update endpoint configuration, compatible with Kiwi TCMS 3.49</li> +<li>Drop support for Python 2</li> +<li>Remove the internal <code>do_command</code> method which eliminates use of <code>eval()</code></li> +<li>Remove <code>TCMSXmlrpc.get_me()</code> and <code>TCMSXmlrpc.build_get()</code> methods</li> +</ul> +<p><strong>IMPORTANT:</strong> this release introduces new database migrations!</p> +<h2>How to upgrade</h2> +<p>If you are using Kiwi TCMS as a Docker container then</p> +<div class="highlight"><pre><span></span><code><span class="nv">cd</span> <span class="nv">Kiwi</span><span class="o">/</span> +<span class="nv">docker</span><span class="o">-</span><span class="nv">compose</span> <span class="nv">down</span> +<span class="nv">make</span> <span class="nv">docker</span><span class="o">-</span><span class="nv">image</span> +<span class="nv">docker</span><span class="o">-</span><span class="nv">compose</span> <span class="nv">up</span> <span class="o">-</span><span class="nv">d</span> +<span class="nv">docker</span> <span class="k">exec</span> <span class="o">-</span><span class="nv">it</span> <span class="nv">kiwi_web</span> <span class="o">/</span><span class="nv">Kiwi</span><span class="o">/</span><span class="nv">manage</span>.<span class="nv">py</span> <span class="nv">migrate</span> +</code></pre></div> + + +<p>Happy testing!</p>Kiwi TCMS Python API client2017-12-08T15:20:00+02:002017-12-08T15:20:00+02:00Kiwi TCMS Teamtag:None,2017-12-08:/blog/kiwi-tcms-team/2017/12/08/kiwi-tcms-python-api-client/<p>We are happy to announce the first official release of the +<a href="https://pypi.org/project/tcms-api/">tcms-api</a> package! +This is a Python client for Kiwi TCMS.</p> +<p>There are couple of main distinctions in this module:</p> +<ul> +<li>mutable vs. immutable types of objects</li> +<li>high-level class interface vs. low-level XML-RPC interface</li> +</ul> +<p>For more information you should check-out the …</p><p>We are happy to announce the first official release of the +<a href="https://pypi.org/project/tcms-api/">tcms-api</a> package! +This is a Python client for Kiwi TCMS.</p> +<p>There are couple of main distinctions in this module:</p> +<ul> +<li>mutable vs. immutable types of objects</li> +<li>high-level class interface vs. low-level XML-RPC interface</li> +</ul> +<p>For more information you should check-out the documentation +and the <code>script_examples/</code> directory.</p> +<p>At the moment the API client is both Python2 and Python3 compatible, +however it is tested only under Python3!</p> +<h2>A bit of history</h2> +<p>The original API client, like Kiwi TCMS itself began its origin under a +different name and was created primarily by Petr Splichal. Since then +Kiwi TCMS has evolved and we've decided that the API module needs to evolve +as well. At the moment the tcms-api module is a bit rough around the edges, +its documentation is not really the best one and it's currently advisable +to spend some time reading the code to figure out how everything works.</p> +<p>We're going to improve on all of these areas and we need help from the community +to do so! Please download the <code>tcms-api</code> module, check it out, write and contribute +example scripts (you can use the demo site for this), send us bug reports, suggestions +and pull requests!</p> +<p>Happy testing!</p>Kiwi TCMS version 3.482017-11-28T22:00:00+02:002017-11-28T22:00:00+02:00Kiwi TCMS Teamtag:None,2017-11-28:/blog/kiwi-tcms-team/2017/11/28/kiwi-tcms-version-348/<p>We're proud to announce Kiwi TCMS version 3.48! +This is the first release to be announced on our blog and it is also an +important one!</p> +<p>Kiwi TCMS 3.48 introduces new versions of Django and Patternfly, +a Python API client library, many bug-fixes and updated documentation.</p> +<h2>Changes since …</h2><p>We're proud to announce Kiwi TCMS version 3.48! +This is the first release to be announced on our blog and it is also an +important one!</p> +<p>Kiwi TCMS 3.48 introduces new versions of Django and Patternfly, +a Python API client library, many bug-fixes and updated documentation.</p> +<h2>Changes since KiwiTCMS 3.44</h2> +<ul> +<li>Update to Django 1.11.7 (Mr. Senko)</li> +<li>Update documentation including high level information + about how data is organized within Kiwi TCMS and how to work + with the system. (Mr. Senko)</li> +<li>Stop caching report views. (Mr. Senko)</li> +<li>Make test execution comments optional. Fixes + <a href="https://github.com/MrSenko/Kiwi/issues/77">Issue #77</a>. (Mr. Senko)</li> +<li>Escape special symbols when exporting JSON. + Fixes <a href="https://github.com/MrSenko/Kiwi/issues/78">Issue #78</a>. (Mr. Senko)</li> +<li>Remove Test Run export to XML functionality in favor of API. + Fixes <a href="https://github.com/MrSenko/Kiwi/issues/79">Issue #79</a>. (Mr. Senko)</li> +<li>Make it possible to search Test Runs via Env properties. + Fixes <a href="https://github.com/MrSenko/Kiwi/issues/82">Issue #82</a>. (Mr. Senko)</li> +<li>Display Environment properties in Test Run search results. (Mr. Senko)</li> +<li>Allow bulk update TestCase.default_tester via email. + Fixes <a href="https://github.com/MrSenko/Kiwi/issues/85">Issue #85</a>. (Mr. Senko)</li> +<li>Don't crash reports when there are untested TestCaseRuns. + Fixes <a href="https://github.com/MrSenko/Kiwi/issues/88">Issue #88</a>. (Mr. Senko)</li> +<li>Bind localhost:80 to container:80. + Fixes <a href="https://github.com/MrSenko/Kiwi/issues/99">Issue #99</a>. (Mr. Senko)</li> +<li>Enable testing with Python 3.6 in preparation for migration. (Mr. Senko)</li> +<li>If JIRA isn't fully configured then don't connect. Fixes + Fixes <a href="https://github.com/MrSenko/Kiwi/issues/100">Issue #100</a>. (Mr. Senko)</li> +<li>Pin patternfly version to 3.30 and update templates. + Fixes <a href="https://github.com/MrSenko/Kiwi/issues/120">Issue #120</a>. (Mr. Senko)</li> +<li>Show status name rather than status id in TestCaseRun change log. (Chenxiong Qi)</li> +<li>[api] Adds a Python API client with changes that make it possible to + execute on both Python 2 and Python 3. For now take a look at + <code>tcms_api/script_examples/</code> for examples how to use it.</li> +<li>[api] Remove experimental support for Teiid. (Mr. Senko)</li> +<li>[api] Cache level defaults to <code>CACHE_NONE</code> if not set. (Mr. Senko)</li> +<li>[api] Remove persistent cache, in-memory caching is still available. (Mr. Senko)</li> +<li>[api] Remove multicall support. (Mr. Senko)</li> +</ul> +<p><strong>IMPORTANT:</strong> this release introduces new database migrations!</p> +<p><em>NOTE:</em> the API client has been initially developed as the <em>python-nitrate</em> +project by Petr Splichal and other contributors! We've decided to fork their +code base into Kiwi's repository and continue further development in a central +place. This makes it easier testing the API server and client together and +allows us to move more rapidly! </p> +<p>As of now there isn't a lot of documentation +and examples on how to use the API client but we are looking to improve this. +Additional documentation and examples will be published in the project's +repository or on this blog!</p> +<h2>How to upgrade</h2> +<p>If you are using Kiwi TCMS as a Docker container then</p> +<div class="highlight"><pre><span></span><code><span class="nv">cd</span> <span class="nv">Kiwi</span><span class="o">/</span> +<span class="nv">docker</span><span class="o">-</span><span class="nv">compose</span> <span class="nv">down</span> +<span class="nv">make</span> <span class="nv">docker</span><span class="o">-</span><span class="nv">image</span> +<span class="nv">docker</span><span class="o">-</span><span class="nv">compose</span> <span class="nv">up</span> <span class="o">-</span><span class="nv">d</span> +<span class="nv">docker</span> <span class="k">exec</span> <span class="o">-</span><span class="nv">it</span> <span class="nv">kiwi_web</span> <span class="o">/</span><span class="nv">Kiwi</span><span class="o">/</span><span class="nv">manage</span>.<span class="nv">py</span> <span class="nv">migrate</span> +</code></pre></div> + + +<p>Happy testing!</p>Testing, testing. It works!2017-11-03T11:15:00+02:002017-11-03T11:15:00+02:00Kiwi TCMS Teamtag:None,2017-11-03:/blog/kiwi-tcms-team/2017/11/03/testing-testing-it-works/<p>Welcome to the official website and blog of Kiwi TCMS. +We are happy to finally be online!</p> +<p>This website was built with the help of +<a href="https://github.com/koksyncho">Kaloyan Krastev</a>, +<a href="https://github.com/FreshyMc">Tsvetoslav Garkov</a> and +<a href="https://github.com/ivo0126">Ivaylo Ivanov</a> +who will be joining the project a bit later as well.</p> +<p>In this blog you can expect various …</p><p>Welcome to the official website and blog of Kiwi TCMS. +We are happy to finally be online!</p> +<p>This website was built with the help of +<a href="https://github.com/koksyncho">Kaloyan Krastev</a>, +<a href="https://github.com/FreshyMc">Tsvetoslav Garkov</a> and +<a href="https://github.com/ivo0126">Ivaylo Ivanov</a> +who will be joining the project a bit later as well.</p> +<p>In this blog you can expect various news and progress reports around the project, +announcement of new releases and future plans. We would love to hear your +feedback so please use the comments form below.</p> +<p>Happy testing!</p> \ No newline at end of file diff --git a/feeds/misc.atom.xml b/feeds/misc.atom.xml new file mode 100644 index 00000000..ecbea36a --- /dev/null +++ b/feeds/misc.atom.xml @@ -0,0 +1,14156 @@ + +Kiwi TCMS - misc/2022-11-09T12:40:00+02:00Kiwi TCMS 11.62022-11-09T12:40:00+02:002022-11-09T12:40:00+02:00Kiwi TCMS Teamtag:None,2022-11-09:/blog/kiwi-tcms-team/2022/11/09/kiwi-tcms-116/<p>We're happy to announce Kiwi TCMS version 11.6! This is our first release +after the very positive reception we had at +<a class="reference external" href="/blog/kiwi-tcms-team/2022/10/25/meet-kiwi-tcms-at-websummit-2022-in-lisbon/">WebSummit 2022</a>!</p> +<p><strong>IMPORTANT:</strong> this is a small release which contains security updates, +general improvements, bug fixes and new translations!</p> +<p>You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms …</a></p><p>We're happy to announce Kiwi TCMS version 11.6! This is our first release +after the very positive reception we had at +<a class="reference external" href="/blog/kiwi-tcms-team/2022/10/25/meet-kiwi-tcms-at-websummit-2022-in-lisbon/">WebSummit 2022</a>!</p> +<p><strong>IMPORTANT:</strong> this is a small release which contains security updates, +general improvements, bug fixes and new translations!</p> +<p>You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<blockquote> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +</blockquote> +<p>---</p> +<blockquote> +<p>Upstream container images (x86_64):</p> +<pre class="literal-block"> +kiwitcms/kiwi latest 9773335a58d1 612MB +</pre> +</blockquote> +<p><strong>IMPORTANT:</strong> version tagged and multi-arch +<a class="reference external" href="/containers/">container</a> images are available only to +<a class="reference external" href="/#subscriptions">subscribers</a>!</p> +<div class="section" id="changes-since-kiwi-tcms-11-5"> +<h2>Changes since Kiwi TCMS 11.5</h2> +<div class="section" id="security"> +<h3>Security</h3> +<ul class="simple"> +<li>Update Django from 4.0.7 to 4.1.3 which contains multiple bug fixes and +security improvements. See <a class="reference external" href="https://docs.djangoproject.com/en/4.1/releases/4.1.3/">https://docs.djangoproject.com/en/4.1/releases/4.1.3/</a></li> +<li>Sanitize HTML input when generating history diff to prevent XSS attacks</li> +</ul> +</div> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul> +<li><p class="first">Update django-extensions from 3.2.0 to 3.2.1</p> +</li> +<li><p class="first">Update jira from 3.4.0 to 3.4.1</p> +</li> +<li><p class="first">Update psycopg2 from 2.9.3 to 2.9.5</p> +</li> +<li><p class="first">Update pygithub from 1.55 to 1.57</p> +</li> +<li><p class="first">Update python-gitlab from 3.9.0 to 3.11.0</p> +</li> +<li><p class="first">Update tzdata from 2022.2 to 2022.6</p> +</li> +<li><p class="first">Container is now built on top of Red Hat Enteroprise Linux 9 and Python 3.9</p> +<p><strong>Warning:</strong></p> +<blockquote> +<p>There is high risk of breaking downstream containers. Pay attention to +bind-mounted settings files. Inspect downstream <tt class="docutils literal">Dockerfile</tt> &amp; <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> +files !!!</p> +</blockquote> +</li> +<li><p class="first">Unify some translation strings</p> +</li> +<li><p class="first">Document add-on issue tracker integrations</p> +</li> +<li><p class="first">Rename Properties to Parameters because &quot;test case parameters&quot; is +more widely used</p> +</li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li><tt class="docutils literal">JIRA.get_issue_type_from_jira()</tt> now accepts a second argument. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2929">Issue #2929</a> (&#64;cmbahadir)</li> +<li>Fix typo in documentation (Christian Clauss)</li> +<li>Trim white-space after splitting parameter values. For example the inputs +'OS=Linux' and 'OS = Windows ' will result in +Key: 'OS', Values: ['Linux', 'Windows']</li> +</ul> +</div> +<div class="section" id="refactoring-and-testing"> +<h3>Refactoring and testing</h3> +<ul class="simple"> +<li>Update Fedora from 32 to 36 in /tests/bugzilla</li> +<li>Remove Travis CI config b/c we don't use it anymore</li> +<li>Add Coverity Scan as a GitHub action</li> +<li>Don't scan devel dependencies with Coverity Scan</li> +<li>Redirect to where we came from in case posting a comment results in invalid +form</li> +<li>Configure Dependabot to update Docker containers and try tightening security +around docker containers used during testing</li> +<li>Use npm audit fix to automatically update some Node.js dependecies</li> +<li>Execute <tt class="docutils literal">npm audit signatures</tt> when installing Node.js packages</li> +<li>Start using <tt class="docutils literal">find_namespace_packages()</tt> to resolve +'Package would be ignored' warnings from setuptools</li> +<li>Add missing field in <tt class="docutils literal">setup()</tt> to avoid a warning</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/zh-CN#">Chinese Simplified translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/zh-TW#">Chinese Traditional translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/fr#">French translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/de#">German translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sk#">Slovak translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +</ul> +</div> +</div> +<div class="section" id="kiwi-tcms-enterprise-v11-6-mt"> +<h2>Kiwi TCMS Enterprise v11.6-mt</h2> +<ul> +<li><p class="first">Based on Kiwi TCMS v11.6</p> +</li> +<li><p class="first">Update containers for RHEL 9, CentOS Stream 9 and Python 3.9</p> +</li> +<li><p class="first">Update actions/checkout from 2 to 3</p> +</li> +<li><p class="first">Update django-ses from 3.1.2 to 3.2.2</p> +</li> +<li><p class="first">Update kiwitcms-tenants from 2.3.1 to 2.3.2</p> +</li> +<li><p class="first">Update kiwitcms-trackers-integration from 0.2.0 to 0.3.0. +Supports integration with OpenProject and Mantis BT. +Closes <a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2203">Issue #2203</a> and +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/879">Issue #879</a></p> +<blockquote> +<p>Private images:</p> +<pre class="literal-block"> +quay.io/kiwitcms/version 11.6 (aarch64) cf244e2f1dac 08 Nov 2022 636MB +quay.io/kiwitcms/version 11.6 (x86_64) 9773335a58d1 08 Nov 2022 612MB +quay.io/kiwitcms/enterprise 11.6-mt (aarch64) 55cf76524ebd 08 Nov 2022 858MB +quay.io/kiwitcms/enterprise 11.6-mt (x86_64) 61f48a62666b 08 Nov 2022 832MB +</pre> +</blockquote> +</li> +</ul> +<p><strong>IMPORTANT:</strong> version tagged, multi-arch and Enterprise +<a class="reference external" href="/containers/">container</a> images are available only to +<a class="reference external" href="/#subscriptions">subscribers</a>!</p> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p><a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">Backup</a> first! +Then execute the commands:</p> +<pre class="literal-block"> +cd path/containing/docker-compose/ +docker-compose down +docker-compose pull +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py upgrade +</pre> +<p>Refer to +<a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/installing_docker.html#upgrading">our documentation</a> +for more details!</p> +<p>Happy testing!</p> +<p>---</p> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us grow!</p> +<ul class="simple"> +<li><a class="reference external" href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a class="reference external" href="https://gitlab.com/gitlab-org/gitlab/-/issues/334558">Give 👍 on GitLab</a>;</li> +<li><a class="reference external" href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a class="reference external" href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> +and follow all project news;</li> +<li><a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> +and an awesome open source hacker;</li> +<li><a class="reference external" href="/#subscriptions">Become a subscriber</a> and help us sustain development</li> +</ul> +</div> +Call for participation: Testing and Automation devroom, FOSDEM'232022-11-08T15:09:00+02:002022-11-08T15:09:00+02:00Kiwi TCMS Teamtag:None,2022-11-08:/blog/kiwi-tcms-team/2022/11/08/call-for-participation-testing-and-automation-devroom-fosdem23/<p><img alt="&quot;Cfp banner&quot;" src="/images/fosdem/2023/banner.png" title="Cfp banner"></p> +<p>Attention testers! On behalf of +<a href="https://fosdem-testingautomation.github.io/"><em>Testing and Automation devroom</em></a> +we'd like to announce that call for participation is now open.</p> +<p><strong>Important:</strong> devroom will take place 09:00 to 12:50, Sunday, February 5th 2023 at +<a href="https://fosdem.org/2023/practical/transportation/">ULB Solbosch Campus, Brussels, Belgium</a>! +Presentations will be streamed online but all accepted speakers are …</p><p><img alt="&quot;Cfp banner&quot;" src="/images/fosdem/2023/banner.png" title="Cfp banner"></p> +<p>Attention testers! On behalf of +<a href="https://fosdem-testingautomation.github.io/"><em>Testing and Automation devroom</em></a> +we'd like to announce that call for participation is now open.</p> +<p><strong>Important:</strong> devroom will take place 09:00 to 12:50, Sunday, February 5th 2023 at +<a href="https://fosdem.org/2023/practical/transportation/">ULB Solbosch Campus, Brussels, Belgium</a>! +Presentations will be streamed online but all accepted speakers are required to deliver +their talks in person! The devroom will not host pre-recorded videos in 2023!</p> +<p>Here are some ideas for topics that are a good fit for this devroom:</p> +<p>Testing in the real, open source world</p> +<ul> +<li>War stories/strategies for testing large scale or complex projects</li> +<li>Demystify resource e.g. systems/device/cloud provisioning in a CI loop</li> +<li>Tools that extend the ability to test low-level code, e.g. bootloaders, init +systems, etc.</li> +<li>Projects that are introducing new/interesting ways of testing "systems"</li> +<li>Address the automated testing frameworks fragmentation</li> +<li>Lessons learned from testing</li> +</ul> +<p>Cool Tools (good candidates for lightning talks)</p> +<ul> +<li>How your open source tool made developing quality software better</li> +<li>What tools do you use to setup your CI/CD</li> +<li>Combining projects/plugins/tools to build amazing things "Not enough people in +the open source community know how to use $X, but here's a tutorial on how to +use $X to make your project better."</li> +</ul> +<p>In the past the devroom has seen both newbies/students and experienced professionals and +past speakers as part of the audience and talks covering from beginner/practical +to advanced/abstract topics. If you have doubts then submit your proposal and +leave a comment for the devroom managers and we'll get back to you.</p> +<p>Checkout +<a href="https://fosdem-testingautomation.github.io/">https://fosdem-testingautomation.github.io/</a> for more information!</p> +<p>Happy Testing!</p> +<hr> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul> +<li><a href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a href="https://gitlab.com/gitlab-org/gitlab/-/issues/334558">Give 👍 on GitLab</a>;</li> +<li><a href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> + and follow all project news;</li> +<li><a href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> and an awesome open source hacker;</li> +<li><a href="/#subscriptions">Become a customer</a> and we'll share our profits with the community</li> +</ul>Meet Kiwi TCMS at WebSummit 2022 in Lisbon2022-10-25T11:35:00+03:002022-10-25T11:35:00+03:00Kiwi TCMS Teamtag:None,2022-10-25:/blog/kiwi-tcms-team/2022/10/25/meet-kiwi-tcms-at-websummit-2022-in-lisbon/<p>Kiwi TCMS is happy to announce that we're taking part in +<a href="https://websummit.com/">WebSummit 2022</a>, Nov 01-04 in Lisbon, Portugal. +We're joining as a <a href="https://websummit.com/startups/featured-startups">featured startup</a> +in the <em>Enterprise Software Solutions</em> category.</p> +<p>Kiwi TCMS will have an on-site presence on +<strong>Wednesday, Nov 02 at Pavilion 4, Stand A709</strong>. Check-out the map for …</p><p>Kiwi TCMS is happy to announce that we're taking part in +<a href="https://websummit.com/">WebSummit 2022</a>, Nov 01-04 in Lisbon, Portugal. +We're joining as a <a href="https://websummit.com/startups/featured-startups">featured startup</a> +in the <em>Enterprise Software Solutions</em> category.</p> +<p>Kiwi TCMS will have an on-site presence on +<strong>Wednesday, Nov 02 at Pavilion 4, Stand A709</strong>. Check-out the map for more details: +<img alt="venue map" src="/images/conf/websummit/stand2022.png" title="venue map"></p> +<h2>For engineers</h2> +<p>At the exhibition stand you will have the opportunity to perform some real +<a href="/blog/kiwi-tcms-team/2020/10/10/progress-update-on-open-source-hardware-for-black-box-testing/">black-box testing</a>, +learn about Salience bias, Peltzman effect and Wason's experiments and take a photo with +our lovely mascot. We've got new stickers too!</p> +<p>Alex and Zaklina will be there to answer all of your questions regarding +open source, community, support, various integrations and the differences between +<em>Self-Support</em>, <em>SaaS</em> and <em>Enterprise</em> <a href="/#subscriptions">subscriptions</a>!</p> +<p><img alt="&quot;black boxes&quot;" src="/images/conf/websummit/black_boxes.png" title="black boxes"></p> +<p><strong>IMPORTANT:</strong> We've previously announced participation in +<a href="https://testingportugal.pstqb.pt/en/">Testing Portigal</a> at the end of November. +Unfortunately this had to be canceled due to personal reasons. If you are a test or +QA engineer please swing by and Alex can tell you a bit about his presentation!</p> +<h2>For partners</h2> +<p>If you are another ISV providing engineering tools, a product outsourcing company +or a devel/testing services venture we've got a partnership proposal for you!</p> +<p>We're interested in partners where we can integrate other products with Kiwi TCMS +and provide a better offering; provide extra services (e.g. managed hosting) and/or +provide more transparency to your own customers (e.g. allow them to see how their products +are being tested).</p> +<p>Message us via the WebSummit mobile app and request a meeting or better yet, +find our team on-site!</p> +<h2>After hours</h2> +<p>The Kiwi TCMS team will be joining the following after-hours events:</p> +<ul> +<li>Nov 01 - <a href="https://www.meetup.com/lagos-digital-nomads-community-meetup-group/events/289071623/">MEETUP - Local &amp; International Entrepreneurs &amp; Digital Nomads</a></li> +<li>Nov 02 - <a href="https://www.meetup.com/bites-bytes/events/288577914/">Bites and bytes founder gathering: dev tools &amp; open source</a></li> +<li>Nov 03 - <a href="https://www.meetup.com/lisbon-digital-nomads/events/288840698/">Web Summit 2022 Special! Lisbon Digital Nomads Meetup</a></li> +<li>Nov 04 - Meeting with <a href="https://www.youtube.com/watch?v=Wob_L_SrEwE">QGIS community</a> which have been onboard + with Kiwi TCMS for some time now. Ping <a href="https://github.com/SrNetoChan">Alexandre Neto</a> if you would like + to join</li> +<li>Nov 04 - <a href="https://www.meetup.com/theblock/events/288815979/">Crypto Friday @ The Block Lisboa</a></li> +<li>Nov 05 - <a href="https://www.meetup.com/web3-for-the-win/events/289145375/">☕️Web3 Brunch🥞</a></li> +</ul> +<p>Catch-up with us for a beer and let's talk testing and open source!</p> +<hr> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul> +<li><a href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a href="https://gitlab.com/gitlab-org/gitlab/-/issues/334558">Give 👍 on GitLab</a>;</li> +<li><a href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> + and follow all project news;</li> +<li><a href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> and an awesome open source hacker;</li> +<li><a href="/#subscriptions">Become a customer</a> and we'll share our profits with the community</li> +</ul>Kiwi TCMS 11.52022-09-06T15:40:00+03:002022-09-06T15:40:00+03:00Kiwi TCMS Teamtag:None,2022-09-06:/blog/kiwi-tcms-team/2022/09/06/kiwi-tcms-115/<p>We're happy to announce Kiwi TCMS version 11.5!</p> +<p><strong>IMPORTANT:</strong> +This is a small release which contains several improvements, bug fixes +and new translations!</p> +<p>You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<blockquote> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6 …</pre></blockquote><p>We're happy to announce Kiwi TCMS version 11.5!</p> +<p><strong>IMPORTANT:</strong> +This is a small release which contains several improvements, bug fixes +and new translations!</p> +<p>You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<blockquote> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +</blockquote> +<p>---</p> +<blockquote> +<p>Upstream container images (x86_64):</p> +<pre class="literal-block"> +kiwitcms/kiwi latest 66c51b64e0a6 608MB +</pre> +</blockquote> +<p><strong>IMPORTANT:</strong> version tagged and multi-arch +<a class="reference external" href="/containers/">container</a> images are available only to +<a class="reference external" href="/#subscriptions">subscribers</a>!</p> +<div class="section" id="changes-since-kiwi-tcms-11-4"> +<h2>Changes since Kiwi TCMS 11.4</h2> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update jira from 3.3.1 to 3.4.0</li> +<li>Update pygments from 2.12.0 to 2.13.0</li> +<li>Update python-gitlab from 3.7.0 to 3.9.0</li> +<li>Update tzdata from 2022.1 to 2022.2</li> +<li>Add Product drop down field in Build admin page. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2818">Issue #2818</a></li> +<li>Add 'prune' argument required for Django 4.1 compatibility</li> +<li>Improve documentation around <tt class="docutils literal">DEFAULT_GROUPS</tt></li> +<li>Update docs about language preferences and add a Change language menu item. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2901">Issue #2901</a>, +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2902">Issue #2902</a>, +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2903">Issue #2903</a></li> +<li>Performance improvement for Status matrix telemetry</li> +<li>Performance improvement for Execution trends telemetry</li> +<li>Display a spinner widget while telemetry data is still loading. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1801">Issue #1801</a></li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Fix error <tt class="docutils literal">Jquery deferred: No length property of null object</tt> (&#64;cmbahadir)</li> +</ul> +</div> +<div class="section" id="refactoring-and-testing"> +<h3>Refactoring and testing</h3> +<ul class="simple"> +<li>Add test for <tt class="docutils literal">AnonymousViewBackend</tt> &amp; <tt class="docutils literal">auth.</tt> permissions</li> +<li>Exclude <tt class="docutils literal">auth.view_</tt> permissions from <tt class="docutils literal">AnonymousViewBackend</tt></li> +<li>Specify 30 seconds timeout for internal requests via the requests library</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/zh-CN#">Chinese Simplified translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/fr#">French translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/pl#">Polish translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/ru#">Russian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +</ul> +</div> +</div> +<div class="section" id="kiwi-tcms-enterprise-v11-5-mt"> +<h2>Kiwi TCMS Enterprise v11.5-mt</h2> +<ul> +<li><p class="first">Based on Kiwi TCMS v11.5</p> +</li> +<li><p class="first">Update django-python3-ldap from 0.15.2 to 0.15.3</p> +</li> +<li><p class="first">Update django-ses from 3.1.0 to 3.1.2</p> +</li> +<li><p class="first">Update kiwitcms-tenants from 2.1.1 to 2.3.0</p> +</li> +<li><p class="first">Update kiwitcms-github-app from 1.3.3 to 1.4.0</p> +<blockquote> +<p>Private images:</p> +<pre class="literal-block"> +quay.io/kiwitcms/version 11.5 (aarch64) 4be7894de8ae 06 Sep 2022 638MB +quay.io/kiwitcms/version 11.5 (x86_64) 66c51b64e0a6 06 Sep 2022 608MB +quay.io/kiwitcms/enterprise 11.5-mt (aarch64) 82d64398d8bf 06 Sep 2022 862MB +quay.io/kiwitcms/enterprise 11.5-mt (x86_64) 8a5b0b58bcca 06 Sep 2022 829MB +</pre> +</blockquote> +</li> +</ul> +<p><strong>IMPORTANT:</strong> version tagged, multi-arch and Enterprise +<a class="reference external" href="/containers/">container</a> images are available only to +<a class="reference external" href="/#subscriptions">subscribers</a>!</p> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p><a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">Backup</a> first! +Then execute the commands:</p> +<pre class="literal-block"> +cd path/containing/docker-compose/ +docker-compose down +docker-compose pull +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py upgrade +</pre> +<p>Refer to +<a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/installing_docker.html#upgrading">our documentation</a> +for more details!</p> +<p>Happy testing!</p> +<p>---</p> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us grow!</p> +<ul class="simple"> +<li><a class="reference external" href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a class="reference external" href="https://gitlab.com/gitlab-org/gitlab/-/issues/334558">Give 👍 on GitLab</a>;</li> +<li><a class="reference external" href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a class="reference external" href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> +and follow all project news;</li> +<li><a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> +and an awesome open source hacker;</li> +<li><a class="reference external" href="/#subscriptions">Become a subscriber</a> and help us sustain development</li> +</ul> +</div> +Kiwi TCMS 11.42022-08-04T15:56:00+03:002022-08-04T15:56:00+03:00Kiwi TCMS Teamtag:None,2022-08-04:/blog/kiwi-tcms-team/2022/08/04/kiwi-tcms-114/<p>We're happy to announce Kiwi TCMS version 11.4!</p> +<p><strong>IMPORTANT:</strong> +This is a medium sized release which contains security related updates, +multiple improvements, database and API changes, new settings, bug fixes +and new translations!</p> +<p>You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<blockquote> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or …</pre></blockquote><p>We're happy to announce Kiwi TCMS version 11.4!</p> +<p><strong>IMPORTANT:</strong> +This is a medium sized release which contains security related updates, +multiple improvements, database and API changes, new settings, bug fixes +and new translations!</p> +<p>You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<blockquote> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +</blockquote> +<p>---</p> +<blockquote> +<p>Upstream container images (x86_64):</p> +<pre class="literal-block"> +kiwitcms/kiwi latest 8c8356c0268d 610MB +</pre> +</blockquote> +<p><strong>IMPORTANT:</strong> version tagged and multi-arch +<a class="reference external" href="/containers/">container</a> images are available only to +<a class="reference external" href="/#subscriptions">subscribers</a>!</p> +<div class="section" id="changes-since-kiwi-tcms-11-3"> +<h2>Changes since Kiwi TCMS 11.3</h2> +<div class="section" id="security"> +<h3>Security</h3> +<ul class="simple"> +<li>Update django from 4.0.3 to 4.0.7, see +<a class="reference external" href="https://docs.djangoproject.com/en/4.0/releases/4.0.7/">https://docs.djangoproject.com/en/4.0/releases/4.0.7/</a>, +<a class="reference external" href="https://docs.djangoproject.com/en/4.0/releases/4.0.6/">https://docs.djangoproject.com/en/4.0/releases/4.0.6/</a>, +<a class="reference external" href="https://docs.djangoproject.com/en/4.0/releases/4.0.5/">https://docs.djangoproject.com/en/4.0/releases/4.0.5/</a> and +<a class="reference external" href="https://docs.djangoproject.com/en/4.0/releases/4.0.4/">https://docs.djangoproject.com/en/4.0/releases/4.0.4/</a> +We don't think Kiwi TCMS has been affected by the security vulnerabilities +fixed in Django.</li> +<li>Use TLSv1.2 and 1.3 by default and disable older protocols</li> +</ul> +</div> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update bleach from 5.0.0 to 5.0.1</li> +<li>Update django-colorfield from 0.6.3 to 0.7.2</li> +<li>Update django-extensions from 3.1.5 to 3.2.0</li> +<li>Update django-tree-queries from 0.9.0 to 0.11.0</li> +<li>Update jira from 3.2.0 to 3.3.1</li> +<li>Update markdown from 3.3.6 to 3.4.1</li> +<li>Update mysqlclient from 2.1.0 to 2.1.1</li> +<li>Update python-gitlab from 3.3.0 to 3.7.0</li> +<li>Update node_modules/marked from 4.0.14 to 4.0.18</li> +<li>Relax docutils requirement. Use latest version</li> +<li>Add template block which will allow logo customizations (Ivajlo Karabojkov)</li> +<li>Don't show <tt class="docutils literal">PLUGINS</tt> menu when no plugins are installed. References +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2729">Issue #2729</a></li> +<li>Add information about Kiwi TCMS user to 1-click bug reports. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2591">Issue #2591</a></li> +<li>Use a better icon to signify a manual test inside the user interface</li> +<li>Change <tt class="docutils literal">UserAdmin</tt> to be permission based instead of being role-based. +Fixes <a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2496">Issue #2496</a></li> +<li>Allow post-processing of automatically created issues. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2383">Issue #2383</a></li> +<li>Allow more customization over issue type discovery for Jira. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2833">Issue #2833</a></li> +<li>Allow more customization over project discovery for Jira</li> +<li>Allow more customization over Redmine tracker. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2382">Issue #2382</a></li> +<li>Allow DB settings to be read from Docker Secret files. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2606">Issue #2606</a></li> +<li>Add filter on TestRun page to show test executions assigned to the +current user. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/333">Issue #333</a></li> +<li>Add URL for creating new TestRun from a TestPlan. The format is +<tt class="docutils literal"><span class="pre">/runs/from-plan/&lt;plan-id&gt;/</span></tt>. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/274">Issue #274</a></li> +<li>Add <tt class="docutils literal">bug.Severity</tt> attribute which is fully customizeable. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2703">Issue #2703</a></li> +<li>Update documentation around <tt class="docutils literal">TCMS_</tt> environment variables +used by automation plugins</li> +<li>Update documentation to denote that pytest plugin is now generally available</li> +<li>Document necessary permissions for adding new users. References +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2496">Issue #2496</a></li> +</ul> +</div> +<div class="section" id="database"> +<h3>Database</h3> +<ul class="simple"> +<li>New migration for <tt class="docutils literal">bug.Severity</tt> model</li> +</ul> +</div> +<div class="section" id="settings"> +<h3>Settings</h3> +<ul class="simple"> +<li>Remove deprecated setting <tt class="docutils literal">USE_L10N</tt>. See +<a class="reference external" href="https://docs.djangoproject.com/en/4.0/ref/settings/#use-l10n">https://docs.djangoproject.com/en/4.0/ref/settings/#use-l10n</a></li> +<li>New setting <tt class="docutils literal">EXTERNAL_ISSUE_POST_PROCESSORS</tt></li> +<li>New setting <tt class="docutils literal">JIRA_ISSUE_TYPE</tt></li> +<li>New setting <tt class="docutils literal">REDMINE_TRACKER_NAME</tt></li> +<li>New setting <tt class="docutils literal">EXTERNAL_ISSUE_POST_PROCESSORS</tt></li> +</ul> +</div> +<div class="section" id="api"> +<h3>API</h3> +<ul class="simple"> +<li>If <tt class="docutils literal">default_tester</tt> field is not specified for <tt class="docutils literal">TestRun.create()</tt> method +then use the currently logged-in user.</li> +<li>Return value for method <tt class="docutils literal">TestExecution.filter()</tt> now contains fields +<tt class="docutils literal">expected_duration</tt> and <tt class="docutils literal">actual_duration</tt>. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1924">Issue #1924</a></li> +<li>Return value for method <tt class="docutils literal">Bug.filter()</tt> now contains fields +<tt class="docutils literal">severity__name</tt>, <tt class="docutils literal">severity__icon</tt> and <tt class="docutils literal">severity__color</tt></li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Adjust field name when rendering test execution on TestRun page. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2794">Issue #2794</a></li> +<li>Render rich text editor preview via backend API:<ul> +<li>Makes display on HTML pages and editor preview the same. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2659">Issue #2659</a></li> +<li>Fixes a bug with markdown rendered in JavaScript. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2711">Issue #2711</a></li> +</ul> +</li> +<li>Stop propagation of HTML unescape which causes display issues with +code snippets that contain XML values. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2800">Issue #2800</a></li> +<li>Show bug text only when creating new records, not when editing</li> +<li>Properly display &amp; validate related form fields when editing bugs</li> +<li>Don't send duplicate emails when editing bugs. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2782">Issue #2782</a></li> +</ul> +</div> +<div class="section" id="refactoring-and-testing"> +<h3>Refactoring and testing</h3> +<ul> +<li><p class="first">Convert two assignment statements to augmented source code. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2610">Issue #2610</a> (Markus Elfring)</p> +</li> +<li><p class="first">Rename method <tt class="docutils literal">IssueTrackerType.report_issue_from_testexecution()</tt>:</p> +<ul class="simple"> +<li>Rename to <tt class="docutils literal">_report_issue()</tt> which returns tuple of (object, str)</li> +<li>In case new issue was not created automatically and the method falls +back to manual creation the return value will be (None, str)</li> +<li><tt class="docutils literal">report_issue_from_testexecution()</tt> will call <tt class="docutils literal">_report_issue()</tt> +internally and handle the change in return type</li> +</ul> +<div class="admonition note"> +<p class="first admonition-title">Note</p> +<ul class="last simple"> +<li>This change is backwards compatible!</li> +<li>For customized issue tracker integration you will have to apply +the same changes to your customized code if you wish new functionality, +like post-processing of automatically created issues to work.</li> +</ul> +</div> +</li> +<li><p class="first">Add tests for backup &amp; restore commands. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2695">Issue #2695</a></p> +</li> +<li><p class="first">Update versions of several CI tools</p> +</li> +<li><p class="first">Updates around new version of pylint</p> +</li> +<li><p class="first">Use codecov-action to upload coverage results</p> +</li> +<li><p class="first">Remove setuptools and other workarounds in tests</p> +</li> +<li><p class="first">Don't special case dependencies which already provide wheel packages</p> +</li> +<li><p class="first">Workaround an issue with <tt class="docutils literal">setuptools_git_archive</tt> introduced by jira==3.2.0</p> +</li> +<li><p class="first">Workaround the fact that <tt class="docutils literal"><span class="pre">django-ranged-response</span></tt> doesn't provide wheels</p> +</li> +<li><p class="first">Report test results via kiwitcms-django-plugin. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1757">Issue #1757</a></p> +</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/zh-TW#">Chinese Traditional translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sk#">Slovak translation</a></li> +</ul> +</div> +</div> +<div class="section" id="kiwi-tcms-enterprise-v11-4-mt"> +<h2>Kiwi TCMS Enterprise v11.4-mt</h2> +<ul> +<li><p class="first">Based on Kiwi TCMS v11.4</p> +</li> +<li><p class="first">Update django-python3-ldap from 0.13.1 to 0.15.2</p> +</li> +<li><p class="first">Update django-ses from 3.0.1 to 3.1.0</p> +</li> +<li><p class="first">Update dj-database-url from 0.5.0 to 1.0.0</p> +</li> +<li><p class="first">Add more icons for extra GitHub login backends</p> +</li> +<li><p class="first">Add images for various Google login backends</p> +<blockquote> +<p>Private images:</p> +<pre class="literal-block"> +quay.io/kiwitcms/enterprise 11.4-mt (aarch64) f5720d030612 03 Aug 2022 862MB +quay.io/kiwitcms/enterprise 11.4-mt (x86_64) 8ffd5a64a4d1 03 Aug 2022 829MB +quay.io/kiwitcms/version 11.4 (aarch64) 62207c605dcf 03 Aug 2022 639MB +quay.io/kiwitcms/version 11.4 (x86_64) 8c8356c0268d 03 Aug 2022 610MB +</pre> +</blockquote> +</li> +</ul> +<p><strong>IMPORTANT:</strong> version tagged, multi-arch and Enterprise +<a class="reference external" href="/containers/">container</a> images are available only to +<a class="reference external" href="/#subscriptions">subscribers</a>!</p> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p><a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">Backup</a> first! +Then execute the commands:</p> +<pre class="literal-block"> +cd path/containing/docker-compose/ +docker-compose down +docker-compose pull +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py upgrade +</pre> +<p>Refer to +<a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/installing_docker.html#upgrading">our documentation</a> +for more details!</p> +<p>Happy testing!</p> +<p>---</p> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us grow!</p> +<ul class="simple"> +<li><a class="reference external" href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a class="reference external" href="https://gitlab.com/gitlab-org/gitlab/-/issues/334558">Give 👍 on GitLab</a>;</li> +<li><a class="reference external" href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a class="reference external" href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> +and follow all project news;</li> +<li><a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> +and an awesome open source hacker;</li> +<li><a class="reference external" href="/#subscriptions">Become a subscriber</a> and help us sustain development</li> +</ul> +</div> +Mejor Sitio Web 20222022-06-27T17:55:00+03:002022-06-27T17:55:00+03:00Kiwi TCMS Teamtag:None,2022-06-27:/blog/kiwi-tcms-team/2022/06/27/mejor-sitio-web-2022/<p>Kiwi TCMS is happy to announce that we have been awarded a "Best Website 2022" award +by <a href="https://www.reviewbox.es">Reviewbox.es</a>, scoring 36/40 on their evaluation. +The review criteria can be found at <a href="https://www.reviewbox.es/los-mejores-sitios-web/">https://www.reviewbox.es/los-mejores-sitios-web/</a>.</p> +<blockquote> +<p>Querido equipo de Kiwitcms,</p> +<p>¡Felicidades!</p> +<p>Habéis logrado lo que muchos otros desean:</p> +<p>Habéis …</p></blockquote><p>Kiwi TCMS is happy to announce that we have been awarded a "Best Website 2022" award +by <a href="https://www.reviewbox.es">Reviewbox.es</a>, scoring 36/40 on their evaluation. +The review criteria can be found at <a href="https://www.reviewbox.es/los-mejores-sitios-web/">https://www.reviewbox.es/los-mejores-sitios-web/</a>.</p> +<blockquote> +<p>Querido equipo de Kiwitcms,</p> +<p>¡Felicidades!</p> +<p>Habéis logrado lo que muchos otros desean:</p> +<p>Habéis acumulado 36/40 puntos en nuestra investigación de +mercado y por lo tanto calificasteis (mínimo 30 de 40 puntos necesarios) +para nuestro premio Mejor Sitio Web 2022.</p> +<p>Resultados y criterios de investigación</p> +<p>URL: Kiwitcms-Team</p> +<p>Puntos: 36/40</p> +</blockquote> +<p>Our team is happy to accept this award, which comes exactly 2 years +after we became an <a href="/blog/atodorov/2019/06/24/kiwi-tcms-is-openawards-2019-best-tech-community-winner/">OpenAwards winner</a>.</p> +<p>Thank you and Happy testing!</p> +<hr> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul> +<li><a href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a href="https://gitlab.com/gitlab-org/gitlab/-/issues/334558">Give 👍 on GitLab</a>;</li> +<li><a href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> + and follow all project news;</li> +<li><a href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> and an awesome open source hacker;</li> +<li><a href="/#subscriptions">Become a customer</a> and we'll share our profits with the community</li> +</ul>Meet Kiwi TCMS at Collision 2022 in Toronto2022-06-14T11:35:00+03:002022-06-14T11:35:00+03:00Kiwi TCMS Teamtag:None,2022-06-14:/blog/kiwi-tcms-team/2022/06/14/meet-kiwi-tcms-at-collision-2022-in-toronto/<p>Kiwi TCMS is happy to announce that we're taking part in +<a href="https://collisionconf.com/">Collision 2022</a>, Jun 20-23 in Toronto, Canada. +We're joining as a <a href="https://collisionconf.com/startups/featured-startups">featured startup</a> +in the <em>Enterprise Software Solutions</em> category.</p> +<p>Kiwi TCMS will have an on-site presence on +<strong>Thursday, Jun 23, Stand A3201</strong>. Check-out the map for more details: +<img alt="venue map" src="/images/conf/collision/stand2022.png" title="venue map"></p> +<h2>For …</h2><p>Kiwi TCMS is happy to announce that we're taking part in +<a href="https://collisionconf.com/">Collision 2022</a>, Jun 20-23 in Toronto, Canada. +We're joining as a <a href="https://collisionconf.com/startups/featured-startups">featured startup</a> +in the <em>Enterprise Software Solutions</em> category.</p> +<p>Kiwi TCMS will have an on-site presence on +<strong>Thursday, Jun 23, Stand A3201</strong>. Check-out the map for more details: +<img alt="venue map" src="/images/conf/collision/stand2022.png" title="venue map"></p> +<h2>For engineers</h2> +<p>At the exhibition stand you will have the opportunity to perform some real +<a href="/blog/kiwi-tcms-team/2020/10/10/progress-update-on-open-source-hardware-for-black-box-testing/">black-box testing</a>, +learn about Salience bias, Peltzman effect and Wason's experiments and take a photo with +our lovely mascot.</p> +<p>The Kiwi TCMS team will be there to answer all of your questions regarding +open source, community, support, various integrations and the differences between +<em>Self-Support</em>, <em>SaaS</em> and <em>Enterprise</em> <a href="/#subscriptions">subscriptions</a>!</p> +<p><img alt="&quot;black boxes&quot;" src="/images/conf/websummit/black_boxes.png" title="black boxes"></p> +<p>If you are a test or QA engineer please answer our survey +<a href="https://forms.gle/LTYnimNjbUaSmTeL8">https://forms.gle/LTYnimNjbUaSmTeL8</a>. Participants may claim a small surprise at our booth!</p> +<h2>For startups</h2> +<p>We know that in a startup, the major strength of the people is that they are multitaskers. +And it is often the case that the founders will perform some functional and acceptance testing +because they know all the important use-cases.</p> +<p>Still you need to document and organize your testing activities early on. You need to +start collecting information about which features of the product have been tested and +how they have been tested. That's the basis on which you can scale your QA team and +future testing activities.</p> +<p>If you are a fellow startup exhibitor please swing by out stand to talk about +organizing your product testing with Kiwi TCMS. We know the drill because we're in +the same boat!</p> +<h2>For partners</h2> +<p>If you are another ISV providing engineering tools, a product outsourcing company +or a devel/testing service venture we've got a partnership proposal for you!</p> +<p>We're interested in partners where we can integrate other products with Kiwi TCMS +and provide a better offering; provide extra services (e.g. managed hosting) and/or +provide more transparency to your own customers (e.g. allow them to see how their products +are being tested).</p> +<p>Message us via the <a href="https://play.google.com/store/apps/details?id=com.collision">Collision app</a> +and request a meeting or better yet, find our team on-site!</p> +<h2>Virtual press conference</h2> +<p>If you aren't around in Toronto please join us for a pre 2022 Collision News Conference (VIRTUAL) on +<strong>Wednesday, June 15, 1:00 - 2:00 p.m. EDT / 17:00 - 18:00 UTC</strong>.</p> +<p>For more information see +<a href="https://www.eventbrite.com/e/pre-collision-press-conference-1-of-2-hosted-by-brotmanwinterfried-tickets-365110534437">https://www.eventbrite.com/e/pre-collision-press-conference-1-of-2-hosted-by-brotmanwinterfried-tickets-365110534437</a></p> +<h2>After hours</h2> +<p>The Kiwi TCMS team will be joining the following after-hours events:</p> +<ul> +<li>Jun 20 - <a href="https://inthecloud.withgoogle.com/collision-happy-hour/register.html">Collision: Join Us at Craft Beer Market, Toronto</a></li> +<li>Jun 22 - <a href="https://www.eventbrite.sg/e/drinks-dragons-collision-official-after-hours-event-by-metis-fest-tickets-340062816037">Drinks &amp; Dragons - Collision Official After Hours event by Metis Fest</a></li> +<li>Jun 23 - <a href="https://www.meetup.com/agileto/events/286454424/">Agile Drinks....we are back!!</a></li> +</ul> +<h2>For media</h2> +<p>If you have any questions, need additional information or would like to schedule an interview, +please email Steve Winter at <em>swinter @ aboutbwf.com</em> (remove spaces) or call <em>202-468-8100</em>.</p> +<hr> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul> +<li><a href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a href="https://gitlab.com/gitlab-org/gitlab/-/issues/334558">Give 👍 on GitLab</a>;</li> +<li><a href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> + and follow all project news;</li> +<li><a href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> and an awesome open source hacker;</li> +<li><a href="/#subscriptions">Become a customer</a> and we'll share our profits with the community</li> +</ul>Zaklina, welcome to the Kiwi TCMS team2022-06-07T13:20:00+03:002022-06-07T13:20:00+03:00Kiwi TCMS Teamtag:None,2022-06-07:/blog/kiwi-tcms-team/2022/06/07/zaklina-welcome-to-the-kiwi-tcms-team/<p>Kiwi TCMS is pleased to welcome Zaklina Stojnev to <a href="/team/">our team</a>!</p> +<p><img class="rounded" src="/images/team/zstojnev.jpg"></p> +<p>She holds an engineering degree in computer science and +has been working as a test engineer for more than 10 years. +In the last couple of years her main focus is automation in testing, +finding ways to improve testing …</p><p>Kiwi TCMS is pleased to welcome Zaklina Stojnev to <a href="/team/">our team</a>!</p> +<p><img class="rounded" src="/images/team/zstojnev.jpg"></p> +<p>She holds an engineering degree in computer science and +has been working as a test engineer for more than 10 years. +In the last couple of years her main focus is automation in testing, +finding ways to improve testing process and tools that will support testing activities.</p> +<p>Zaklina will be the primary contact for our +<a href="https://github.com/kiwitcms/history-of-testing">History of Testing</a> project where we are +compiling a database of people who influenced or made important contributions to our professional field.</p> +<p>With her prior experience as a conference organizer Zaklina will also be lending a much needed hand +in preparing the <em>Testing and Automation</em> devroom at <em>FOSDEM</em> and showcasing Kiwi TCMS at different +events.</p> +<p>You can find her on-boarding progress at <a href="https://tcms.kiwitcms.org/runs/1190/">TR-1190</a> and her +contributions on +<a href="https://github.com/pulls?q=is%3Aopen+is%3Apr+author%3Azaklinica+archived%3Afalse+user%3Akiwitcms">GitHub</a>.</p> +<p>Happy Testing!</p> +<hr> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us grow!</p> +<ul> +<li><a href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a href="https://gitlab.com/gitlab-org/gitlab/-/issues/334558">Give 👍 on GitLab</a>;</li> +<li><a href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> + and follow all project news;</li> +<li><a href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> and an awesome open source hacker;</li> +<li><a href="/#subscriptions">Become a customer</a> and we'll share our profits with the community</li> +</ul>Survey: How do testers and QA use GitHub, GitLab and Bitbucket2022-06-02T11:05:00+03:002022-06-02T11:05:00+03:00Kiwi TCMS Teamtag:None,2022-06-02:/blog/kiwi-tcms-team/2022/06/02/survey-how-do-testers-and-qa-use-github-gitlab-and-bitbucket/<p>Hello testers, +we are conducting a little research/survey into how other testers and QA professionals +use modern platforms like GitHub, GitLab and Bitbucket. At this moment in time our goal +is to collect as much information as possible in order to understand the existing ecosystem.</p> +<p>If you can spare …</p><p>Hello testers, +we are conducting a little research/survey into how other testers and QA professionals +use modern platforms like GitHub, GitLab and Bitbucket. At this moment in time our goal +is to collect as much information as possible in order to understand the existing ecosystem.</p> +<p>If you can spare 5 minutes of your time please check-out +<a href="https://forms.gle/avqjWVvSPsE4SWQr5">https://forms.gle/avqjWVvSPsE4SWQr5</a>.</p> +<p>We promise there will be no follow up emails unless you indicate that you agree to that.</p> +<p>Happy Testing!</p> +<hr> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us grow!</p> +<ul> +<li><a href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a href="https://gitlab.com/gitlab-org/gitlab/-/issues/334558">Give 👍 on GitLab</a>;</li> +<li><a href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> + and follow all project news;</li> +<li><a href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> and an awesome open source hacker;</li> +<li><a href="/#subscriptions">Become a customer</a> and we'll share our profits with the community</li> +</ul>New versions of automation framework plugins2022-05-18T15:30:00+03:002022-05-18T15:30:00+03:00Kiwi TCMS Teamtag:None,2022-05-18:/blog/kiwi-tcms-team/2022/05/18/new-versions-of-automation-framework-plugins/<p>Kiwi TCMS is pleased to announce new versions of our plugins for different +test automation frameworks:</p> +<ul class="simple"> +<li><a class="reference external" href="https://github.com/kiwitcms/tap-plugin">tap-plugin</a> - v11.3</li> +<li><a class="reference external" href="https://github.com/kiwitcms/junit.xml-plugin">junit.xml-plugin</a> - v11.3</li> +<li><a class="reference external" href="https://github.com/kiwitcms/robotframework-plugin">Robot Framework plugin</a> - v11.2</li> +<li><a class="reference external" href="https://github.com/kiwitcms/django-plugin">Django test runner plugin</a> - v11.2</li> +</ul> +<p>These new versions are compatible with Kiwi TCMS v11.x and include several improvements +and bug …</p><p>Kiwi TCMS is pleased to announce new versions of our plugins for different +test automation frameworks:</p> +<ul class="simple"> +<li><a class="reference external" href="https://github.com/kiwitcms/tap-plugin">tap-plugin</a> - v11.3</li> +<li><a class="reference external" href="https://github.com/kiwitcms/junit.xml-plugin">junit.xml-plugin</a> - v11.3</li> +<li><a class="reference external" href="https://github.com/kiwitcms/robotframework-plugin">Robot Framework plugin</a> - v11.2</li> +<li><a class="reference external" href="https://github.com/kiwitcms/django-plugin">Django test runner plugin</a> - v11.2</li> +</ul> +<p>These new versions are compatible with Kiwi TCMS v11.x and include several improvements +and bug fixes. Check-out the pages above for individual information and instructions on +how to use them.</p> +<p>Happy testing!</p> +<p>---</p> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul class="simple"> +<li><a class="reference external" href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a class="reference external" href="https://gitlab.com/gitlab-org/gitlab/-/issues/334558">Give 👍 on GitLab</a>;</li> +<li><a class="reference external" href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a class="reference external" href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> +and follow all project news;</li> +<li><a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> +and an awesome open source hacker;</li> +<li><a class="reference external" href="/#subscriptions">Become a subscriber</a> and help us sustain development</li> +</ul> +Kiwi TCMS 11.32022-04-27T20:35:00+03:002022-04-27T20:35:00+03:00Kiwi TCMS Teamtag:None,2022-04-27:/blog/kiwi-tcms-team/2022/04/27/kiwi-tcms-113/<p>We're happy to announce Kiwi TCMS version 11.3 which is the 100th tagged version +in our git repository!</p> +<p><strong>IMPORTANT:</strong> +This is a small release which contains security related updates, several improvements, +bug fixes and new translations! Most importantly the kiwitcms-tenants plugin now supports +tenant groups and permissions!</p> +<p>You can …</p><p>We're happy to announce Kiwi TCMS version 11.3 which is the 100th tagged version +in our git repository!</p> +<p><strong>IMPORTANT:</strong> +This is a small release which contains security related updates, several improvements, +bug fixes and new translations! Most importantly the kiwitcms-tenants plugin now supports +tenant groups and permissions!</p> +<p>You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<blockquote> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +</blockquote> +<p>---</p> +<blockquote> +<p>Upstream container images (x86_64):</p> +<pre class="literal-block"> +kiwitcms/kiwi latest 58dcfa91e816 629MB +</pre> +</blockquote> +<p><strong>IMPORTANT:</strong> version tagged and multi-arch +<a class="reference external" href="/containers/">container</a> images are available only to +<a class="reference external" href="/#subscriptions">subscribers</a>!</p> +<div class="section" id="changes-since-kiwi-tcms-11-2"> +<h2>Changes since Kiwi TCMS 11.2</h2> +<div class="section" id="security"> +<h3>Security</h3> +<ul class="simple"> +<li>Update django from 4.0.3 to 4.0.4, see +<a class="reference external" href="https://docs.djangoproject.com/en/4.0/releases/4.0.4/">https://docs.djangoproject.com/en/4.0/releases/4.0.4/</a></li> +</ul> +</div> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update bleach from 4.1.0 to 5.0.0</li> +<li>Update django-tree-queries from 0.7.0 to 0.9.0</li> +<li>Update jira from 3.1.1 to 3.2.0</li> +<li>Update pygments from 2.11.2 to 2.12.0</li> +<li>Update python-gitlab from 3.2.0 to 3.3.0</li> +<li>Update tzdata from 2021.5 to 2022.1</li> +<li>Update node_modules/marked from 4.0.12 to 4.0.14</li> +<li>Update node_modules/prismjs from 1.27.0 to 1.28.0</li> +<li>Allow overriding of Azure Boards API version. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2717">Issue #2717</a></li> +<li>If <tt class="docutils literal">tenant_groups</tt> is enabled then <tt class="docutils literal">refresh_permissions</tt> command will +update default tenant groups too</li> +<li>Document tenant-group permissions</li> +</ul> +</div> +<div class="section" id="settings"> +<h3>Settings</h3> +<ul class="simple"> +<li>New setting <tt class="docutils literal">AZURE_BOARDS_API_VERSION</tt>, defaults to 6.0. Can be overriden +directly in settings or via environment variable with the same name</li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Patch for repositories under GitLab subgroups. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2643">Issue #2643</a> (&#64;cmeissl)</li> +<li>Don't crash if a comment user has been removed. Fixes +<a class="reference external" href="https://sentry.io/organizations/kiwitcms/issues/3086416250/">KIWI-TCMS-HZ</a></li> +</ul> +</div> +<div class="section" id="refactoring"> +<h3>Refactoring</h3> +<ul class="simple"> +<li>Split Users &amp; Groups menu items under ADMIN entry in navigation</li> +<li>[pre-commit.ci] updates</li> +<li>pylint adjustments</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/zh-CN#">Chinese Simplified translation</a></li> +</ul> +</div> +</div> +<div class="section" id="kiwi-tcms-enterprise-v11-3-1-mt"> +<h2>Kiwi TCMS Enterprise v11.3.1-mt</h2> +<ul> +<li><p class="first">Based on Kiwi TCMS v11.3</p> +</li> +<li><p class="first">Update django-ses from 2.6.0 to 3.0.1</p> +</li> +<li><p class="first">Update kiwitcms-tenants from 1.11.0 to 2.1.1 for +tenant groups support</p> +<blockquote> +<p>Private images:</p> +<pre class="literal-block"> +quay.io/kiwitcms/enterprise 11.3.1-mt (aarch64 58a53d616105 27 Apr 2022 894MB +quay.io/kiwitcms/enterprise 11.3.1-mt (x86_64) 3b5e7fbd234a 27 Apr 2022 847MB +quay.io/kiwitcms/version 11.3 (aarch64) e9f34a86cd0b 27 Apr 2022 671MB +quay.io/kiwitcms/version 11.3 (x86_64) 58dcfa91e816 27 Apr 2022 627MB +</pre> +</blockquote> +</li> +</ul> +<p><strong>IMPORTANT:</strong> version tagged, multi-arch and Enterprise +<a class="reference external" href="/containers/">container</a> images are available only to +<a class="reference external" href="/#subscriptions">subscribers</a>!</p> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p><a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">Backup</a> first! +Then execute the commands:</p> +<pre class="literal-block"> +cd path/containing/docker-compose/ +docker-compose down +docker-compose pull +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py upgrade +</pre> +<p>Refer to +<a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/installing_docker.html#upgrading">our documentation</a> +for more details!</p> +<p>Happy testing!</p> +<p>---</p> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us grow!</p> +<ul class="simple"> +<li><a class="reference external" href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a class="reference external" href="https://gitlab.com/gitlab-org/gitlab/-/issues/334558">Give 👍 on GitLab</a>;</li> +<li><a class="reference external" href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a class="reference external" href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> +and follow all project news;</li> +<li><a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> +and an awesome open source hacker;</li> +<li><a class="reference external" href="/#subscriptions">Become a subscriber</a> and help us sustain development</li> +</ul> +</div> +Kiwi TCMS 11.22022-03-09T12:20:00+02:002022-03-09T12:20:00+02:00Kiwi TCMS Teamtag:None,2022-03-09:/blog/kiwi-tcms-team/2022/03/09/kiwi-tcms-112/<p>We're happy to announce Kiwi TCMS version 11.2.</p> +<p><strong>IMPORTANT:</strong> +This is a small release which contains several improvements, new API methods, +internal refactoring and new translations! This is the first release to ship +<tt class="docutils literal">aarch64</tt> container images!</p> +<p>You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<blockquote> +<p>Supported upgrade paths …</p></blockquote><p>We're happy to announce Kiwi TCMS version 11.2.</p> +<p><strong>IMPORTANT:</strong> +This is a small release which contains several improvements, new API methods, +internal refactoring and new translations! This is the first release to ship +<tt class="docutils literal">aarch64</tt> container images!</p> +<p>You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<blockquote> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +</blockquote> +<p>---</p> +<blockquote> +<p>Upstream container images (x86_64):</p> +<pre class="literal-block"> +kiwitcms/kiwi latest bcc4c658440a 622MB +</pre> +</blockquote> +<p><strong>IMPORTANT:</strong> version tagged and multi-arch +<a class="reference external" href="/containers/">container</a> images are available only to +<a class="reference external" href="/#subscriptions">subscribers</a>!</p> +<div class="section" id="changes-since-kiwi-tcms-11-1"> +<h2>Changes since Kiwi TCMS 11.1</h2> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update django from 4.0.2 to 4.0.3</li> +<li>Update django-grappelli from 3.0.2 to 3.0.3</li> +<li>Update django-simple-captcha from 0.5.14 to 0.5.17</li> +<li>Update python-bugzilla from 3.1.0 to 3.2.0</li> +<li>Update python-gitlab from 3.1.1 to 3.2.0</li> +<li>Update node_modules/prismjs from 1.26.0 to 1.27.0</li> +<li>Add new command to perform a collection of post-upgrade tasks. +Kiwi TCMS admins are advised to replace +<tt class="docutils literal">manage.py migrate</tt> with <tt class="docutils literal">manage.py upgrade</tt> (Ivajlo Karabojkov)</li> +</ul> +</div> +<div class="section" id="api"> +<h3>API</h3> +<ul class="simple"> +<li>New API method <tt class="docutils literal">Category.create()</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2705">Issue #2705</a> (Erik Heeren)</li> +<li>New API method <tt class="docutils literal">Classification.create()</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2705">Issue #2705</a> (Erik Heeren)</li> +</ul> +</div> +<div class="section" id="refactoring-and-testing"> +<h3>Refactoring and testing</h3> +<ul class="simple"> +<li>Add docker build &amp; push automation</li> +<li>Fix Bandit exclusion rule</li> +<li>Test and build on aarch64</li> +<li>Apply auto fixes fro pre-commit.ci</li> +<li>Apply auto fixes from Deepsource</li> +<li>Update versions of several GitHub Actions</li> +<li>Use the appropriate path to package.json for Dependabot</li> +<li>Remove old Telemetry link in menu to avoid confusion</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/bg#">Bulgarian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/ja#">Japanese translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/zh-TW#">Chinese Traditional translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/es-ES#">Spanish translation</a></li> +</ul> +</div> +</div> +<div class="section" id="kiwi-tcms-enterprise-v11-2-mt"> +<h2>Kiwi TCMS Enterprise v11.2-mt</h2> +<ul> +<li><p class="first">Based on Kiwi TCMS v11.2</p> +</li> +<li><p class="first">Update django-ses from 2.4.0 to 2.6.0</p> +</li> +<li><p class="first">Update python3-saml from 1.13.0 to 1.14.0</p> +</li> +<li><p class="first">Revert &quot;Use django.contrib.staticfiles.storage from Django==3.2.12&quot;. +Instead use the implementation from latest Django version. Closes +<a class="reference external" href="https://github.com/kiwitcms/enterprise/issues/140">Issue #140</a></p> +</li> +<li><p class="first">Start building kiwitcms/enterprise on aarch64</p> +</li> +<li><p class="first">Add changelog check &amp; docker release automation</p> +</li> +<li><p class="first">Add test for PSA login URLs on login page. References +<a class="reference external" href="https://github.com/kiwitcms/enterprise/issues/83">Issue #83</a></p> +</li> +<li><p class="first">Add SAML &amp; Azure AD logo images</p> +</li> +<li><p class="first">Update GitHub Actions</p> +</li> +<li><p class="first">Hard-code testing with Keycloak 16.1.1 to workaround significant differences +with Keycloak v17 container</p> +<blockquote> +<p>Private images:</p> +<pre class="literal-block"> +quay.io/kiwitcms/enterprise 11.2-mt (aarch64) fe5e869e36f6 09 Mar 2022 890MB +quay.io/kiwitcms/enterprise 11.2-mt (x86_64) 134320d5fb7c 09 Mar 2022 841MB +quay.io/kiwitcms/version 11.2 (aarch64) 3b782830d19d 09 Mar 2022 665MB +quay.io/kiwitcms/version 11.2 (x86_64) bcc4c658440a 09 Mar 2022 620MB +</pre> +</blockquote> +</li> +</ul> +<p><strong>IMPORTANT:</strong> version tagged, multi-arch and Enterprise +<a class="reference external" href="/containers/">container</a> images are available only to +<a class="reference external" href="/#subscriptions">subscribers</a>!</p> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p><a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">Backup</a> first! +Then execute the commands:</p> +<pre class="literal-block"> +cd path/containing/docker-compose/ +docker-compose down +docker-compose pull +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py upgrade +</pre> +<p>Refer to +<a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/installing_docker.html#upgrading">our documentation</a> +for more details!</p> +<p>Happy testing!</p> +<p>---</p> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul class="simple"> +<li><a class="reference external" href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a class="reference external" href="https://gitlab.com/gitlab-org/gitlab/-/issues/334558">Give 👍 on GitLab</a>;</li> +<li><a class="reference external" href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a class="reference external" href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> +and follow all project news;</li> +<li><a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> +and an awesome open source hacker;</li> +<li><a class="reference external" href="/#subscriptions">Become a subscriber</a> and help us sustain development</li> +</ul> +</div> +New and updated subscription plans for Kiwi TCMS2022-03-01T10:35:00+02:002022-03-01T10:35:00+02:00Kiwi TCMS Teamtag:None,2022-03-01:/blog/kiwi-tcms-team/2022/03/01/new-and-updated-subscription-plans-for-kiwi-tcms/<p>An active Kiwi TCMS subscription ensures a sustainable future for +all open source software maintained by the Kiwi TCMS team and +provides its holder with access to software versions and certain +level services. Given recent changes to +<a href="/blog/kiwi-tcms-team/2022/02/27/container-registry-credentials-for-subscribers/">private container credentials</a> +we have refreshed our product and service definitions.</p> +<h2>New Self …</h2><p>An active Kiwi TCMS subscription ensures a sustainable future for +all open source software maintained by the Kiwi TCMS team and +provides its holder with access to software versions and certain +level services. Given recent changes to +<a href="/blog/kiwi-tcms-team/2022/02/27/container-registry-credentials-for-subscribers/">private container credentials</a> +we have refreshed our product and service definitions.</p> +<h2>New Self Support subscription</h2> +<p>This is an entry-level subscription which provides read-only access to version tagged +containers of upstream Kiwi TCMS. It is suitable for experimentation, +very small teams, development against Kiwi TCMS and convenience during upgrades.</p> +<p>You are free to use any older or future versions of Kiwi TCMS available from +the <a href="/containers/">kiwitcms/version</a> container repository!</p> +<p>This subscription plan is also available via +<a href="https://github.com/marketplace/kiwi-tcms/">GitHub Marketplace</a>.</p> +<h2>Private Tenant</h2> +<p>This is our most popular subscription type.</p> +<p>Starting today it also includes access +to the <a href="/containers/">kiwitcms/version</a> container repository! +This is suitable for teams who prefer to be hosting Kiwi TCMS on-premise instead of +using the namespace provided under <code>*.tenant.kiwitcms.org</code>.</p> +<p>This subscription plan is also available via +<a href="https://github.com/marketplace/kiwi-tcms/">GitHub Marketplace</a>.</p> +<p>Everything else remains the same!</p> +<h2>Enterprise Subscription</h2> +<p>This is Kiwi TCMS tailored towards on-premise deployments in larger organizations. +Starting today it also automatically includes 1x <em>Private Tenant</em> which can be used +for development or experiments.</p> +<p>Support availability has been extended by 2 hours in order to cover more geographic areas!</p> +<p>Future features coming to enterprise subscribers - +tools for provisioning of Kiwi TCMS inside cloud environments and aarch64 containers.</p> +<p>Price has been increased to 400 $/mo.</p> +<h2>New Managed Hosting subscription</h2> +<p>This new offering is designed for the organizations which don't want to bother with provisioning +containers, configuring DNS resolution, managing SSL certificates, regular upgrades and backups. +The Kiwi TCMS team can do all of this for you and provide a fully isolated instance inside AWS.</p> +<p>Support availability has been extended by 2 days, covering Saturday and Sunday. When necessary +<em>Managed Hosting</em> subscribers have the option for video conferences with their support contact.</p> +<hr> +<p>All changes are effective immediately. Existing customers are granted access to everything +that's new while billing changes are not applied.</p> +<p>If you prefer the "free beer" version of +Kiwi TCMS it is available via <code>docker pull kiwitcms/kiwi</code> - free to use +and without any guarantees according to GPLv2.</p> +<p>Please consider <a href="/#subscriptions">subscribing</a> and help us make Kiwi TCMS better!</p> +<p>Happy Testing!</p>Container Registry Credentials for Subscribers2022-02-27T12:40:00+02:002022-02-27T12:40:00+02:00Kiwi TCMS Teamtag:None,2022-02-27:/blog/kiwi-tcms-team/2022/02/27/container-registry-credentials-for-subscribers/<p>Kiwi TCMS subscribers had to go through a manual process of registering +a username with our container registry, <em>quay.io</em> and email support +before they could access private docker images. This process is now fully +automated!</p> +<p><img alt="&quot;private credentials card&quot;" src="/images/private_docker_credentials.png" title="private credentials card"></p> +<p>Credentials are automatically created upon subscription payment and configured for +read-only access to respective …</p><p>Kiwi TCMS subscribers had to go through a manual process of registering +a username with our container registry, <em>quay.io</em> and email support +before they could access private docker images. This process is now fully +automated!</p> +<p><img alt="&quot;private credentials card&quot;" src="/images/private_docker_credentials.png" title="private credentials card"></p> +<p>Credentials are automatically created upon subscription payment and configured for +read-only access to respective repositories based on the type of subscription. +You can find your credentials at the +<a href="https://public.tenant.kiwitcms.org/github/marketplace/plans/">subscriptions page</a>, +<code>PLUGINS -&gt; Subscriptions</code>. To authenticate try</p> +<div class="highlight"><pre><span></span><code>$ docker login -u<span class="o">=</span><span class="s2">&quot;USERNAME&quot;</span> -p <span class="s2">&quot;PASSWORD-TOKEN&quot;</span> quay.io +<span class="c1"># or</span> +$ <span class="nb">echo</span> <span class="s2">&quot;PASSWORD-TOKEN&quot;</span> <span class="p">|</span> docker login -u<span class="o">=</span><span class="s2">&quot;USERNAME&quot;</span> --password-stdin quay.io +</code></pre></div> + + +<p>If you would like to have access to private container repositories for Kiwi TCMS +checkout the <a href="/containers/">containers page</a> and +<a href="/#subscriptions">subscribe</a>!</p> +<p>Happy Testing!</p>Kiwi TCMS 11.12022-02-02T16:10:00+02:002022-02-02T16:10:00+02:00Kiwi TCMS Teamtag:None,2022-02-02:/blog/kiwi-tcms-team/2022/02/02/kiwi-tcms-111/<p>We're happy to announce Kiwi TCMS version 11.1.</p> +<p><strong>IMPORTANT:</strong> +This is a small release which contains security related updates, several improvements, +bug fixes and new translations!</p> +<p>You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<blockquote> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 …</pre></blockquote><p>We're happy to announce Kiwi TCMS version 11.1.</p> +<p><strong>IMPORTANT:</strong> +This is a small release which contains security related updates, several improvements, +bug fixes and new translations!</p> +<p>You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<blockquote> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +</blockquote> +<p>---</p> +<blockquote> +<p>Container images:</p> +<pre class="literal-block"> +kiwitcms/kiwi latest 72099aa8ee93 629 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 +</pre> +</blockquote> +<p><strong>IMPORTANT:</strong> version tagged +<a class="reference external" href="/containers/">container</a> images are available only to +<a class="reference external" href="/#subscriptions">subscribers</a>!</p> +<div class="section" id="changes-since-kiwi-tcms-11-0"> +<h2>Changes since Kiwi TCMS 11.0</h2> +<div class="section" id="security"> +<h3>Security</h3> +<ul class="simple"> +<li>Update Django from 3.2.10 to 4.0.2 to fix several fulnerabilities: +CVE-2022-22818, CVE-2022-23833, CVE-2021-45115, CVE-2021-45116, +CVE-2021-45452. Of those we believe that only +<em>CVE-2022-23833: Denial-of-service possibility in file uploads</em> may directly +impact Kiwi TCMS</li> +</ul> +</div> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update django-contrib-comments from 2.1.0 to 2.2.0</li> +<li>Update django-uuslug from 1.2.0 to 2.0.0</li> +<li>Update python-gitlab from 3.1.0 to 3.1.1</li> +<li>Update node_modules/marked from 4.0.10 to 4.0.12</li> +</ul> +</div> +<div class="section" id="database"> +<h3>Database</h3> +<ul class="simple"> +<li>New migration for django-simple-captcha</li> +</ul> +</div> +<div class="section" id="settings"> +<h3>Settings</h3> +<ul class="simple"> +<li><tt class="docutils literal">RECAPTCHA_PUBLIC_KEY</tt>, <tt class="docutils literal">RECAPTCHA_PRIVATE_KEY</tt> and <tt class="docutils literal">RECAPTCHA_USE_SSL</tt> +are no longer in use</li> +<li>New setting <tt class="docutils literal">USE_CAPTCHA</tt>, defaults to True</li> +<li>The string &quot;captcha&quot; is added to <tt class="docutils literal">INSTALLED_APPS</tt></li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Fix inappropriate RPC calls causing Version and Build dropdown widgets to +display no values. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2704">Issue #2704</a></li> +</ul> +</div> +<div class="section" id="refactoring-and-testing"> +<h3>Refactoring and testing</h3> +<ul class="simple"> +<li>Add <tt class="docutils literal">tzdata</tt> to requirements</li> +<li>Replace django-recaptcha with django-simple-captcha</li> +<li>Adjust /init-db view to reliably detect when applying database migrations +is complete and not exit prematurely</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +</ul> +</div> +</div> +<div class="section" id="kiwi-tcms-enterprise-v11-1-mt"> +<h2>Kiwi TCMS Enterprise v11.1-mt</h2> +<ul> +<li><p class="first">Based on Kiwi TCMS v11.1</p> +</li> +<li><p class="first">Update kiwitcms-github-app from 1.3.2 to 1.3.3</p> +</li> +<li><p class="first">Update django-ses from 2.3.1 to 2.4.0</p> +</li> +<li><p class="first">Update python3-saml from 1.12.0 to 1.13.0</p> +</li> +<li><p class="first">Workaround UnicodeDecodeError while building the docker image</p> +<blockquote> +<p>Private images:</p> +<pre class="literal-block"> +quay.io/kiwitcms/enterprise 11.1-mt df5ce509fd41 854 MB +quay.io/kiwitcms/version 11.1 72099aa8ee93 629 MB +</pre> +</blockquote> +</li> +</ul> +<p><strong>IMPORTANT:</strong> version tagged and Enterprise +<a class="reference external" href="/containers/">container</a> images are available only to +<a class="reference external" href="/#subscriptions">subscribers</a>!</p> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p><a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">Backup</a> first! +Then execute the commands:</p> +<pre class="literal-block"> +cd path/containing/docker-compose/ +docker-compose down +docker-compose pull +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +</pre> +<p>Refer to +<a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/installing_docker.html#upgrading">our documentation</a> +for more details!</p> +<p>Happy testing!</p> +<p>---</p> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul class="simple"> +<li><a class="reference external" href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a class="reference external" href="https://gitlab.com/gitlab-org/gitlab/-/issues/334558">Give 👍 on GitLab</a>;</li> +<li><a class="reference external" href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a class="reference external" href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> +and follow all project news;</li> +<li><a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> +and an awesome open source hacker;</li> +<li><a class="reference external" href="/#subscriptions">Become a subscriber</a> and help us sustain development</li> +</ul> +</div> +Kiwi TCMS 11.02022-01-25T10:00:00+02:002022-01-25T10:00:00+02:00Kiwi TCMS Teamtag:None,2022-01-25:/blog/kiwi-tcms-team/2022/01/25/kiwi-tcms-110/<p>We're happy to announce Kiwi TCMS version 11.0.</p> +<p><strong>IMPORTANT:</strong> +This is a new major release which contains security related updates, several improvements, +API changes, bug fixes and new translations!</p> +<p>You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<blockquote> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 …</pre></blockquote><p>We're happy to announce Kiwi TCMS version 11.0.</p> +<p><strong>IMPORTANT:</strong> +This is a new major release which contains security related updates, several improvements, +API changes, bug fixes and new translations!</p> +<p>You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<blockquote> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +</blockquote> +<p>---</p> +<blockquote> +<p>Container images:</p> +<pre class="literal-block"> +kiwitcms/kiwi latest 6600bc56a544 622 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 +</pre> +</blockquote> +<p><strong>IMPORTANT:</strong> version tagged +<a class="reference external" href="/containers/">container</a> images are available only to +<a class="reference external" href="/#subscriptions">subscribers</a>!</p> +<div class="section" id="changes-since-kiwi-tcms-10-5"> +<h2>Changes since Kiwi TCMS 10.5</h2> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update Django to 3.2.11</li> +<li>Update django-colorfield from 0.4.5 to 0.6.3</li> +<li>Update django-grappelli from 2.15.3 to 3.0.2</li> +<li>Update psycopg2 from 2.9.2 to 2.9.3</li> +<li>Update pygments from 2.10.0 to 2.11.2</li> +<li>Update python-gitlab from 2.10.1 to 3.1.0</li> +<li>Update node_modules/prismjs from 1.25.0 to 1.26.0</li> +<li>Update node_modules/marked from 2.1.3 to 4.0.10</li> +<li>Admin panel now allows to view, add, edit and delete Environment records</li> +<li>Allow selection of environment when creating new TestRun and display the chosen +values inside the TestRun page. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1344">Issue #1344</a></li> +<li>Creating a TestRun will now generate test execution matrix based on the available +environment and test case properties. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1843">Issue #1843</a></li> +<li>When generating a test execution matrix the supported algorithms are +&quot;full&quot; and &quot;pairwise&quot;. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1931">Issue #1931</a><ul> +<li>Feature is enabled for test runs which contain test cases. This +feature is not shown when creating an empty test run</li> +<li>This feature isn't supported when subsequently adding new test cases +to test run</li> +</ul> +</li> +<li>Record a random hex number under <tt class="docutils literal"><span class="pre">/Kiwi/uploads/installation-id</span></tt></li> +</ul> +<p>Detailed information about properties, environments and test matrix generation +can be found +<a class="reference external" href="/blog/atodorov/2022/01/24/parameters-environments-and-test-matrix-generation/">in a separate article</a>.</p> +</div> +<div class="section" id="database"> +<h3>Database</h3> +<ul class="simple"> +<li>New model <tt class="docutils literal">testrun.Environment</tt></li> +<li>New model <tt class="docutils literal">testrun.EnvironmentProperty</tt></li> +<li>New model <tt class="docutils literal">testrun.Property</tt></li> +</ul> +<p><strong>Warning:</strong></p> +<blockquote> +<p>These newly added models create additional permission labels with names +<em>testruns | environment | Can .... environment</em>, +<em>testruns | property | Can .... property</em>, +<em>testruns | environment property | Can .... environment property</em></p> +<p>Execute <tt class="docutils literal">manage.py refresh_permissions</tt> and/or assign them manually to +users and groups if they should be able to interact with the new objects!</p> +</blockquote> +</div> +<div class="section" id="settings"> +<h3>Settings</h3> +<ul class="simple"> +<li>Update the value of <tt class="docutils literal">MODERNRPC_METHODS_MODULES</tt> setting to include +modules with the new API methods</li> +</ul> +</div> +<div class="section" id="api"> +<h3>API</h3> +<ul> +<li><p class="first">Method <tt class="docutils literal">TestRun.add_case</tt> will now return a list.</p> +<div class="admonition warning"> +<p class="first admonition-title">Warning</p> +<p class="last">This breaks API compatibility with older versions and will break +all plugins which rely on this method. Use plugins v11 or greater!</p> +</div> +</li> +<li><p class="first">Method <tt class="docutils literal">TestRun.add_case</tt> return value will now include a field named +<tt class="docutils literal">properties</tt></p> +</li> +<li><p class="first">New methods <tt class="docutils literal">Environment.properties</tt>, <tt class="docutils literal">Environment.add_property</tt> and +<tt class="docutils literal">Environment.remove_property</tt></p> +</li> +<li><p class="first">New method <tt class="docutils literal">TestRun.properties</tt></p> +</li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Send e-mail notification when adding comments to bugs. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2232">Issue #2232</a> (&#64;cmbahadir)</li> +<li>Disable the &quot;+&quot; button when there is no related element selected. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2561">Issue #2561</a> (&#64;cmbahadir)</li> +<li>When cloning test plans keep the existing test case sort order inside +the resulting test plan. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2218">Issue #2218</a> (Nicolas Gelot)</li> +<li>Configure en_US.UTF-8 locale inside container. Allows upload of files with +unicode names. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2600">Issue #2600</a></li> +</ul> +</div> +<div class="section" id="refactoring-and-testing"> +<h3>Refactoring and testing</h3> +<ul class="simple"> +<li>Refresh logo design</li> +<li>Pylint fixes</li> +<li>Pin setuptools b/c of problem with django-extensions</li> +<li>Remove redundant test scenario</li> +<li>Shell script refactoring</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/zh-CN#">Chinese Simplified translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/zh-TW#">Chinese Traditional translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/fr#">French translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/he#">Hebrew translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +</ul> +</div> +</div> +<div class="section" id="kiwi-tcms-enterprise-v11-0-mt"> +<h2>Kiwi TCMS Enterprise v11.0-mt</h2> +<ul> +<li><p class="first">Based on Kiwi TCMS v11.0</p> +</li> +<li><p class="first">Update kiwitcms-tenants from 1.8.0 to 1.11.0</p> +<blockquote> +<p>Private images:</p> +<pre class="literal-block"> +quay.io/kiwitcms/enterprise 11.0-mt a730291750f8 846 MB +quay.io/kiwitcms/version 11.0 6600bc56a544 622 MB +</pre> +</blockquote> +</li> +</ul> +<p><strong>IMPORTANT:</strong> version tagged and Enterprise +<a class="reference external" href="/containers/">container</a> images are available only to +<a class="reference external" href="/#subscriptions">subscribers</a>!</p> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p><a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">Backup</a> first! +Then execute the commands:</p> +<pre class="literal-block"> +cd path/containing/docker-compose/ +docker-compose down +docker-compose pull +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +</pre> +<p>Refer to +<a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/installing_docker.html#upgrading">our documentation</a> +for more details!</p> +<p>Happy testing!</p> +<p>---</p> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul class="simple"> +<li><a class="reference external" href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a class="reference external" href="https://gitlab.com/gitlab-org/gitlab/-/issues/334558">Give 👍 on GitLab</a>;</li> +<li><a class="reference external" href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a class="reference external" href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> +and follow all project news;</li> +<li><a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> +and an awesome open source hacker;</li> +<li><a class="reference external" href="/#subscriptions">Become a subscriber</a> and help us sustain development</li> +</ul> +</div> +Parameters, Environments and test matrix generation2022-01-24T19:40:00+02:002022-01-24T19:40:00+02:00Alexander Todorovtag:None,2022-01-24:/blog/atodorov/2022/01/24/parameters-environments-and-test-matrix-generation/<p>The upcoming Kiwi TCMS v11 contains new functionality around TestCase parameters and +TestRun environments which has an impact on how your final test execution matrix will +look like. This article provides detailed information about these features but have +in mind that they are still considered to be a technology-preview.</p> +<h2>Parameters …</h2><p>The upcoming Kiwi TCMS v11 contains new functionality around TestCase parameters and +TestRun environments which has an impact on how your final test execution matrix will +look like. This article provides detailed information about these features but have +in mind that they are still considered to be a technology-preview.</p> +<h2>Parameters</h2> +<p>Consider a login functionality which accepts email address and password. Possible states +for these fields are:</p> +<ul> +<li> +<p>Email address:</p> +<ul> +<li><code>valid</code> - well formed email string, exists in database, access is allowed</li> +<li><code>invalid</code> - malformed email string, should not exist in the DB but this fact is not relevant to the test</li> +<li><code>disabled</code> - well formed email string, exists in database, access is not allowed</li> +</ul> +</li> +<li> +<p>Password:</p> +<ul> +<li><code>correct</code> - matches the value in database for the given email address</li> +<li><code>another</code> - matches the value in database which is related to another email address</li> +<li><code>wrong</code> - doesn't match the value in database</li> +<li><code>empty</code> - value is empty string, a special case of <code>wrong</code></li> +<li><code>invalid</code> - value doesn't conform to predefined rules. May or may not be relevant to login functionality</li> +</ul> +</li> +</ul> +<p>Depending on how the software under test is put together you can design multiple test cases. +Fundamentally however these are the same test case and the above states are input parameters to it!</p> +<p><strong>Definition: TestCase parameters are different input values which do not fundamentally affect the result of +a test case! A TestCase with parameters will result into multiple test executions!</strong></p> +<p>In other words you will be executing a parameterized test scenario multiple times with different input values! +Inside Kiwi TCMS the actual parameter values during execution are recorded into the <code>TestExecution</code> model +which will not change if you modify test case parameter values afterwards!</p> +<p><strong>Definition: TestExecution parameters record a snapshot of TestCase parameters at the time when you intended +to execute a particular test scenario!</strong></p> +<h2>Environments</h2> +<p>A testing environment represents the specifics of where exactly you executed your test suite. +Consider this example:</p> +<blockquote> +<p>The default desktop environment of Fedora is GNOME, but if you prefer an alternative, +you can download installation media which contains slightly differently defaults, e.g. +KDE, Xfce, MATE and others, see <a href="https://spins.fedoraproject.org">https://spins.fedoraproject.org</a>.</p> +</blockquote> +<p>Regardless of which Fedora variant you choose the expected functionallity +of the default desktop experience is the same. However this can only be guaranteed with exhaustive +testing across all variants. Check-out the test matrix at +<a href="https://fedoraproject.org/wiki/Test_Results:Fedora_36_Rawhide_20220118.n.0_Desktop?rd=Test_Results:Current_Desktop_Test#Non_release-blocking_desktops:_x86_.2F_x86_64">https://fedoraproject.org/wiki/Test_Results:Fedora_36_Rawhide_20220118.n.0_Desktop?rd=Test_Results:Current_Desktop_Test#Non_release-blocking_desktops:_x86_.2F_x86_64</a></p> +<p><strong>Definition: a TestRun environment is a set of attributes which apply to the entire test suite +at the time of execution. Usually you expect test results in different environments to be the same!</strong></p> +<p>In Kiwi TCMS environments are represented as named containers of key/value pairs. +The same key may have multiple values! +They can be found under <em>ADMIN -&gt; Everything else -&gt; Environments</em>.</p> +<p>Because environments are meant to affect the entire test suite they are linked to the +<code>TestRun</code> model. When creating a new test run you can select multiple <code>Environment</code> +records.</p> +<h2>Test matrix generation</h2> +<p>The existing behavior in Kiwi TCMS is that when a test run is created there will be only one +test execution for every test case which is added inside this test run.</p> +<p>In the Fedora example shown above some of the test cases also have their own parameters, +e.g. the <em>QA:Testcase_desktop_app_basic</em> scenario.</p> +<p><strong>Definition: TestRun environment key/values will be combined with TestCase parameter key/values +to form the final test matrix! This opens up the possibility for combinatorial test execution +generation.</strong></p> +<p>Once parameters and environment(s) are specified you will start seeing multiple test executions +for the same test case inside newly created test runs. By default a full-combination test matrix +will be created. The other option is to <a href="https://www.pairwise.org/">pairwise</a> all key/value records.</p> +<p><strong>Important: test execution generation works only when creating or cloning a test run that contains +test cases. This feature still does not work for test cases added after a test run is created!</strong></p> +<h2>Environment(s) vs Tag(s)</h2> +<p>Inside Kiwi TCMS you can use both environments and tags to annotate test runs. +There are 3 important facts that hold true:</p> +<ul> +<li>Tags possess only informational value, they don't influence how you perform testing;</li> +<li>Environments possess informational value and govern the final test matrix;</li> +<li>Environments which have a single value for each different key are the same as tags!</li> +</ul> +<p><img alt="&quot;Example from #1344&quot;" src="/images/features/props-and-envs/env_from_1344.png" title="Example from #1344"></p> +<p>If we look at this example from <a href="https://github.com/kiwitcms/Kiwi/issues/1344">Issue #1344</a> we +can make out the following keys:</p> +<ul> +<li><em>Driver</em> - 2 values</li> +<li><em>API</em> - 2 values</li> +<li><em>Python</em> - 2 values</li> +<li><em>Java</em> - 1 value</li> +<li><em>Eclipse</em> - 1 value</li> +<li><em>Host OS</em> - 1 value</li> +<li><em>Target OS</em> - 1 value</li> +<li><em>Redistributable</em> - 1 value</li> +<li><em>Testing Type</em> - 1 value</li> +</ul> +<p>Here <em>Driver</em>, <em>API</em> and <em>Python</em> clearly should affect your test matrix. Otherwise there isn't +much point in having the different values recorded in the first place. That results in a 8x +multiplication factor for every functionality that may be affected/related to these attributes, +presumably the entire functionality of the product under test.</p> +<p><em>Java</em>, <em>Eclipse</em>, <em>Host OS</em> and <em>Target OS</em> carry only informational value but they look like +more values could be possible. If that's the case these attributes will also affect the overall +test matrix.</p> +<p><em>Redistributable</em> and <em>Testing Type</em> look like information-only attributes. They don't appear +to have any relevance to the test matrix at all. The same information-only effect can be achieved +both with environments and with tags.</p> +<p><strong>Practical rules:</strong></p> +<ol> +<li>Attributes which affect a single test case should be defined as TestCase parameters</li> +<li>Attributes which affect all test cases in a suite should be defined as TestRun environment(s)</li> +<li>One big TestRun is likely the best from organizational and optimizational point of view</li> +</ol> +<p>You may decide to have multiple smaller test runs, usually with 1 value per environment key, +if you think that fits your workflow better. However you may be missing on some optimizations if you +choose to do so.</p> +<h2>Real life example</h2> +<p>To illustrate how all of these new features work let's look at +<a href="https://fedoraproject.org/wiki/QA:Testcase_partitioning_custom_software_RAID">Partitioning custom software RAID</a> +test case from Fedora QA. It instructs the tester to install Linux and inside the +partitioning screen create a <em>Software RAID</em> partition, format it with a filesystem and +assign a mount point! It is expected that once installation is complete the machine will +reboot, tester will be able to login as root and the created filesystem will be available!</p> +<p>Factors that could affect this functionality:</p> +<ul> +<li> +<p><em>Raid Level</em>: Fedora supports 7 of them - 0, 1, 4, 5, 6, 10 and linear. These are all different drivers + located under <code>/lib/modules/$(uname -r)/kernel/drivers/md</code></p> +<div class="highlight"><pre><span></span><code>./linear.ko.xz +./raid0.ko.xz +./raid10.ko.xz +./raid1.ko.xz +./raid456.ko.xz +</code></pre></div> + + +</li> +<li> +<p><em>Mount Point</em>: <code>/</code> for example is mounted very early in the boot process, <code>/home</code> is mounted much later. + <code>/</code> also relates to rescue mode, while <code>/home</code> doesn't. <code>/home</code>, if corrupted, may affect the terminal + login process though</p> +</li> +<li><em>Encryption</em>: Yes/No. This is stackable on top of the RAID device and "should-just-work". However it is often + included into other partitioning test cases in order to discover weird issues and because it is a critical + functionality</li> +</ul> +<p>We may add the actual filesystem type, used to format the RAID block device, +e.g. <em>xfs</em>, <em>ext3</em>, <em>ext4</em>, but that's not needed here! Here's how this test case looks in Kiwi TCMS:</p> +<p><img alt="&quot;RAID test case&quot;" src="/images/features/props-and-envs/raid-tc-with-params.png" title="RAID test case"></p> +<p>Remember that Fedora comes with multiple variants for multiple CPU architectures! Of those we'll consider +<em>Server</em> and <em>Workstation</em>, which are both available for the <em>aarch64</em> and <em>x86_64</em> CPU +architectures. Here's how this can be represented inside Kiwi TCMS:</p> +<p><img alt="&quot;Fedora variants represented as environment&quot;" src="/images/features/props-and-envs/env-fedora-variants.png" title="Fedora variants represented as environment"></p> +<p><br/> +<br/> +Next we need to organize test execution for an upcoming release by creating test run(s) and +selecting environment and matrix generation type: +<img alt="&quot;New test run with environment&quot;" src="/images/features/props-and-envs/new-tr-with-env.png" title="New test run with environment"></p> +<p>The possible outcomes are:</p> +<ul> +<li><strong>112 test executions</strong>: full test matrix between all Fedora variants and all RAID parameters</li> +<li><strong>56 test executions</strong>: 4 TR x 14 TE; one TR/variant without environment; RAID parameters are pairwised</li> +<li><strong>16 test executions</strong>: all Fedora variants are pairwised together with all RAID parameters</li> +</ul> +<p>Finally this is how the resulting test run looks like. Notice the 3 boxes icon for each +test execution, listing the actual parameters which should be used during testing:</p> +<p><img alt="&quot;TR with environment, TE with parameters&quot;" src="/images/features/props-and-envs/tr-env-and-te-props.png" title="TR with environment, TE with parameters"></p> +<p>Environment parameters are read-only here b/c they have been copied to all test execution records. +It usually doesn't make sense to modify your environment mid-way during test execution. +If that's needed or you've made a mistake it's probably easier to create a new test run.</p> +<p>Happy Testing!</p> +<hr> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul> +<li><a href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a href="https://gitlab.com/gitlab-org/gitlab/-/issues/334558">Give 👍 on GitLab</a>;</li> +<li><a href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> + and follow all project news;</li> +<li><a href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> and an awesome open source hacker;</li> +<li><a href="/#subscriptions">Become a customer</a> and we'll share our profits with the community</li> +</ul>Kiwi TCMS Enterprise 10.5.12022-01-06T13:45:00+02:002022-01-06T13:45:00+02:00Kiwi TCMS Teamtag:None,2022-01-06:/blog/kiwi-tcms-team/2022/01/06/kiwi-tcms-enterprise-1051/<p>We're happy to announce Kiwi TCMS Enterprise version 10.5.1!</p> +<p><strong>IMPORTANT:</strong> +this is a small release which contains minor improvements and bug-fixes.</p> +<p>You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<div class="section" id="kiwi-tcms-enterprise-v10-5-1-mt"> +<h2>Kiwi TCMS Enterprise v10.5.1-mt</h2> +<ul> +<li><p class="first">Based on Kiwi TCMS v10.5</p> +</li> +<li><p class="first">Update django-python3-ldap from 0.13 …</p></li></ul></div><p>We're happy to announce Kiwi TCMS Enterprise version 10.5.1!</p> +<p><strong>IMPORTANT:</strong> +this is a small release which contains minor improvements and bug-fixes.</p> +<p>You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<div class="section" id="kiwi-tcms-enterprise-v10-5-1-mt"> +<h2>Kiwi TCMS Enterprise v10.5.1-mt</h2> +<ul> +<li><p class="first">Based on Kiwi TCMS v10.5</p> +</li> +<li><p class="first">Update django-python3-ldap from 0.13.0 to 0.13.1</p> +</li> +<li><p class="first">Update kiwitcms-github-app from 1.3.1 to 1.3.2</p> +<blockquote> +<p>Private images:</p> +<pre class="literal-block"> +quay.io/kiwitcms/enterprise 10.5.1-mt c4d745bd914c 806MB +</pre> +</blockquote> +</li> +</ul> +<p><strong>IMPORTANT:</strong> version tagged and Enterprise +<a class="reference external" href="/containers/">container</a> images are available only to +<a class="reference external" href="/#subscriptions">subscribers</a>!</p> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p><a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">Backup</a> first! +Then execute the commands:</p> +<pre class="literal-block"> +cd path/containing/docker-compose/ +docker-compose down +docker-compose pull +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +</pre> +<p>Refer to +<a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/installing_docker.html#upgrading">our documentation</a> +for more details!</p> +<p>Happy testing!</p> +<p>---</p> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul class="simple"> +<li><a class="reference external" href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a class="reference external" href="https://gitlab.com/gitlab-org/gitlab/-/issues/334558">Give 👍 on GitLab</a>;</li> +<li><a class="reference external" href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a class="reference external" href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> +and follow all project news;</li> +<li><a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> +and an awesome open source hacker;</li> +<li><a class="reference external" href="/#subscriptions">Become a subscriber</a> and help us sustain development</li> +</ul> +</div> +New versions of automation frameworks plugins2021-12-14T13:00:00+02:002021-12-14T13:00:00+02:00Kiwi TCMS Teamtag:None,2021-12-14:/blog/kiwi-tcms-team/2021/12/14/new-versions-of-automation-frameworks-plugins/<p>Kiwi TCMS is pleased to announce new versions of our plugins for different +test automation frameworks:</p> +<ul class="simple"> +<li><a class="reference external" href="https://github.com/kiwitcms/tap-plugin">tap-plugin</a></li> +<li><a class="reference external" href="https://github.com/kiwitcms/junit.xml-plugin">junit.xml-plugin</a></li> +<li><a class="reference external" href="https://github.com/kiwitcms/junit-plugin/">JUnit 5 plugin</a></li> +<li><a class="reference external" href="https://github.com/kiwitcms/robotframework-plugin">Robot Framework plugin</a></li> +<li><a class="reference external" href="https://github.com/kiwitcms/django-plugin">Django test runner plugin</a></li> +</ul> +<p>The new versions are future compatible with upcoming Kiwi TCMS v11 and also with existing +Kiwi TCMS v10.x installations. Check-out …</p><p>Kiwi TCMS is pleased to announce new versions of our plugins for different +test automation frameworks:</p> +<ul class="simple"> +<li><a class="reference external" href="https://github.com/kiwitcms/tap-plugin">tap-plugin</a></li> +<li><a class="reference external" href="https://github.com/kiwitcms/junit.xml-plugin">junit.xml-plugin</a></li> +<li><a class="reference external" href="https://github.com/kiwitcms/junit-plugin/">JUnit 5 plugin</a></li> +<li><a class="reference external" href="https://github.com/kiwitcms/robotframework-plugin">Robot Framework plugin</a></li> +<li><a class="reference external" href="https://github.com/kiwitcms/django-plugin">Django test runner plugin</a></li> +</ul> +<p>The new versions are future compatible with upcoming Kiwi TCMS v11 and also with existing +Kiwi TCMS v10.x installations. Check-out the pages above for individual instructions.</p> +<p>Happy testing!</p> +<p>---</p> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul class="simple"> +<li><a class="reference external" href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a class="reference external" href="https://gitlab.com/gitlab-org/gitlab/-/issues/334558">Give 👍 on GitLab</a>;</li> +<li><a class="reference external" href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a class="reference external" href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> +and follow all project news;</li> +<li><a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> +and an awesome open source hacker;</li> +<li><a class="reference external" href="/#subscriptions">Become a subscriber</a> and help us sustain development</li> +</ul> +Call for participation: Testing and Automation devroom, FOSDEM'222021-12-06T19:40:00+02:002021-12-06T19:40:00+02:00Kiwi TCMS Teamtag:None,2021-12-06:/blog/kiwi-tcms-team/2021/12/06/call-for-participation-testing-and-automation-devroom-fosdem22/<p><img alt="&quot;Cfp banner&quot;" src="/images/fosdem/2022/banner.png" title="Cfp banner"></p> +<p>Attention testers! On behalf of +<a href="https://fosdem-testingautomation.github.io/"><em>Testing and Automation devroom</em></a> +we'd like to announce that call for participation is now open.</p> +<p>Here are some ideas for topics that are a good fit for this devroom:</p> +<p>Testing in the real, open source world</p> +<ul> +<li>War stories/strategies for testing large scale or complex …</li></ul><p><img alt="&quot;Cfp banner&quot;" src="/images/fosdem/2022/banner.png" title="Cfp banner"></p> +<p>Attention testers! On behalf of +<a href="https://fosdem-testingautomation.github.io/"><em>Testing and Automation devroom</em></a> +we'd like to announce that call for participation is now open.</p> +<p>Here are some ideas for topics that are a good fit for this devroom:</p> +<p>Testing in the real, open source world</p> +<ul> +<li>War stories/strategies for testing large scale or complex projects</li> +<li>Demystify resource e.g. systems/device/cloud provisioning in a CI loop</li> +<li>Tools that extend the ability to test low-level code, e.g. bootloaders, init +systems, etc.</li> +<li>Projects that are introducing new/interesting ways of testing "systems"</li> +<li>Address the automated testing frameworks fragmentation</li> +<li>Lessons learned from testing</li> +</ul> +<p>Cool Tools (good candidates for lightning talks)</p> +<ul> +<li>How your open source tool made developing quality software better</li> +<li>What tools do you use to setup your CI/CD</li> +<li>Combining projects/plugins/tools to build amazing things "Not enough people in +the open source community know how to use $X, but here's a tutorial on how to +use $X to make your project better."</li> +</ul> +<p>In the past the devroom has seen both newbies/students and experienced professionals and +past speakers as part of the audience and talks covering from beginner/practical +to advanced/abstract topics. If you have doubts then submit your proposal and +leave a comment for the devroom managers and we'll get back to you.</p> +<p>Checkout +<a href="https://fosdem-testingautomation.github.io/">https://fosdem-testingautomation.github.io/</a> for more information!</p> +<p>Happy Testing!</p> +<hr> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul> +<li><a href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> + and follow all project news;</li> +<li><a href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> and an awesome open source hacker;</li> +<li><a href="/#subscriptions">Become a customer</a> and we'll share our profits with the community</li> +</ul>Kiwi TCMS 10.52021-11-26T11:20:00+02:002021-11-26T11:20:00+02:00Kiwi TCMS Teamtag:None,2021-11-26:/blog/kiwi-tcms-team/2021/11/26/kiwi-tcms-105/<p>We're happy to announce Kiwi TCMS version 10.5 which celebrates the +very positive reception we had at +<a class="reference external" href="/blog/kiwi-tcms-team/2021/10/29/catch-up-with-kiwi-tcms-at-websummit-2021-lisbon/">WebSummit 2021</a>!</p> +<p><strong>IMPORTANT:</strong> +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.</p> +<p>You can explore …</p><p>We're happy to announce Kiwi TCMS version 10.5 which celebrates the +very positive reception we had at +<a class="reference external" href="/blog/kiwi-tcms-team/2021/10/29/catch-up-with-kiwi-tcms-at-websummit-2021-lisbon/">WebSummit 2021</a>!</p> +<p><strong>IMPORTANT:</strong> +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.</p> +<p>You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<blockquote> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +</blockquote> +<p>---</p> +<blockquote> +<p>Container images:</p> +<pre class="literal-block"> +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 +</pre> +</blockquote> +<p><strong>IMPORTANT:</strong> version tagged +<a class="reference external" href="/containers/">container</a> images are available only to +<a class="reference external" href="/#subscriptions">subscribers</a>!</p> +<div class="section" id="changes-since-kiwi-tcms-10-4"> +<h2>Changes since Kiwi TCMS 10.4</h2> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update django from 3.2.7 to 3.2.9</li> +<li>Update django-colorfield from 0.4.3 to 0.4.5</li> +<li>Update django-extensions from 3.1.3 to 3.1.5</li> +<li>Update django-grappelli from 2.15.1 to 2.15.3</li> +<li>Update django-tree-queries from 0.6.0 to 0.7.0</li> +<li>Update jira from 3.0.1 to 3.1.1</li> +<li>Update markdown from 3.3.4 to 3.3.6</li> +<li>Update mysqlclient from 2.0.3 to 2.1.0</li> +<li>Update psycopg2 from 2.9.1 to 2.9.2</li> +<li>Display a warning if connection doesn't use HTTPS (Ivajlo Karabojkov)</li> +<li>Account registration page can be turned on/off via settings. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2500">Issue #2500</a></li> +<li>TestCase Search page can now filter by TestPlan. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2283">Issue #2283</a></li> +<li>Allow template selection when creating new test case. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/957">Issue #957</a></li> +<li>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 +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1843">Issue #1843</a>, +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1931">Issue #1931</a> and +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1344">Issue #1344</a> but isn't active anywhere else inside +Kiwi TCMS at the moment</li> +<li>TestExecution properties will be displayed inside TestRun page if they +have been specified</li> +<li>Rearrange help-text in admin page for better visibility</li> +<li>Switch to official Postgres image from Docker Hub</li> +<li>Switch to official MariaDB image from Docker Hub</li> +</ul> +<p><strong>Warning:</strong></p> +<blockquote> +<p>For Postgres data dir changed from <tt class="docutils literal">/var/lib/pgsql/data</tt> to <tt class="docutils literal">/var/lib/postgres/data</tt>. +Environment variables inside docker-compose file changed as well, +see <tt class="docutils literal"><span class="pre">docker-compose.postgres</span></tt>.</p> +<p>For MariaDB data dir changed from <tt class="docutils literal">/var/lib/mysql/data</tt> to <tt class="docutils literal">/var/lib/mysql</tt>. +<tt class="docutils literal">MYSQL_CHARSET</tt> &amp; <tt class="docutils literal">MYSQL_COLLATION</tt> environment variables are no longer +recognized. Instead they are present as command line options passed to the container, +see <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt>. Previous workaround for these variables was also removed.</p> +<p>If you want to migrate from the previous <tt class="docutils literal"><span class="pre">centos/mariadb-103-centos7</span></tt> or +<tt class="docutils literal"><span class="pre">centos/postgresql-12-centos7</span></tt> containers to <tt class="docutils literal">mariadb:latest</tt> and <tt class="docutils literal">postgres:latest</tt> +make sure to update your container control files!</p> +</blockquote> +</div> +<div class="section" id="settings"> +<h3>Settings</h3> +<ul class="simple"> +<li>New setting <tt class="docutils literal">REGISTRATION_ENABLED</tt>, default <tt class="docutils literal">True</tt>, Can be controlled via +environment variable <tt class="docutils literal">KIWI_REGISTRATION_ENABLED</tt>. When set to <tt class="docutils literal">False</tt> +will disable account registration page</li> +</ul> +</div> +<div class="section" id="database"> +<h3>Database</h3> +<ul class="simple"> +<li>New model <tt class="docutils literal">testcases.Property</tt></li> +<li>New model <tt class="docutils literal">testcases.Template</tt></li> +<li>New model <tt class="docutils literal">testruns.TestExecutionProperty</tt></li> +<li>Remove <tt class="docutils literal">unique_together</tt> constraint for <tt class="docutils literal">testruns.TestExecution</tt> model. +This makes it possible to add multiple executions for the same test case in +the same test run</li> +</ul> +<p><strong>Warning:</strong></p> +<blockquote> +<p>These newly added models create additional permission labels with names +<em>testcases | template | Can .... template</em>, +<em>testcases | property | Can .... property</em>, +<em>testruns | test execution property | Can .... test execution property</em></p> +<p>Execute <tt class="docutils literal">manage.py refresh_permissions</tt> and/or assign them manually to +users and groups if they should be able to interact with the new objects!</p> +</blockquote> +</div> +<div class="section" id="api"> +<h3>API</h3> +<ul class="simple"> +<li>Method <tt class="docutils literal">TestCase.filter()</tt> now returns additional fields +<tt class="docutils literal">setup_duration</tt>, <tt class="docutils literal">testing_duration</tt>, <tt class="docutils literal">expected_duration</tt> - all +serialized in seconds. Refs +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1923">Issue #1923</a> (Mfon Eti-mfon)</li> +<li>Method <tt class="docutils literal">User.filter()</tt> will no longer return fields +<tt class="docutils literal">groups</tt>, <tt class="docutils literal">user_permissions</tt>, <tt class="docutils literal">date_joined</tt> and <tt class="docutils literal">last_login</tt></li> +<li>New method <tt class="docutils literal">TestExecution.properties()</tt></li> +<li>New method <tt class="docutils literal">TestCase.properties()</tt></li> +<li>New method <tt class="docutils literal">TestCase.add_property()</tt></li> +<li>New method <tt class="docutils literal">TestCase.remove_property()</tt></li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Unify tab size &amp; tab indentation b/w Python &amp; SimpleMDE. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1802">Issue #1802</a></li> +<li>Use <tt class="docutils literal">sane_list extension</tt> for rendering consecutive lists in markdown. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2511">Issue #2511</a></li> +</ul> +<p><strong>Warning:</strong></p> +<blockquote> +<p>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 &quot;Indentation/Tab Length&quot; at <a class="reference external" href="https://python-markdown.github.io/#differences">https://python-markdown.github.io/#differences</a></p> +<p>The backend markdown rendering engine explicitly followed an undefined behavior +which happens to be different from what the visual markdown editor does. +See &quot;Consecutive Lists&quot; at <a class="reference external" href="https://python-markdown.github.io/#differences">https://python-markdown.github.io/#differences</a></p> +<p>The previous 2 changes make sure the visual editor and backend rendering engine +follow the same rules. This may result is &quot;broken&quot; 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.</p> +</blockquote> +<ul class="simple"> +<li>Fix broken URL and minor updates to documentation</li> +<li>Update GitLab tracker integration documentation to avoid confusion. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2559">Issue #2559</a></li> +<li>Limit tag input length to 255 characters. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2176">Issue #2176</a></li> +<li>Make error notifications in Admin to display with red color</li> +<li>Select only visible rows for bulk-update in TestRun page. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2222">Issue #2222</a></li> +<li>Remove <tt class="docutils literal"><span class="pre">Cache-Control</span></tt> header from httpd. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/443">Issue #443</a></li> +</ul> +</div> +<div class="section" id="refactoring-and-testing"> +<h3>Refactoring and testing</h3> +<ul class="simple"> +<li>Add permissions test for add-hyperlink-bulk menu. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/716">Issue #716</a></li> +<li>Add explicit tests for issue tracker integration with GitLab.com</li> +<li>Tests teardown - remove comments &amp; close issues on GitLab.com</li> +<li>Add missing <tt class="docutils literal">rlPhaseEnd</tt> for docker tests</li> +<li>Multiple pylint and eslint fixes</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/fr#">French translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/hu#">Hungarian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +</ul> +</div> +</div> +<div class="section" id="kiwi-tcms-enterprise-v10-5-mt"> +<h2>Kiwi TCMS Enterprise v10.5-mt</h2> +<ul> +<li><p class="first">Based on Kiwi TCMS v10.5</p> +</li> +<li><p class="first">Update django-python3-ldap from 0.12.0 to 0.12.1</p> +</li> +<li><p class="first">Update django-ses from 2.3.0 to 2.3.1</p> +</li> +<li><p class="first">Update kiwitcms-tenants from 1.7.0 to 1.8.0</p> +<blockquote> +<p>Private images:</p> +<pre class="literal-block"> +quay.io/kiwitcms/enterprise 10.5-mt 3e597c91d057 804 MB +quay.io/kiwitcms/version 10.5 0574b19b5d66 583 MB +</pre> +</blockquote> +</li> +</ul> +<p><strong>IMPORTANT:</strong> version tagged and Enterprise +<a class="reference external" href="/containers/">container</a> images are available only to +<a class="reference external" href="/#subscriptions">subscribers</a>!</p> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p><a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">Backup</a> first! +Then execute the commands:</p> +<pre class="literal-block"> +cd path/containing/docker-compose/ +docker-compose down +docker-compose pull +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +</pre> +<p>Refer to +<a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/installing_docker.html#upgrading">our documentation</a> +for more details!</p> +<p>Happy testing!</p> +<p>---</p> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul class="simple"> +<li><a class="reference external" href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a class="reference external" href="https://gitlab.com/gitlab-org/gitlab/-/issues/334558">Give 👍 on GitLab</a>;</li> +<li><a class="reference external" href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a class="reference external" href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> +and follow all project news;</li> +<li><a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> +and an awesome open source hacker;</li> +<li><a class="reference external" href="/#subscriptions">Become a subscriber</a> and help us sustain development</li> +</ul> +</div> +Kiwi TCMS subscription guidelines2021-11-01T20:03:00+02:002021-11-01T20:03:00+02:00Kiwi TCMS Teamtag:None,2021-11-01:/blog/kiwi-tcms-team/2021/11/01/kiwi-tcms-subscription-guidelines/<p>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. +<em>We recommend that customers purchase a subscription for every container running +Kiwi TCMS</em> however this becomes distorted for teams who don't actively …</p><p>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. +<em>We recommend that customers purchase a subscription for every container running +Kiwi TCMS</em> however this becomes distorted for teams who don't actively seek support +and large organizations! Here are our guidelines.</p> +<h2>Phase of deployment</h2> +<p><strong>Casual exploration:</strong> No subscription required. Use <a href="https://public.tenant.kiwitcms.org">https://public.tenant.kiwitcms.org</a> +to explore Kiwi TCMS and formulate your questions and further plan of action.</p> +<p><strong>Serious evaluation</strong> or <strong>Proof of concept:</strong> 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!</p> +<p><strong>Pilot:</strong> 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.</p> +<p><strong>Production:</strong> make your decision according to the size of your test team and +anticipated support needs, see below.</p> +<blockquote> +<p>Our mission is to transform the testing process inside your organization. +You don't have to do it alone! Let us help you!</p> +</blockquote> +<h2>Number of testers</h2> +<p><strong>&lt;= 25:</strong> 1x Private Tenant SaaS</p> +<p><strong>25-100:</strong> 2-5x Private Tenant SaaS; consider splitting teams +and purchase a subscription for each of them</p> +<p><strong>100 - 200:</strong> 1x Enterprise; consider additional subscriptions of any kind for +non-production instances</p> +<p><strong>200 - 500</strong> - 2-3x Enterprise; consider additional subscriptions of any kind +for non-production instances</p> +<p><strong>500 - 1000:</strong> - 5x Enterprise; consider additional Enterprise subscriptions for +non-production instances</p> +<p><strong>Over 1000:</strong> 10x Enterprise; consider add-on services for custom development</p> +<blockquote> +<p>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!</p> +</blockquote> +<p>--</p> +<blockquote> +<p>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 that low though?</p> +</blockquote> +<p>Ready ? <a href="/#subscriptions">Explore subscriptions</a>!</p> +<hr> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul> +<li><a href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a href="https://gitlab.com/gitlab-org/gitlab/-/issues/334558">Give 👍 on GitLab</a>;</li> +<li><a href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> + and follow all project news;</li> +<li><a href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> and an awesome open source hacker;</li> +<li><a href="/#subscriptions">Become a customer</a> and enjoy the benefits</li> +</ul>Catch up with Kiwi TCMS at WebSummit 2021 Lisbon2021-10-29T16:00:00+03:002021-10-29T16:00:00+03:00Kiwi TCMS Teamtag:None,2021-10-29:/blog/kiwi-tcms-team/2021/10/29/catch-up-with-kiwi-tcms-at-websummit-2021-lisbon/<p><img alt="Venue map" src="/images/conf/websummit/2021_venue_map.png" title="venue map"></p> +<p>We're happy to announce that +Kiwi TCMS will host an exhibition stand at <a href="https://websummit.com/">WebSummit 2021</a> in Lisbon. +You can find us on Wednesday, November 03, +<strong>Stand number: A 407, Industry category: Pavilion 3, ALPHA 4</strong>.</p> +<div class="member-bio" style="margin-top: 2vh"> + <img src="/images/conf/websummit/black_boxes.png" alt="black boxes" style="float:left; margin-right: 1vw"> + <p> + At the exhibition stand you will have the opportunity to perform some real + <a href="/blog/kiwi-tcms-team/2020/10/10/progress-update-on-open-source-hardware-for-black-box-testing/">black-box testing …</a></p></div><p><img alt="Venue map" src="/images/conf/websummit/2021_venue_map.png" title="venue map"></p> +<p>We're happy to announce that +Kiwi TCMS will host an exhibition stand at <a href="https://websummit.com/">WebSummit 2021</a> in Lisbon. +You can find us on Wednesday, November 03, +<strong>Stand number: A 407, Industry category: Pavilion 3, ALPHA 4</strong>.</p> +<div class="member-bio" style="margin-top: 2vh"> + <img src="/images/conf/websummit/black_boxes.png" alt="black boxes" style="float:left; margin-right: 1vw"> + <p> + At the exhibition stand you will have the opportunity to perform some real + <a href="/blog/kiwi-tcms-team/2020/10/10/progress-update-on-open-source-hardware-for-black-box-testing/">black-box testing</a>, + learn about Salience bias, Peltzman effect and Wason's experiments and take a photo with + our lovely mascot. + </p> + + <p> + The Kiwi TCMS team will be there to answer all of your questions regarding + open source, community, support, various integrations and the differences between + <em>Free</em>, <em>SaaS</em> and <em>Enterprise</em> + <a href="/#subscriptions">subscriptions</a>! + </p> + + <p> + If you still need more convincing check-out our + <a href="https://www.youtube.com/watch?v=yIyhkcJ8How">WebSummit SHOWCASE video</a> + and how + <a href="https://www.youtube.com/watch?v=Wob_L_SrEwE&t=571s">QGIS organizes their testing with Kiwi TCMS</a>. + </p> + <p> + <em> + Fun fact: adoption of Kiwi TCMS is lead by Alexandre Neto - a QGIS community member from Portugal. + </em> + </p> +</div> + +<hr> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul> +<li><a href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a href="https://gitlab.com/gitlab-org/gitlab/-/issues/334558">Give 👍 on GitLab</a>;</li> +<li><a href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> + and follow all project news;</li> +<li><a href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> and an awesome open source hacker;</li> +<li><a href="/#subscriptions">Become a customer</a> and we'll share our profits with the community</li> +</ul>Announcing winners of 6 tickets for HackConf 20212021-10-06T14:00:00+03:002021-10-06T14:00:00+03:00Kiwi TCMS Teamtag:None,2021-10-06:/blog/kiwi-tcms-team/2021/10/06/announcing-winners-of-6-tickets-for-hackconf-2021/<p>Here are the winners of our <a href="/blog/kiwi-tcms-team/2021/09/01/win-6-superfan-tickets-for-hackconf-2021/">ticket giveaway</a>:</p> +<ul> +<li>Martin Ayvazov</li> +<li>Ralitsa Georgieva</li> +<li>Teodora Pashina - Dimitrova</li> +<li>Gabriela Luhova</li> +<li>Lyuboslava Arshinkova</li> +<li>Yoan Bachev</li> +</ul> +<p><strong>Attention winners:</strong> please get in touch with us at <em>info@kiwitcms.org</em> to claim your tickets. +We will ask you to validate your GitLab account by performing a quick …</p><p>Here are the winners of our <a href="/blog/kiwi-tcms-team/2021/09/01/win-6-superfan-tickets-for-hackconf-2021/">ticket giveaway</a>:</p> +<ul> +<li>Martin Ayvazov</li> +<li>Ralitsa Georgieva</li> +<li>Teodora Pashina - Dimitrova</li> +<li>Gabriela Luhova</li> +<li>Lyuboslava Arshinkova</li> +<li>Yoan Bachev</li> +</ul> +<p><strong>Attention winners:</strong> please get in touch with us at <em>info@kiwitcms.org</em> 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!</p> +<p>Raw data from our +<a href="https://github.com/kiwitcms/api-scripts/pull/1">winner selection script</a> below:</p> +<div class="highlight"><pre><span></span><code><span class="o">*****</span> <span class="n">WINNER</span> <span class="c1">#1: Martin Ayvazov</span> +<span class="p">{</span><span class="s1">&#39;avatar_url&#39;</span><span class="p">:</span> <span class="s1">&#39;https://secure.gravatar.com/avatar/eea811553e2b8aa3dd7ef670c3cd3552?s=80&amp;d=identicon&#39;</span><span class="p">,</span> + <span class="s1">&#39;id&#39;</span><span class="p">:</span> <span class="mi">9640539</span><span class="p">,</span> + <span class="s1">&#39;name&#39;</span><span class="p">:</span> <span class="s1">&#39;Martin Ayvazov&#39;</span><span class="p">,</span> + <span class="s1">&#39;state&#39;</span><span class="p">:</span> <span class="s1">&#39;active&#39;</span><span class="p">,</span> + <span class="s1">&#39;username&#39;</span><span class="p">:</span> <span class="s1">&#39;majvazov&#39;</span><span class="p">,</span> + <span class="s1">&#39;web_url&#39;</span><span class="p">:</span> <span class="s1">&#39;https://gitlab.com/majvazov&#39;</span><span class="p">}</span> +<span class="o">*****</span> <span class="n">WINNER</span> <span class="c1">#2: Ralitsa Georgieva</span> +<span class="p">{</span><span class="s1">&#39;avatar_url&#39;</span><span class="p">:</span> <span class="s1">&#39;https://secure.gravatar.com/avatar/43aa50437fc245766bc3e6072777c056?s=80&amp;d=identicon&#39;</span><span class="p">,</span> + <span class="s1">&#39;id&#39;</span><span class="p">:</span> <span class="mi">9869926</span><span class="p">,</span> + <span class="s1">&#39;name&#39;</span><span class="p">:</span> <span class="s1">&#39;Ralitsa Georgieva&#39;</span><span class="p">,</span> + <span class="s1">&#39;state&#39;</span><span class="p">:</span> <span class="s1">&#39;active&#39;</span><span class="p">,</span> + <span class="s1">&#39;username&#39;</span><span class="p">:</span> <span class="s1">&#39;ralitsa.georgieva&#39;</span><span class="p">,</span> + <span class="s1">&#39;web_url&#39;</span><span class="p">:</span> <span class="s1">&#39;https://gitlab.com/ralitsa.georgieva&#39;</span><span class="p">}</span> +<span class="o">*****</span> <span class="n">WINNER</span> <span class="c1">#3: Teodora Pashina - Dimitrova</span> +<span class="p">{</span><span class="s1">&#39;avatar_url&#39;</span><span class="p">:</span> <span class="s1">&#39;https://secure.gravatar.com/avatar/beca49c67ce9862a8ecb8deff94780a7?s=80&amp;d=identicon&#39;</span><span class="p">,</span> + <span class="s1">&#39;id&#39;</span><span class="p">:</span> <span class="mi">9869893</span><span class="p">,</span> + <span class="s1">&#39;name&#39;</span><span class="p">:</span> <span class="s1">&#39;Teodora Pashina - Dimitrova&#39;</span><span class="p">,</span> + <span class="s1">&#39;state&#39;</span><span class="p">:</span> <span class="s1">&#39;active&#39;</span><span class="p">,</span> + <span class="s1">&#39;username&#39;</span><span class="p">:</span> <span class="s1">&#39;tedi.pashina&#39;</span><span class="p">,</span> + <span class="s1">&#39;web_url&#39;</span><span class="p">:</span> <span class="s1">&#39;https://gitlab.com/tedi.pashina&#39;</span><span class="p">}</span> +<span class="o">*****</span> <span class="n">WINNER</span> <span class="c1">#4: Gabriela Luhova</span> +<span class="p">{</span><span class="s1">&#39;avatar_url&#39;</span><span class="p">:</span> <span class="s1">&#39;https://secure.gravatar.com/avatar/92e863a1e3df1122cc0beb2477a375be?s=80&amp;d=identicon&#39;</span><span class="p">,</span> + <span class="s1">&#39;id&#39;</span><span class="p">:</span> <span class="mi">9641952</span><span class="p">,</span> + <span class="s1">&#39;name&#39;</span><span class="p">:</span> <span class="s1">&#39;Gabriela Luhova&#39;</span><span class="p">,</span> + <span class="s1">&#39;state&#39;</span><span class="p">:</span> <span class="s1">&#39;active&#39;</span><span class="p">,</span> + <span class="s1">&#39;username&#39;</span><span class="p">:</span> <span class="s1">&#39;gabriela.luhova&#39;</span><span class="p">,</span> + <span class="s1">&#39;web_url&#39;</span><span class="p">:</span> <span class="s1">&#39;https://gitlab.com/gabriela.luhova&#39;</span><span class="p">}</span> +<span class="o">*****</span> <span class="n">WINNER</span> <span class="c1">#5: Lyuboslava Arshinkova</span> +<span class="p">{</span><span class="s1">&#39;avatar_url&#39;</span><span class="p">:</span> <span class="s1">&#39;https://secure.gravatar.com/avatar/1e0a308ddbe3b8ab9660ec7702fa0d6d?s=80&amp;d=identicon&#39;</span><span class="p">,</span> + <span class="s1">&#39;id&#39;</span><span class="p">:</span> <span class="mi">9869399</span><span class="p">,</span> + <span class="s1">&#39;name&#39;</span><span class="p">:</span> <span class="s1">&#39;Lyuboslava Arshinkova&#39;</span><span class="p">,</span> + <span class="s1">&#39;state&#39;</span><span class="p">:</span> <span class="s1">&#39;active&#39;</span><span class="p">,</span> + <span class="s1">&#39;username&#39;</span><span class="p">:</span> <span class="s1">&#39;arshinkovalyuboslava&#39;</span><span class="p">,</span> + <span class="s1">&#39;web_url&#39;</span><span class="p">:</span> <span class="s1">&#39;https://gitlab.com/arshinkovalyuboslava&#39;</span><span class="p">}</span> +<span class="o">*****</span> <span class="n">WINNER</span> <span class="c1">#6: Yoan Bachev</span> +<span class="p">{</span><span class="s1">&#39;avatar_url&#39;</span><span class="p">:</span> <span class="s1">&#39;https://gitlab.com/uploads/-/system/user/avatar/7630581/avatar.png&#39;</span><span class="p">,</span> + <span class="s1">&#39;id&#39;</span><span class="p">:</span> <span class="mi">7630581</span><span class="p">,</span> + <span class="s1">&#39;name&#39;</span><span class="p">:</span> <span class="s1">&#39;Yoan Bachev&#39;</span><span class="p">,</span> + <span class="s1">&#39;state&#39;</span><span class="p">:</span> <span class="s1">&#39;active&#39;</span><span class="p">,</span> + <span class="s1">&#39;username&#39;</span><span class="p">:</span> <span class="s1">&#39;yobachev&#39;</span><span class="p">,</span> + <span class="s1">&#39;web_url&#39;</span><span class="p">:</span> <span class="s1">&#39;https://gitlab.com/yobachev&#39;</span><span class="p">}</span> +</code></pre></div> + + +<p>Video recording of the selection process:</p> +<p><iframe + width="560" + height="315" + src="https://www.youtube.com/embed/QINm7pLolOw" + title="YouTube video player" + frameborder="0" + allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen> +</iframe></p> +<hr> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul> +<li><a href="https://fellowship.mlh.io/opensourceawards">Nominate Kiwi TCMS at MLH Open Source Awards</a>;</li> +<li><a href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a href="https://gitlab.com/gitlab-org/gitlab/-/issues/334558">Give 👍 on GitLab</a>;</li> +<li><a href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> + and follow all project news;</li> +<li><a href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> and an awesome open source hacker;</li> +<li><a href="/#subscriptions">Become a customer</a> and we'll share our profits with the community</li> +</ul>Kiwi TCMS 10.42021-10-05T13:15:00+03:002021-10-05T13:15:00+03:00Kiwi TCMS Teamtag:None,2021-10-05:/blog/kiwi-tcms-team/2021/10/05/kiwi-tcms-104/<p>We're happy to announce Kiwi TCMS version 10.4!</p> +<p><strong>IMPORTANT:</strong> 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 +<a class="reference external" href="/blog/tags/bounty-program/">open source bounty program</a>!</p> +<p>You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org …</a></p><p>We're happy to announce Kiwi TCMS version 10.4!</p> +<p><strong>IMPORTANT:</strong> 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 +<a class="reference external" href="/blog/tags/bounty-program/">open source bounty program</a>!</p> +<p>You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +<p>Container images:</p> +<pre class="literal-block"> +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 +</pre> +<div class="section" id="changes-since-kiwi-tcms-10-3"> +<h2>Changes since Kiwi TCMS 10.3</h2> +<div class="section" id="security"> +<h3>Security</h3> +<ul class="simple"> +<li>Update prismjs from 1.24.1 to 1.25.0. Includes patches against a +Regular Expression Denial of Service vulnerability. +See <a class="reference external" href="https://snyk.io/vuln/SNYK-JS-PRISMJS-1585202">https://snyk.io/vuln/SNYK-JS-PRISMJS-1585202</a></li> +</ul> +</div> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update bleach from 4.0.0 to 4.1.0</li> +<li>Update django from 3.2.6 to 3.2.7</li> +<li>Update django-colorfield from 0.4.2 to 0.4.3</li> +<li>Update pygithub from 1.54.1 to 1.55</li> +<li>Update pygments from 2.9.0 to 2.10.0</li> +<li>Update python-gitlab from 2.10.0 to 2.10.1</li> +<li>Allow filtering by TestRun ID in Test Case Search page</li> +<li>Update test execution prefix in list of executions on TestRun page. +Now includes both TE and TC numbers before the summary link</li> +<li>Allow search by translated names on Test Run page</li> +<li>Redirect &quot;ADMIN -&gt; Users and groups&quot; menu item according to tenancy</li> +<li>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!</li> +<li>The <tt class="docutils literal">initial_setup</tt> command will create a schema called &quot;empty&quot; when executed +inside a multi-tenant setup. Refs +<a class="reference external" href="https://github.com/kiwitcms/tenants/issues/127">Issue #127</a></li> +</ul> +</div> +<div class="section" id="settings"> +<h3>Settings</h3> +<ul class="simple"> +<li>Update values for <tt class="docutils literal">MODERNRPC_HANDLERS</tt> setting</li> +<li>Rename <tt class="docutils literal">SafeJSONRPCHandler</tt> to <tt class="docutils literal">KiwiTCMSJsonRpcHandler</tt></li> +<li>New RPC handler class <tt class="docutils literal">KiwiTCMSXmlRpcHandler</tt></li> +</ul> +<div class="admonition warning"> +<p class="first admonition-title">Warning</p> +<p class="last">If you had manipulated the value of MODERNRPC_HANDLERS make sure that +you update to the new class names!</p> +</div> +</div> +<div class="section" id="database"> +<h3>Database</h3> +<ul class="simple"> +<li>New migrations for altered meta options</li> +</ul> +</div> +<div class="section" id="api"> +<h3>API</h3> +<ul class="simple"> +<li><tt class="docutils literal">TestCase.create</tt> method accepts <tt class="docutils literal">setup_duration</tt> and <tt class="docutils literal">testing_duration</tt> fields. +Refs <a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1923">Issue #1923</a> (Mfon Eti-mfon)</li> +<li><tt class="docutils literal">TestCase.update</tt> method acepts <tt class="docutils literal">setup_duration</tt> and <tt class="docutils literal">testing_duration</tt> fields. +Refs <a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1923">Issue #1923</a> (Mfon Eti-mfon)</li> +<li>New method <tt class="docutils literal">Testing.individual_test_case_health</tt></li> +<li>Timedelta values are serialized to float, representing seconds</li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Fix wrong URL parameter passed to test cases clone page</li> +<li>Show translated execution statuses for TestRun page. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1966">Issue #1966</a></li> +<li>Properly initialize Product value on TestRun Edit page. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2514">Issue #2514</a></li> +<li>Clone duration fields when cloning a test case</li> +</ul> +</div> +<div class="section" id="refactoring-and-testing"> +<h3>Refactoring and testing</h3> +<ul class="simple"> +<li>New automated test scenario for <tt class="docutils literal">kiwi_auth.admin</tt> (Mariyan Garvanski)</li> +<li>Unify similar strings to reduce translations burden</li> +<li>Inside buildroot <tt class="docutils literal">PyNaCl</tt> needs <tt class="docutils literal">make</tt> in order to build a wheel package</li> +<li>Adjust values for parametrized test to match existing scenarios</li> +<li>Fix code smells from newer pylint</li> +<li>eslint fixes for the JavaScript files</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/zh-CN#">Chinese Simplified translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/de#">German translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/it#">Italian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/pt-BR#">Portuguese, Brazilian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/ru#">Russian translation</a></li> +</ul> +</div> +</div> +<div class="section" id="kiwi-tcms-enterprise-v10-4-1-mt"> +<h2>Kiwi TCMS Enterprise v10.4.1-mt</h2> +<ul class="simple"> +<li>Based on Kiwi TCMS v10.4</li> +<li>Update django-ses from 2.2.1 to 2.3.0</li> +<li>Update kiwitcms-github-app from 1.3.0 to 1.3.1</li> +<li>Update python3-saml from 1.11.0 to 1.12.0</li> +<li>Update social-auth-app-django from 4.0.0 to 5.0.0</li> +<li>Use initial_setup during testing. Closes +<a class="reference external" href="https://github.com/kiwitcms/enterprise/issues/88">Issue #88</a></li> +<li>Fix new pylint issues and start using f-strings</li> +<li>Test &quot;ADMIN -&gt; Users and Groups&quot; menu redirect</li> +</ul> +<p><strong>IMPORTANT:</strong> Kiwi TCMS Enterprise container images are available only to subscribers!</p> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p><a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">Backup</a> first! +If you are using Kiwi TCMS as a container then:</p> +<pre class="literal-block"> +cd path/containing/docker-compose/ +docker-compose down +docker-compose pull +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +</pre> +<p>Refer to +<a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/installing_docker.html#upgrading">our documentation</a> +for more details!</p> +<p>Happy testing!</p> +<p>---</p> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul class="simple"> +<li>Nominate Kiwi TCMS at <a class="reference external" href="https://fellowship.mlh.io/opensourceawards">MLH Open Source Awards</a>;</li> +<li><a class="reference external" href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a class="reference external" href="https://gitlab.com/gitlab-org/gitlab/-/issues/334558">Give 👍 on GitLab</a>;</li> +<li><a class="reference external" href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a class="reference external" href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> +and follow all project news;</li> +<li><a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> +and an awesome open source hacker;</li> +<li><a class="reference external" href="/#subscriptions">Become a customer</a> and help us sustain development</li> +</ul> +</div> +Meet Kiwi TCMS at WebSummit 2021 in Lisbon2021-09-21T16:15:00+03:002021-09-21T16:15:00+03:00Kiwi TCMS Teamtag:None,2021-09-21:/blog/kiwi-tcms-team/2021/09/21/meet-kiwi-tcms-at-websummit-2021-in-lisbon/<p>Kiwi TCMS is happy to announce that our first post-COVID live presence +will be at <a href="https://websummit.com/">WebSummit 2021</a>, Nov 1-4 in Lisbon, Portugal. +We're joining as a <a href="https://websummit.com/startups/featured-startups">featured startup</a> +as part of the ALPHA program in category <em>Enterprise Software Solutions</em>.</p> +<p>Kiwi TCMS will have an on-site presence during the exhibition (1 …</p><p>Kiwi TCMS is happy to announce that our first post-COVID live presence +will be at <a href="https://websummit.com/">WebSummit 2021</a>, Nov 1-4 in Lisbon, Portugal. +We're joining as a <a href="https://websummit.com/startups/featured-startups">featured startup</a> +as part of the ALPHA program in category <em>Enterprise Software Solutions</em>.</p> +<p>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 +<a href="https://websummit.com/startups/startup-showcase">Startup Showcase</a> 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 +<a href="https://www.youtube.com/watch?v=Wob_L_SrEwE">here</a>.</p> +<p>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.</p> +<p>Below is our video submission to the organizers:</p> +<p><iframe + width="560" + height="315" + src="https://www.youtube.com/embed/yIyhkcJ8How" + title="YouTube video player" + frameborder="0" + allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen> +</iframe></p> +<hr> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul> +<li><a href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a href="https://gitlab.com/gitlab-org/gitlab/-/issues/334558">Give 👍 on GitLab</a>;</li> +<li><a href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> + and follow all project news;</li> +<li><a href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> and an awesome open source hacker;</li> +<li><a href="/#subscriptions">Become a customer</a> and we'll share our profits with the community</li> +</ul>Please nominate Kiwi TCMS at MLH Open Source Awards2021-09-17T21:40:00+03:002021-09-17T21:40:00+03:00Kiwi TCMS Teamtag:None,2021-09-17:/blog/kiwi-tcms-team/2021/09/17/please-nominate-kiwi-tcms-at-mlh-open-source-awards/<p><img + style="float: none; margin-left:0" + src="/images/mlh/opensource_awards_banner.png" + alt="MLH Nomination"></p> +<p>Last year Kiwi TCMS started +<a href="/blog/kiwi-tcms-team/2020/10/13/kiwi-tcms-is-partnering-with-mlh-fellowship-program/">partnering</a> +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 +<a href="https://github.com/kiwitcms/Kiwi/issues?q=is%3Aopen+is%3Aissue+label%3A%22MLH+Fellowship%22">20+ issues</a> +the majority of which have been complete.</p> +<p>For that we kindly ask the open …</p><p><img + style="float: none; margin-left:0" + src="/images/mlh/opensource_awards_banner.png" + alt="MLH Nomination"></p> +<p>Last year Kiwi TCMS started +<a href="/blog/kiwi-tcms-team/2020/10/13/kiwi-tcms-is-partnering-with-mlh-fellowship-program/">partnering</a> +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 +<a href="https://github.com/kiwitcms/Kiwi/issues?q=is%3Aopen+is%3Aissue+label%3A%22MLH+Fellowship%22">20+ issues</a> +the majority of which have been complete.</p> +<p>For that we kindly ask the open source community to nominate Kiwi TCMS at the +<a href="https://fellowship.mlh.io/opensourceawards">MLH Open Source Awards</a>.</p> +<p><em>Steps to reproduce:</em></p> +<ol> +<li>Go to <a href="https://fellowship.mlh.io/opensourceawards">https://fellowship.mlh.io/opensourceawards</a></li> +<li>Click the <strong>Submit a Nomination</strong> button</li> +<li>Follow the instructions on screen!</li> +</ol> +<p><em>Expected results:</em></p> +<ol> +<li>It should take you 2 minutes</li> +<li>Your submission is recorded by MLH</li> +</ol> +<h2>Why are we doing this</h2> +<p>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!</p> +<p>Thank you for supporting Kiwi TCMS and happy testing!</p> +<hr> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul> +<li><a href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a href="https://gitlab.com/gitlab-org/gitlab/-/issues/334558">Give 👍 on GitLab</a>;</li> +<li><a href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> + and follow all project news;</li> +<li><a href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> and an awesome open source hacker;</li> +<li><a href="/#subscriptions">Become a customer</a> and we'll share our profits with the community</li> +</ul>Win 6 SUPERFAN tickets for HackConf 20212021-09-01T16:25:00+03:002021-09-01T16:25:00+03:00Kiwi TCMS Teamtag:None,2021-09-01:/blog/kiwi-tcms-team/2021/09/01/win-6-superfan-tickets-for-hackconf-2021/<p><a href="https://hackconf.bg/">HackConf</a> 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 …</p><p><a href="https://hackconf.bg/">HackConf</a> 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!</p> +<p>All 6 tickets include:</p> +<ul> +<li>Conference live stream access (online due to COVID-19), sessions are in English</li> +<li>Ability to ask questions during the live stream</li> +<li>Virtual Goodie Bag with valuable content &amp; digital treats</li> +<li>Special Physical Goodie Bag delivered to your home. + ** Shipping is available only for the territory of Bulgaria.</li> +</ul> +<h2>How to win a ticket</h2> +<p>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 +<a href="https://gitlab.com/gitlab-org/gitlab/-/issues/334558">https://gitlab.com/gitlab-org/gitlab/-/issues/334558</a>!</p> +<div class="highlight"><pre><span></span><code><span class="k">Scenario:</span><span class="nf"> help Kiwi TCMS become part of GitLab’s open source family</span> +<span class="nf"> Given: navigate your browser to http://tinyurl.com/KiwiTCMS</span> +<span class="nf"> And: log into GitLab via the &quot;Sign in / Register&quot; button</span> +<span class="nf"> And: complete the login / registration process</span> +<span class="nf"> When: click the 👍 icon under the first comment</span> +<span class="nf"> Then: wait for the winners to be announced!</span> +</code></pre></div> + + +<p><img alt="&quot;GitLab steps&quot;" src="/images/gitlab-call-to-action.png"></p> +<p>Thank you very much and Happy Testing!</p> +<h2>Winners announcement</h2> +<p>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 +<code>curl https://gitlab.com/api/v4/projects/gitlab-org%2Fgitlab/issues/334558/participants</code>.</p> +<p>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!</p> +<hr> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul> +<li><a href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a href="https://gitlab.com/gitlab-org/gitlab/-/issues/334558">Give 👍 on GitLab</a>;</li> +<li><a href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> + and follow all project news;</li> +<li><a href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> and an awesome open source hacker;</li> +<li><a href="/#subscriptions">Become a customer</a> and we'll share our profits with the community</li> +</ul>Kiwi TCMS 10.32021-08-11T16:05:00+03:002021-08-11T16:05:00+03:00Kiwi TCMS Teamtag:None,2021-08-11:/blog/kiwi-tcms-team/2021/08/11/kiwi-tcms-103/<p>We're happy to announce Kiwi TCMS version 10.3!</p> +<p><strong>IMPORTANT:</strong> 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 +<a class="reference external" href="/blog/tags/bounty-program/">open source bounty program</a>!</p> +<p>You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org …</a></p><p>We're happy to announce Kiwi TCMS version 10.3!</p> +<p><strong>IMPORTANT:</strong> 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 +<a class="reference external" href="/blog/tags/bounty-program/">open source bounty program</a>!</p> +<p>You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +<p>Container images:</p> +<pre class="literal-block"> +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 +</pre> +<div class="section" id="changes-since-kiwi-tcms-10-2"> +<h2>Changes since Kiwi TCMS 10.2</h2> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul> +<li><p class="first">Update bleach from 3.3.0 to 4.0.0</p> +</li> +<li><p class="first">Update django from 3.2.5 to 3.2.6</p> +</li> +<li><p class="first">Update django-colorfield from 0.4.1 to 0.4.2</p> +</li> +<li><p class="first">Update django-tree-queries from 0.5.2 to 0.6.0</p> +</li> +<li><p class="first">Update python-bugzilla from 3.0.2 to 3.1.0</p> +</li> +<li><p class="first">Update python-gitlab from 2.9.0 to 2.10.0</p> +</li> +<li><p class="first">Update node_modules/html5sortable from 0.13.2 to 0.13.3</p> +</li> +<li><p class="first">Docker image is now based on Red Hat's Universal Base Image instead of +CentOS 8. See <a class="reference external" href="https://www.redhat.com/en/blog/introducing-red-hat-universal-base-image">https://www.redhat.com/en/blog/introducing-red-hat-universal-base-image</a> and +<a class="reference external" href="https://catalog.redhat.com/software/containers/ubi8/ubi-minimal/5c359a62bed8bd75a2c3fba8">https://catalog.redhat.com/software/containers/ubi8/ubi-minimal/5c359a62bed8bd75a2c3fba8</a>.</p> +<p><strong>Important:</strong></p> +<blockquote> +<p>The <tt class="docutils literal">mysql</tt> and <tt class="docutils literal">psql</tt> binaries in the container image are not available anymore! +Backup and restore instructions have been updated accordingly, see +<a class="reference external" href="https://kiwitcms.org/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">https://kiwitcms.org/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/</a>.</p> +</blockquote> +</li> +<li><p class="first">Use <tt class="docutils literal">initial_setup</tt> command to create public tenant in case we're running a multi-tenant +instance. References +<a class="reference external" href="https://github.com/kiwitcms/enterprise/issues/88">Enterprise #88</a> (Ivajlo Karabojkov)</p> +</li> +<li><p class="first">Document that for Jira integration we use API tokens</p> +</li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Fix a bug where drop-down selectors for test plans would not show any values when +product is changed. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2467">Issue #2467</a></li> +</ul> +</div> +<div class="section" id="refactoring-and-testing"> +<h3>Refactoring and testing</h3> +<ul class="simple"> +<li>Add tests for missing coverage in <tt class="docutils literal">kiwi_auth.admin</tt>. References +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1607">Issue #1607</a> +(Mariyan Garvanski)</li> +<li>Fix some eslint issues and formatting in <tt class="docutils literal">testcases/js/get.js</tt></li> +<li>Use shorter URL when cloning test cases from TP page. References +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1054">Issue #1054</a></li> +<li>Limit URI size to 10KiB. This alone should allow for more than 1000 PKs +specified for cloning. In addition Django itself limits the maximum number of +GET/POST fields to 1000 via the <tt class="docutils literal">DATA_UPLOAD_MAX_NUMBER_FIELDS</tt> setting, +see <a class="reference external" href="https://docs.djangoproject.com/en/3.2/ref/settings/#data-upload-max-number-fields">https://docs.djangoproject.com/en/3.2/ref/settings/#data-upload-max-number-fields</a>. +Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1054">Issue #1054</a></li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/zh-CN#">Chinese Simplified translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/de#">German translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/hu#">Hungarian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/pt-BR#">Portuguese, Brazilian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +</ul> +</div> +</div> +<div class="section" id="kiwi-tcms-enterprise-v10-3-mt"> +<h2>Kiwi TCMS Enterprise v10.3-mt</h2> +<ul class="simple"> +<li>Based on Kiwi TCMS v10.3</li> +<li>Container image based on Red Hat Universal Base Image</li> +<li>Update django-ses from 2.1.1 to 2.2.1</li> +<li>Update python3-saml from 1.10.1 to 1.11.0</li> +<li>Add GitLab login icon</li> +</ul> +<p><strong>IMPORTANT:</strong> Kiwi TCMS Enterprise container images are available only to subscribers!</p> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p><a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">Backup</a> first! +If you are using Kiwi TCMS as a container then:</p> +<pre class="literal-block"> +cd path/containing/docker-compose/ +docker-compose down +docker-compose pull +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +</pre> +<p>Refer to +<a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/installing_docker.html#upgrading">our documentation</a> +for more details!</p> +<p>Happy testing!</p> +<p>---</p> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul class="simple"> +<li><a class="reference external" href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a class="reference external" href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a class="reference external" href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> +and follow all project news;</li> +<li><a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> +and an awesome open source hacker;</li> +<li><a class="reference external" href="/#subscriptions">Become a customer</a> and help us sustain development</li> +</ul> +</div> +Kiwi TCMS 10.22021-07-12T11:40:00+03:002021-07-12T11:40:00+03:00Kiwi TCMS Teamtag:None,2021-07-12:/blog/kiwi-tcms-team/2021/07/12/kiwi-tcms-102/<p>We're happy to announce Kiwi TCMS version 10.2!</p> +<p><strong>IMPORTANT:</strong> 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 +<a class="reference external" href="/blog/tags/bounty-program/">open source bounty program</a>!</p> +<p>You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https …</a></p><p>We're happy to announce Kiwi TCMS version 10.2!</p> +<p><strong>IMPORTANT:</strong> 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 +<a class="reference external" href="/blog/tags/bounty-program/">open source bounty program</a>!</p> +<p>You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +<p>Docker images:</p> +<pre class="literal-block"> +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 +</pre> +<div class="section" id="changes-since-kiwi-tcms-10-1"> +<h2>Changes since Kiwi TCMS 10.1</h2> +<div class="section" id="improvements-security-updates"> +<h3>Improvements &amp; security updates</h3> +<ul class="simple"> +<li>Update django from 3.2.3 to 3.2.5</li> +<li>Update django-guardian from 2.3.0 to 2.4.0</li> +<li>Update django-tree-queries from 0.5.1 to 0.5.2</li> +<li>Update psycopg2 from 2.8.6 to 2.9.1</li> +<li>Update python-gitlab from 2.7.1 to 2.9.0</li> +<li>Update node_modules/marked from 2.0.3 to 2.1.3</li> +<li>Update node_modules/html5sortable from 0.11.1 to 0.13.2</li> +<li>Update node_modules/prismjs from 1.23.0 to 1.24.1</li> +<li>Multiple select for filters on Telemetry pages. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1940">Issue #1940</a> +(Shantanu Verma + Alex Todorov)</li> +<li>Allow editting TestCase <tt class="docutils literal">setup_duration</tt> &amp; <tt class="docutils literal">testing_duration</tt> fields. +References +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1923">Issue #1923</a> (&#64;APiligrim + Alex Todorov)</li> +<li>Move several checks to Dashboard page instead of performing them on +every request (Ivajlo Karabojkov)</li> +<li>Fix grammatical error in documentation (Kushal Beniwal)</li> +<li>Add health check for Issue Tracker configuration. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/97">Issue #97</a></li> +<li>Document API URL field for Jira integration. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2443">Issue #2443</a></li> +</ul> +</div> +<div class="section" id="settings"> +<h3>Settings</h3> +<ul class="simple"> +<li><tt class="docutils literal">tcms.core.middleware.CheckSettingsMiddleware</tt> has been removed</li> +<li><tt class="docutils literal">tcms.core.middleware.CheckUnappliedMigrationsMiddleware</tt> has been removed</li> +</ul> +</div> +<div class="section" id="api"> +<h3>API</h3> +<ul class="simple"> +<li>Method <tt class="docutils literal">Version.filter()</tt> now returns new field called <tt class="docutils literal">product__name</tt></li> +<li>Method <tt class="docutils literal">Build.filter()</tt> now returns new field called <tt class="docutils literal">version__value</tt></li> +<li>Methods <tt class="docutils literal">Build.filter()</tt>, <tt class="docutils literal">Version.filter()</tt> and <tt class="docutils literal">TestPlan.filter()</tt> +will now order their results by <tt class="docutils literal">product</tt>/<tt class="docutils literal">version</tt> and then <tt class="docutils literal">id</tt>.</li> +<li>Method <tt class="docutils literal">Telemetry.breakdown()</tt> now returns only distinct results</li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Make error messages in admin forms more legible. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2404">Issue #2404</a></li> +<li>Large images will now fit into the available space on the screen, +e.g. inside test case description cards. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2220">Issue #2220</a></li> +</ul> +</div> +<div class="section" id="refactoring-and-testing"> +<h3>Refactoring and testing</h3> +<ul class="simple"> +<li>Add automated tests for missing coverage in <tt class="docutils literal">kiwi_auth.admin</tt> References +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1607">Issue #1607</a> (Mariyan Garvanski)</li> +<li>Apply eslint fixes (&#64;sonyagennova + Alex Todorov)</li> +<li>Refactor <tt class="docutils literal">TestExecution.add_link</tt> method to use ModelForm and extend tests. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1327">Issue #1327</a> (Rosen Sasov + Alex Todorov)</li> +<li>Use context manager when opening files to make pylint happier</li> +<li>Simplify 2 UI buttons on TestRun page</li> +<li>Enable <tt class="docutils literal">doc8</tt> for README and CHANGELOG and fix formatting errors</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/cs#">Czech translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/fr#">French translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/de#">German translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/hu#">Hungarian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/ja#">Japanese translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/pl#">Polish translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/ru#">Russian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +</ul> +</div> +</div> +<div class="section" id="kiwi-tcms-enterprise-v10-2-mt"> +<h2>Kiwi TCMS Enterprise v10.2-mt</h2> +<ul class="simple"> +<li>Based on Kiwi TCMS v10.2</li> +<li>Update django-ses from 2.0.0 to 2.1.1</li> +<li>Update django-python3-ldap from 0.11.4 to 0.12.0</li> +<li>Update documentation around initial config</li> +</ul> +<p><strong>IMPORTANT:</strong> Kiwi TCMS Enterprise container images are available only to subscribers!</p> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p><a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">Backup</a> first! +If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +cd path/containing/docker-compose/ +docker-compose down +docker-compose pull +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +</pre> +<p>Refer to +<a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/installing_docker.html#upgrading">our documentation</a> +for more details!</p> +<p>Happy testing!</p> +<p>---</p> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul class="simple"> +<li><a class="reference external" href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a class="reference external" href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a class="reference external" href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> +and follow all project news;</li> +<li><a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> +and an awesome open source hacker;</li> +<li><a class="reference external" href="/#subscriptions">Become a customer</a> and help us sustain development</li> +</ul> +</div> +Kiwi TCMS Enterprise 10.1.1-mt2021-07-01T16:00:00+03:002021-07-01T16:00:00+03:00Kiwi TCMS Teamtag:None,2021-07-01:/blog/kiwi-tcms-team/2021/07/01/kiwi-tcms-enterprise-1011-mt/<p>We're happy to announce Kiwi TCMS Enterprise version 10.1.1-mt!</p> +<p><strong>IMPORTANT:</strong> this release includes support for authentication via +Keycloak and support for enabling read-only view of tenants data for +anonymous users.</p> +<p>Docker images:</p> +<pre class="literal-block"> +quay.io/kiwitcms/enterprise 10.1.1-mt d61e243dc4f5 1.19GB +</pre> +<div class="section" id="changes-since-kiwi-tcms-enterprise-10-1-mt"> +<h2>Changes since Kiwi TCMS Enterprise 10 …</h2></div><p>We're happy to announce Kiwi TCMS Enterprise version 10.1.1-mt!</p> +<p><strong>IMPORTANT:</strong> this release includes support for authentication via +Keycloak and support for enabling read-only view of tenants data for +anonymous users.</p> +<p>Docker images:</p> +<pre class="literal-block"> +quay.io/kiwitcms/enterprise 10.1.1-mt d61e243dc4f5 1.19GB +</pre> +<div class="section" id="changes-since-kiwi-tcms-enterprise-10-1-mt"> +<h2>Changes since Kiwi TCMS Enterprise 10.1-mt</h2> +<ul class="simple"> +<li>Based on Kiwi TCMS v10.1</li> +<li>Fix URL to Python Social Auth documentation</li> +<li>Support read-only view on tenants for anonymous users. Contains a +database migration to rename <tt class="docutils literal">on_trial</tt> field to <tt class="docutils literal">publicly_readable</tt></li> +<li>Document initial configuration. Site administrators should add the +<tt class="docutils literal">tenants.change_tenant</tt> permission to users/groups who are allowed +to make their tenants publicly visible. Fixes +<a class="reference external" href="https://github.com/kiwitcms/enterprise/issues/87">Issue #87</a>, +references +<a class="reference external" href="https://github.com/kiwitcms/enterprise/issues/88">Issue #88</a></li> +<li>Document the build process. Fixes +<a class="reference external" href="https://github.com/kiwitcms/enterprise/issues/89">Issue #89</a></li> +<li>Verify support for Keycloak logins. Fixes +<a class="reference external" href="https://github.com/kiwitcms/enterprise/issues/86">Issue #86</a></li> +<li>Update kiwitcms-github-app from 1.2.4 to 1.3.0</li> +<li>Update kiwitcms-tenants from 1.5.0 to 1.6.0</li> +</ul> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p><a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">Backup</a> first! +If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +cd path/containing/docker-compose/ +docker-compose down +docker-compose pull +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +</pre> +<p>Refer to +<a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/installing_docker.html#upgrading">our documentation</a> +for more details!</p> +<p>Happy testing!</p> +<p>---</p> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul class="simple"> +<li><a class="reference external" href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a class="reference external" href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a class="reference external" href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> +and follow all project news;</li> +<li><a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> +and an awesome open source hacker;</li> +<li><a class="reference external" href="/#subscriptions">Become a customer</a> and help us sustain development</li> +</ul> +</div> +Thank you for downloading Kiwi TCMS 500000 times2021-06-15T14:45:00+03:002021-06-15T14:45:00+03:00Kiwi TCMS Teamtag:None,2021-06-15:/blog/kiwi-tcms-team/2021/06/15/thank-you-for-downloading-kiwi-tcms-500000-times/<p><img alt="&quot;500K banner&quot;" src="/images/500K/banner.png" title="500K banner"></p> +<p>We are happy to announce that Kiwi TCMS has been downloaded more than +500000 times via <a href="https://hub.docker.com/r/kiwitcms/kiwi/">Docker Hub</a>! +You can check the real-time stats +<a href="https://hub.docker.com/v2/repositories/kiwitcms/kiwi/">here</a>.</p> +<p>Thank you very much and Happy Testing!</p> +<hr> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul> +<li><a href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on …</a></li></ul><p><img alt="&quot;500K banner&quot;" src="/images/500K/banner.png" title="500K banner"></p> +<p>We are happy to announce that Kiwi TCMS has been downloaded more than +500000 times via <a href="https://hub.docker.com/r/kiwitcms/kiwi/">Docker Hub</a>! +You can check the real-time stats +<a href="https://hub.docker.com/v2/repositories/kiwitcms/kiwi/">here</a>.</p> +<p>Thank you very much and Happy Testing!</p> +<hr> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul> +<li><a href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> + and follow all project news;</li> +<li><a href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> and an awesome open source hacker;</li> +<li><a href="/#subscriptions">Become a customer</a> and we'll share our profits with the community</li> +</ul>Kiwi TCMS 10.12021-05-18T15:00:00+03:002021-05-18T15:00:00+03:00Kiwi TCMS Teamtag:None,2021-05-18:/blog/kiwi-tcms-team/2021/05/18/kiwi-tcms-101/<p>We're happy to announce Kiwi TCMS version 10.1!</p> +<p><strong>IMPORTANT:</strong> this release includes many improvements &amp; 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 +<a class="reference external" href="/blog/tags/bounty-program/">open source bounty program</a> and collaboration +with …</p><p>We're happy to announce Kiwi TCMS version 10.1!</p> +<p><strong>IMPORTANT:</strong> this release includes many improvements &amp; 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 +<a class="reference external" href="/blog/tags/bounty-program/">open source bounty program</a> and collaboration +with +<a class="reference external" href="/blog/kiwi-tcms-team/2020/10/13/kiwi-tcms-is-partnering-with-mlh-fellowship-program/">Major League Hacking</a>!</p> +<p>This is the second release after Kiwi TCMS reached 400K pulls +on Docker Hub! You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +<p>Docker images:</p> +<pre class="literal-block"> +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 +</pre> +<div class="section" id="changes-since-kiwi-tcms-10-0"> +<h2>Changes since Kiwi TCMS 10.0</h2> +<div class="section" id="improvements-security-updates"> +<h3>Improvements &amp; security updates</h3> +<ul class="simple"> +<li>Upgrade from Python 3.6 to Python 3.8 inside the container</li> +<li>Upgrade Django from 3.1.7 to 3.2.3</li> +<li>Upgrade django-attachments from 1.8 to 1.9.1</li> +<li>Upgrade django-contrib-comments from 2.0.0 to 2.1.0</li> +<li>Upgrade django-extensions from 3.1.1 to 3.1.3</li> +<li>Upgrade django-grappelli from 2.14.3 to 2.15.1</li> +<li>Upgrade django-simple-history from 2.12.0 to 3.0.0</li> +<li>Upgrade django-tree-queries from 0.4.3 to 0.5.1</li> +<li>Upgrade jira from 2.0.0 to 3.0.1</li> +<li>Upgrade pygments from 2.8.0 to 2.9.0</li> +<li>Upgrade python-gitlab from 2.6.0 to 2.7.1</li> +<li>Upgrade node_modules/html5sortable from 0.10.0 to 0.11.1</li> +<li>Upgrade node_modules/marked from 2.0.1 to 2.0.3</li> +<li>Time-stamp fields added to all TestRun pages. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1928">Issue #1928</a> (Andreea Moraru)</li> +<li>Don't set <tt class="docutils literal">TestRun.start_date</tt> automatically. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2323">Issue #2323</a> (Andreea Moraru)</li> +<li>Web based database initialization for new installations. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1698">Issue #1698</a> (Ivajlo Karabojkov)</li> +<li>Automatically active the first registered user via web UI</li> +<li>Rearrange layout of before and after fields on search pages</li> +<li>Allow TestRun creation from navigation menu. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2281">Issue #2281</a></li> +<li>Document hardware specs &amp; performance baseline results. Refs +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/721">Issue #721</a></li> +<li>Document performance for <tt class="docutils literal">TestCase.filter</tt>/<tt class="docutils literal">TestRun.filter</tt> methods. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1173">Issue #1173</a></li> +<li>Update documentation around <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> and the extra script files that it needs</li> +<li>Document some useful management commands</li> +<li>Clarify <tt class="docutils literal">set_domain</tt> command. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2375">Issue #2375</a></li> +</ul> +</div> +<div class="section" id="settings"> +<h3>Settings</h3> +<ul class="simple"> +<li>Change <tt class="docutils literal">TEMP_DIR</tt> to <tt class="docutils literal">/var/tmp</tt> which affects the location in which +intermediate files coming from migrations are saved. If <tt class="docutils literal">/var/tmp</tt> doesn't +exist the fallback is <tt class="docutils literal">/tmp</tt> which on modern Linux distributions is ephemeral</li> +<li>Add <tt class="docutils literal">DEFAULT_AUTO_FIELD</tt> to hard-code expected behavior and prevent unwanted +changes introduced by future versions of Django</li> +</ul> +</div> +<div class="section" id="database"> +<h3>Database</h3> +<ul class="simple"> +<li>Add new fields to <tt class="docutils literal">TestCase</tt> - <tt class="docutils literal">setup_duration</tt>, <tt class="docutils literal">testing_duration</tt> and +a calculatable <tt class="docutils literal">expected_duration</tt> attribute (Angelina)</li> +<li>Remove unused <tt class="docutils literal">TestRun.product_version</tt> field</li> +</ul> +</div> +<div class="section" id="api"> +<h3>API</h3> +<ul> +<li><p class="first">Method <tt class="docutils literal">TestRun.filter()</tt> return value changes field names:</p> +<ul class="simple"> +<li><tt class="docutils literal">product_version</tt> -&gt; <tt class="docutils literal">plan__product_version</tt></li> +<li><tt class="docutils literal">product_version__value</tt> -&gt; <tt class="docutils literal">plan__product_version__value</tt></li> +</ul> +<div class="admonition warning"> +<p class="first admonition-title">Warning</p> +<p class="last">You will need to adjust your API scripts if using these fields!</p> +</div> +</li> +<li><p class="first">Method <tt class="docutils literal">Component.filter()</tt> will return only distinct results</p> +</li> +<li><p class="first">New method <tt class="docutils literal">KiwiTCMS.version()</tt></p> +</li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Remove links and icons from TestRun print styling. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2263">Issue #2263</a> and +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2264">Issue #2264</a> (Gagan Deep)</li> +<li>Emails notifications are now sent into server language. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1589">Issue #1589</a> (Kapil Bansal)</li> +<li>Fix compatibility bug for &quot;advanced search &amp; add&quot; popup windows and latest Chrome +browsers. Fixes <a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2100">Issue #2100</a></li> +<li>Redirect TestPlan Admin &quot;Add&quot; to the correct URL</li> +<li>Fix wrong TestExecution field names in queryset &amp; HTML template. Refs +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1924">Issue #1924</a></li> +<li>Add default display for <tt class="docutils literal">None</tt> fields in Test Case page</li> +</ul> +</div> +<div class="section" id="refactoring-testing"> +<h3>Refactoring &amp; testing</h3> +<ul class="simple"> +<li>Add test automation for <tt class="docutils literal">TestExecution.actual_duration</tt>. Refs +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1924">Issue #1924</a> (&#64;APiligrim)</li> +<li>Add test automation for <tt class="docutils literal">TestCase.expected_duration</tt>. Refs +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1923">Issue #1923</a> (&#64;APiligrim)</li> +<li>Add test automation for <tt class="docutils literal">ReadOnlyHistoryAdmin</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1604">Issue #1604</a> (Kapil Bansal)</li> +<li>Add <tt class="docutils literal"><span class="pre">similar-string</span></tt> checker to <tt class="docutils literal">kiwi_lint</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1126">Issue #1126</a> (&#64;17sushmita)</li> +<li>Resolve or silence the remaining outstanding pylint issues. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/171">Issue #171</a></li> +<li>Update isort from 5.7.0 to 5.8.0</li> +<li>Convert forms to <tt class="docutils literal">ModelForm</tt></li> +<li>Remove unused method parameters</li> +<li>Remove unused <tt class="docutils literal">string_to_list()</tt>. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/340">Issue #340</a></li> +<li>Simplify method used for progress-bar in dashboard which also +reduces the total number of SQL queries</li> +<li>Use existing functions, remove duplication</li> +<li>Remove unnecessary calls &amp; definition of <tt class="docutils literal">loadInitialTestPlans()</tt> in Telemetry pages</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/zh-CN#">Chinese Simplified translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/fr#">French translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/hu#">Hungarian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/it#">Italian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/ja#">Japanese translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/pl#">Polish translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/pt-BR#">Portuguese, Brazilian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/ro#">Romanian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/es-ES#">Spanish translation</a></li> +</ul> +</div> +</div> +<div class="section" id="kiwi-tcms-enterprise-v10-1-mt"> +<h2>Kiwi TCMS Enterprise v10.1-mt</h2> +<ul class="simple"> +<li>Based on Kiwi TCMS v10.1</li> +<li>Container image built with Python 3.8</li> +<li>Update kiwitcms-tenants from 1.4.3 to 1.4.4</li> +</ul> +<p><strong>IMPORTANT:</strong> monthly subscription price for Kiwi TCMS SaaS offering has been updated to +50 $/mo for new subscriptions. Existing customers will not be affected!</p> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p><a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">Backup</a> first! +If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +cd path/containing/docker-compose/ +docker-compose down +docker-compose pull +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +</pre> +<p>Refer to +<a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/installing_docker.html#upgrading">our documentation</a> +for more details!</p> +<p>Happy testing!</p> +<p>---</p> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul class="simple"> +<li><a class="reference external" href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a class="reference external" href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a class="reference external" href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> +and follow all project news;</li> +<li><a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> +and an awesome open source hacker;</li> +<li><a class="reference external" href="/#subscriptions">Become a customer</a> and help us sustain development</li> +</ul> +</div> +Kiwi TCMS 10.02021-03-02T15:10:00+02:002021-03-02T15:10:00+02:00Kiwi TCMS Teamtag:None,2021-03-02:/blog/kiwi-tcms-team/2021/03/02/kiwi-tcms-100/<p>We're happy to announce Kiwi TCMS version 10.0!</p> +<p><strong>IMPORTANT:</strong> 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 +<a class="reference external" href="/blog/tags/bounty-program/">open source bounty program</a>.</p> +<p>This is …</p><p>We're happy to announce Kiwi TCMS version 10.0!</p> +<p><strong>IMPORTANT:</strong> 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 +<a class="reference external" href="/blog/tags/bounty-program/">open source bounty program</a>.</p> +<p>This is also the first release after Kiwi TCMS reached 400K pulls +on Docker Hub! You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +<p>Docker images:</p> +<pre class="literal-block"> +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 +</pre> +<div class="section" id="changes-since-kiwi-tcms-9-0"> +<h2>Changes since Kiwi TCMS 9.0</h2> +<div class="section" id="security"> +<h3>Security</h3> +<ul class="simple"> +<li>Update node_modules/marked from 1.2.7 to 2.0.1. Also fixes +<a class="reference external" href="https://snyk.io/vuln/SNYK-JS-MARKED-1070800">SNYK-JS-MARKED-1070800</a></li> +<li>Update django from 3.1.5 to 3.1.7 for CVE-2021-3281 and CVE-2021-23336</li> +</ul> +</div> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update bleach from 3.2.1 to 3.3.0</li> +<li>Update django-colorfield from 0.3.2 to 0.4.1</li> +<li>Update django-extensions from 3.1.0 to 3.1.1</li> +<li>Update markdown from 3.3.3 to 3.3.4</li> +<li>Update pygments from 2.7.4 to 2.8.0</li> +<li>Update python-gitlab from 2.5.0 to 2.6.0</li> +<li>Change ON/OFF button messages (Krum Petkov)</li> +<li>Automatically set test run to finished/not-finished depending on +the state of all executions. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/441">Issue #441</a></li> +<li>Allow assigning users from group admin page. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1844">Issue #1844</a></li> +<li>Improve documentation around setting up devel environment</li> +</ul> +</div> +<div class="section" id="database"> +<h3>Database</h3> +<ul class="simple"> +<li>Add <tt class="docutils literal">TestRun.planned_start</tt> and <tt class="docutils literal">TestRun.planned_stop</tt> fields. Refs +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1928">Issue #1928</a> (Andreea Moraru)</li> +<li>Add <tt class="docutils literal">TestExecution.start_date</tt> field. Refs +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1924">Issue #1924</a> (Anastasiya Uraleva)</li> +<li>Rename field <tt class="docutils literal">TestExecution.close_date</tt> to <tt class="docutils literal">TestExecution.stop_date</tt> (Anastasiya Uraleva)</li> +</ul> +</div> +<div class="section" id="api"> +<h3>API</h3> +<div class="admonition warning"> +<p class="first admonition-title">Warning</p> +<p class="last">This release changes how Kiwi TCMS serializes API results and thus +introduces multiple backwards incompatible changes.</p> +</div> +<div class="admonition important"> +<p class="first admonition-title">Important</p> +<p class="last">All <tt class="docutils literal">.filter()</tt> methods now return distinct records!</p> +</div> +<ul class="simple"> +<li>New method <tt class="docutils literal">PlanType.create()</tt></li> +<li>Method <tt class="docutils literal">TestCase.add_component()</tt> now returns a serialized <tt class="docutils literal">Component</tt> +instead of a serialized <tt class="docutils literal">TestCase</tt>. Refs +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2145">Issue #2145</a></li> +<li>Methods <tt class="docutils literal">Product.filter()</tt>, <tt class="docutils literal">Product.create()</tt> and <tt class="docutils literal">Product.update()</tt>:<ul> +<li>change input parameter <tt class="docutils literal">classification_id</tt> to <tt class="docutils literal">classification</tt> - type int</li> +<li>change result field <tt class="docutils literal">classification_id</tt> to <tt class="docutils literal">classification</tt> - type int</li> +</ul> +</li> +<li>Method <tt class="docutils literal">Category.filter()</tt> changes result field +<tt class="docutils literal">product_id</tt> to <tt class="docutils literal">product</tt> - type int</li> +<li>Methods <tt class="docutils literal">Component.filter()</tt>, <tt class="docutils literal">Component.create()</tt> and <tt class="docutils literal">Component.update()</tt>:<ul> +<li>change input parameter <tt class="docutils literal">product_id</tt> to <tt class="docutils literal">product</tt> - type int</li> +<li>change input parameter <tt class="docutils literal">initial_owner_id</tt> to <tt class="docutils literal">initial_owner</tt> - type int</li> +<li>change input parameter <tt class="docutils literal">initial_qa_contact_id</tt> to <tt class="docutils literal">initial_qa_contact</tt> - type int</li> +<li>change result field <tt class="docutils literal">product_id</tt> to <tt class="docutils literal">product</tt> - type int</li> +<li>change result field <tt class="docutils literal">initial_owner_id</tt> to <tt class="docutils literal">initial_owner</tt> - type int</li> +<li>change result field <tt class="docutils literal">initial_qa_contact_id</tt> to <tt class="docutils literal">initial_qa_contact</tt> - type int</li> +<li>adds result field <tt class="docutils literal">cases</tt> - type int - a TestCase ID if this component is +attached to a test case</li> +</ul> +</li> +<li>Methods <tt class="docutils literal">Version.filter()</tt> and <tt class="docutils literal">Version.create()</tt>:<ul> +<li>change input parameter <tt class="docutils literal">product_id</tt> to <tt class="docutils literal">product</tt> - type int</li> +<li>change result field <tt class="docutils literal">product_id</tt> to <tt class="docutils literal">product</tt> - type int</li> +</ul> +</li> +<li>Method <tt class="docutils literal">Tag.filter()</tt> now returns additional fields: +<tt class="docutils literal">bugs</tt>, <tt class="docutils literal">case</tt>, <tt class="docutils literal">plan</tt> and <tt class="docutils literal">run</tt> which causes existing queries to +return similar records attached to different parent objects. Consumers of these +results should be updated</li> +<li>Methods <tt class="docutils literal">TestPlan.filter()</tt>, <tt class="docutils literal">TestPlan.create()</tt> and <tt class="docutils literal">TestPlan.update()</tt>:<ul> +<li>change input parameter <tt class="docutils literal">author_id</tt> to <tt class="docutils literal">author</tt> - type int</li> +<li>change input parameter <tt class="docutils literal">parent_id</tt> to <tt class="docutils literal">parent</tt> - type int</li> +<li>change input parameter <tt class="docutils literal">product_id</tt> to <tt class="docutils literal">product</tt> - type int</li> +<li>change input parameter <tt class="docutils literal">product_version_id</tt> to <tt class="docutils literal">product_version</tt> - type int</li> +<li>change input parameter <tt class="docutils literal">type_id</tt> to <tt class="docutils literal">type</tt> - type int</li> +<li>change result field <tt class="docutils literal">author_id</tt> to <tt class="docutils literal">author</tt> - type int</li> +<li>change result field <tt class="docutils literal">parent_id</tt> to <tt class="docutils literal">parent</tt> - type int</li> +<li>change result field <tt class="docutils literal">product_id</tt> to <tt class="docutils literal">product</tt> - type int</li> +<li>change result field <tt class="docutils literal">product_version_id</tt> to <tt class="docutils literal">product_version</tt> - type int</li> +<li>change result field <tt class="docutils literal">type_id</tt> to <tt class="docutils literal">type</tt> - type int</li> +<li>remove result fields <tt class="docutils literal">cases</tt>, <tt class="docutils literal">tag</tt>, <tt class="docutils literal">default_product_version</tt></li> +</ul> +</li> +<li>Method <tt class="docutils literal">TestPlan.filter()</tt> +adds result fields <tt class="docutils literal">product_version__value</tt>, <tt class="docutils literal">product__name</tt>, +<tt class="docutils literal">author__username</tt> and <tt class="docutils literal">type__name</tt></li> +<li>Methods <tt class="docutils literal">TestRun.filter()</tt>, <tt class="docutils literal">TestRun.create()</tt> and <tt class="docutils literal">TestRun.update()</tt>:<ul> +<li>change result field <tt class="docutils literal">build_id</tt> to <tt class="docutils literal">build</tt> - type int</li> +<li>change result field <tt class="docutils literal">default_tester_id</tt> to <tt class="docutils literal">default_tester</tt> - type int</li> +<li>change result field <tt class="docutils literal">manager_id</tt> to <tt class="docutils literal">manager</tt> - type int</li> +<li>change result field <tt class="docutils literal">plan_id</tt> to <tt class="docutils literal">plan</tt> - type int</li> +<li>change result field <tt class="docutils literal">product_version_id</tt> to <tt class="docutils literal">product_version</tt> - type int</li> +<li>remove result fields <tt class="docutils literal">cc</tt>, <tt class="docutils literal">tag</tt></li> +</ul> +</li> +<li>Method <tt class="docutils literal">TestRun.filter()</tt> adds result fields <tt class="docutils literal">product_version__value</tt>, +<tt class="docutils literal">plan__product</tt>, <tt class="docutils literal">plan__name</tt>, <tt class="docutils literal">build__name</tt>, <tt class="docutils literal">manager__username</tt> and +<tt class="docutils literal">default_tester__username</tt></li> +<li>Methods <tt class="docutils literal">TestExecution.filter()</tt> and <tt class="docutils literal">TestExecution.update()</tt>:<ul> +<li>change input parameter <tt class="docutils literal">assigee_id</tt> to <tt class="docutils literal">assignee</tt> - type int</li> +<li>change input parameter <tt class="docutils literal">build_id</tt> to <tt class="docutils literal">build</tt> - type int</li> +<li>change input parameter <tt class="docutils literal">case_id</tt> to <tt class="docutils literal">case</tt> - type int</li> +<li>change input parameter <tt class="docutils literal">run_id</tt> to <tt class="docutils literal">run</tt> - type int</li> +<li>change input parameter <tt class="docutils literal">status_id</tt> to <tt class="docutils literal">status</tt> - type int</li> +<li>change input parameter <tt class="docutils literal">tested_by_id</tt> to <tt class="docutils literal">tested_by</tt> - type int</li> +<li>change result field <tt class="docutils literal">assigee_id</tt> to <tt class="docutils literal">assignee</tt> - type int</li> +<li>change result field <tt class="docutils literal">build_id</tt> to <tt class="docutils literal">build</tt> - type int</li> +<li>change result field <tt class="docutils literal">case_id</tt> to <tt class="docutils literal">case</tt> - type int</li> +<li>change result field <tt class="docutils literal">run_id</tt> to <tt class="docutils literal">run</tt> - type int</li> +<li>change result field <tt class="docutils literal">status_id</tt> to <tt class="docutils literal">status</tt> - type int</li> +<li>change result field <tt class="docutils literal">tested_by_id</tt> to <tt class="docutils literal">tested_by</tt> - type int</li> +</ul> +</li> +<li>Method <tt class="docutils literal">TestExecution.filter()</tt> adds result fields <tt class="docutils literal">assignee__username</tt>, +<tt class="docutils literal">tested_by__username</tt>, <tt class="docutils literal">case__summary</tt>, <tt class="docutils literal">build__name</tt> and <tt class="docutils literal">status__name</tt></li> +<li>Method <tt class="docutils literal">TestExecution.get_links()</tt> change result field +<tt class="docutils literal">execution_id</tt> to <tt class="docutils literal">execution</tt> - type int</li> +<li>Method <tt class="docutils literal">TestRun.add_case()</tt> changes result field names similarly to +<tt class="docutils literal">TestExecution.filter()</tt> method</li> +<li>Methods <tt class="docutils literal">TestCase.filter()</tt>, <tt class="docutils literal">TestCase.create()</tt> and <tt class="docutils literal">TestCase.update()</tt>:<ul> +<li>change input parameter <tt class="docutils literal">author_id</tt> to <tt class="docutils literal">author</tt> - type int</li> +<li>change input parameter <tt class="docutils literal">case_status_id</tt> to <tt class="docutils literal">case_status</tt> - type int</li> +<li>change input parameter <tt class="docutils literal">category_id</tt> to <tt class="docutils literal">category</tt> - type int</li> +<li>change input parameter <tt class="docutils literal">default_tester_id</tt> to <tt class="docutils literal">default_tester</tt> - type int</li> +<li>change input parameter <tt class="docutils literal">priority_id</tt> to <tt class="docutils literal">priority</tt> - type int</li> +<li>change input parameter <tt class="docutils literal">reviewer_id</tt> to <tt class="docutils literal">reviewer</tt> - type int</li> +<li>change result field <tt class="docutils literal">author_id</tt> to <tt class="docutils literal">author</tt> - type int</li> +<li>change result field <tt class="docutils literal">case_status_id</tt> to <tt class="docutils literal">case_status</tt> - type int</li> +<li>change result field <tt class="docutils literal">category_id</tt> to <tt class="docutils literal">category</tt> - type int</li> +<li>change result field <tt class="docutils literal">default_tester_id</tt> to <tt class="docutils literal">default_tester</tt> - type int</li> +<li>change result field <tt class="docutils literal">priority_id</tt> to <tt class="docutils literal">priority</tt> - type int</li> +<li>change result field <tt class="docutils literal">reviewer_id</tt> to <tt class="docutils literal">reviewer</tt> - type int</li> +<li>remove result fields <tt class="docutils literal">component</tt>, <tt class="docutils literal">plan</tt>, <tt class="docutils literal">tag</tt></li> +</ul> +</li> +<li>Method <tt class="docutils literal">TestCase.filter()</tt> adds result fields <tt class="docutils literal">case_status__name</tt>, +<tt class="docutils literal">category__name</tt>, <tt class="docutils literal">priority__value</tt>, <tt class="docutils literal">author__username</tt>, +<tt class="docutils literal">default_tester__username</tt> and <tt class="docutils literal">reviewer__username</tt></li> +<li>Methods <tt class="docutils literal">TestRun.get_cases()</tt> and <tt class="docutils literal">TestPlan.add_case()</tt> change +result field names similarly to <tt class="docutils literal">TestCase.filter()</tt> method</li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Fix removing a component from a test case immediately after it has been added. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2145">Issue #2145</a> (Gagan Deep)</li> +<li>Fix broken object navigation in navbar. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/991">Issue #991</a></li> +<li>Refactor search pages rendering to speed it up. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1014">Issue #1014</a></li> +</ul> +</div> +<div class="section" id="refactoring-testing"> +<h3>Refactoring &amp; testing</h3> +<ul class="simple"> +<li>Update tests for <tt class="docutils literal">TestRun.create()</tt> API method. Refs +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1928">Issue #1928</a> (Andreea Moraru)</li> +<li>Add automation tests. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1618">Issue #1618</a> (Mariyan Garvanski)</li> +<li>Add additional automation tests for <tt class="docutils literal">tcms.management.admin</tt>. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1610">Issue #1610</a> (Gagan Deep)</li> +<li>Add additional automation tests for <tt class="docutils literal">tcms.testcases.views.EditTestCaseView</tt>. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1615">Issue #1615</a> (Gagan Deep)</li> +<li>Add additional automation tests for <tt class="docutils literal">tcms.kiwi_auth.forms</tt>. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1609">Issue #1609</a> (Kapil Bansal)</li> +<li>Change location of included HTML templates (Alexander Tsvetanov, Krum Petkov)</li> +<li>Erase unused view &amp; templates (Alexander Tsvetanov)</li> +<li>Enable eslint. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1281">Issue #1281</a></li> +<li>Change how beakerlib test framework is installed to avoid problems +during integration tests</li> +<li>Better inspection of beakerlib test results to avoid false positive results</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/bg#">Bulgarian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/de#">German translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/hu#">Hungarian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/pl#">Polish translation</a></li> +</ul> +</div> +</div> +<div class="section" id="kiwi-tcms-enterprise-v10-0-mt"> +<h2>Kiwi TCMS Enterprise v10.0-mt</h2> +<ul class="simple"> +<li>Based on Kiwi TCMS v10.0</li> +<li>Update kiwitcms-github-app from 1.2.2 to 1.2.4</li> +<li>Update kiwitcms-tenants from 1.4.2 to 1.4.3</li> +<li>Update django-python3-ldap from 0.11.3 to 0.11.4</li> +</ul> +</div> +<div class="section" id="automation-framework-plugins"> +<h2>Automation framework plugins</h2> +<p>The following +<a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/plugins/automation-frameworks.html">test automation framework plugins</a> +have been upgraded to work with Kiwi TCMS v10.0:</p> +<ul class="simple"> +<li><a class="reference external" href="https://github.com/kiwitcms/junit-plugin">junit-plugin</a></li> +<li><a class="reference external" href="https://github.com/kiwitcms/tap-plugin">tap-plugin</a></li> +<li><a class="reference external" href="https://github.com/kiwitcms/junit.xml-plugin">junit.xml-plugin</a></li> +<li><a class="reference external" href="https://github.com/kiwitcms/robotframework-plugin">Robot Framework plugin</a></li> +<li><a class="reference external" href="https://github.com/kiwitcms/django-plugin">Django plugin</a></li> +</ul> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p><a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">Backup</a> first! +If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +cd path/containing/docker-compose/ +docker-compose down +docker-compose pull +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +</pre> +<p>Refer to +<a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/installing_docker.html#upgrading">our documentation</a> +for more details!</p> +<p>Happy testing!</p> +<p>---</p> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul class="simple"> +<li><a class="reference external" href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a class="reference external" href="/blog/kiwi-tcms-team/2020/09/04/please-nominate-kiwitcms-as-a-github-star/">Nominate Kiwi TCMS as GitHub Stars</a>;</li> +<li><a class="reference external" href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a class="reference external" href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> +and follow all project news;</li> +<li><a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> +and an awesome open source hacker;</li> +<li><a class="reference external" href="/#subscriptions">Become a customer</a> and we'll share our profits with the community</li> +</ul> +</div> +Kiwi TCMS has applied for GSoC 20212021-01-30T13:40:00+02:002021-01-30T13:40:00+02:00Kiwi TCMS Teamtag:None,2021-01-30:/blog/kiwi-tcms-team/2021/01/30/kiwi-tcms-has-applied-for-gsoc-2021/<p><img alt="&quot;GSoC banner&quot;" src="/images/gsoc/2021/banner.png" title="GSoC banner"></p> +<p>Dear open source hackers, we are happy to share that Kiwi TCMS has +applied to +<a href="https://summerofcode.withgoogle.com/">Google Summer of Code 2021</a> +as a mentoring organization!</p> +<p>While we're very early in the program +<a href="https://summerofcode.withgoogle.com/how-it-works/#timeline">timeline</a> +and we still don't know whether Kiwi TCMS will be accepted or not we'd +like to use this …</p><p><img alt="&quot;GSoC banner&quot;" src="/images/gsoc/2021/banner.png" title="GSoC banner"></p> +<p>Dear open source hackers, we are happy to share that Kiwi TCMS has +applied to +<a href="https://summerofcode.withgoogle.com/">Google Summer of Code 2021</a> +as a mentoring organization!</p> +<p>While we're very early in the program +<a href="https://summerofcode.withgoogle.com/how-it-works/#timeline">timeline</a> +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 <a href="/blog/tags/bounty-program/">open source bounty program</a>. +The majority of them require some knowledge of Python and Django.</p> +<h2>Let's Encrypt SSL integration</h2> +<p>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.</p> +<p>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 +<a href="https://kiwitcms.readthedocs.io/en/latest/installing_docker.html#ssl-configuration">documented</a> +there are fair amount of testers who do not have sufficient proficiency +with Docker to do so.</p> +<p>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.</p> +<p>An integration with <a href="https://letsencrypt.org/">Let's Encrypt</a> would be +a good choice. We've tried a proof of concept but had troubles running +their official client on our container image.</p> +<p>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.</p> +<h2>Securing 3rd party dependencies</h2> +<p>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 +<a href="https://github.com/kiwitcms/Kiwi/issues/871">Issue #871</a>.</p> +<p>As a minimum all issues reported by bandit &amp; coverity against 3rd party +dependencies must be sorted out:</p> +<ul> +<li>Figure out if we execute our tools in the appropriate way as to not + report unnecessary issues</li> +<li>Dissect all of the issues, especially + <a href="https://github.com/kiwitcms/Kiwi/runs/1608837125?check_suite_focus=true">ones from Bandit</a>, + report them to their upstream community, discuss and decide how to fix or + ignore the issue and send a pull request to upstream</li> +<li>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</li> +<li>Work with any upstream (2nd, 3rd, 4th, etc level dependencies) communities + to adopt said tools and fix issues as they are discovered</li> +</ul> +<p>All of this will ultimately benefit a broader community than Kiwi TCMS alone.</p> +<h2>Integration with GitHub Actions and GitLab pipelines</h2> +<p>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 +<a href="https://kiwitcms.readthedocs.io/en/latest/plugins/automation-frameworks.html">automation framework plugins</a> +do!</p> +<p>You should start with GitHub because this is what Kiwi TCMS uses and we can +immediately eat our own dog food. Originally proposed in +<a href="https://github.com/kiwitcms/Kiwi/issues/817">Issue #817</a> then moved to +<a href="https://github.com/kiwitcms/github-app/issues/10">github-app #10</a> with a +slightly different focus.</p> +<p>Next (or in parallel) would be similar +functionality for GitLab pipelines, proposed in +<a href="https://github.com/kiwitcms/Kiwi/issues/1421">Issue #1421</a></p> +<h2>Java hacking</h2> +<p>Kiwi TCMS does have a native +<a href="https://github.com/kiwitcms/junit-plugin">junit-plugin</a> 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:</p> +<ul> +<li><a href="https://github.com/kiwitcms/Kiwi/issues/692">Issue #692</a> - TestNG plugin</li> +<li><a href="https://github.com/kiwitcms/Kiwi/issues/1072">Issue #1072</a> - Jenkins plugin, + probably similar in scope to the proposed GitHub/GitLab integration above</li> +<li><a href="https://github.com/kiwitcms/Kiwi/issues/1512">Issue #1512</a> - extension for the + existing junit-plugin. Similar extension will likely be necessary for the + TestNG plugin as well</li> +<li>Integration with Katalon Studio proposed at + <a href="https://forum.katalon.com/t/kiwi-tcms-integration/39817">https://forum.katalon.com/t/kiwi-tcms-integration/39817</a>. There isn't much info to + begin with so if you have working experience with Katalon Studio it would be + a plus</li> +<li>Fixing assorted + <a href="https://github.com/kiwitcms/junit-plugin/issues">issues in our junit plugin</a></li> +<li>Help upgrade to junit-jupiter v5.7.0, looks like API has changed and our + plugin doesn't automatically discover the tests. + See <a href="https://github.com/kiwitcms/junit-plugin/pulls">https://github.com/kiwitcms/junit-plugin/pulls</a></li> +</ul> +<h2>C# and Objective-C hacking</h2> +<ul> +<li><a href="https://github.com/kiwitcms/Kiwi/issues/2020">Issue #2020</a> - reporting plugin for + NUnit, similar to other existing + <a href="https://kiwitcms.readthedocs.io/en/latest/plugins/automation-frameworks.html">automation framework plugins</a>. + 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</li> +<li><a href="https://github.com/kiwitcms/Kiwi/issues/1316">Issue #1316</a> - reporting plugin + for <em>Kiwi-bdd</em> 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</li> +</ul> +<h2>Migration to Patternfly v4, possibly with React JS</h2> +<p>The visual component library that Kiwi TCMS uses is called +<a href="https://www.patternfly.org">PatternFly</a>. 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.</p> +<p>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.</p> +<p>A major task is switching over to PatternFly v4 where there could be some +differences in component syntax.</p> +<p>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.</p> +<p>The starting point is +<a href="https://github.com/kiwitcms/Kiwi/issues/1323">Issue #1323</a>.</p> +<p>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.</p> +<p>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.</p> +<h2>JavaScript hacking</h2> +<ul> +<li><a href="https://github.com/kiwitcms/Kiwi/issues/1281">Issue #1281</a> - start using ESLint + against our code base and clean-up all related issues</li> +<li><a href="https://github.com/kiwitcms/Kiwi/issues/1910">Issue #1910</a> - 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.</li> +<li><a href="https://github.com/kiwitcms/Kiwi/issues/1919">Issue #1919</a> - 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.</li> +</ul> +<h2>Remaining telemetry</h2> +<p><a href="/blog/kiwi-tcms-team/2019/03/03/legacy-reports-become-telemetry/">Testing Telemetry</a> 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: +<a href="https://github.com/kiwitcms/Kiwi/issues/616">Issue #616</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1923">Issue #1923</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1924">Issue #1924</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1925">Issue #1925</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1926">Issue #1926</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1927">Issue #1927</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1928">Issue #1928</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1929">Issue #1929</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1940">Issue #1940</a>.</p> +<p>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.</p> +<h2>Web hooks</h2> +<p>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 <a href="https://github.com/zapier/django-rest-hooks">django-rest-hooks</a> and +pair it up with <a href="https://restrictedpython.readthedocs.io/">RestrictedPython</a> +for further flexibility.</p> +<p>This feature is being tracked in +<a href="https://github.com/kiwitcms/Kiwi/issues/1080">Issue #1080</a> and +<a href="https://github.com/kiwitcms/Kiwi/issues/914">Issue #913</a> but needs a more +detailed definition.</p> +<h2>Anything else</h2> +<p>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.</p> +<p>Happy Testing!</p> +<hr> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul> +<li><a href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a href="/blog/kiwi-tcms-team/2020/09/04/please-nominate-kiwitcms-as-a-github-star/">Nominate Kiwi TCMS as GitHub Stars</a>;</li> +<li><a href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> + and follow all project news;</li> +<li><a href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> and an awesome open source hacker;</li> +<li><a href="/#subscriptions">Become a customer</a> and we'll share our profits with the community</li> +</ul>Project roadmap 20212021-01-29T15:40:00+02:002021-01-29T15:40:00+02:00Alexander Todorovtag:None,2021-01-29:/blog/atodorov/2021/01/29/project-roadmap-2021/<p>Hello testers, +this blog post outlines Kiwi TCMS roadmap for 2021 and what we feel is +important to us!</p> +<p><img style="background-color: inherit" src="/images/roadmap2021.png" alt="roadmap image 2021"></p> +<h1>Project sustainability</h1> +<p>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:</p> +<div class="highlight"><pre><span></span><code><span class="mf">1</span><span class="p">)</span> <span class="n">Team</span> +<span class="mf">2 …</span></code></pre></div><p>Hello testers, +this blog post outlines Kiwi TCMS roadmap for 2021 and what we feel is +important to us!</p> +<p><img style="background-color: inherit" src="/images/roadmap2021.png" alt="roadmap image 2021"></p> +<h1>Project sustainability</h1> +<p>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:</p> +<div class="highlight"><pre><span></span><code><span class="mf">1</span><span class="p">)</span> <span class="n">Team</span> +<span class="mf">2</span><span class="p">)</span> <span class="n">Technical</span> +<span class="mf">3</span><span class="p">)</span> <span class="n">Community</span> <span class="err">&amp;</span> <span class="n">Adoption</span> +</code></pre></div> + + +<h2>Team</h2> +<p>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 &amp; recruit people to join the team, how we on-board and help +them so that they can become productive and fully fledged team members.</p> +<p>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.</p> +<p><strong>Goal:</strong> 1 PR/week/person as broad measure of individual performance so that +we can operate with a predictable capacity.</p> +<p><strong>Goal:</strong> (re)structure internal team processes around candidates and newcomers! +Note: These are not public at the moment.</p> +<h2>Technical</h2> +<p>The areas shown on the picture above will receive more priority.</p> +<p><strong>Goal:</strong> complete remaining <a href="/blog/kiwi-tcms-team/2019/03/03/legacy-reports-become-telemetry/">Telemetry features</a>.</p> +<p><strong>Goal:</strong> complete remaining refactoring with major focus in pylint issues, migration to +Patternfly v4 and eslint issues.</p> +<p><strong>Goal:</strong> improve SSL configuration with strong bias towards Let's Encrypt being +configured by default.</p> +<p><strong>Goal:</strong> 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.</p> +<h2>Community &amp; Adoption</h2> +<p>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 &amp; exposure which drives further adoption +of Kiwi TCMS downstream.</p> +<p><strong>Goal:</strong> complete +<a href="https://github.com/kiwitcms/Kiwi/milestone/1">bug-tracker integration milestone</a>.</p> +<p><strong>Goal:</strong> extended GitHub integration via GitHub actions which will report results +into our database. We do have other ideas as stretch goals.</p> +<p><strong>Goal:</strong> similar to GitHub actions we're looking towards GitLab pipelines and +similar integration with GitLab.</p> +<p><strong>Goal:</strong> continue our collaboration with Major League Hacking Fellowship program.</p> +<p><strong>Goal:</strong> apply for the Google Summer of Code program and work with students if selected.</p> +<hr> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul> +<li><a href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a href="/blog/kiwi-tcms-team/2020/09/04/please-nominate-kiwitcms-as-a-github-star/">Nominate Kiwi TCMS as GitHub Stars</a>;</li> +<li><a href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> + and follow all project news;</li> +<li><a href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> and an awesome open source hacker;</li> +<li><a href="/#subscriptions">Become a customer</a> and we'll share our profits with the community</li> +</ul>Kiwi TCMS 9.02021-01-13T14:20:00+02:002021-01-13T14:20:00+02:00Kiwi TCMS Teamtag:None,2021-01-13:/blog/kiwi-tcms-team/2021/01/13/kiwi-tcms-90/<p>We're happy to announce Kiwi TCMS version 9.0!</p> +<p><strong>IMPORTANT:</strong> 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 +<a class="reference external" href="/blog/tags/bounty-program/">open source bounty program</a>.</p> +<p>This is the …</p><p>We're happy to announce Kiwi TCMS version 9.0!</p> +<p><strong>IMPORTANT:</strong> 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 +<a class="reference external" href="/blog/tags/bounty-program/">open source bounty program</a>.</p> +<p>This is the third release after +<a class="reference external" href="/blog/kiwi-tcms-team/2020/10/26/kiwi-tcms-celebrates-200k-downloads/">Kiwi TCMS reached 200K pulls</a> +on Docker Hub!</p> +<p>You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +<p>Docker images:</p> +<pre class="literal-block"> +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 +</pre> +<div class="section" id="changes-since-kiwi-tcms-8-9"> +<h2>Changes since Kiwi TCMS 8.9</h2> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update django from 3.1.4 to 3.1.5</li> +<li>Update django-contrib-comments from 1.9.2 to 2.0.0</li> +<li>Update pygithub from 1.53 to 1.54.1</li> +<li>Update pygments from 2.7.3 to 2.7.4</li> +<li>Update mysqlclient from 2.0.1 to 2.0.3</li> +<li>Update node_modules/prismjs from 1.22.0 to 1.23.0</li> +<li>Update node_modules/marked from 1.2.5 to 1.2.7</li> +<li>Implement 'Select all' for TestCase Search page. Resolves +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/2103">Issue #2103</a> (Bryan Mutai)</li> +<li>Change ON/OFF button messages for several buttons (Krum Petkov)</li> +<li>Remove <tt class="docutils literal">delete_selected</tt> action from admin pages</li> +<li>Show active test runs in TestPlan page</li> +<li>Hide irrelevant Version &amp; Build selectors for Testing breakdown telemetry</li> +<li>Allow <tt class="docutils literal">running</tt> to be passed as URL query param to TestRun Search page</li> +</ul> +</div> +<div class="section" id="settings"> +<h3>Settings</h3> +<ul class="simple"> +<li>Remove unused <tt class="docutils literal">kiwi.rpc</tt> log handler from <tt class="docutils literal">LOGGING</tt> setting</li> +</ul> +</div> +<div class="section" id="database"> +<h3>Database</h3> +<p><strong>Warning:</strong> Contains backwards incompatible changes.</p> +<ul> +<li><p class="first">Replace <tt class="docutils literal">Build.product</tt> with <tt class="docutils literal">Build.version</tt>. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/246">Issue #246</a>. Build objects +are now associated with Version objects, not with Product objects!</p> +<p><strong>Warning:</strong></p> +<blockquote> +<p>After migration existing builds will point to the &quot;unspecified&quot; 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!</p> +</blockquote> +</li> +<li><p class="first">Rename related_name for TestExecution model: <tt class="docutils literal">case_run</tt> -&gt; <tt class="docutils literal">executions</tt></p> +</li> +<li><p class="first">Rename related_name for TestCase model: <tt class="docutils literal">case</tt> -&gt; <tt class="docutils literal">cases</tt></p> +</li> +</ul> +</div> +<div class="section" id="api"> +<h3>API</h3> +<p><strong>Warning:</strong> Contains backwards incompatible changes.</p> +<ul class="simple"> +<li>Methods <tt class="docutils literal">Build.filter</tt>, <tt class="docutils literal">Build.create</tt> and <tt class="docutils literal">Build.update</tt> replace the +<tt class="docutils literal">product</tt> field with a <tt class="docutils literal">version</tt> field</li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>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</li> +</ul> +</div> +<div class="section" id="refactoring-testing"> +<h3>Refactoring &amp; testing</h3> +<ul class="simple"> +<li>Add tests for <tt class="docutils literal">tcms.core.middleware</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1605">Issue #1605</a> (Gagan Deep)</li> +<li>Add tests for <tt class="docutils literal">tcms.handlers</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1611">Issue #1611</a> (Gagan Deep)</li> +<li>Add tests for <tt class="docutils literal">tcms.kiwi_auth.views</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1608">Issue #1608</a> +(Abhishek Chaurasia)</li> +<li>Update pip during bugtracker integration tests to fix dependency issues</li> +<li>Reformat all files with black and isort. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1193">Issue #1193</a></li> +<li>Refactor <tt class="docutils literal">TestExecution.get_bugs()</tt> to use <tt class="docutils literal">TestExecution.links()</tt></li> +<li>Add return statement for invalid form to make pylint happy</li> +<li>Make <tt class="docutils literal">Bug.assignee</tt> field a <tt class="docutils literal">UserField</tt></li> +<li>Replace deprecated <tt class="docutils literal">ugettext_lazy</tt> with <tt class="docutils literal">gettext_lazy</tt></li> +<li>Fixes for Azure Boards integration tests</li> +<li>Remove <tt class="docutils literal">CsrfDisableMiddleware</tt>. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/297">Issue #297</a></li> +<li>Remove unused methods &amp; left-over views</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/ca#">Catalan translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/zh-CN#">Chinese Simplified translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/fr#">French translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/hu#">Hungarian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/ja#">Japanese translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +</ul> +</div> +</div> +<div class="section" id="kiwi-tcms-enterprise-v9-0-mt"> +<h2>Kiwi TCMS Enterprise v9.0-mt</h2> +<ul class="simple"> +<li>Based on Kiwi TCMS v9.0</li> +<li>Update kiwitcms-github-app from 1.2.1 to 1.2.2</li> +<li>Update kiwitcms-tenants from 1.3.1 to 1.4.2</li> +</ul> +<p>For more info see +<a class="reference external" href="https://github.com/kiwitcms/enterprise#v90-mt-12-jan-2021">https://github.com/kiwitcms/enterprise#v90-mt-12-jan-2021</a></p> +</div> +<div class="section" id="automation-framework-plugins"> +<h2>Automation framework plugins</h2> +<p>The following +<a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/plugins/automation-frameworks.html">test automation framework plugins</a> +have been upgraded to work with Kiwi TCMS v9.0:</p> +<ul class="simple"> +<li><a class="reference external" href="https://github.com/kiwitcms/tap-plugin">tap-plugin</a></li> +<li><a class="reference external" href="https://github.com/kiwitcms/junit.xml-plugin">junit.xml-plugin</a></li> +<li><a class="reference external" href="https://github.com/kiwitcms/robotframework-plugin">Robot Framework plugin</a></li> +<li><a class="reference external" href="https://github.com/kiwitcms/django-plugin">Django plugin</a></li> +</ul> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p><a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">Backup</a> first! +If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +cd path/containing/docker-compose/ +docker-compose down +docker-compose pull +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +</pre> +<p>Refer to +<a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/installing_docker.html#upgrading">our documentation</a> +for more details!</p> +<p>Happy testing!</p> +<p>---</p> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul class="simple"> +<li><a class="reference external" href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a class="reference external" href="/blog/kiwi-tcms-team/2020/09/04/please-nominate-kiwitcms-as-a-github-star/">Nominate Kiwi TCMS as GitHub Stars</a>;</li> +<li><a class="reference external" href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a class="reference external" href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> +and follow all project news;</li> +<li><a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> +and an awesome open source hacker;</li> +<li><a class="reference external" href="/#subscriptions">Become a customer</a> and we'll share our profits with the community</li> +</ul> +</div> +Roadmap status report for 20202020-12-31T14:07:00+02:002020-12-31T14:07:00+02:00Alexander Todorovtag:None,2020-12-31:/blog/atodorov/2020/12/31/roadmap-status-report-for-2020/<p>Another year rolls out and despite all difficulties it is by far the +strongest one for Kiwi TCMS!</p> +<h2>Stats</h2> +<ul> +<li>2 physical events and a few virtual ones</li> +<li>12 releases</li> +<li>24 language translations</li> +<li>683 PRs, most of them closed &amp; merged</li> +<li>Reached Issue/PR number 2000</li> +<li>Reached 5000 commits</li> +<li>Reached 8000 registrations …</li></ul><p>Another year rolls out and despite all difficulties it is by far the +strongest one for Kiwi TCMS!</p> +<h2>Stats</h2> +<ul> +<li>2 physical events and a few virtual ones</li> +<li>12 releases</li> +<li>24 language translations</li> +<li>683 PRs, most of them closed &amp; merged</li> +<li>Reached Issue/PR number 2000</li> +<li>Reached 5000 commits</li> +<li>Reached 8000 registrations via <a href="https://public.tenant.kiwitcms.org">https://public.tenant.kiwitcms.org</a></li> +<li>Reached 270K downloads via Docker Hub</li> +</ul> +<h2>Status update</h2> +<p>From the <a href="/blog/atodorov/2020/01/17/project-roadmap-2020/">2020 roadmap</a> we've +established 3 main areas to work on. Their completeness scores are:</p> +<div class="highlight"><pre><span></span><code><span class="mf">1</span><span class="p">)</span> <span class="n">Team</span> <span class="o">-</span> <span class="mf">30</span><span class="err">%</span> +<span class="mf">2</span><span class="p">)</span> <span class="n">Technical</span> <span class="o">-</span> <span class="mf">70</span><span class="err">%</span> +<span class="mf">3</span><span class="p">)</span> <span class="n">Community</span> <span class="o">-</span> <span class="mf">100</span><span class="err">%</span> +</code></pre></div> + + +<p>Average score is 65% completion!</p> +<h2>Team</h2> +<p>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.</p> +<p>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.</p> +<h2>Technical</h2> +<p>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.</p> +<p>Additional work has been done on closing bugs, implementing some features, +integration with new bug tracking systems and improvements around the +telemetry feature.</p> +<p>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.</p> +<h2>Community</h2> +<p>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 &amp; translation contributions, adoption of Kiwi TCMS and +general partnerships around open source.</p> +<p>Kiwi TCMS got a substantial grant from the Mozilla foundation which +helped bootstrap our open source bounty program and internship +program.</p> +<p>In May we reached 100K downloads on Docker Hub then in October we've +surpassed 200K. Next month we'll reach 300K!</p> +<h2>Summary</h2> +<p>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.</p> +<p>Overall Kiwi TCMS, its team and its community did very well and I am +confident that next year we can achieve more together!</p> +<p>Happy Testing and Happy New Year!</p> +<hr> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul> +<li><a href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a href="/blog/kiwi-tcms-team/2020/09/04/please-nominate-kiwitcms-as-a-github-star/">Nominate Kiwi TCMS as GitHub Stars</a>;</li> +<li><a href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> + and follow all project news;</li> +<li><a href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> and an awesome open source hacker;</li> +<li><a href="/#subscriptions">Become a customer</a> and we'll share our profits with the community</li> +</ul>Excellence in Innovation 2020 award for Kiwi TCMS2020-12-26T17:17:00+02:002020-12-26T17:17:00+02:00Kiwi TCMS Teamtag:None,2020-12-26:/blog/kiwi-tcms-team/2020/12/26/excellence-in-innovation-2020-award-for-kiwi-tcms/<p><img alt="&quot;Virtual show screen&quot;" src="/images/finalists_innovationbg.png" title="Virtual show screen"></p> +<p>Dear testers, we are happy to share that Kiwi TCMS has been distinguished +with the <em>Excellence in Innovation 2020</em> award by +<a href="http://www.arcfund.net/">Applied Research and Communications Fund</a> in Bulgaria. +This is also the first award that we receive locally and we're very happy +about that!</p> +<p>Kiwi TCMS was a finalist in …</p><p><img alt="&quot;Virtual show screen&quot;" src="/images/finalists_innovationbg.png" title="Virtual show screen"></p> +<p>Dear testers, we are happy to share that Kiwi TCMS has been distinguished +with the <em>Excellence in Innovation 2020</em> award by +<a href="http://www.arcfund.net/">Applied Research and Communications Fund</a> in Bulgaria. +This is also the first award that we receive locally and we're very happy +about that!</p> +<p>Kiwi TCMS was a finalist in the <em>Digital transformation</em> 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!</p> +<p>If you would like to checkout the awards ceremony and all of the particiants +go to <a href="https://www.innovation.bg/">www.innovation.bg</a>, we're listed under +<em>Отворени Технологии България ЕООД</em> +(the name of our <a href="/legal/">parent company</a>)! +Text and video is not in English however!</p> +<p>Happy Testing!</p> +<hr> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul> +<li><a href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a href="/blog/kiwi-tcms-team/2020/09/04/please-nominate-kiwitcms-as-a-github-star/">Nominate Kiwi TCMS as GitHub Stars</a>;</li> +<li><a href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> + and follow all project news;</li> +<li><a href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> and an awesome open source hacker;</li> +<li><a href="/#subscriptions">Become a customer</a> and we'll share our profits with the community</li> +</ul>Kiwi TCMS 8.92020-12-07T16:25:00+02:002020-12-07T16:25:00+02:00Kiwi TCMS Teamtag:None,2020-12-07:/blog/kiwi-tcms-team/2020/12/07/kiwi-tcms-89/<p>We're happy to announce Kiwi TCMS version 8.9!</p> +<p><strong>IMPORTANT:</strong> 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 +<a class="reference external" href="/blog/tags/bounty-program/">open source bounty program</a>. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org …</a></p><p>We're happy to announce Kiwi TCMS version 8.9!</p> +<p><strong>IMPORTANT:</strong> 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 +<a class="reference external" href="/blog/tags/bounty-program/">open source bounty program</a>. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>! +This is also the second release after +<a class="reference external" href="/blog/kiwi-tcms-team/2020/10/26/kiwi-tcms-celebrates-200k-downloads/">Kiwi TCMS reached 200K pulls</a> +on Docker Hub!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +<p>Docker images:</p> +<pre class="literal-block"> +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 +</pre> +<div class="section" id="changes-since-kiwi-tcms-8-8"> +<h2>Changes since Kiwi TCMS 8.8</h2> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update django from 3.1.3 to 3.1.4</li> +<li>Update django-extensions from 3.0.9 to 3.1.0</li> +<li>Update django-grappelli from 2.14.2 to 2.14.3</li> +<li>Update pygments from 2.7.2 to 2.7.3</li> +<li>Update python-bugzilla from 3.0.1 to 3.0.2</li> +<li>Update node_modules/marked from 1.2.3 to 1.2.5</li> +<li>Update node_modules/html5sortable from 0.9.18 to 0.10.0</li> +<li>New <tt class="docutils literal">manage.py initial_setup</tt> command for one-stop initial setup +(Ivajlo Karabojkov)</li> +<li>Bug tracker integration with BitBucket (bitbucket.org). Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1916">Issue #1916</a> (&#64;cmbahadir)</li> +<li>Complete redesign and refactoring of Test Run page:<ul> +<li>Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/189">Issue #189</a>, +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/241">Issue #241</a>, +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/212">Issue #212</a>, +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/431">Issue #431</a>, +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1382">Issue #1382</a></li> +<li>Add filter by component &amp; tag. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/833">Issue #833</a></li> +<li>Don't limit the user to test cases from the parent test plan like before. +Testers can add any test case for execution inside a test run, +even mix &amp; match test cases between products. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1934">Issue #1934</a></li> +<li>Add attachments to Test Run page. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/872">Issue #872</a></li> +<li>Refresh execution row after reporting a bug. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/479">Issue #479</a></li> +</ul> +</li> +<li><tt class="docutils literal">TestCaseStatus</tt> can now be customized. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1932">Issue #1932</a></li> +<li>Update documentation &amp; screenshots</li> +</ul> +</div> +<div class="section" id="settings"> +<h3>Settings</h3> +<ul class="simple"> +<li>Setting <tt class="docutils literal">ANONYMOUS_USER_NAME</tt> is now explicitly defined due to upstream bug +in django-guardian (Abhishek Chaurasia)</li> +</ul> +</div> +<div class="section" id="database"> +<h3>Database</h3> +<ul class="simple"> +<li>New migrations for customizeable <tt class="docutils literal">TestCaseStatus</tt></li> +</ul> +</div> +<div class="section" id="api"> +<h3>API</h3> +<ul class="simple"> +<li>Add <tt class="docutils literal">TestExecution.history()</tt> method</li> +<li>Add <tt class="docutils literal">TestCase.history()</tt> method</li> +<li>Add <tt class="docutils literal">TestRun.add_cc()</tt> method</li> +<li>Add <tt class="docutils literal">TestRun.remove_cc()</tt> method</li> +<li>Method <tt class="docutils literal">TestExecution.update()</tt> will use build from parent test run if a +<tt class="docutils literal">build</tt> field isn't explicitly specified in the arguments</li> +<li>Update method <tt class="docutils literal">TestRun.add_case()</tt><ul> +<li>will return existing TestExecution if available</li> +<li>will raise if test case status is not confirmed</li> +<li>will always create new test executions with the highest sortkey</li> +</ul> +</li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Fixed miscellaneous bugs in <tt class="docutils literal">tcms.rpc.testcase</tt> (Gagan Deep)</li> +<li>Disable name change in admin for the default groups. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1313">Issue #1313</a></li> +</ul> +</div> +<div class="section" id="refactoring-testing"> +<h3>Refactoring &amp; testing</h3> +<ul class="simple"> +<li>Add automated tests for <tt class="docutils literal">tcms.core.views.server_error</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1606">Issue #1606</a> +(Abhishek Chaurasia)</li> +<li>Add automated tests for <tt class="docutils literal">tcms.rpc.api.auth</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1620">Issue #1620</a> +(Abhishek Chaurasia)</li> +<li>Add automated test for <tt class="docutils literal">AnonymousViewBackend.has_perm</tt> method. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1905">Issue #1905</a> +(Abhishek Chaurasia)</li> +<li>Add automated tests for <tt class="docutils literal">tcms.core.utils.maito</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1603">Issue #1603</a> (Gagan Deep)</li> +<li>Add automated tests for <tt class="docutils literal">tcms.utils.github</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1612">Issue #1612</a> (Gagan Deep)</li> +<li>Add automated tests for <tt class="docutils literal">tcms.rpc.api.testscase</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1623">Issue #1623</a> (Gagan Deep)</li> +<li>Add automated tests for <tt class="docutils literal">tcms.testcases.views.NewCaseView</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1614">Issue #1614</a> (&#64;rish07)</li> +<li>Add automated tests for <tt class="docutils literal">tcms.testplans.views.NewTestPlanView.</tt> Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1616">Issue #1616</a> (&#64;awalvie)</li> +<li>Separate two functions one from another (Alexander Tsvetanov)</li> +<li>Disable pylint checks (Alexander Tsvetanov)</li> +<li>Upgrade to MySQL 8 in Travis CI</li> +<li>Remove unused setup in Travis CI</li> +<li>Be more robust when keeping internal state for TestPlan page</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/bg#">Bulgarian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/zh-CN#">Chinese Simplified translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/cs#">Czech translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/fr#">French translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/id#">Indonesian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/ja#">Japanese translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/ru#">Russian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +</ul> +</div> +</div> +<div class="section" id="kiwi-tcms-enterprise-v8-9-mt"> +<h2>Kiwi TCMS Enterprise v8.9-mt</h2> +<ul class="simple"> +<li>Based on Kiwi TCMS v8.9</li> +</ul> +<p>For more info see +<a class="reference external" href="https://github.com/kiwitcms/enterprise#v89-mt-07-dec-2020">https://github.com/kiwitcms/enterprise#v89-mt-07-dec-2020</a></p> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p><a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">Backup</a> first! +If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +cd path/containing/docker-compose/ +docker-compose down +docker-compose pull +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +</pre> +<p>Refer to +<a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/installing_docker.html#upgrading">our documentation</a> +for more details!</p> +<p>Happy testing!</p> +<p>---</p> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul class="simple"> +<li><a class="reference external" href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a class="reference external" href="/blog/kiwi-tcms-team/2020/09/04/please-nominate-kiwitcms-as-a-github-star/">Nominate Kiwi TCMS as GitHub Stars</a>;</li> +<li><a class="reference external" href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a class="reference external" href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> +and follow all project news;</li> +<li><a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> +and an awesome open source hacker;</li> +<li><a class="reference external" href="/#subscriptions">Become a customer</a> and we'll share our profits with the community</li> +</ul> +</div> +Call for participation: Testing and Automation devroom, FOSDEM'212020-12-02T14:55:00+02:002020-12-02T14:55:00+02:00Kiwi TCMS Teamtag:None,2020-12-02:/blog/kiwi-tcms-team/2020/12/02/call-for-participation-testing-and-automation-devroom-fosdem21/<p><img alt="&quot;Cfp banner&quot;" src="/images/fosdem/2021/banner.png" title="Cfp banner"></p> +<p>Attention open source testers: Testing and Automation devroom at FOSDEM'21 +is happening next year! Call for participation is now open. +Checkout +<a href="https://fosdem-testingautomation.github.io/">https://fosdem-testingautomation.github.io/</a> for more information!</p> +<p>Happy Testing!</p> +<hr> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul> +<li><a href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a href="/blog/kiwi-tcms-team/2020/09/04/please-nominate-kiwitcms-as-a-github-star/">Nominate …</a></li></ul><p><img alt="&quot;Cfp banner&quot;" src="/images/fosdem/2021/banner.png" title="Cfp banner"></p> +<p>Attention open source testers: Testing and Automation devroom at FOSDEM'21 +is happening next year! Call for participation is now open. +Checkout +<a href="https://fosdem-testingautomation.github.io/">https://fosdem-testingautomation.github.io/</a> for more information!</p> +<p>Happy Testing!</p> +<hr> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul> +<li><a href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a href="/blog/kiwi-tcms-team/2020/09/04/please-nominate-kiwitcms-as-a-github-star/">Nominate Kiwi TCMS as GitHub Stars</a>;</li> +<li><a href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> + and follow all project news;</li> +<li><a href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> and an awesome open source hacker;</li> +<li><a href="/#subscriptions">Become a customer</a> and we'll share our profits with the community</li> +</ul>Kiwi TCMS 8.82020-11-09T12:10:00+02:002020-11-09T12:10:00+02:00Kiwi TCMS Teamtag:None,2020-11-09:/blog/kiwi-tcms-team/2020/11/09/kiwi-tcms-88/<p>We're happy to announce Kiwi TCMS version 8.8!</p> +<p><strong>IMPORTANT:</strong> this release includes many improvements, +API changes, bug fixes, translation updates, new tests and internal refactoring. +It is the sixth release to include contributions via our +<a class="reference external" href="/blog/tags/bounty-program/">open source bounty program</a>. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org …</a></p><p>We're happy to announce Kiwi TCMS version 8.8!</p> +<p><strong>IMPORTANT:</strong> this release includes many improvements, +API changes, bug fixes, translation updates, new tests and internal refactoring. +It is the sixth release to include contributions via our +<a class="reference external" href="/blog/tags/bounty-program/">open source bounty program</a>. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<p>This is also the first release after +<a class="reference external" href="/blog/kiwi-tcms-team/2020/10/26/kiwi-tcms-celebrates-200k-downloads/">Kiwi TCMS reached 200K pulls</a> +on Docker Hub!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +<p>Docker images:</p> +<pre class="literal-block"> +kiwitcms/kiwi latest 4b31ecf8ab5b 654 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 +</pre> +<div class="section" id="changes-since-kiwi-tcms-8-7"> +<h2>Changes since Kiwi TCMS 8.7</h2> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update bleach from 3.1.5 to 3.2.1</li> +<li>Update django-extensions from 3.0.8 to 3.0.9</li> +<li>Update django from 3.1.1 to 3.1.3</li> +<li>Update django-simple-history from 2.11.0 to 2.12.0</li> +<li>Update markdown from 3.2.2 to 3.3.3</li> +<li>Update pygments from 2.7.0 to 2.7.2</li> +<li>Update python-bugzilla from 2.5.0 to 3.0.1</li> +<li>Update node_modules/marked from 1.1.1 to 1.2.3</li> +<li>Update node_modules/prismjs from 1.21.0 to 1.22.0</li> +<li>Add management command <tt class="docutils literal">refresh_permission</tt>. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1137">Issue #1137</a> (Ivajlo Karabojkov)</li> +<li>Add bug tracker integration for Azure Boards. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1979">Issue #1979</a> (&#64;cmbahadir)</li> +<li>Add autosave configuration to web editor. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1958">Issue #1958</a> (Mfon Eti-mfon)</li> +<li>Change ON/OFF buttons messages to Yes/No for several buttons (Alexander Tsvetanov)</li> +<li>Add support for object-level permissions for TestCase, +TestPlan, TestRun and Bug objects via <tt class="docutils literal"><span class="pre">django-guardian</span></tt></li> +<li>Complete redesign of Test Plan page to match the rest of Kiwi TCMS:<ul> +<li>modern look and feel using the PatternFly UI library</li> +<li>remove unused legacy code &amp; HTML templates</li> +<li>closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/663">Issue #663</a>, +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1977">Issue #1977</a></li> +</ul> +</li> +<li>Enable Markdown support for strike-through text</li> +<li>Always pull latest RPMs when building container images</li> +<li>Update documentation and images</li> +</ul> +</div> +<div class="section" id="settings"> +<h3>Settings</h3> +<ul class="simple"> +<li><tt class="docutils literal">AUTHENTICATION_BACKENDS</tt> setting is now explicitly specified because of +<tt class="docutils literal"><span class="pre">django-guardian</span></tt>. Take care to include the default backends if you +override this setting. See <tt class="docutils literal">tcms/settings/common.py</tt> for more information.</li> +</ul> +</div> +<div class="section" id="database"> +<h3>Database</h3> +<ul class="simple"> +<li>Add index to <tt class="docutils literal">TestCase.summary</tt> field</li> +<li>Additional migrations from <tt class="docutils literal"><span class="pre">django-guardian</span></tt> around object-level permissions</li> +<li>New <tt class="docutils literal">AnonymousUser</tt> record added by <tt class="docutils literal"><span class="pre">django-guardian</span></tt></li> +<li>Start using <tt class="docutils literal"><span class="pre">django-tree-queries</span></tt> which improves how tree based structures +are stored in the database.</li> +</ul> +<p><strong>important:</strong></p> +<blockquote> +Requires PostgreSQL, sqlite3 &gt;= 3.8.3, MariaDB &gt;= 10.2.2 or +MySQL &gt;= 8.0 (if running without <tt class="docutils literal">ONLY_FULL_GROUP_BY</tt>).</blockquote> +<p><strong>warning:</strong></p> +<blockquote> +Supports only trees with max. 50 levels on MySQL/MariaDB, since those databases +do not support arrays and require us to provide a maximum length upfront. +This means up to 50 levels of nested child-parent test plans!</blockquote> +</div> +<div class="section" id="api"> +<h3>API</h3> +<ul class="simple"> +<li>Method <tt class="docutils literal">TestExecution.update()</tt> will now modify field <tt class="docutils literal">close_date</tt> +depending on test execution status. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1820">Issue #1820</a></li> +<li>Method <tt class="docutils literal">TestCase.add_comment()</tt> now returns the created comment</li> +<li>Method <tt class="docutils literal">TestExecution.add_comment()</tt> now returns the created comment</li> +<li>Method <tt class="docutils literal">TestPlan.add_case()</tt> now returns the newly added test case</li> +<li>Add method <tt class="docutils literal">TestCase.sortkeys()</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/444">Issue #444</a></li> +<li>Add method <tt class="docutils literal">Markdown.render()</tt></li> +<li>Add method <tt class="docutils literal">TestCase.comments()</tt></li> +<li>Add method <tt class="docutils literal">TestPlan.tree()</tt></li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Fix url formatting. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1806">Issue #1806</a> (Rosen Sasov)</li> +<li>When deleting TestExecutionStatus check that there will be at least 1 left +before deleting! Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1978">Issue #1978</a></li> +<li>Update typeahead definitions for test case components, tags and +for adding test plans to test cases. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/882">Issue #882</a></li> +<li>Add option to filter by reviewer in Test Plan page. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/564">Issue #564</a></li> +<li>Pass the number of disabled test cases to HTML template when +creating a new test run. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/718">Issue #718</a></li> +</ul> +</div> +<div class="section" id="refactoring-testing"> +<h3>Refactoring &amp; testing</h3> +<ul class="simple"> +<li>New linter to warn against <tt class="docutils literal">GenericForeignKey</tt> fields in models. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1303">Issue #1303</a> (Bryan Mutai)</li> +<li>Add tests for <tt class="docutils literal">assign_default_group_permissions()</tt> (Ivajlo Karabojkov)</li> +<li>Add tests for <tt class="docutils literal">TestExecutionStatusAdmin</tt>. Refs +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1618">Issue #1618</a> (Mariyan Garvanski)</li> +<li>Add tests for <tt class="docutils literal">tcms.bugs.views.Search</tt>. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1601">Issue #1601</a> (Mfon Eti-mfon)</li> +<li>Add tests for <tt class="docutils literal">tcms.rpc.api.testrun</tt>. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1628">Issue #1628</a> (&#64;lcmtwn)</li> +<li>Add tests for <tt class="docutils literal">tcms.rpc.api.classification</tt>. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1621">Issue #1621</a> (Abhishek Chaurasia)</li> +<li>Add tests for <tt class="docutils literal">tcms.rpc.api.priority</tt>. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1622">Issue #1622</a> (Abhishek Chaurasia)</li> +<li>Add tests for <tt class="docutils literal">tcms.rpc.api.testcasestatus</tt>. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1624">Issue #1624</a> (Abhishek Chaurasia)</li> +<li>Add tests for <tt class="docutils literal">tcms.rpc.api.attachment</tt>. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1619">Issue #1619</a> (&#64;awalvie)</li> +<li>Add tests for <tt class="docutils literal">tcms.rpc.api.testexecution.remove_comment</tt>. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1625">Issue #1625</a> (&#64;awalvie)</li> +<li>Add tests for <tt class="docutils literal">tcms.rpc.api.testexecutionstatus</tt>. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1626">Issue #1626</a> (&#64;awalvie)</li> +<li>Add tests for <tt class="docutils literal">TestRun.add_case_run()</tt> method and rename it to +<tt class="docutils literal">TestRun.create_execution()</tt></li> +<li><tt class="docutils literal"><span class="pre">libkrb5-dev</span></tt> is not needed anymore in CI with newer <tt class="docutils literal"><span class="pre">tcms-api</span></tt></li> +<li>Use Fedora 32 to build Bugzilla docker image in CI</li> +<li>Update signature for overriden class to match Django 3.1</li> +<li>Move SimpleMDE initialization to simplemde_security_overide.js</li> +<li>Move <tt class="docutils literal">post_save.send()</tt> from <tt class="docutils literal">bugs.views</tt> to <tt class="docutils literal">comments.add_comment()</tt></li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/bg#">Bulgarian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/zh-CN#">Chinese Simplified translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/cs#">Czech translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/fr#">French translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/hu#">Hungarian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/it#">Italian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/ja#">Japanese translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +</ul> +</div> +</div> +<div class="section" id="kiwi-tcms-enterprise-v8-8-mt"> +<h2>Kiwi TCMS Enterprise v8.8-mt</h2> +<ul class="simple"> +<li>Based on Kiwi TCMS v8.7</li> +<li>Update kiwitcms-github-app from 1.2 to 1.2.</li> +</ul> +<p>For more info see +<a class="reference external" href="https://github.com/kiwitcms/enterprise#v88-mt-07-nov-2020">https://github.com/kiwitcms/enterprise#v88-mt-07-nov-2020</a></p> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p><a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">Backup</a> first! +If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +cd path/containing/docker-compose/ +docker-compose down +docker-compose pull +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +</pre> +<p>Refer to +<a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/installing_docker.html#upgrading">our documentation</a> +for more details!</p> +<p>Happy testing!</p> +<p>---</p> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul class="simple"> +<li><a class="reference external" href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a class="reference external" href="/blog/kiwi-tcms-team/2020/09/04/please-nominate-kiwitcms-as-a-github-star/">Nominate Kiwi TCMS as GitHub Stars</a>;</li> +<li><a class="reference external" href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a class="reference external" href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> +and follow all project news;</li> +<li><a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> +and an awesome open source hacker;</li> +<li><a class="reference external" href="/#subscriptions">Become a customer</a> and we'll share our profits with the community</li> +</ul> +</div> +Kiwi TCMS celebrates 200K+ downloads2020-10-26T14:00:00+02:002020-10-26T14:00:00+02:00Kiwi TCMS Teamtag:None,2020-10-26:/blog/kiwi-tcms-team/2020/10/26/kiwi-tcms-celebrates-200k-downloads/<p><img alt="&quot;200K banner&quot;" src="/images/200K/banner.png" title="200K banner"></p> +<p>We are happy to announce that Kiwi TCMS has been downloaded more than +200000 times via <a href="https://hub.docker.com/r/kiwitcms/kiwi/">Docker Hub</a>! +You can check the real-time stats +<a href="https://hub.docker.com/v2/repositories/kiwitcms/kiwi/">here</a>. +To celebrate with us subscribe for a +<a href="https://mrsenko.onfastspring.com/kiwitcms-private-tenant">SaaS</a> and/or +<a href="https://mrsenko.onfastspring.com/kiwitcms-enterprise-subscription">Enterprise</a> +subscriptions using coupon code <strong>200KOFF</strong> at checkout!</p> +<p>Thank you very much and Happy Testing …</p><p><img alt="&quot;200K banner&quot;" src="/images/200K/banner.png" title="200K banner"></p> +<p>We are happy to announce that Kiwi TCMS has been downloaded more than +200000 times via <a href="https://hub.docker.com/r/kiwitcms/kiwi/">Docker Hub</a>! +You can check the real-time stats +<a href="https://hub.docker.com/v2/repositories/kiwitcms/kiwi/">here</a>. +To celebrate with us subscribe for a +<a href="https://mrsenko.onfastspring.com/kiwitcms-private-tenant">SaaS</a> and/or +<a href="https://mrsenko.onfastspring.com/kiwitcms-enterprise-subscription">Enterprise</a> +subscriptions using coupon code <strong>200KOFF</strong> at checkout!</p> +<p>Thank you very much and Happy Testing!</p> +<hr> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul> +<li><a href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li> +<li><a href="/blog/kiwi-tcms-team/2020/09/04/please-nominate-kiwitcms-as-a-github-star/">Nominate Kiwi TCMS as GitHub Stars</a>;</li> +<li><a href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> + and follow all project news;</li> +<li><a href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> and an awesome open source hacker;</li> +<li><a href="/#subscriptions">Become a customer</a> and we'll share our profits with the community</li> +</ul>SEDC Academy For Software Testing is running Kiwi TCMS2020-10-18T17:25:00+03:002020-10-18T17:25:00+03:00Kiwi TCMS Teamtag:None,2020-10-18:/blog/kiwi-tcms-team/2020/10/18/sedc-academy-for-software-testing-is-running-kiwi-tcms/<p>Hello testers, +recently we had a chat with +<a href="https://www.linkedin.com/in/gjorezaharchev/">Gjore Zaharchev</a>, +a QA manager at Seavus and Testing Coach at +SEDC Software Testing Academy in Skopje. Here is their story +and how they use Kiwi TCMS!</p> +<p><a href="https://www.sedc.mk/">Seavus Educational and Development Center</a> +is a private company as part of the Seavus Group …</p><p>Hello testers, +recently we had a chat with +<a href="https://www.linkedin.com/in/gjorezaharchev/">Gjore Zaharchev</a>, +a QA manager at Seavus and Testing Coach at +SEDC Software Testing Academy in Skopje. Here is their story +and how they use Kiwi TCMS!</p> +<p><a href="https://www.sedc.mk/">Seavus Educational and Development Center</a> +is a private company as part of the Seavus Group and a specialized +training center for education of staff in the fields of programming, +design, computer networks and software testing. +Around 90 students pass through their software testing academy every year +with 60 students enrolled thus far. The training program is 6 months +and covers many basic IT skills, manual testing, ISTQB fundamentals and +automation testing. SEDC is located in Skopje, North Macedonia.</p> +<h2>Hands-On Lab Activities</h2> +<p>The study program includes multiple individual and team projects, intermediate +exams and a final project. These are intended to exercise the most commonly used +test design techniques and practice writing up the test scenarios. All +scenarios are written directly in Kiwi TCMS. We've even seen test plans and +test cases created during Christmas and the New Year holidays last year!</p> +<p>The software under test is usually the programs developed by students +from our <em>Academy for Programming</em>, says Gjore. +Later in the program we use real websites in order to show some bugs in the +wild, he continues. On occasion students have found interesting problems with the websites of +<em>Booking.com</em> and <em>WizzAir</em>. They've also managed to find a critical issue on +one of our local systems. These are the trials and tribulations of +teaching &amp; testing in the wild.</p> +<blockquote> +<p>Kiwi TCMS team still remembers one of Alex's training sessions where we used +the website of an actual cinema. Unfortunately they went out of business +and shutdown the victimized website right in the middle of the session. ;-)</p> +</blockquote> +<h2>Why did you decide to use Kiwi TCMS</h2> +<p>When searching for a TCMS platform for the academy one of the decisive +factors was cost. By being open source Kiwi TCMS has the side benefit of +having zero initial usage cost which was very important for us. +Regardless of that Kiwi TCMS is very easy to install &amp; setup using Docker, +very easy to on-board new users and generally well received by everyone.</p> +<blockquote> +<p>This is a huge benefit for students because they can experiment with Kiwi TCMS +and immediately see how some items work when executing testing workflows. +For example they can visualize how a regression test run looks like compared +to a test run for a critical security fix; or they can simulate working in +groups to cover execution of a larger test plan.</p> +</blockquote> +<h2>What do your students say</h2> +<p>Overall they like the workflow and can easily navigate within the user interface. +They feel very positive because there is no complexity in the system and +it is very intuitive. One of the areas which often receives questions is +the ability to record test automation results!</p> +<p><em>Answer: Kiwi TCMS has the ability to fetch names and test results directly, via +plugins for several +<a href="https://kiwitcms.readthedocs.io/en/latest/plugins/automation-frameworks.html">test automation frameworks</a> +while others are on our backlog - +<a href="https://github.com/kiwitcms/Kiwi/issues/692">TestNG</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1072">Jenkins</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/2020">C#/NUnit</a>! +Anyone interested is welcome to </em><strong>Subscribe</strong><em> to each GitHub issue and follow the progress. +Some issues are also part of our +<a href="/blog/tags/bounty-program/">open source bounty program</a> so we urge students to +take a look and contribute!</em></p> +<h2>Anything you want to ask our team</h2> +<p>At SEDC we'd like to know what are your plans for Kiwi TCMS in the future?</p> +<p><em>Answer: Our plans, like our software, are transparent, check-out posts +<a href="/blog/tags/roadmap/">tagged roadmap</a>! For 2020 this is refactoring of the +last remaining legacy bits, continue work on our Telemetry feature and +more work towards integration with various bug trackers and test automation +frameworks. An extension to that is tighter integration with the GitHub +platform!</em></p> +<h2>Help us do more</h2> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul> +<li><a href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a> - + project news only, GDPR compliant</li> +<li><a href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a href="/blog/kiwi-tcms-team/2020/09/04/please-nominate-kiwitcms-as-a-github-star/">Nominate Kiwi TCMS as GitHub Stars</a>;</li> +<li><a href="/#subscriptions">Become a customer</a> and we'll share our profits with the community</li> +</ul> +<p><br> +Thanks for reading and happy testing!</p>Kiwi TCMS is partnering with Vola Software2020-10-15T15:51:00+03:002020-10-15T15:51:00+03:00Kiwi TCMS Teamtag:None,2020-10-15:/blog/kiwi-tcms-team/2020/10/15/kiwi-tcms-is-partnering-with-vola-software/<p>We are happy to announce that Kiwi TCMS is going to partner with +<a href="https://volasoftware.com/">Vola Software</a> to provide 2 interns with +opportunities for hacking open source and bootstrapping their careers!</p> +<p>Vola Software is a custom software development company +in one of the poorest regions of the European Union and a long-time …</p><p>We are happy to announce that Kiwi TCMS is going to partner with +<a href="https://volasoftware.com/">Vola Software</a> to provide 2 interns with +opportunities for hacking open source and bootstrapping their careers!</p> +<p>Vola Software is a custom software development company +in one of the poorest regions of the European Union and a long-time contributor +to their local ecosystem via +<a href="https://school.vratsasoftware.com/">Vratsa Software Community</a>. +They are located in Vratsa, Bulgaria.</p> +<h2>Internship program</h2> +<p><a href="https://github.com/Allexander203">Alexander Tsvetanov</a> and +<a href="https://github.com/vladi1337">Vladislav Ankov</a> are joining the Kiwi TCMS team +for a 10 month adventure until the end of July 2021 with the opportunity +to continue for another year afterwards!</p> +<p>Both Sasho and Vladi are students in the Professional Technical Gymnasium +in Vratsa and are required to work part-time as junior software developers during the +last 2 years of their education. Given that they have very limited practical +experience and the additional red tape around hiring youngsters many software +companies directly avoid such kind of relationship. This creates a catch-22 +circle for both employers who are looking to hire somewhat experienced young people +and youngsters who are looking to advance their practical skills.</p> +<p>Here's where Kiwi TCMS steps-in! What better way to improve practical knowledge +than contributing to an actively used and actively maintained open source software! +We are nearing the 200K downloads mark on Docker Hub so changes made by +Sasho and Vladi will be visible to a very big pool of our users and customers!</p> +<p>Both have already started their open source adventure last week and are currently +going through some training. However they were faced with real problems which +resulted in +<a href="https://github.com/python-bugzilla/python-bugzilla/issues/134">bug discovery</a> +and a +<a href="https://github.com/python-bugzilla/python-bugzilla/pull/135">pull request</a> for +<strong>python-bugzilla</strong> underlined by a +<a href="https://bugs.python.org/issue41965">20 years old issue in Python</a>. +How's that for a start ?</p> +<h2>Administrative</h2> +<p>Vola Software is the direct employer for Sasho and Vladi because they have the +necessary permits and experience required for hiring youngsters. Kiwi TCMS is +the direct technical mentor and will be acting as a customer to Vola Software!</p> +<p>Vola Software will be paying a minimal salary to our interns as required by law. +Kiwi TCMS will reimburse the full amount while Vola Software +will be covering their accounting and administrative expenses. +Both Sasho and Vladi will also be eligible for our +<a href="/blog/tags/bounty-program/">open source bounty-program</a> as an extra stimulation!</p> +<p>All expenses will be fully transparent and visible via +<a href="https://opencollective.com/kiwitcms/expenses/">our Open Collective page</a>!</p> +<h2>Help us do more</h2> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul> +<li><a href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a href="/blog/kiwi-tcms-team/2020/09/04/please-nominate-kiwitcms-as-a-github-star/">Nominate Kiwi TCMS as GitHub Stars</a>;</li> +<li><a href="/#subscriptions">Become a customer</a> and we'll share our profits with the community</li> +</ul> +<p><br> +Thanks for reading and happy testing!</p>Kiwi TCMS is partnering with MLH Fellowship program2020-10-13T12:50:00+03:002020-10-13T12:50:00+03:00Kiwi TCMS Teamtag:None,2020-10-13:/blog/kiwi-tcms-team/2020/10/13/kiwi-tcms-is-partnering-with-mlh-fellowship-program/<p>We are happy to announce that Kiwi TCMS is going to partner with the +<a href="https://fellowship.mlh.io/programs/open-source">MLH Fellowship</a> +open source program which is a 12 week internship alternative for +students interested in becoming software engineers.</p> +<p><a href="https://mlh.io">Major League Hacking (MLH)</a> is a mission-driven B-Corp focused +on empowering our next generation of technologists. Every …</p><p>We are happy to announce that Kiwi TCMS is going to partner with the +<a href="https://fellowship.mlh.io/programs/open-source">MLH Fellowship</a> +open source program which is a 12 week internship alternative for +students interested in becoming software engineers.</p> +<p><a href="https://mlh.io">Major League Hacking (MLH)</a> is a mission-driven B-Corp focused +on empowering our next generation of technologists. Every year, more than +100,000 developers, designers, and makers join the MLH community to gain +hands-on experience and build their professional networks. +They are headquartered in the Greater New York Area, USA but operate world-wide.</p> +<h2>Fellowship program</h2> +<p>The Fall 2020 cohort runs between October 5 - December 21 and we're already +into the Contributing phase of the program. +Fellow students will be working on +<a href="https://github.com/kiwitcms/Kiwi/issues">open issues</a> from our backlog with +a focus on tasks from our +<a href="https://github.com/kiwitcms/Kiwi/milestone/4">open source bounty program</a> +but they can really work on any open task!</p> +<p>Once a pull request has been made it will undergo first round code review +by <a href="https://github.com/flosincapite"><em>Cory Massaro</em></a> +who is the dedicated MLH Python mentor. Once Cory gives the +1 +each pull request will be reviewed by a member of the Kiwi TCMS core team like usual.</p> +<p>To minimize the risk of conflicts between contributors we are going to apply +the following rules:</p> +<ul> +<li>Each MLH fellow would add a comment on the issue they are + interested in (applies to other contributors too);</li> +<li>The issue will be assigned to them (new);</li> +<li>The issue will be labeled with the + <a href="https://github.com/kiwitcms/Kiwi/issues?q=is%3Aopen+is%3Aissue+label%3A%22MLH+Fellowship%22"><strong>MLH Fellowship</strong></a> + label (new);</li> +<li>The following comment will be added: + <em>This issue/bounty has been assigned to an MLH fellow who is currently + working on it. Pull requests towards the same issue from other contributors + will not be considered at this time. Please pick something else to work on!</em></li> +</ul> +<p>Upon successful completion of tasks all MLH fellows will be eligible to claim their +bounties via <a href="https://opencollective.com/kiwitcms">our Open Collective page</a>. This is +the same process other contributors go through, there is no difference.</p> +<p>Kiwi TCMS commits 2 core-team members who will serve office hours +on the <a href="https://discord.gg/w7F55kn">MLH Fellowship Discord</a> server for +couple of hours per week in order to answer questions and keep the ball rolling. +We also commit to having bi-weekly meetings with MLH mentor(s) during the +duration of the program.</p> +<p>Kiwi TCMS would also like to thank our friend +<a href="https://twitter.com/eddiejaoude">Eddie Jaoude</a> for putting us in touch with MLH +and helping bring this partnership to reality. Thank you Eddie!</p> +<h2>Help us do more</h2> +<p>If you like what we're doing and how Kiwi TCMS supports various communities +please help us!</p> +<ul> +<li><a href="https://opencollective.com/kiwitcms/donate">Donate via Open Collective</a> as low as 1 EUR;</li> +<li><a href="/blog/kiwi-tcms-team/2020/09/04/please-nominate-kiwitcms-as-a-github-star/">Nominate Kiwi TCMS as GitHub Stars</a>;</li> +<li><a href="/#subscriptions">Become a customer</a> and we'll share our profits with the community</li> +</ul> +<p><br> +Thanks for reading and happy testing!</p>Progress update on open source hardware for black-box testing2020-10-10T16:35:00+03:002020-10-10T16:35:00+03:00Kiwi TCMS Teamtag:None,2020-10-10:/blog/kiwi-tcms-team/2020/10/10/progress-update-on-open-source-hardware-for-black-box-testing/<p>Hello testers, as you know our +<a href="/blog/kiwi-tcms-team/2020/05/26/kiwi-tcms-is-partnering-up-with-pionir/">friends at Pionir</a> +are working on physical hardware which can be used for interactive training and +explanation of the Black-box testing technique. The inspiration +comes from <a href="http://blackboxpuzzles.workroomprds.com/">James Lyndsay’s Black Box Puzzles</a> and +<a href="http://blog.brainforit.com/2017/02/06/black-boxes-for-black-box-testing/">Claudiu Draghia</a>.</p> +<p>We have the source code of 3 boxes already …</p><p>Hello testers, as you know our +<a href="/blog/kiwi-tcms-team/2020/05/26/kiwi-tcms-is-partnering-up-with-pionir/">friends at Pionir</a> +are working on physical hardware which can be used for interactive training and +explanation of the Black-box testing technique. The inspiration +comes from <a href="http://blackboxpuzzles.workroomprds.com/">James Lyndsay’s Black Box Puzzles</a> and +<a href="http://blog.brainforit.com/2017/02/06/black-boxes-for-black-box-testing/">Claudiu Draghia</a>.</p> +<p>We have the source code of 3 boxes already published at +<a href="https://github.com/kiwitcms/black-boxes">https://github.com/kiwitcms/black-boxes</a> but still missing bill of materials, +design files for 3D printing and some basic instructions how to put everything +together. There was a delay in delivery of some components but most of the work +is close to completion. You may subscribe to +<a href="https://github.com/kiwitcms/black-boxes/issues">issues for each box</a> to follow +the progress! Here are some images &amp; videos from the development process.</p> +<h2>Wason 2-4-6 box</h2> +<p><img alt="Wason 246 box" src="/images/black-boxes/wason_246.png"></p> +<iframe width="1000" height="562" + src="https://www.youtube.com/embed/UGfgcTS66KY" + frameborder="0" + allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" + allowfullscreen> +</iframe> + +<h2>Peltzman effect box</h2> +<p><img alt="Peltzman effect box" src="/images/black-boxes/peltzman_effect.png"></p> +<iframe width="1000" height="562" + src="https://www.youtube.com/embed/9wAr--X4YGM" + frameborder="0" + allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" + allowfullscreen> +</iframe> + +<h2>Salience bias box</h2> +<p><img alt="Salience bias box" src="/images/black-boxes/salience_bias.png"></p> +<iframe width="1000" height="562" + src="https://www.youtube.com/embed/pgADatxcZBg" + frameborder="0" + allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" + allowfullscreen> +</iframe> + +<p>According to Pionir's own words: +<em>We are testing the salience box and trying to cause emotional effect of an element. +Vuk made a mistake and now he can't turn it off :D. How's that for dogfooding?</em></p> +<h2>Help us do more</h2> +<p>If you like what we're doing and how Kiwi TCMS supports the various communities +around us please <a href="/blog/kiwi-tcms-team/2020/09/04/please-nominate-kiwitcms-as-a-github-star/">nominate us as GitHub Stars</a>!</p> +<p><br> +Thanks for reading and happy testing!</p>Kiwi TCMS 8.72020-09-16T16:30:00+03:002020-09-16T16:30:00+03:00Kiwi TCMS Teamtag:None,2020-09-16:/blog/kiwi-tcms-team/2020/09/16/kiwi-tcms-87/<p>We're happy to announce Kiwi TCMS version 8.7!</p> +<p><strong>IMPORTANT:</strong> this is a medium sized release which includes +improvements, API changes, bug fixes, translation updates and +new tests. It is the fifth release to include contributions via our +<a class="reference external" href="/blog/tags/bounty-program/">open source bounty program</a>. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant …</a></p><p>We're happy to announce Kiwi TCMS version 8.7!</p> +<p><strong>IMPORTANT:</strong> this is a medium sized release which includes +improvements, API changes, bug fixes, translation updates and +new tests. It is the fifth release to include contributions via our +<a class="reference external" href="/blog/tags/bounty-program/">open source bounty program</a>. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +<p>Docker images:</p> +<pre class="literal-block"> +kiwitcms/kiwi latest 1f2461b1facd 643 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 +</pre> +<div class="section" id="changes-since-kiwi-tcms-8-6"> +<h2>Changes since Kiwi TCMS 8.6</h2> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul> +<li><p class="first">Update Django from 3.0.9 to 3.1.1</p> +</li> +<li><p class="first">Update django-attachments from 1.6 to 1.8</p> +</li> +<li><p class="first">Update django-extensions from 3.0.5 to 3.0.8</p> +</li> +<li><p class="first">Update psycopg2 from 2.8.5 to 2.8.6</p> +</li> +<li><p class="first">Update pygments from 2.6.1 to 2.7.0</p> +</li> +<li><p class="first">Update python-gitlab from 2.4.0 to 2.5.0</p> +</li> +<li><p class="first">Make it possible to use reCAPTCHA during registration. If you want to enable +this then add the following to your settings:</p> +<pre class="literal-block"> +if 'captcha' not in INSTALLED_APPS: + INSTALLED_APPS.append('captcha') + + RECAPTCHA_PUBLIC_KEY = '......' + RECAPTCHA_PRIVATE_KEY = '.....' + RECAPTCHA_USE_SSL = True +</pre> +<p>For more info see <a class="reference external" href="https://www.google.com/recaptcha/admin/">https://www.google.com/recaptcha/admin/</a></p> +</li> +<li><p class="first">Replace <tt class="docutils literal">GlobalLoginRequiredMiddleware</tt> with +<tt class="docutils literal">tcms.kiwi_auth.backends.AnonymousViewBackend</tt> for anonymous read-only +functionality. See section +<a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/configuration.html#anonymous-read-only-access">Anonymous read-only access</a> +in the documentation</p> +</li> +<li><p class="first">Replace the <tt class="docutils literal">...</tt> in navigation bar with a 3 cogs icon to make the +object-level menu more visible</p> +</li> +</ul> +</div> +<div class="section" id="settings"> +<h3>Settings</h3> +<ul class="simple"> +<li>Remove setting <tt class="docutils literal">PUBLIC_VIEWS</tt></li> +</ul> +</div> +<div class="section" id="api"> +<h3>API</h3> +<ul class="simple"> +<li>Remove <tt class="docutils literal">TestCase.get_components()</tt> in favor of <tt class="docutils literal">Component.filter()</tt></li> +<li><tt class="docutils literal">Bug.details()</tt> method will now return <tt class="docutils literal">{}</tt> instead of failing if +it can't find an issue tracker from an URL</li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Remove documentation references to non-existing environment</li> +<li>Don't fail internal calls if Kiwi TCMS bug tracker can't find a bug</li> +</ul> +</div> +<div class="section" id="refactoring-testing"> +<h3>Refactoring &amp; testing</h3> +<ul class="simple"> +<li>Add tests for <tt class="docutils literal">tcms.core.templatetags</tt>. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1602">Issue #1602</a> (Mariyan Garvanski)</li> +<li>Add tests for <tt class="docutils literal">tcms.bugs.views.Edit</tt>. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1599">Issue #1599</a> (Mfon Eti-mfon)</li> +<li>Add tests for <tt class="docutils literal">tcms.bugs.views.AddComment</tt>. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1600">Issue #1600</a> (Mfon Eti-mfon)</li> +<li>Make paths used in migrations &amp; settings platform aware in order to +enable development mode on Windows (Mfon Eti-mfon)</li> +<li>Add new linter checker to check for use of <tt class="docutils literal">db_column</tt> argument in +model field definition. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/736">Issue #736</a> (Bryan Mutai)</li> +<li>Add tests for <tt class="docutils literal">Bug.details</tt> API method</li> +<li>Replace deprecated <tt class="docutils literal">ifequal</tt>/<tt class="docutils literal">ifnotequal</tt> template tags</li> +<li>Adjust <tt class="docutils literal">migrations_order</tt> for Django 3.1 compatibility</li> +<li>Add <tt class="docutils literal">npm audit</tt> check in CI</li> +<li>Resolve several pylint issues</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/bg#">Bulgarian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/zh-TW#">Chinese Traditional translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/fr#">French translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/hu#">Hungarian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/ja#">Japanese translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +</ul> +</div> +</div> +<div class="section" id="kiwi-tcms-enterprise-v8-7-mt"> +<h2>Kiwi TCMS Enterprise v8.7-mt</h2> +<ul class="simple"> +<li>Based on Kiwi TCMS v8.7</li> +<li>Overrides for setting <tt class="docutils literal">PUBLIC_VIEWS</tt> have been removed</li> +<li>Update django-ses from 1.0.2 to 1.0.3</li> +<li>Update kiwitcms-github-app from 1.1 to 1.2</li> +<li>Update kiwitcms-tenants from 1.2.1 to 1.3.1</li> +</ul> +<p>For more info see +<a class="reference external" href="https://github.com/kiwitcms/enterprise/#v87-mt-16-sep-2020">https://github.com/kiwitcms/enterprise/#v87-mt-16-sep-2020</a></p> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p><a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">Backup</a> first! +If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +cd path/containing/docker-compose/ +docker-compose down +docker-compose pull +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +</pre> +<p>Refer to +<a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/installing_docker.html#upgrading">our documentation</a> +for more details!</p> +<p>Happy testing!</p> +</div> +Please nominate @kiwitcms as a GitHub Star2020-09-04T14:25:00+03:002020-09-04T14:25:00+03:00Kiwi TCMS Teamtag:None,2020-09-04:/blog/kiwi-tcms-team/2020/09/04/please-nominate-kiwitcms-as-a-github-star/<p><img + style="float: none; margin-left:0" + src="/images/github-star-nomination.png" + alt="GitHub Star nomination"></p> +<p>After our <a href="/blog/kiwi-tcms-team/2020/09/01/kiwi-tcms-is-a-finalist-in-the-2020-eu-web-awards/">recent success</a> +we again ask the community to support Kiwi TCMS.</p> +<p><em>Steps to reproduce:</em></p> +<ol> +<li>Go to <a href="https://stars.github.com/">https://stars.github.com/</a></li> +<li>Click the <strong>Sign in</strong> button and Authorize the GitHub-Stars application</li> +<li>Make sure you are on the <strong>Nominate page</strong>, <a href="https://stars.github.com/nominate/">https://stars.github.com/nominate/</a></li> +<li>Type <code>kiwitcms</code> as the username …</li></ol><p><img + style="float: none; margin-left:0" + src="/images/github-star-nomination.png" + alt="GitHub Star nomination"></p> +<p>After our <a href="/blog/kiwi-tcms-team/2020/09/01/kiwi-tcms-is-a-finalist-in-the-2020-eu-web-awards/">recent success</a> +we again ask the community to support Kiwi TCMS.</p> +<p><em>Steps to reproduce:</em></p> +<ol> +<li>Go to <a href="https://stars.github.com/">https://stars.github.com/</a></li> +<li>Click the <strong>Sign in</strong> button and Authorize the GitHub-Stars application</li> +<li>Make sure you are on the <strong>Nominate page</strong>, <a href="https://stars.github.com/nominate/">https://stars.github.com/nominate/</a></li> +<li>Type <code>kiwitcms</code> as the username. The <code>@</code> character is provided automatically</li> +<li>Type the following text for your reasoning: + <code>they took an abandoned project and turned it into the leading open source + test management system with more than 150k downloads with users &amp; contributors + across the world!</code></li> +<li>Click on the checkbox to acknowledge your nomination</li> +<li>Click the <strong>Submit nomination</strong> button!</li> +</ol> +<p><em>Expected results:</em></p> +<ol> +<li>You fit into the 180 characters provided for nomination</li> +<li>Your submission is recorded by GitHub</li> +</ol> +<h2>Why are we doing this</h2> +<p>GitHub Stars is a program that recognizes those who go above and beyond and help +inspire and educate their communities which is exactly what the +<a href="/team/">Kiwi TCMS team</a> has been doing from our very start! +Checkout our <a href="/blog/tags/community/">community blog posts</a> for more information!</p> +<p>This program will give us access to cool new features +on the GitHub platform and also let us showcase what we do before a larger audience!</p> +<p>Thank you for helping us and happy testing!</p>Kiwi TCMS is a finalist in the 2020 .eu Web Awards2020-09-01T13:50:00+03:002020-09-01T13:50:00+03:00Kiwi TCMS Teamtag:None,2020-09-01:/blog/kiwi-tcms-team/2020/09/01/kiwi-tcms-is-a-finalist-in-the-2020-eu-web-awards/<p><img + style="float: none; margin-left:0" + src="/images/eu_web_awards_2020_finalist.png" + alt="Click here to vote for Kiwi TCMS"></p> +<p>Kiwi TCMS is happy to announce that our website <a href="https://kiwitcms.eu">https://kiwitcms.eu</a> is a finalist +in the <a href="https://eurid.eu/en/news/2020-wa-finalists/">2020 .eu Web Awards</a> +in the <em>Leaders</em> category! Big Thank You to everyone who voted for us!</p> +<p>Our team is also very happy that we are not the only open source finalist. +Congratulations …</p><p><img + style="float: none; margin-left:0" + src="/images/eu_web_awards_2020_finalist.png" + alt="Click here to vote for Kiwi TCMS"></p> +<p>Kiwi TCMS is happy to announce that our website <a href="https://kiwitcms.eu">https://kiwitcms.eu</a> is a finalist +in the <a href="https://eurid.eu/en/news/2020-wa-finalists/">2020 .eu Web Awards</a> +in the <em>Leaders</em> category! Big Thank You to everyone who voted for us!</p> +<p>Our team is also very happy that we are not the only open source finalist. +Congratulations to the <em>OpenScan</em> project and their community!</p> +<p>We are still committed to keeping +<a href="/blog/kiwi-tcms-team/2020/04/09/please-vote-for-kiwi-tcms-in-2020-eu-web-awards/">our earlier promise</a> +and use the award to represent the larger open source community! The decision +is now in the hands of the jury. Wish us good luck!</p>Kiwi TCMS 8.62020-08-23T16:00:00+03:002020-08-23T16:00:00+03:00Kiwi TCMS Teamtag:None,2020-08-23:/blog/kiwi-tcms-team/2020/08/23/kiwi-tcms-86/<p>We're happy to announce Kiwi TCMS version 8.6!</p> +<p><strong>IMPORTANT:</strong> this is a high severity security update which includes +improvements, bug fixes, database migrations, API changes, translation updates and +new tests. It is the fourth release to include contributions via our +<a class="reference external" href="/blog/tags/bounty-program/">open source bounty program</a>. +You can explore everything at …</p><p>We're happy to announce Kiwi TCMS version 8.6!</p> +<p><strong>IMPORTANT:</strong> this is a high severity security update which includes +improvements, bug fixes, database migrations, API changes, translation updates and +new tests. It is the fourth release to include contributions via our +<a class="reference external" href="/blog/tags/bounty-program/">open source bounty program</a>. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +<p>Docker images:</p> +<pre class="literal-block"> +kiwitcms/kiwi latest f2c21b370cd9 639 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 +</pre> +<div class="section" id="changes-since-kiwi-tcms-8-5"> +<h2>Changes since Kiwi TCMS 8.5</h2> +<div class="section" id="security"> +<h3>Security</h3> +<ul class="simple"> +<li>A high severity vulnerability which allows unprivileged data access +via JSON-RPC endpoints has been fixed:<ul> +<li>Affects all previous versions of Kiwi TCMS</li> +<li>Instances on public networks, such as Amazon EC2, are at higher risk</li> +<li>Instances on private networks are still vulnerable to anyone who can +access the same network</li> +<li>This vulnerability has been disclosed by Michael Longmire (ShastaQA) +and Stone Pack (ShastaQA)</li> +</ul> +</li> +<li>Update marked from 0.8.2 to 1.1.1 for a medium severity vulnerability, see +<a class="reference external" href="https://snyk.io/vuln/SNYK-JS-MARKED-584281">SNYK-JS-MARKED-584281</a></li> +</ul> +</div> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul> +<li><p class="first">Update django from 3.0.8 to 3.0.9</p> +</li> +<li><p class="first">Update django-attachments from 1.5 to 1.6</p> +</li> +<li><p class="first">Update prismjs from 1.20.0 to 1.21.0</p> +</li> +<li><p class="first">Update pygithub from 1.51 to 1.53</p> +</li> +<li><p class="first">Replace deprecated bleach-whitelist with bleach-allowlist</p> +</li> +<li><p class="first">Make django-extensions a production dependency because it provides +many useful manage.py commands</p> +</li> +<li><p class="first">Enable syntax highlight for code blocks</p> +</li> +<li><p class="first">Remove file attachments when related objects are deleted</p> +</li> +<li><p class="first">Add image and file upload buttons to text editor. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/977">Issue #977</a></p> +</li> +<li><p class="first">Require <tt class="docutils literal">auth.view_user</tt> permission when trying to view user profiles. +Fixes <a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1685">Issue #1685</a></p> +</li> +<li><p class="first">Multiple pages now explicitly require view permissions before displaying read-only +information. This gives administrators a finer grained control:</p> +<ul class="simple"> +<li><tt class="docutils literal"><span class="pre">/bugs/&lt;id&gt;/</span></tt> -&gt; <tt class="docutils literal">bugs.view_bug</tt></li> +<li><tt class="docutils literal">/bugs/search/</tt> -&gt; <tt class="docutils literal">bugs.view_bug</tt></li> +<li><tt class="docutils literal">/cases/search/</tt> -&gt; <tt class="docutils literal">testcases.view_testcase</tt></li> +<li><tt class="docutils literal"><span class="pre">/case/&lt;id&gt;/</span></tt> -&gt; <tt class="docutils literal">testcases.view_testcase</tt></li> +<li><tt class="docutils literal">/plans/search/</tt> -&gt; <tt class="docutils literal">testplans.view_testplan</tt></li> +<li><tt class="docutils literal"><span class="pre">/plan/&lt;id&gt;/*</span></tt> -&gt; <tt class="docutils literal">testplans.view_testplan</tt></li> +<li><tt class="docutils literal">/runs/search/</tt> -&gt; <tt class="docutils literal">testruns.view_testrun</tt></li> +<li><tt class="docutils literal"><span class="pre">/runs/&lt;id&gt;/</span></tt> -&gt; <tt class="docutils literal">testruns.view_testrun</tt></li> +</ul> +<p>Previously these pages only required the user to be logged in</p> +</li> +</ul> +<p><strong>Warning:</strong></p> +<blockquote> +The <tt class="docutils literal">auth.view_user</tt> permission is not granted by default because the +profile page contains personal information like names and email address. +Administrators can grant this permission on a group or individual basis +if they are OK with sharing this information.</blockquote> +</div> +<div class="section" id="database"> +<h3>Database</h3> +<ul class="simple"> +<li>Migrations which manipulate data (contain <tt class="docutils literal">RunPython</tt>) can now be +rollbacked. See <tt class="docutils literal">./manage.py migrate <span class="pre">--plan</span></tt> for the order in which +migrations are applied (Bryan Mutai)</li> +<li>Increase <tt class="docutils literal">Product.name</tt> size from 64 to 255 characters</li> +</ul> +</div> +<div class="section" id="api"> +<h3>API</h3> +<ul class="simple"> +<li>Remove method <tt class="docutils literal">TestExecution.create()</tt> in favor of <tt class="docutils literal">TestRun.add_case()</tt></li> +<li>Add method <tt class="docutils literal">User.add_attachment()</tt></li> +<li>Multiple API methods now explicitly require view permissions before returning +read-only information. This is in-sync with the per-page changes listed above:<ul> +<li><tt class="docutils literal">Bug.filter()</tt> -&gt; <tt class="docutils literal">bugs.view_bug</tt></li> +<li><tt class="docutils literal">Bug.report()</tt> -&gt; <tt class="docutils literal">testruns.view_testexecution</tt></li> +<li><tt class="docutils literal">Build.filter()</tt> -&gt; <tt class="docutils literal">management.view_build</tt></li> +<li><tt class="docutils literal">Category.filter()</tt> -&gt; <tt class="docutils literal">testcases.view_category</tt></li> +<li><tt class="docutils literal">Classification.filter()</tt> -&gt; <tt class="docutils literal">management.view_classification</tt></li> +<li><tt class="docutils literal">Component.filter()</tt> -&gt; <tt class="docutils literal">management.view_component</tt></li> +<li><tt class="docutils literal">PlanType.filter()</tt> -&gt; <tt class="docutils literal">testplans.view_plantype</tt></li> +<li><tt class="docutils literal">Priority.filter()</tt> -&gt; <tt class="docutils literal">management.view_priority</tt></li> +<li><tt class="docutils literal">Product.filter()</tt> -&gt; <tt class="docutils literal">management.view_product</tt></li> +<li><tt class="docutils literal">Tag.filter()</tt> -&gt; <tt class="docutils literal">management.view_tag</tt></li> +<li><tt class="docutils literal">TestCase.get_components()</tt> -&gt; <tt class="docutils literal">testcases.view_testcase</tt></li> +<li><tt class="docutils literal">TestCase.get_notification_cc()</tt> -&gt; <tt class="docutils literal">testcases.view_testcase</tt></li> +<li><tt class="docutils literal">TestCase.filter()</tt> -&gt; <tt class="docutils literal">testcases.view_testcase</tt></li> +<li><tt class="docutils literal">TestCaseStatus.filter()</tt> -&gt; <tt class="docutils literal">testcases.view_testcasestatus</tt></li> +<li><tt class="docutils literal">TestExecution.filter()</tt> -&gt; <tt class="docutils literal">testruns.view_testexecution</tt></li> +<li><tt class="docutils literal">TestExecution.get_links()</tt> -&gt; <tt class="docutils literal">linkreference.view_linkreference</tt></li> +<li><tt class="docutils literal">TestExecutionStatus.filter()</tt> -&gt; <tt class="docutils literal">testruns.view_testexecutionstatus</tt></li> +<li><tt class="docutils literal">TestPlan.filter()</tt> -&gt; <tt class="docutils literal">testplans.view_testplan</tt></li> +<li><tt class="docutils literal">TestRun.get_cases()</tt> -&gt; <tt class="docutils literal">testruns.view_testrun</tt></li> +<li><tt class="docutils literal">TestRun.filter()</tt> -&gt; <tt class="docutils literal">testruns.view_testrun</tt></li> +<li><tt class="docutils literal">User.filter()</tt> -&gt; <tt class="docutils literal">auth.view_user</tt></li> +<li><tt class="docutils literal">Version.filter()</tt> -&gt; <tt class="docutils literal">management.view_version</tt></li> +</ul> +</li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Update documentation to reflect that test cases cannot be rearranged from +within a TestRun but only from a TestPlan. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1805">Issue #1805</a> (&#64;Prome88)</li> +<li>Incorrect code formatting for HTML &lt;pre&gt; tags. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1300">Issue #1300</a></li> +<li>Fix a bug with the history handler when importing objects with ID field set. +Resolves a crash when trying to restore backup data</li> +<li>Delete comments when Bug is removed</li> +</ul> +</div> +<div class="section" id="refactoring-testing"> +<h3>Refactoring &amp; testing</h3> +<ul class="simple"> +<li>Add linter to warn about missing backwards migrations callable in <tt class="docutils literal">RunPython</tt> +and fix all pylint offenses. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1774">Issue #1774</a> (Bryan Mutai)</li> +<li>Teach linter to check API for <tt class="docutils literal">&#64;permissions_required</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1089">Issue #1089</a></li> +<li>Refactor <tt class="docutils literal">NewExecutionForm</tt> to use ModelForm (Rosen Sasov)</li> +<li>Refactor <tt class="docutils literal">UpdateExecutionForm</tt> to use ModelForm (Rosen Sasov)</li> +<li>Add tests for <tt class="docutils literal">tcms.bugs.api</tt>. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1597">Issue #1597</a> (Mfon Eti-mfon)</li> +<li>Add tests for <tt class="docutils literal">tcms.bugs.views.New</tt>. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1598">Issue #1598</a> (Mfon Eti-mfon)</li> +<li>Add tests for <tt class="docutils literal">tcms.rpc.api.testplan</tt>. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1627">Issue #1627</a> (&#64;lcmtwn)</li> +<li>Add tests for <tt class="docutils literal">percentage()</tt> function References +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1602">Issue #1602</a> (Mariyan Garvanski)</li> +<li>Add the <tt class="docutils literal">migrations_order</tt> command to help test rollbacks</li> +<li>Adjust code for deprecation warnings from Django 3.1</li> +<li>Use Python 3 style <tt class="docutils literal">super()</tt> without arguments</li> +<li>Update login page to match our new website design</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/zh-CN#">Chinese Simplified translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/cs#">Czech translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/fr#">French translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/de#">German translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/hu#">Hungarian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/ja#">Japanese translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/pt-BR#">Portuguese, Brazilian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +</ul> +</div> +</div> +<div class="section" id="kiwi-tcms-enterprise-v8-6-mt"> +<h2>Kiwi TCMS Enterprise v8.6-mt</h2> +<ul class="simple"> +<li>Based on Kiwi TCMS v8.6</li> +</ul> +<p>For more info see +<a class="reference external" href="https://github.com/kiwitcms/enterprise/#v86-mt-23-aug-2020">https://github.com/kiwitcms/enterprise/#v86-mt-23-aug-2020</a></p> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p><a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">Backup</a> first! +If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +cd path/containing/docker-compose/ +docker-compose down +docker-compose pull +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +</pre> +<p>Refer to +<a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/installing_docker.html#upgrading">our documentation</a> +for more details!</p> +<p>Happy testing!</p> +</div> +Kiwi TCMS container images now available via Red Hat Quay.io2020-08-18T12:23:00+03:002020-08-18T12:23:00+03:00Kiwi TCMS Teamtag:None,2020-08-18:/blog/kiwi-tcms-team/2020/08/18/kiwi-tcms-container-images-now-available-via-red-hat-quayio/<p>Hello testers, we have very important news around how container images +for Kiwi TCMS will be distributed! Recently Docker has announced +several changes in their storage plans which makes it less viable for +our team to continue using their services in full!</p> +<h2>Information about official upstream container images</h2> +<p>The official …</p><p>Hello testers, we have very important news around how container images +for Kiwi TCMS will be distributed! Recently Docker has announced +several changes in their storage plans which makes it less viable for +our team to continue using their services in full!</p> +<h2>Information about official upstream container images</h2> +<p>The official upstream Kiwi TCMS container image will continue to be +publicly available via <a href="https://hub.docker.com/r/kiwitcms/kiwi">Docker Hub</a> +as before. In addition all existing and new images will be available via +<a href="https://quay.io/repository/kiwitcms/kiwi">Quay.io</a>. +These images are available as</p> +<ul> +<li><a href="https://hub.docker.com/r/kiwitcms/kiwi">kiwitcms/kiwi</a> (Docker Hub)</li> +<li><a href="https://quay.io/repository/kiwitcms/kiwi">quay.io/kiwitcms/kiwi</a> (Quay.io)</li> +</ul> +<p>Content is exactly the same between the two registries and you may use +the one which you like best!</p> +<p><strong>Warning:</strong> after November 1st 2020 older versions will not be available from +Docker Hub, only from Quay.io! The reason is that Docker is enforcing a +<a href="https://www.docker.com/pricing/retentionfaq">6 month image retention limit</a> +for free plans!</p> +<h2>Information about private containers for subscribers</h2> +<p>Subscribers enjoy the benefit of having read-only access to tagged versions of the +upstream Kiwi TCMS container images as well as access to tagged versions of +Kiwi TCMS Enterprise container images! Previously these containers were distributed +via Docker Hub and are now available via Quay.io:</p> +<ul> +<li><code>mrsenko/kiwitcms</code> -&gt; <code>quay.io/kiwitcms/version</code> (version tagged upstream images)</li> +<li><code>mrsenko/kiwitcms-enterprise</code> -&gt; <code>quay.io/kiwitcms/enterprise</code> (enterprise images)</li> +</ul> +<p><strong>Important:</strong> existing subscribers have been notified and granted access +to the new repositories on Quay.io. We advise you to update your +<code>docker-compose.yml</code> files and start using the new images at your earliest convenience!</p> +<p><strong>Warning:</strong> existing subscribers will continue having access to private +repositories on Docker Hub until December 31st 2020! Private repositories on +Docker Hub will become unavailable after January 31st, 2021 when Docker's new +storage plans will be forced into effect!</p> +<h2>Why did we chose Quay.io</h2> +<p>There are multiple container registry services available! We think Quay.io +delivers the best price/quality ratio for our own use-case. In particular +we like the billing model around number of private repositories instead the +one around the number of users in your organization. That's very similar +to how we provide access to Kiwi TCMS via our own subscriptions!</p> +<p>Also it just looks cool if you employ your imagination, especially +for non-native English speakers: quay -&gt; qu-ai -&gt; QA!</p> +<p><br> +Thanks for reading and happy testing!</p>QGIS has chosen Kiwi TCMS2020-08-11T14:00:00+03:002020-08-11T14:00:00+03:00Kiwi TCMS Teamtag:None,2020-08-11:/blog/kiwi-tcms-team/2020/08/11/qgis-has-chosen-kiwi-tcms/<p>We are happy to announce that <a href="https://qgis.org">QGIS</a> has chosen Kiwi TCMS +for the basis of their <em>Quality Assurance methodology and infrastructure</em> +improvement program! +Kiwi TCMS will play a central role in storing test case definitions, +organizing test cycles, and assigning and tracking test executions by testers +from the QGIS community …</p><p>We are happy to announce that <a href="https://qgis.org">QGIS</a> has chosen Kiwi TCMS +for the basis of their <em>Quality Assurance methodology and infrastructure</em> +improvement program! +Kiwi TCMS will play a central role in storing test case definitions, +organizing test cycles, and assigning and tracking test executions by testers +from the QGIS community.</p> +<div class="member-bio" style="margin-top: 2vh"> + <img src="/images/customers/qgis-color.png" style="float:left; margin-right: 1vw"> + + <p> + QGIS is a free and open source geographic information system which contains + desktop, server, web and mobile applications for various operating systems. + It is an established project with very large and diverse community and also + one of the very well known open source GIS systems. + </p> +</div> + +<p>The proposal +<a href="https://github.com/qgis/QGIS-Enhancement-Proposals/issues/180">QEP#180</a> is the +highest voted proposal in the +<a href="http://blog.qgis.org/2020/07/10/qgis-grant-programme-2020-results/">2020 QGIS Grant Program</a> +and has been awarded a budget of 5000€! +This grant will allow the proponents to spend significantly more time setting up the +infrastructure and planning a methodology for manual testing.</p> +<h2>Scope of proposal</h2> +<p><a href="https://github.com/qgis/QGIS-Enhancement-Proposals/issues/180">QEP#180</a> +aims to create the necessary infrastructure and methodology to organize and +encourage systematic testing before each QGIS release:</p> +<ul> +<li>Setup a test management system to organize test cycles, assign and track tests execution;</li> +<li>Elaborate and document a methodology to execute testing to help testers;</li> +<li>Resurrect and move the tester plugin to QGIS repositories. Publish it in the QGIS official repository</li> +<li>Create an initial set of relevant test cases;</li> +<li>Organize and execute the initial test cases for the next releases.</li> +</ul> +<p>This effort will steer members &amp; volunteers of the QGIS community towards a more systematic +and organized testing during a feature freeze period before a release. The focus here +is on integration testing, manual &amp; semi-automated workflows for important functionality +that should never regress and is hard or impossible to cover via unit tests.</p> +<p>The proposal is lead by Alexandre Neto, Giovanni Manghi and Alexander Bruy!</p> +<p><br> +On behalf of the Kiwi TCMS community welcome aboard and happy testing!</p>Kiwi TCMS Enterprise v8.5.2-mt2020-08-06T15:40:00+03:002020-08-06T15:40:00+03:00Kiwi TCMS Teamtag:None,2020-08-06:/blog/kiwi-tcms-team/2020/08/06/kiwi-tcms-enterprise-v852-mt/<p>We're happy to announce Kiwi TCMS Enterprise version 8.5.2-mt +and extended support hours for subscribers in America.</p> +<p><strong>Note:</strong> this is only available to customers with an active +<a class="reference external" href="/#subscriptions">Enterprise subscription</a>!</p> +<p>Docker images:</p> +<pre class="literal-block"> +mrsenko/kiwitcms-enterprise 8.5.2-mt 633291dd5219 887MB +</pre> +<div class="section" id="changes-since-kiwi-tcms-enterprise-v8-5-1-mt"> +<h2>Changes since Kiwi TCMS Enterprise v8.5.1-mt</h2> +<ul class="simple"> +<li>Based on …</li></ul></div><p>We're happy to announce Kiwi TCMS Enterprise version 8.5.2-mt +and extended support hours for subscribers in America.</p> +<p><strong>Note:</strong> this is only available to customers with an active +<a class="reference external" href="/#subscriptions">Enterprise subscription</a>!</p> +<p>Docker images:</p> +<pre class="literal-block"> +mrsenko/kiwitcms-enterprise 8.5.2-mt 633291dd5219 887MB +</pre> +<div class="section" id="changes-since-kiwi-tcms-enterprise-v8-5-1-mt"> +<h2>Changes since Kiwi TCMS Enterprise v8.5.1-mt</h2> +<ul class="simple"> +<li>Based on Kiwi TCMS v8.5</li> +<li>Update django-ses from 1.0.1 to 1.0.2</li> +<li>Update kiwitcms-github-app from 1.0 to 1.1</li> +</ul> +<p>This release includes improvements and bug-fixes for +<a class="reference external" href="https://github.com/kiwitcms/github-app#v11-05-aug-2020">kiwitcms-github-app</a>.</p> +<p>An important change is how issues reported via our <em>1-click bug report</em> feature +are presented on GitHub. For public repositories issues reported via +<a class="reference external" href="https://github.com/apps/kiwi-tcms">Kiwi TCMS + GitHub App integration</a> +will be opened by <em>&#64;kiwitcms-bot with Kiwi TCMS</em> as shown below:</p> +<img alt="" src="/images/kiwitcms-bot-gh-issue-reporter.png" /> +</div> +<div class="section" id="extended-support-hours"> +<h2>Extended support hours</h2> +<p>Working hours have been updated as follows:</p> +<ul class="simple"> +<li>09-21 UTC/Mon-Fri with response within 24 hours for Enterprise subscribers</li> +<li>09-17 UTC/Mon-Fri with response within 72 hours for Private Tenant subscribers</li> +</ul> +<p>Happy testing!</p> +</div> +Customize the information used for 1-click bug reports2020-07-11T14:20:00+03:002020-07-11T14:20:00+03:00Alexander Todorovtag:None,2020-07-11:/blog/atodorov/2020/07/11/customize-the-information-used-for-1-click-bug-reports/<p>Kiwi TCMS integration with 3rd party bug trackers supports the +<em>1-click bug report</em> feature. +However you may want to change how the initial information is structured or +even what exactly is written in the initial comment. This article +shows how to do this.</p> +<p>The default text used for 1-click bug …</p><p>Kiwi TCMS integration with 3rd party bug trackers supports the +<em>1-click bug report</em> feature. +However you may want to change how the initial information is structured or +even what exactly is written in the initial comment. This article +shows how to do this.</p> +<p>The default text used for 1-click bug reports gets compiled based on +information present in the TestExecution - Product, Version, TestCase.text, +etc. This is encapsulated in the +<code>tcms.issuetracker.base.IssueTrackerType._report_comment()</code> method. +You may extend the existing bug tracker integration code +with your own customizations. In this example I've extended the +<code>KiwiTCMS</code> bug tracker implementation but you can provide your own from +scratch</p> +<div class="highlight"><pre><span></span><code><span class="c1"># filename: mymodule.py</span> +<span class="k">class</span> <span class="nc">ExtendedBugTracker</span><span class="p">(</span><span class="n">KiwiTCMS</span><span class="p">):</span> + <span class="k">def</span> <span class="nf">_report_comment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">execution</span><span class="p">):</span> + <span class="n">comment</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">_report_comment</span><span class="p">(</span><span class="n">execution</span><span class="p">)</span> + + <span class="n">comment</span> <span class="o">+=</span> <span class="s2">&quot;----- ADDITIONAL INFORMATION -----</span><span class="se">\n\n</span><span class="s2">&quot;</span> + <span class="c1">#</span> + <span class="c1"># fetch more info from other sources</span> + <span class="c1">#</span> + <span class="n">comment</span> <span class="o">+=</span> <span class="s2">&quot;----- END ADDITIONAL INFORMATION -----</span><span class="se">\n</span><span class="s2">&quot;</span> + <span class="k">return</span> <span class="n">comment</span> +</code></pre></div> + + +<p>Then override the <code>EXTERNAL_BUG_TRACKERS</code> setting to include your customizations:</p> +<div class="highlight"><pre><span></span><code><span class="n">EXTERNAL_BUG_TRACKERS</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s1">&#39;mymodule.ExtendedBugTracker&#39;</span><span class="p">)</span> +</code></pre></div> + + +<p>and change the bug tracker type, via https://tcms.example.com/admin/testcases/bugsystem/, +to <em>mymodule.ExtendedBugTracker</em>.</p> +<p><strong>IMPORTANT</strong></p> +<ul> +<li>Information how to change settings can be found + <a href="https://kiwitcms.readthedocs.io/en/latest/installing_docker.html#customization">here</a></li> +<li><code>mymodule.py</code> may live anywhere on the filesystem but Python must be + able to import it</li> +<li>It is best to bundle all of your customizations into a Python package and + <code>pip3 install</code> it into your customized docker image</li> +<li>API documentation for bug tracker integration can be found + <a href="https://kiwitcms.readthedocs.io/en/latest/modules/tcms.issuetracker.html">here</a></li> +<li>Rebuilding the docker image is outside the scope of this article. Have a look + at this + <a href="https://github.com/MrSenko/kiwitcms-enterprise/blob/master/Dockerfile">Dockerfile</a> + for inspiration</li> +</ul> +<p>Happy testing!</p>Kiwi TCMS 8.52020-07-10T13:45:00+03:002020-07-10T13:45:00+03:00Kiwi TCMS Teamtag:None,2020-07-10:/blog/kiwi-tcms-team/2020/07/10/kiwi-tcms-85/<p>We're happy to announce Kiwi TCMS version 8.5!</p> +<p><strong>IMPORTANT:</strong> this is a medium sized release which includes many improvements, +database migrations, translation updates and new tests. +It is the third release to include contributions via our +<a class="reference external" href="https://kiwitcms.org/blog/tags/bounty-program/">open source bounty program</a>. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms …</a></p><p>We're happy to announce Kiwi TCMS version 8.5!</p> +<p><strong>IMPORTANT:</strong> this is a medium sized release which includes many improvements, +database migrations, translation updates and new tests. +It is the third release to include contributions via our +<a class="reference external" href="https://kiwitcms.org/blog/tags/bounty-program/">open source bounty program</a>. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +<p>Docker images:</p> +<pre class="literal-block"> +kiwitcms/kiwi latest 4379e2438e43 636 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 +</pre> +<div class="section" id="changes-since-kiwi-tcms-8-4"> +<h2>Changes since Kiwi TCMS 8.4</h2> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update django from 3.0.7 to 3.0.8</li> +<li>Update django-colorfield from 0.3.0 to 0.3.2</li> +<li>Update django-modern-rpc from 0.12.0 to 0.12.1</li> +<li>Update django-simple-history from 2.10.0 to 2.11.0</li> +<li>Update mysqlclient from 1.4.6 to 2.0.1</li> +<li>Update python-gitlab from 2.2.0 to 2.4.0</li> +<li>Update python-bugzilla from 2.3.0 to 2.5.0</li> +<li>Add middleware to warn for unapplied migrations. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1696">Issue #1696</a> (Bryan Mutai)</li> +<li>Add &quot;insert table&quot; button to SimpleMDE toolbar. References +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1531">Issue #1531</a> (Bryan Mutai)</li> +<li>Implement <a class="reference external" href="/blog/kiwi-tcms-team/2020/06/30/django-plugin-for-kiwi-tcms/">kiwitcms-django-plugin</a>. +Resolves <a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/693">Issue #693</a> (Bryan Mutai)</li> +<li>Add missing permission check for <tt class="docutils literal">TestExecution.add_link()</tt> API method (Rosen Sasov)</li> +<li>Add missing permission check for <tt class="docutils literal">TestExecution.remove_link()</tt> API method (Rosen Sasov)</li> +<li>Admin interface will now appear translated</li> +<li>Propagate server side API errors to the browser. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/625">Issue #625</a>, +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1333">Issue #1333</a></li> +<li>Improvements for Status Matrix telemetry page:<ul> +<li>Make the horizontal scroll bar at the bottom always visible</li> +<li>Make the header row always visible</li> +<li>Add button to show columns in reverse. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1682">Issue #1682</a></li> +<li>Make it possible to display TestExecutions from child TestPlans. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1683">Issue #1683</a></li> +</ul> +</li> +</ul> +</div> +<div class="section" id="database"> +<h3>Database</h3> +<ul class="simple"> +<li>Update existing Bug tracker records to match the changes introduced with +the new <tt class="docutils literal">EXTERNAL_BUG_TRACKERS</tt> setting</li> +</ul> +</div> +<div class="section" id="settings"> +<h3>Settings</h3> +<ul class="simple"> +<li>Add <tt class="docutils literal">EXTERNAL_BUG_TRACKERS</tt> setting which is a list of dotted class paths +representing external bug tracker integrations. Plugins and Kiwi TCMS admins +can now more easily include customized integrations</li> +</ul> +</div> +<div class="section" id="refactoring-testing"> +<h3>Refactoring &amp; testing</h3> +<ul class="simple"> +<li>Add new linter to check for label arguments in form field classes. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/738">Issue #738</a> (Bryan Mutai)</li> +<li>Add new linter to check if all forms inherit from <tt class="docutils literal">ModelForm</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1384">Issue #1384</a> (Bryan Mutai)</li> +<li>Enable pylint plugin <tt class="docutils literal">pylint.extensions.docparams</tt> and resolve errors. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1192">Issue #1192</a> (Bryan Mutai)</li> +<li>Migrate 'test-for-missing-migrations' from Travis CI to GitHub workflow. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1553">Issue #1553</a> (Bryan Mutai)</li> +<li>Add tests for <tt class="docutils literal">tcms.bugs.api.add_tag()</tt>. References +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1597">Issue #1597</a> (Mfon Eti-mfon)</li> +<li>Add tests for <tt class="docutils literal">tcms.bugs.api.remove_tag()</tt>. References +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1597">Issue #1597</a> (Mfon Eti-mfon)</li> +<li>Add test for <tt class="docutils literal">tcms.testplans.views.Edit</tt>. References +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1617">Issue #1617</a> (&#64;cmbahadir)</li> +<li>Add tests for <tt class="docutils literal">markdown2html()</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1659">Issue #1659</a> (Mariyan Garvanski)</li> +<li>Add test for Cyrillic support with MariaDB. References +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1770">Issue #1770</a></li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/zh-CN#">Chinese Simplified translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/zh-TW#">Chinese Traditional translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/fr#">French translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/hu#">Hungarian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/id#">Indonesian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/ja#">Japanese translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sw#">Swahili translation</a></li> +</ul> +</div> +</div> +<div class="section" id="kiwi-tcms-enterprise-v8-5-mt"> +<h2>Kiwi TCMS Enterprise v8.5-mt</h2> +<ul class="simple"> +<li>Based on Kiwi TCMS v8.5</li> +<li>Update django-ses from 0.8.14 to 1.0.1</li> +<li>Update kiwitcms-tenants from 1.1.1 to 1.2</li> +<li>Update social-auth-app-django from 3.4.0 to 4.0.0</li> +<li>Start tagging non-Enterprise images of <cite>kiwitcms/kiwi</cite> - will be provided +via separate private repository for enterprise customers. See +<a class="reference external" href="/blog/kiwi-tcms-team/2020/06/23/versioned-releases-of-kiwi-tcms/">here</a></li> +</ul> +<p>For more info see +<a class="reference external" href="https://github.com/MrSenko/kiwitcms-enterprise/#v85-mt-10-july-2020">https://github.com/MrSenko/kiwitcms-enterprise/#v85-mt-10-july-2020</a></p> +</div> +<div class="section" id="vote-for-kiwi-tcms"> +<h2>Vote for Kiwi TCMS</h2> +<p>Our website has been nominated in the <em>2020 .eu Web Awards</em> and +<a class="reference external" href="/blog/kiwi-tcms-team/2020/04/09/please-vote-for-kiwi-tcms-in-2020-eu-web-awards/">we've promised</a> +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!</p> +<ul class="simple"> +<li>Go to <a class="reference external" href="https://webawards.eurid.eu/?q=kiwitcms.eu">https://webawards.eurid.eu/?q=kiwitcms.eu</a>;</li> +<li>Point your mouse to the photo of our website and click the Thumbs Up button;</li> +<li>No email or registration required!</li> +</ul> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p><a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">Backup</a> first! +If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +cd path/containing/docker-compose/ +docker-compose down +docker-compose pull +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +</pre> +<p>Refer to +<a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/installing_docker.html#upgrading">our documentation</a> +for more details!</p> +<p>Happy testing!</p> +</div> +CfP: deployment, backup and upgrade best practices2020-07-07T16:55:00+03:002020-07-07T16:55:00+03:00Kiwi TCMS Teamtag:None,2020-07-07:/blog/kiwi-tcms-team/2020/07/07/cfp-deployment-backup-and-upgrade-best-practices/<p>Kiwi TCMS is opening a call for proposals: <strong>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 …</strong></p><p>Kiwi TCMS is opening a call for proposals: <strong>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?</strong></p> +<p>We are going to collect your feedback and update the existing documentation.</p> +<p>Please submit your responses here: +<a href="https://docs.google.com/forms/d/e/1FAIpQLSe-kioT_e3UHwV5irwLroR2Jsk5oYM_Ls6acVeLVcBn7Kpt7Q/viewform">https://docs.google.com/forms/d/e/1FAIpQLSe-kioT_e3UHwV5irwLroR2Jsk5oYM_Ls6acVeLVcBn7Kpt7Q/viewform</a>. +All fields are optional, including your email address!</p> +<p>Thank you and happy testing!</p>Django plugin for Kiwi TCMS2020-06-30T12:47:00+03:002020-06-30T12:47:00+03:00Kiwi TCMS Teamtag:None,2020-06-30:/blog/kiwi-tcms-team/2020/06/30/django-plugin-for-kiwi-tcms/<p>We're happy to announce the initial release of +<a class="reference external" href="https://github.com/kiwitcms/django-plugin">kiwitcms-django-plugin</a>! +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 +<a class="reference external" href="/blog/tags/bounty-program/">open source bounty program</a>.</p> +<p>To install:</p> +<pre class="literal-block"> +pip install kiwitcms-django-plugin +</pre> +<p>and then in …</p><p>We're happy to announce the initial release of +<a class="reference external" href="https://github.com/kiwitcms/django-plugin">kiwitcms-django-plugin</a>! +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 +<a class="reference external" href="/blog/tags/bounty-program/">open source bounty program</a>.</p> +<p>To install:</p> +<pre class="literal-block"> +pip install kiwitcms-django-plugin +</pre> +<p>and then in your <tt class="docutils literal">settings.py</tt> specify:</p> +<pre class="literal-block"> +TEST_RUNNER = 'tcms_django_plugin.TestRunner' +</pre> +<p>This plugin needs the <tt class="docutils literal"><span class="pre">~/.tcms.conf</span></tt> configuration file:</p> +<pre class="literal-block"> +[tcms] +url = https://tcms.server/xml-rpc/ +username = your-username +password = your-password +</pre> +<p>Product information and how to report can be controlled via environment variables +which are documented +<a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/plugins/automation-frameworks.html#plugin-configuration">here</a>. +Example results from the plugin's own test suite are reported in +<a class="reference external" href="https://tcms.kiwitcms.org/plan/296/">TP-296</a>!</p> +<p>Happy testing!</p> +Versioned releases of Kiwi TCMS2020-06-23T00:12:00+03:002020-06-23T00:12:00+03:00Kiwi TCMS Teamtag:None,2020-06-23:/blog/kiwi-tcms-team/2020/06/23/versioned-releases-of-kiwi-tcms/<p>We are happy to announce that versioned releases of Kiwi TCMS container +images are now available to customers with an active +<a href="/#subscriptions">enterprise subscription</a>.</p> +<p>For a long time our release policy has been to push only <code>latest</code> version +of our upstream <code>kiwitcms/kiwi</code> containers. This upstream channel doesn't +carry version tags …</p><p>We are happy to announce that versioned releases of Kiwi TCMS container +images are now available to customers with an active +<a href="/#subscriptions">enterprise subscription</a>.</p> +<p>For a long time our release policy has been to push only <code>latest</code> version +of our upstream <code>kiwitcms/kiwi</code> 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.</p> +<p>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 <em>Kiwi TCMS Enterprise</em> containers during the +same time.</p> +<p>Starting today versioned releases of Kiwi TCMS (single tenant) will be available +via the <code>mrsenko/kiwitcms</code> private repository on Docker Hub. +This repository includes tagged versions of the same docker images coming from +the <code>kiwitcms/kiwi</code> channel! +Access is granted automatically to all existing enterprise subscribers!</p>Kiwi TCMS 8.42020-06-03T23:06:00+03:002020-06-03T23:06:00+03:00Kiwi TCMS Teamtag:None,2020-06-03:/blog/kiwi-tcms-team/2020/06/03/kiwi-tcms-84/<p>We're happy to announce Kiwi TCMS version 8.4!</p> +<p><strong>IMPORTANT:</strong> this is a medium sized release which includes +minor security fixes, many improvements &amp; bug-fixes and translations +in several new languages. It is the second release to include +contributions via our +<a class="reference external" href="https://kiwitcms.org/blog/tags/bounty-program/">open source bounty program</a>. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https …</a></p><p>We're happy to announce Kiwi TCMS version 8.4!</p> +<p><strong>IMPORTANT:</strong> this is a medium sized release which includes +minor security fixes, many improvements &amp; bug-fixes and translations +in several new languages. It is the second release to include +contributions via our +<a class="reference external" href="https://kiwitcms.org/blog/tags/bounty-program/">open source bounty program</a>. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +<p>Docker images:</p> +<pre class="literal-block"> +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 +</pre> +<div class="section" id="changes-since-kiwi-tcms-8-3"> +<h2>Changes since Kiwi TCMS 8.3</h2> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update Django from 3.0.5 to 3.0.7 - +<a class="reference external" href="https://docs.djangoproject.com/en/3.0/releases/3.0.7/">security update</a> +for functionality not used by Kiwi TCMS</li> +<li>Update bleach from 3.1.4 to 3.1.5</li> +<li>Update django-grappelli from 2.14.1 to 2.14.2</li> +<li>Update django-simple-history from 2.9.0 to 2.10.0</li> +<li>Update markdown from 3.2.1 to 3.2.2</li> +<li>Update pygithub from 1.50 to 1.51</li> +<li>Update python-redmine from 2.2.1 to 2.3.0</li> +<li>Update patternfly from 3.59.4 to 3.59.5</li> +<li>Add <tt class="docutils literal">manage.py set_domain</tt> command to change Kiwi TCMS domain. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/971">Issue #971</a> (Ivajlo Karabojkov)</li> +<li>GitHub bug details now works for private issues</li> +<li>Gitlab bug details now works for private issues</li> +<li>JIRA bug details now works for private issues</li> +<li>Redmine bug details now works for private issues</li> +<li>New feature: 1-click bug report for Bugzilla</li> +<li>New feature: 1-click bug report for Gitlab</li> +<li>New feature: 1-click bug report for JIRA</li> +<li>New feature: 1-click bug report for Redmine</li> +<li>Reverting to older historical version via Admin panel now redirects +to object which was reverted. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1074">Issue #1074</a></li> +<li>Documentation updates</li> +</ul> +<div class="admonition important"> +<p class="first admonition-title">Important</p> +<p class="last">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:</p> +</div> +<img src="/images/screenshots/007_bugtracker_github.png" + style="background-color:inherit; margin-left:0; float: none"> + +<img src="/images/screenshots/007_bugtracker_jira.png" + style="background-color:inherit; margin-left:0; float: none"> + +<br><div class="admonition note"> +<p class="first admonition-title">Note</p> +<p class="last">Some external bug trackers like Bugzilla &amp; 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!</p> +</div> +</div> +<div class="section" id="database"> +<h3>Database</h3> +<ul class="simple"> +<li>Force creation of missing permissions for m2m fields from the <cite>tcms.bugs</cite> app:<ul> +<li><tt class="docutils literal">bugs.add_bug_tags</tt></li> +<li><tt class="docutils literal">bugs.change_bug_tags</tt></li> +<li><tt class="docutils literal">bugs.delete_bug_tags</tt></li> +<li><tt class="docutils literal">bugs.view_bug_tags</tt></li> +<li><tt class="docutils literal">bugs.add_bug_executions</tt></li> +<li><tt class="docutils literal">bugs.change_bug_execution</tt></li> +<li><tt class="docutils literal">bugs.delete_bug_execution</tt></li> +<li><tt class="docutils literal">bugs.view_bug_executions</tt></li> +</ul> +</li> +</ul> +<div class="admonition warning"> +<p class="first admonition-title">Warning</p> +<p class="last">TCMS admins of existing installations will have to assign these by hand +to users/groups who will be allowed to change tags on bugs!</p> +</div> +</div> +<div class="section" id="settings"> +<h3>Settings</h3> +<ul class="simple"> +<li>Define the <tt class="docutils literal">KIWI_DISABLE_BUGTRACKER=yes</tt> environment variable if you wish +to disable the internal bug tracker. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1370">Issue #1370</a></li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Workaround missing MariaDB CHARSET/COLLATION support, see our +<tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1700">Issue #1700</a></li> +<li>Install missing <tt class="docutils literal">/usr/bin/mysql</tt> in container</li> +<li>Warning message for unconfigured Kiwi TCMS domain does not show HTML tags in +Admin anymore. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/964">Issue #964</a></li> +<li>Unescape the <tt class="docutils literal">&amp;amp;</tt> string when trying to open new windows after +clicking the 'Report bug' button in TestExecution. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1533">Issue #1533</a></li> +<li>Try harder to restore the original navigation menu instead of +leaving bogus menu items. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/991">Issue #991</a></li> +<li>Robot Framework plugin is now GA. Close +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/984">Issue #984</a></li> +<li>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</li> +<li>Update documented signature for API method <tt class="docutils literal">TestCase.add_component</tt> to +match current behavior, see <a class="reference external" href="https://stackoverflow.com/questions/61648405/">https://stackoverflow.com/questions/61648405/</a></li> +</ul> +</div> +<div class="section" id="refactoring-testing"> +<h3>Refactoring &amp; testing</h3> +<ul class="simple"> +<li>Migrate <tt class="docutils literal"><span class="pre">check-docs-source-in-git</span></tt> to GitHub workflows. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1552">Issue #1552</a> (&#64;Prome88)</li> +<li>Migrate <tt class="docutils literal"><span class="pre">build-for-pypi</span></tt> to GitHub workflows. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1554">Issue #1554</a> (&#64;lcmtwn)</li> +<li>Add tests for <tt class="docutils literal">TestCaseAdmin</tt> (Mariyan Garvanski)</li> +<li>Add tests for <tt class="docutils literal">BugAdmin</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1596">Issue #1596</a> (Mariyan Garvanski)</li> +<li>Omit <tt class="docutils literal">utils/test</tt> from coverage reports. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1631">Issue #1631</a> (&#64;cmbahadir)</li> +<li>Omit <tt class="docutils literal">tcms/tests</tt> from coverage reports. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1630">Issue #1630</a> (&#64;cmbahadir)</li> +<li>Add tests for <tt class="docutils literal">tcms.core.forms.fields</tt> - Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1629">Issue #1629</a> (&#64;cmbahadir)</li> +<li>Add tests for <tt class="docutils literal">TestExecution.update()</tt> for <tt class="docutils literal">case_text_version</tt> field +(Rosen Sasov)</li> +<li>Refactor bulk-update methods in TestRun page to use JSON-RPC. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1063">Issue #1063</a> (Rosen Sasov)</li> +<li>Start using <tt class="docutils literal">_change_reason</tt> instead of <tt class="docutils literal">changeReason</tt> field in +django-simple-history</li> +<li>Remove unused <tt class="docutils literal">StripURLField</tt> &amp; <tt class="docutils literal">Version.string_to_id()</tt></li> +<li>Refactoring around TestCase and TestPlan cloning methods</li> +<li>Start testing with the internal bug tracker disabled</li> +<li>Start testing with all supported external bug trackers. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1079">Issue #1079</a></li> +<li>Start Codecov for coverage reports</li> +<li>Add tests for presence of mysql/psql binaries in container</li> +<li>Add <tt class="docutils literal">APIPermissionsTestCase</tt> with example in <tt class="docutils literal">TestVersionCreatePermissions</tt></li> +<li>Move most test jobs away from Travis CI to GitHub workflows</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/bn#">Bengali translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/bg#">Bulgarian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/zh-CN#">Chinese Simplified translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/fr#">French translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/de#">German translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/hi#">Hindi translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/hu#">Hungarian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/id#">Indonesian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/ja#">Japanese translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/ko#">Korean translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/ru#">Russian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/es-ES#">Spanish translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sw#">Swahili translation</a></li> +</ul> +<div class="admonition note"> +<p class="first admonition-title">Note</p> +<p class="last">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 +<a class="reference external" href="https://opencollective.com/kiwitcms/expenses/18663">OpenCollective #18663</a>. +If you are a native in these languages and spot strings which don't +sit well with you we kindly ask you to +<a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/contribution.html#translation">contribute a better translation</a> +via the built-in translation editor!</p> +</div> +</div> +</div> +<div class="section" id="kiwi-tcms-enterprise-v8-4-mt"> +<h2>Kiwi TCMS Enterprise v8.4-mt</h2> +<ul class="simple"> +<li>Based on Kiwi TCMS v8.4</li> +<li>Update social-auth-app-django from 3.1.0 to 3.4.0</li> +<li>Add django-python3-ldap add-on for LDAP logins</li> +</ul> +<p>For more info see +<a class="reference external" href="https://github.com/MrSenko/kiwitcms-enterprise/#v84-mt-03-june-2020">https://github.com/MrSenko/kiwitcms-enterprise/#v84-mt-03-june-2020</a></p> +</div> +<div class="section" id="vote-for-kiwi-tcms"> +<h2>Vote for Kiwi TCMS</h2> +<p>Our website has been nominated in the <em>2020 .eu Web Awards</em> and +<a class="reference external" href="/blog/kiwi-tcms-team/2020/04/09/please-vote-for-kiwi-tcms-in-2020-eu-web-awards/">we've promised</a> +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!</p> +<ul class="simple"> +<li>Go to <a class="reference external" href="https://webawards.eurid.eu/?q=kiwitcms.eu">https://webawards.eurid.eu/?q=kiwitcms.eu</a>;</li> +<li>Point your mouse to the photo of our website and click the Thumbs Up button;</li> +<li>No email or registration required!</li> +</ul> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p><a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">Backup</a> first! +If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +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 +</pre> +<p>Refer to +<a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/installing_docker.html#upgrading">our documentation</a> +for more details!</p> +<p>Happy testing!</p> +</div> +Kiwi TCMS is partnering up with Pionir2020-05-26T12:40:00+03:002020-05-26T12:40:00+03:00Kiwi TCMS Teamtag:None,2020-05-26:/blog/kiwi-tcms-team/2020/05/26/kiwi-tcms-is-partnering-up-with-pionir/<p>We are happy to announce that Kiwi TCMS is going to partner with +<a href="https://pionir.org/">Pionir</a> 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 …</p><p>We are happy to announce that Kiwi TCMS is going to partner with +<a href="https://pionir.org/">Pionir</a> 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.</p> +<p><img style="background-color:inherit; margin-left:0" + src="/images/pionir_students.jpg" + alt="Pionir students"></p> +<p>This is not our first collaboration - the students are already +aware of the Kiwi TCMS project and last year they participated in +<a href="/blog/kiwi-tcms-team/2019/08/09/kiwi-tcms-conference-presence-aw2019/">presentation &amp; workshop hosted by Alex</a>. +Zamphyr, the organization behind Pionir, is also one of the first open source projects +on our OSS program!</p> +<h2>Black boxes for black-box testing</h2> +<p>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.</p> +<p>The idea for having something unknown to explore &amp; train your skills first comes +from <a href="http://blackboxpuzzles.workroomprds.com/">James Lyndsay’s Black Box Puzzles</a> and +was more recently implemented by +<a href="http://blog.brainforit.com/2017/02/06/black-boxes-for-black-box-testing/">Claudiu Draghia</a>. +Now it's our turn!</p> +<h2>Project description</h2> +<p>Pionir will be developing hardware black boxes for teaching exploratory testing in +cooperation with Kiwi TCMS. We have dedicated +<a href="https://opencollective.com/kiwitcms/expenses/18960">€2000 from our bounty program</a> +for students of the free school towards completing this project.</p> +<blockquote> +<p>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.</p> +<p>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.</p> +</blockquote> +<p>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 +<a href="https://github.com/kiwitcms">https://github.com/kiwitcms</a> to host the various boxes.</p> +<p>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!</p> +<h2>Call for sponsors</h2> +<p>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 +<a href="https://opencollective.com/kiwitcms#section-contribute">Collective</a>. +You can contribute as low as € 1! The entire budget will be distributed to the community!</p> +<h2>Vote for Kiwi TCMS</h2> +<p>Our website has been nominated in the <em>2020 .eu Web Awards</em> and +<a href="/blog/kiwi-tcms-team/2020/04/09/please-vote-for-kiwi-tcms-in-2020-eu-web-awards/">we've promised</a> +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!</p> +<ul> +<li>Go to <a href="https://webawards.eurid.eu/?q=kiwitcms.eu">https://webawards.eurid.eu/?q=kiwitcms.eu</a>;</li> +<li>Point your mouse to the photo of our website and click the Thumbs Up &#128077; button;</li> +<li>No email or registration required!</li> +</ul> +<p>Happy testing!</p>Robot Framework plugin for Kiwi TCMS2020-05-06T11:57:00+03:002020-05-06T11:57:00+03:00Kiwi TCMS Teamtag:None,2020-05-06:/blog/kiwi-tcms-team/2020/05/06/robot-framework-plugin-for-kiwi-tcms/<p>We're happy to announce the initial release of +<a class="reference external" href="https://github.com/kiwitcms/robotframework-plugin">kiwitcms-robotframework-plugin</a>! +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 +<a class="reference external" href="https://www.meetup.com/Robot-Framework-Milano/events/269468758/">Robot Framework Milano user-group</a>.</p> +<p>To …</p><p>We're happy to announce the initial release of +<a class="reference external" href="https://github.com/kiwitcms/robotframework-plugin">kiwitcms-robotframework-plugin</a>! +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 +<a class="reference external" href="https://www.meetup.com/Robot-Framework-Milano/events/269468758/">Robot Framework Milano user-group</a>.</p> +<p>To install:</p> +<pre class="literal-block"> +pip install kiwitcms-robotframework-plugin +</pre> +<p>and then make use of it like so:</p> +<pre class="literal-block"> +robot --listener zealand.listener.KiwiTCMS +</pre> +<p>The plugin needs the <tt class="docutils literal"><span class="pre">~/.tcms.conf</span></tt> configuration file:</p> +<pre class="literal-block"> +[tcms] +url = https://tcms.server/xml-rpc/ +username = your-username +password = your-password +</pre> +<p>and you can also specify the <tt class="docutils literal">${plan_id}</tt>, <tt class="docutils literal">${product}</tt> and <tt class="docutils literal">${build_user_email}</tt> 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 +<a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/plugins/automation-frameworks.html#plugin-configuration">here</a>.</p> +<p>This plugin uses the upstream +<a class="reference external" href="https://github.com/robotframework/WebDemo">robotframework/WebDemo</a> test suite +with <tt class="docutils literal">SeleniumLibrary</tt> in a combination with a downstream test with the +<tt class="docutils literal">OperatingSystem</tt> library. The results are reported in +<a class="reference external" href="https://tcms.kiwitcms.org/plan/290/">TP-290</a>. For more information checkout our +<a class="reference external" href="https://github.com/kiwitcms/robotframework-plugin">package repository</a> on GitHub!</p> +<p>Happy testing!</p> +Kiwi TCMS open source bounty program, Round 022020-05-01T13:15:00+03:002020-05-01T13:15:00+03:00Kiwi TCMS Teamtag:None,2020-05-01:/blog/kiwi-tcms-team/2020/05/01/kiwi-tcms-open-source-bounty-program-round-02/<p>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 +<a href="/blog/kiwi-tcms-team/2020/04/17/kiwi-tcms-open-source-bounty-program-round-01/">Round 01</a>!</p> +<h2>Bounties announced in Round 02</h2> +<p>Custom pylint …</p><p>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 +<a href="/blog/kiwi-tcms-team/2020/04/17/kiwi-tcms-open-source-bounty-program-round-01/">Round 01</a>!</p> +<h2>Bounties announced in Round 02</h2> +<p>Custom pylint plugins:</p> +<p><a href="https://github.com/kiwitcms/Kiwi/issues/736">#736</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/738">#738</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1126">#1126</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1303">#1303</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1384">#1384</a></p> +<p>Automation tests:</p> +<p><a href="https://github.com/kiwitcms/Kiwi/issues/1596">#1596</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1597">#1597</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1598">#1598</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1599">#1599</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1600">#1600</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1601">#1601</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1602">#1602</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1603">#1603</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1604">#1604</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1605">#1605</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1606">#1606</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1607">#1607</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1608">#1608</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1609">#1609</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1610">#1610</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1611">#1611</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1612">#1612</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1613">#1613</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1614">#1614</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1615">#1615</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1616">#1616</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1617">#1617</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1618">#1618</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1619">#1619</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1620">#1620</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1621">#1621</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1622">#1622</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1623">#1623</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1624">#1624</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1625">#1625</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1626">#1626</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1627">#1627</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1628">#1628</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1629">#1629</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1630">#1630</a>, +<a href="https://github.com/kiwitcms/Kiwi/issues/1631">#1631</a></p> +<h2>Call for sponsors</h2> +<p>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 +<a href="https://opencollective.com/kiwitcms#section-contribute">Collective</a>. +You can contribute as low as € 1! The entire budget will be distributed to the community!</p> +<h2>Vote for Kiwi TCMS</h2> +<p>Our website has been nominated in the <em>2020 .eu Web Awards</em> and +<a href="/blog/kiwi-tcms-team/2020/04/09/please-vote-for-kiwi-tcms-in-2020-eu-web-awards/">we've promised</a> +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!</p> +<ul> +<li>Go to <a href="https://webawards.eurid.eu/?q=kiwitcms.eu">https://webawards.eurid.eu/?q=kiwitcms.eu</a>;</li> +<li>Point your mouse to the photo of our website and click the Thumbs Up &#128077; button;</li> +<li>No email or registration required!</li> +</ul> +<p>Happy testing!</p>Kiwi TCMS 8.32020-04-27T06:50:00+03:002020-04-27T06:50:00+03:00Kiwi TCMS Teamtag:None,2020-04-27:/blog/kiwi-tcms-team/2020/04/27/kiwi-tcms-83/<p>We're happy to announce Kiwi TCMS version 8.3!</p> +<p><strong>IMPORTANT:</strong> 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 +<a class="reference external" href="/blog/kiwi-tcms-team/2020/04/17/kiwi-tcms-open-source-bounty-program-round-01/">open source bounty program</a>. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https …</a></p><p>We're happy to announce Kiwi TCMS version 8.3!</p> +<p><strong>IMPORTANT:</strong> 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 +<a class="reference external" href="/blog/kiwi-tcms-team/2020/04/17/kiwi-tcms-open-source-bounty-program-round-01/">open source bounty program</a>. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +<p>Docker images:</p> +<pre class="literal-block"> +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 +</pre> +<div class="section" id="changes-since-kiwi-tcms-8-2"> +<h2>Changes since Kiwi TCMS 8.2</h2> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update django-colorfield from 0.2.2 to 0.3.0</li> +<li>Update django-simple-history from 2.8.0 to 2.9.0</li> +<li>Update prismjs from 1.19.0 to 1.20.0</li> +<li>Update psycopg2 from 2.8.4 to 2.8.5</li> +<li>Update pygithub from 1.47 to 1.50</li> +<li>Update python-gitlab from 2.1.2 to 2.2.0</li> +<li>It is now possible to reopen closed bugs - Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1152">Issue #1152</a> (&#64;cmbahadir)</li> +<li>Visual improvements for Status matrix telemetry:<ul> +<li>columns now link to test runs</li> +<li>tool-tips show test run summary</li> +</ul> +</li> +<li>Show TOTAL in tool-tip for Execution trends telemetry</li> +<li>Self-signed SSL certificate is now built more frequently and is valid +for 10 years</li> +<li>Improved documentation around self-signed certificates</li> +<li>Improved documentation around e-mail backend configuration. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1070">Issue #1070</a> +(&#64;Schwarzkrieger)</li> +</ul> +</div> +<div class="section" id="api"> +<h3>API</h3> +<ul class="simple"> +<li>Methods <tt class="docutils literal">TestPlan.create</tt>, <tt class="docutils literal">TestPlan.update</tt> and <tt class="docutils literal">TestRun.update</tt> +now use Django's ModelForm to properly validate input data against the model</li> +<li>Method <tt class="docutils literal">TestCase.update</tt> now also accepts username and email values for +fields <tt class="docutils literal">author</tt>, <tt class="docutils literal">default_tester</tt> and <tt class="docutils literal">reviewer</tt></li> +</ul> +</div> +<div class="section" id="refactoring"> +<h3>Refactoring</h3> +<ul class="simple"> +<li>Migrate bandit test job to GitHub workflows, Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1550">Issue #1550</a> (&#64;lcmtwn)</li> +<li>Migrate doc8 test job to GitHub workflows. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1551">Issue #1551</a> (&#64;Prome88)</li> +<li>Add 2 more tests (Mariyan Garvanski)</li> +<li>Convert TP edit page to class based view</li> +<li>Convert forms to ModelForm</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/zh-CN#">Chinese Simplified translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/de#">German translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/fr#">French translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/pt-BR#">Portuguese, Brazilian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/ru#">Russian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/vi#">Vietnamese translation</a></li> +</ul> +</div> +</div> +<div class="section" id="kiwi-tcms-enterprise-v8-3-mt"> +<h2>Kiwi TCMS Enterprise v8.3-mt</h2> +<p>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 +<a class="reference external" href="https://github.com/MrSenko/kiwitcms-enterprise/#v83-mt-27-apr-2020">https://github.com/MrSenko/kiwitcms-enterprise/#v83-mt-27-apr-2020</a></p> +</div> +<div class="section" id="vote-for-kiwi-tcms"> +<h2>Vote for Kiwi TCMS</h2> +<p>Our website has been nominated in the <em>2020 .eu Web Awards</em> and +<a class="reference external" href="/blog/kiwi-tcms-team/2020/04/09/please-vote-for-kiwi-tcms-in-2020-eu-web-awards/">we've promised</a> +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!</p> +<ul class="simple"> +<li>Go to <a class="reference external" href="https://webawards.eurid.eu/?q=kiwitcms.eu">https://webawards.eurid.eu/?q=kiwitcms.eu</a>;</li> +<li>Point your mouse to the photo of our website and click the Thumbs Up &amp;#128077; button;</li> +<li>No email or registration required!</li> +</ul> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p><a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">Backup</a> first! +If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +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 +</pre> +<p>Refer to +<a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/installing_docker.html#upgrading">our documentation</a> +for more details!</p> +<p>Happy testing!</p> +</div> +Kiwi TCMS open source bounty program, Round 012020-04-17T12:53:00+03:002020-04-17T12:53:00+03:00Kiwi TCMS Teamtag:None,2020-04-17:/blog/kiwi-tcms-team/2020/04/17/kiwi-tcms-open-source-bounty-program-round-01/<p><img src="/images/bounty_program.png" + alt="bounty program banner" + style="float:none;margin-left:0"></p> +<p>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 …</p><p><img src="/images/bounty_program.png" + alt="bounty program banner" + style="float:none;margin-left:0"></p> +<p>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.</p> +<h2>Who is eligible to participate</h2> +<p>Everyone who meets the following criteria is eligible to participate:</p> +<ul> +<li>Has an account on <a href="https://opencollective.com">https://opencollective.com</a> - needed to follow program updates + and request payments</li> +<li>Has a bank account - needed for actual money transfer, more info below!</li> +</ul> +<p>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.</p> +<h2>Engagement rules</h2> +<ul> +<li>Program will be split into multiple rounds as we work to clearly define + what needs to be done and adjust priorities</li> +<li>News and updates will be posted at <a href="https://opencollective.com/kiwitcms/updates/">https://opencollective.com/kiwitcms/updates/</a></li> +<li>You are expected to mostly work alone on issues</li> +<li>Technical discussion will be happening via GitHub pull requests and/or GitHub issues + under <a href="https://github.com/kiwitcms/Kiwi">https://github.com/kiwitcms/Kiwi</a> unless indicated otherwise</li> +<li>Translation related discussion will be happening via Crowdin under + <a href="https://crowdin.com/project/kiwitcms/discussions">https://crowdin.com/project/kiwitcms/discussions</a> when needed</li> +<li>Do not contact individual team members privately, we are going to ignore such messages</li> +</ul> +<h2>FIFO order for code review</h2> +<ul> +<li>Contributions will be reviewed and merged in a rolling <em>first-in-first-out</em> order, + that is we review 1 PR and while waiting for updates continue on the next in the queue</li> +<li>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</li> +<li>Please comment on issues and work together with other community members to + split the work and avoid collisions as much as possible</li> +</ul> +<h2>About issues</h2> +<p>Our team will try to clearly describe each task and what constitutes a +successfully completed task, e.g. <em>definition of done</em> (DoD). If this isn't the case +please ask questions and seek clarification about such tasks.</p> +<ul> +<li>Only Issues under the <a href="https://github.com/kiwitcms/Kiwi/milestone/4">bounty-program milestone</a> + <strong>AND</strong> labelled with a specific monetary amount are eligible for payout!</li> +<li>Unlabelled issues need further refinement before they can be accepted for bounties!</li> +</ul> +<h2>Payout rules</h2> +<p>Once DoD has been met and the contribution is merged you may claim the assigned bounty. +You must perform the following steps:</p> +<ul> +<li><a href="https://opencollective.com/kiwitcms/expenses/new">Submit an expense</a> to the + Kiwi TCMS Collective</li> +<li>All expenses submitted to the Kiwi TCMS Collective must follow the invoicing rules + of our Fiscal Host. + <a href="https://docs.google.com/document/d/1-unqsnko4Eaza3fSuVAUFqvhMwe-h1V8jhruTDBjrUY/copy">Here is an invoice template (Google Doc)</a> + you can use. Fill-in the blue parts and leave the black parts</li> +<li>Invoice &amp; expense description contains the number of issue(s) and PR(s) for which + bounty is claimed</li> +</ul> +<p><strong>Identity cross validation:</strong></p> +<p>Once an expense has been submitted add a comment with your GitHub/Crowdin username +to it + open a +<a href="https://github.com/kiwitcms/Kiwi/issues/new?assignees=atodorov&amp;labels=&amp;template=claim_bounty.md&amp;title=">new issue in GitHub</a> +/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.</p> +<p><strong>Note on bank transfers</strong></p> +<p>A message from our <a href="https://opencollective.com/europe">Fiscal Host</a>:</p> +<blockquote> +<p>We currently prefer to do payouts using bank transfers. +We used to support PayPal but fees were way too high for the collectives.</p> +<p>About bank transfer, we do EU transfers as well as non EU (which takes more time obviously).</p> +<p>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.</p> +</blockquote> +<p>It looks like the fastest &amp; cheapest way to get paid is via Revolut account if you have one, +followed by standard bank transfer and PayPal account is last!</p> +<h2>Bounties: translation related tasks</h2> +<ul> +<li>Chinese Simplified - + <a href="https://github.com/kiwitcms/Kiwi/issues/1459">#1459</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/1460">#1460</a> + <a href="https://github.com/kiwitcms/Kiwi/issues/1461">#1461</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/1462">#1462</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/1463">#1463</a></li> +<li>Hindi - + <a href="https://github.com/kiwitcms/Kiwi/issues/1464">#1464</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/1465">#1465</a> + <a href="https://github.com/kiwitcms/Kiwi/issues/1466">#1466</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/1467">#1467</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/1468">#1468</a></li> +<li>Indonesian - + <a href="https://github.com/kiwitcms/Kiwi/issues/1469">#1469</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/1470">#1470</a> + <a href="https://github.com/kiwitcms/Kiwi/issues/1471">#1471</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/1472">#1472</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/1473">#1473</a></li> +<li>Bengali - + <a href="https://github.com/kiwitcms/Kiwi/issues/1474">#1474</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/1475">#1475</a> + <a href="https://github.com/kiwitcms/Kiwi/issues/1476">#1476</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/1477">#1477</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/1478">#1478</a></li> +<li>German - + <a href="https://github.com/kiwitcms/Kiwi/issues/1505">#1505</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/1506">#1506</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/1507">#1507</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/1508">#1508</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/1509">#1509</a></li> +<li>Japanese - + <a href="https://github.com/kiwitcms/Kiwi/issues/1489">#1489</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/1490">#1490</a> + <a href="https://github.com/kiwitcms/Kiwi/issues/1491">#1491</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/1492">#1492</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/1493">#1493</a></li> +<li>Swahili - + <a href="https://github.com/kiwitcms/Kiwi/issues/1494">#1494</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/1495">#1495</a> + <a href="https://github.com/kiwitcms/Kiwi/issues/1497">#1497</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/1498">#1498</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/1499">#1499</a></li> +<li>Vietnamese - + <a href="https://github.com/kiwitcms/Kiwi/issues/1484">#1484</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/1485">#1485</a> + <a href="https://github.com/kiwitcms/Kiwi/issues/1486">#1486</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/1487">#1487</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/1488">#1488</a></li> +<li>Korean - + <a href="https://github.com/kiwitcms/Kiwi/issues/1479">#1479</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/1480">#1480</a> + <a href="https://github.com/kiwitcms/Kiwi/issues/1481">#1481</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/1482">#1482</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/1483">#1483</a></li> +</ul> +<h2>Bounties: test automation plugins</h2> +<ul> +<li>Django test runner reporting plugin - + <a href="https://github.com/kiwitcms/Kiwi/issues/693">#693</a></li> +<li>py.test reporting plugin - <a href="https://github.com/kiwitcms/Kiwi/issues/1511">#1511</a></li> +<li>JUnit plugin: annotation &amp; improvement for test case mapping - + <a href="https://github.com/kiwitcms/Kiwi/issues/1512">#1512</a></li> +<li>TestNG plugin - + <a href="https://github.com/kiwitcms/Kiwi/issues/692">#692</a></li> +</ul> +<h2>Bounties: assorted technical issues</h2> +<ul> +<li>pylint - + <a href="https://github.com/kiwitcms/Kiwi/issues/1192">#1192</a></li> +<li>JavaScript: Add buttons for creating tables in text editor - + <a href="https://github.com/kiwitcms/Kiwi/issues/1531">#1531</a></li> +<li>Migration from Travis CI to GitHub workflows - + <a href="https://github.com/kiwitcms/Kiwi/issues/1550">#1550</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/1551">#1551</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/1552">#1552</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/1553">#1553</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/1554">#1554</a></li> +</ul> +<h2>Call for sponsors</h2> +<p>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 +<a href="https://opencollective.com/kiwitcms#section-contribute">Collective</a>. +You can contribute as low as € 1! The entire budget will be distributed to the community!</p> +<h2>Vote for Kiwi TCMS</h2> +<p>Our website has been nominated in the <em>2020 .eu Web Awards</em> and +<a href="/blog/kiwi-tcms-team/2020/04/09/please-vote-for-kiwi-tcms-in-2020-eu-web-awards/">we've promised</a> +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!</p> +<ul> +<li>Go to <a href="https://webawards.eurid.eu/?q=kiwitcms.eu">https://webawards.eurid.eu/?q=kiwitcms.eu</a>;</li> +<li>Point your mouse to the photo of our website and click the Thumbs Up &#128077; button;</li> +<li>No email or registration required!</li> +</ul> +<p>Happy bounty hunting!</p>Please vote for Kiwi TCMS in 2020 .eu Web Awards2020-04-09T13:48:00+03:002020-04-09T13:48:00+03:00Kiwi TCMS Teamtag:None,2020-04-09:/blog/kiwi-tcms-team/2020/04/09/please-vote-for-kiwi-tcms-in-2020-eu-web-awards/<p><a href="https://webawards.eurid.eu/?q=kiwitcms.eu"> + <img + style="float: none; margin-left:0" + src="/images/eu_web_awards_horizontal.png" + alt="Click here to vote for Kiwi TCMS"> +</a></p> +<div class="highlight"><pre><span></span><code><span class="k">Scenario:</span><span class="nf"> Display open source advertising in Brussels airport</span> +<span class="k"> Given </span><span class="nf">one of the prizes is a </span><span class="s">2</span><span class="nf"> month billboard advertising campaign</span> +<span class="nf"> </span><span class="k">And </span><span class="nf">the awards ceremony is on Nov </span><span class="s">18</span><span class="nf">th </span><span class="s">2020</span><span class="nf"></span> +<span class="nf"> </span><span class="k">When </span><span class="nf">Kiwi TCMS wins</span> +<span class="nf"> </span><span class="k">Then </span><span class="nf">there is good chance this campaign coincides with FOSDEM</span> +</code></pre></div> + + +<ul> +<li>Go to <a href="https://webawards.eurid.eu/?q=kiwitcms.eu">https://webawards.eurid.eu …</a></li></ul><p><a href="https://webawards.eurid.eu/?q=kiwitcms.eu"> + <img + style="float: none; margin-left:0" + src="/images/eu_web_awards_horizontal.png" + alt="Click here to vote for Kiwi TCMS"> +</a></p> +<div class="highlight"><pre><span></span><code><span class="k">Scenario:</span><span class="nf"> Display open source advertising in Brussels airport</span> +<span class="k"> Given </span><span class="nf">one of the prizes is a </span><span class="s">2</span><span class="nf"> month billboard advertising campaign</span> +<span class="nf"> </span><span class="k">And </span><span class="nf">the awards ceremony is on Nov </span><span class="s">18</span><span class="nf">th </span><span class="s">2020</span><span class="nf"></span> +<span class="nf"> </span><span class="k">When </span><span class="nf">Kiwi TCMS wins</span> +<span class="nf"> </span><span class="k">Then </span><span class="nf">there is good chance this campaign coincides with FOSDEM</span> +</code></pre></div> + + +<ul> +<li>Go to <a href="https://webawards.eurid.eu/?q=kiwitcms.eu">https://webawards.eurid.eu/?q=kiwitcms.eu</a>;</li> +<li>Point your mouse to the photo of our website and click + the Thumbs Up &#128077; button;</li> +<li>No email or registration required!</li> +</ul> +<p>Out team promises to do everything in our power so that visitors to +<a href="http://fosdem.org">FOSDEM 2021</a> start feeling the community vibe directly +at the airport!</p> +<p>Please vote and share.</p> +<p>Thank you!</p>Kiwi TCMS 8.22020-04-03T22:25:00+03:002020-04-03T22:25:00+03:00Kiwi TCMS Teamtag:None,2020-04-03:/blog/kiwi-tcms-team/2020/04/03/kiwi-tcms-82/<p>We're happy to announce Kiwi TCMS version 8.2!</p> +<p><strong>IMPORTANT:</strong> +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 +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 …</pre><p>We're happy to announce Kiwi TCMS version 8.2!</p> +<p><strong>IMPORTANT:</strong> +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 +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +<p>Docker images:</p> +<pre class="literal-block"> +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 +</pre> +<div class="section" id="changes-since-kiwi-tcms-8-1"> +<h2>Changes since Kiwi TCMS 8.1</h2> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update bleach from 3.1.1 to 3.1.4</li> +<li>Update django from 3.0.4 to 3.0.5</li> +<li>Update django-colorfield from 0.2.1 to 0.2.2</li> +<li>Update pygithub from 1.46 to 1.47</li> +<li>Update python-gitlab from 2.0.1 to 2.1.2</li> +<li>Update marked(js) to version 0.8.2</li> +<li>Change default MariaDB charset and collation to utf8mb4. Will only affect +new installations. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/327">Issue #327</a></li> +<li>Document <tt class="docutils literal">TCMS_PLAN_ID</tt> ENV variable supported by automation framework +plugins</li> +<li>Test case Search page now allows searching for records containing the +specified text. Closes #1209 &#64;Schwarzkrieger</li> +<li>Provide <tt class="docutils literal"><span class="pre">../site-packages/tcms_settings_dir/</span></tt> when installing Kiwi TCMS +which is an empty pkgutil-style namespace where other packages can drop +their configuration</li> +<li>Hide empty values in Execution trends chart tooltips</li> +</ul> +</div> +<div class="section" id="api"> +<h3>API</h3> +<ul class="simple"> +<li>Remove <tt class="docutils literal">Auth.login_krbv()</tt> method</li> +<li>Method <tt class="docutils literal">TestRun.update()</tt> will now accept <tt class="docutils literal"><span class="pre">%Y-%m-%d</span> <span class="pre">%H:%M:%S</span></tt> +timestamp format. The previous format <tt class="docutils literal"><span class="pre">%Y-%m-%d</span></tt> is also supported</li> +<li>Method <tt class="docutils literal">TestExecution.create()</tt> now defaults to first neutral status +instead of searching for the hard-coded <tt class="docutils literal">IDLE</tt>. That means newly created +test executions which do not specify status will be created with the first +neutral status found in the database</li> +</ul> +</div> +<div class="section" id="refactoring"> +<h3>Refactoring</h3> +<ul class="simple"> +<li>Fix pylint errors. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1510">Issue #1510</a> (&#64;cmbahadir)</li> +<li>Add tests for <tt class="docutils literal">TestRunAdmin.delete_view()</tt> (Mariyan Garvanski)</li> +<li>Revert &quot;[l10n] Add Serializer class which returns untranslated models&quot;</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/bg#">Bulgarian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/pt-BR#">Portuguese, Brazilian translation</a></li> +</ul> +</div> +</div> +<div class="section" id="social-auth-kerberos-v0-2-4"> +<h2>social-auth-kerberos v0.2.4</h2> +<p>A new version of our Kerberos authentication backend has been released +as well. For more info check +<a class="reference external" href="https://github.com/kiwitcms/python-social-auth-kerberos#changelog">https://github.com/kiwitcms/python-social-auth-kerberos#changelog</a>. +This version is included with <em>Kiwi TCMS Enterprise</em>.</p> +</div> +<div class="section" id="tcms-api-v8-2-0"> +<h2>tcms-api v8.2.0</h2> +<p>New version of our <tt class="docutils literal"><span class="pre">tcms-api</span></tt> 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 +<a class="reference external" href="https://github.com/kiwitcms/tcms-api/#changelog">https://github.com/kiwitcms/tcms-api/#changelog</a>.</p> +</div> +<div class="section" id="tap-plugin-junit-xml-plugin-v8-2"> +<h2>tap-plugin &amp; junit.xml-plugin v8.2</h2> +<p>Both plugins are now using the latest version of <tt class="docutils literal"><span class="pre">tcms-api</span></tt> library +and include additional improvements like being able to specify +existing TestPlan and setting <tt class="docutils literal">stop_date</tt> for the automated TestRun. +For more information see <a class="reference external" href="https://github.com/kiwitcms/tap-plugin#changelog">https://github.com/kiwitcms/tap-plugin#changelog</a> +and <a class="reference external" href="https://github.com/kiwitcms/junit.xml-plugin/#changelog">https://github.com/kiwitcms/junit.xml-plugin/#changelog</a></p> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p><a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">Backup</a> first! +If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +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 +</pre> +<p><strong>WHERE:</strong> <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> has been updated from your private git repository! +The file provided in our GitHub repository is an example. Not for production use!</p> +<p><strong>WARNING:</strong> <tt class="docutils literal">kiwitcms/kiwi:latest</tt> and <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> 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:</p> +<pre class="literal-block"> +# starting from an older Kiwi TCMS version +docker-compose down +docker pull kiwitcms/kiwi:&lt;next_upgrade_version&gt; +edit docker-compose.yml to use kiwitcms/kiwi:&lt;next_upgrade_version&gt; +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +# repeat until you have reached latest +</pre> +<p>Happy testing!</p> +</div> +Kiwi TCMS is Open Source Seed Award winner2020-03-27T10:47:00+02:002020-03-27T10:47:00+02:00Kiwi TCMS Teamtag:None,2020-03-27:/blog/kiwi-tcms-team/2020/03/27/kiwi-tcms-is-open-source-seed-award-winner/<p>Kiwi TCMS is the proud winner of a $10,000 award from Mozilla, Indeed, +Open Collective, Ford Foundation &amp; Simply Secure. Read below for the full story!</p> +<p>At the end of January Zahari alerted our team about the +<a href="https://opencollective.com/open-source-speed-dating/events/open-source-speed-dating-fosdem-2020-96f78c6c">Open Source Speed Dating FOSDEM 2020</a> +event and Alex was very swift in …</p><p>Kiwi TCMS is the proud winner of a $10,000 award from Mozilla, Indeed, +Open Collective, Ford Foundation &amp; Simply Secure. Read below for the full story!</p> +<p>At the end of January Zahari alerted our team about the +<a href="https://opencollective.com/open-source-speed-dating/events/open-source-speed-dating-fosdem-2020-96f78c6c">Open Source Speed Dating FOSDEM 2020</a> +event and Alex was very swift in filing the application form. Just as we landed +in Brussels, ready to host +<a href="/blog/kiwi-tcms-team/2019/11/26/kiwi-tcms-is-going-to-fosdem-2020/">Testing and Automation devroom and the Open Source Test Management stand</a>, +we got the news - Kiwi TCMS has been selected as a participant.</p> +<p>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!</p> +<p>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, +<a href="https://fosdem.org/2020/schedule/track/testing_and_automation/">watch videos here</a>, +there was barely time to eat or drink water and at 5PM Alex had to rush across town to pitch +Kiwi TCMS!</p> +<p>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.</p> +<p>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.</p> +<p>Afterwards we reunited together, did even more walking, played the SPACESHIP at +<em>Let Me Out</em> escape room and finished with a mandatory team dinner in the hearth of Brussels.</p> +<p>Following an internal selection process and due diligence we finally received the award. +<a href="https://opencollective.com/kiwitcms/transactions">$10,000 for open source</a>!</p> +<p>As a side note we also got to know who the other winners are, which can be seen from +<a href="https://opencollective.com/open-source-speed-dating/transactions">Open Source Speed Dating records</a>: +F-Droid, ossia, MNT Research GmbH and Kiwi TCMS!</p> +<h2>We’re giving all of it to our community</h2> +<p>All money from the <a href="https://opencollective.com/kiwitcms/">Kiwi TCMS Collective</a> +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!</p> +<p>Happy testing!</p>Kiwi TCMS 8.12020-03-04T15:50:00+02:002020-03-04T15:50:00+02:00Kiwi TCMS Teamtag:None,2020-03-04:/blog/kiwi-tcms-team/2020/03/04/kiwi-tcms-81/<p>We're happy to announce Kiwi TCMS version 8.1!</p> +<p><strong>IMPORTANT:</strong> +this is a small security and improvement release which +also includes several bug fixes, internal refactoring and updated translations. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5 …</pre><p>We're happy to announce Kiwi TCMS version 8.1!</p> +<p><strong>IMPORTANT:</strong> +this is a small security and improvement release which +also includes several bug fixes, internal refactoring and updated translations. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +<p>Docker images:</p> +<pre class="literal-block"> +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 +</pre> +<div class="section" id="changes-since-kiwi-tcms-8-0"> +<h2>Changes since Kiwi TCMS 8.0</h2> +<div class="section" id="security"> +<h3>Security</h3> +<ul> +<li><p class="first">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 <tt class="docutils literal"><span class="pre">&lt;script&gt;alert(123);&lt;/script&gt;</span></tt> +in the database the returned result will be HTML escaped and will not be executed +as JavaScript!</p> +<p><strong>Notes:</strong></p> +<blockquote> +<p>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!</p> +</blockquote> +</li> +<li><p class="first">Update Django from 3.0.3 to 3.0.4 - fixes security issue CVE-2020-9402: +Potential SQL injection via <tt class="docutils literal">tolerance</tt> parameter in GIS functions and aggregates +on Oracle which we believe does not affect Kiwi TCMS</p> +</li> +</ul> +</div> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul> +<li><p class="first">Update bleach from 3.1.0 to 3.1.1</p> +</li> +<li><p class="first">Update django-colorfield from 0.1.15 to 0.2.1</p> +</li> +<li><p class="first">Update markdown from 3.2 to 3.2.1</p> +</li> +<li><p class="first">On bug creation send email to assignee. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1154">Issue #1154</a> (Mfon Eti-mfon)</p> +</li> +<li><p class="first">Make it possible to provide override settings in a directory. Kiwi TCMS will +respect:</p> +<ul class="simple"> +<li><tt class="docutils literal">local_settings.py</tt></li> +<li><tt class="docutils literal"><span class="pre">local_settings_dir/*.py</span></tt></li> +</ul> +<p>For more information see +<a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/installing_docker.html#customization">https://kiwitcms.readthedocs.io/en/latest/installing_docker.html#customization</a></p> +</li> +<li><p class="first">Allow adding TestPlan to TestCase via UI. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1021">Issue #1021</a></p> +</li> +<li><p class="first">Add visual representation of failures in TestCase health telemetry</p> +</li> +<li><p class="first">Add helper text to TestExecutionStatus admin</p> +</li> +<li><p class="first">Add link to discussion forum in Help menu</p> +</li> +</ul> +</div> +<div class="section" id="api"> +<h3>API</h3> +<ul class="simple"> +<li><tt class="docutils literal">TestCase.create()</tt> method no longer accepts <tt class="docutils literal">product</tt> or <tt class="docutils literal">product_id</tt> +fields which have previously been deprecated</li> +<li>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</li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>The number of search results shown per page can now be controlled via +<tt class="docutils literal">DEFAULT_PAGE_SIZE</tt> setting, which is 100 by default. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1210">Issue #1210</a> (Ivailo Karabojkov)</li> +<li>Use comma separated display of components in bug reports. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1157">Issue #1157</a> (Ivailo Karabojkov)</li> +<li>Update selector for 'Select All' test executions in TestRun page. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1404">Issue #1404</a></li> +<li>Fix crash when sorting test cases in TestPlan page. Fixes +<a class="reference external" href="https://sentry.io/organizations/open-technologies-bulgaria-ltd/issues/1519809326/">Sentry #KIWI-TCMS-A6</a></li> +<li>Fix a <tt class="docutils literal"><span class="pre">TC-undefined</span></tt> displayed in TestCase health telemetry</li> +</ul> +</div> +<div class="section" id="refactoring"> +<h3>Refactoring</h3> +<ul class="simple"> +<li>Add test for <tt class="docutils literal">TestRunAdmin.change_view()</tt> (Mariyan Garvanski)</li> +<li>Remove unused <tt class="docutils literal">showCaseRunsWithSelectedStatus</tt></li> +<li>Internal JavaScript updates</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/bg#">Bulgarian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/zh-CN#">Chinese Simplified translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/fr#">French translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +</ul> +</div> +</div> +<div class="section" id="github-marketplace-listing-deprecation"> +<h2>GitHub Marketplace listing deprecation</h2> +<p>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!</p> +<p>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:</p> +<ul class="simple"> +<li>Go to <a class="reference external" href="https://github.com/marketplace/kiwi-tcms">https://github.com/marketplace/kiwi-tcms</a></li> +<li>From &quot;Edit your plan&quot; button at the top select your GitHub account</li> +<li>Then click &quot;Cancel this plan&quot; link which is at the left-hand side +at the bottom of the description box!</li> +</ul> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p><a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">Backup</a> first! +If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +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 +</pre> +<p><strong>WHERE:</strong> <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> has been updated from your private git repository! +The file provided in our GitHub repository is an example. Not for production use!</p> +<p><strong>WARNING:</strong> <tt class="docutils literal">kiwitcms/kiwi:latest</tt> and <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> 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:</p> +<pre class="literal-block"> +# starting from an older Kiwi TCMS version +docker-compose down +docker pull kiwitcms/kiwi:&lt;next_upgrade_version&gt; +edit docker-compose.yml to use kiwitcms/kiwi:&lt;next_upgrade_version&gt; +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +# repeat until you have reached latest +</pre> +<p>Happy testing!</p> +</div> +Catch-up with Kiwi TCMS in Sofia, Singapore, Kiev & Moscow2020-02-17T15:37:00+02:002020-02-17T15:37:00+02:00Kiwi TCMS Teamtag:None,2020-02-17:/blog/kiwi-tcms-team/2020/02/17/catch-up-with-kiwi-tcms-in-sofia-singapore-kiev-moscow/<p>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:</p> +<ul> +<li>March 14 - <a href="https://qachallengeaccepted.com/">QA: Challenge Accepted, Sofia</a> + where we will have an info booth. You will get a 15% community discount if + you …</li></ul><p>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:</p> +<ul> +<li>March 14 - <a href="https://qachallengeaccepted.com/">QA: Challenge Accepted, Sofia</a> + where we will have an info booth. You will get a 15% community discount if + you email <strong>tickets@qachallengeaccepted.com</strong> and mention this blog post</li> +<li>March 19-21 - <a href="https://summit.fossasia.org/">OpenTechSummit, Singapore</a> - + aka FOSS ASIA summit:<ul> +<li><em>Kiwi TCMS exhibition booth</em> - 3 days</li> +<li><em>How to write pylint plugins for fun &amp; profit</em> workshop on March 19th</li> +<li><em>Testing [for] security [in] open source</em> presentation on March 21st</li> +</ul> +</li> +</ul> +<p>To claim a free Community Standard Ticket use code + <a href="https://eventyay.com/e/a74665c3?code=atodorov">atodorov</a>. First 5 tickets + only! For a 25% discount use code + <a href="https://eventyay.com/e/a74665c3?code=fossasia-speaker">fossasia-speaker</a>. + For a 25% discount use code + <a href="https://eventyay.com/e/a74665c3?code=exhibitor-friends">exhibitor-friends</a> + - applies only to Community Standard Ticket.</p> +<ul> +<li>March 27-28 - <a href="https://testingstage.com/">TestingStage, Kiev</a> where Alex + will present his <em>Static analysis as a test tool</em> session. You can also claim + 15% ticket discount by using promo-code <strong>AlexanderTodorov</strong></li> +<li>April 1-2 - <a href="https://testconf.ru/">TestCon Moscow</a> where Alex will present + the <em>Static analysis as a test tool</em> again</li> +</ul> +<p>Original plan was to visit <a href="https://opentestcon.org/">OpenTest Con, Beijing</a> +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.</p> +<p>Feel free to ping us at <a href="https://twitter.com/KiwiTCMS">@KiwiTCMS</a> or look for the +kiwi bird logo and come to say hi. Happy testing!</p>We're not participating in 'QA of the year' award2020-02-14T14:45:00+02:002020-02-14T14:45:00+02:00Kiwi TCMS Teamtag:None,2020-02-14:/blog/kiwi-tcms-team/2020/02/14/were-not-participating-in-qa-of-the-year-award/<p>Hello testers, +this is the story of how our team is not taking part of +the "QA of the year" contest organized by the +<a href="https://qachallengeaccepted.com/">QA: Challenge Accepted</a> conference despite +<a href="https://www.facebook.com/groups/qabulgaria/permalink/2542909712425297/">being nominated by Alex</a>. +In collaboration with Peter Sabev (organizer) we've managed to figure out what happened:</p> +<ul> +<li>On Nov 17th Alex …</li></ul><p>Hello testers, +this is the story of how our team is not taking part of +the "QA of the year" contest organized by the +<a href="https://qachallengeaccepted.com/">QA: Challenge Accepted</a> conference despite +<a href="https://www.facebook.com/groups/qabulgaria/permalink/2542909712425297/">being nominated by Alex</a>. +In collaboration with Peter Sabev (organizer) we've managed to figure out what happened:</p> +<ul> +<li>On Nov 17th Alex nominated the Kiwi TCMS team for the award</li> +<li>Last week Alex discovered our team is not listed on the voting page</li> +<li>Then Peter told us he's not seen any nomination related to + Kiwi TCMS at all which made everything feel even stranger</li> +<li>We've managed to dig out browser history from November + and it clearly shows the nomination form was submitted correctly</li> +<li>It was even possible to load the confirmation URL and edit the + submission</li> +<li>Upon second submission the nomination was clearly visible on the + other side, Peter confirmed this</li> +</ul> +<p>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.</p> +<p>This kind of issue can be avoided by employing the following measures:</p> +<ul> +<li>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</li> +<li>History of edits could also be exposed publicly for extra safety</li> +<li>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</li> +<li>Turn on email confirmation - the existing form didn't have this enabled</li> +<li>On our side: double check submission has been received - will put more + pressure on the organizing team</li> +</ul> +<p>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.</p> +<p>Happy testing!</p>Kiwi TCMS 8.02020-02-12T23:45:00+02:002020-02-12T23:45:00+02:00Kiwi TCMS Teamtag:None,2020-02-12:/blog/kiwi-tcms-team/2020/02/12/kiwi-tcms-80/<p>We're happy to announce Kiwi TCMS version 8.0!</p> +<p><strong>IMPORTANT:</strong> 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 <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> because newer …</p><p>We're happy to announce Kiwi TCMS version 8.0!</p> +<p><strong>IMPORTANT:</strong> 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 <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> because newer MariaDB versions are +breaking direct upgrades from existing installations!</p> +<p>You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +<p>Docker images:</p> +<pre class="literal-block"> +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 +</pre> +<div class="section" id="changes-since-kiwi-tcms-7-3"> +<h2>Changes since Kiwi TCMS 7.3</h2> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update Django from 3.0.2 to 3.0.3</li> +<li>Update django-grappelli from 2.13.3 to 2.14.1</li> +<li>Update markdown from 3.1.1 to 3.2</li> +<li>Update python-gitlab from 1.15.0 to 2.0.1</li> +<li>Update pygithub from 1.45 to 1.46</li> +<li>Allow customization of test execution statuses via admin. +For more information see +<a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/admin.html#test-execution-statuses">https://kiwitcms.readthedocs.io/en/latest/admin.html#test-execution-statuses</a>. +Fixes <a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/236">Issue #236</a></li> +<li>Add passing rate chart to Execution trends telemetry</li> +<li>Documentation updates (&#64;Prome88)</li> +</ul> +</div> +<div class="section" id="database"> +<h3>Database</h3> +<p>This release adds several migrations which alter the underlying database schema +by renaming multiple columns.</p> +<p><strong>WARNINGS:</strong></p> +<ul> +<li><p class="first">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!</p> +</li> +<li><p class="first"><tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> has been updated from MariaDB 5.5 to MariaDB 10.3. +The 10.x MariaDB containers change their <tt class="docutils literal">datadir</tt> configuration from +<tt class="docutils literal">/var/lib/mysql</tt> to <tt class="docutils literal">/var/lib/mysql/data</tt>! We recommend first upgrading +your MariaDB version, using Kiwi TCMS 7.3 and afterwards upgrading to +Kiwi TCMS 8.0:</p> +<ol class="arabic"> +<li><p class="first">Backup existing database with:</p> +<pre class="literal-block"> +docker exec -it kiwi_db mysqldump -u kiwi -pYourPass kiwi &gt; backup.sql +</pre> +</li> +<li><p class="first"><tt class="docutils literal"><span class="pre">docker-compose</span> down</tt></p> +</li> +<li><p class="first"><tt class="docutils literal">docker volume rm kiwi_db_data</tt> - will remove existing data volume +b/c of incompatibilities between different MariaDB versions</p> +</li> +<li><p class="first"><tt class="docutils literal"><span class="pre">docker-compose</span> up</tt> - will recreate data volume with missing data. e.g. +<tt class="docutils literal">manage.py showmigrations</tt> will report that 0 migrations have been applied.</p> +</li> +<li><p class="first">Restore the data from backup:</p> +<pre class="literal-block"> +cat backup.sql | docker exec -u 0 -i kiwi_db /opt/rh/rh-mariadb103/root/usr/bin/mysql kiwi +</pre> +<p><strong>note:</strong> This connects to the database as the root user</p> +</li> +<li><p class="first">Proceed to upgrade your Kiwi TCMS container !</p> +</li> +</ol> +</li> +</ul> +<p><strong>CHANGES:</strong></p> +<ul class="simple"> +<li>Remove model fields of type <tt class="docutils literal">AutoField</tt>. They are a legacy construct +and shouldn't be specified in the source code! Django knows how to add them +dynamically. These are:<ul> +<li><tt class="docutils literal">Tag.id</tt></li> +<li><tt class="docutils literal">TestCaseStatus.id</tt></li> +<li><tt class="docutils literal">Category.id</tt></li> +<li><tt class="docutils literal">PlanType.id</tt></li> +<li><tt class="docutils literal">TestExecutionStatus.id</tt></li> +</ul> +</li> +<li>Remove <tt class="docutils literal">db_column</tt> attribute from model fields</li> +<li>Rename several primary key fields to <tt class="docutils literal">id</tt>:<ul> +<li><tt class="docutils literal">Build.build_id</tt> -&gt; <tt class="docutils literal">Build.id</tt></li> +<li><tt class="docutils literal">TestRun.run_id</tt> -&gt; <tt class="docutils literal">TestRun.id</tt></li> +<li><tt class="docutils literal">TestPlan.plan_id</tt> -&gt; <tt class="docutils literal">TestPlan.id</tt></li> +<li><tt class="docutils literal">TestCase.case_id</tt> -&gt; <tt class="docutils literal">TestCase.id</tt></li> +<li><tt class="docutils literal">TestExecution.case_run_id</tt> -&gt; <tt class="docutils literal">TestExecution.id</tt></li> +</ul> +</li> +</ul> +</div> +<div class="section" id="api"> +<h3>API</h3> +<p><strong>WARNING:</strong></p> +<p>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!</p> +<p><strong>CHANGES:</strong></p> +<ul class="simple"> +<li>Methods <tt class="docutils literal">Build.create()</tt>, <tt class="docutils literal">Build.filter()</tt> and <tt class="docutils literal">Build.update()</tt> will +return <tt class="docutils literal">id</tt> instead of <tt class="docutils literal">build_id</tt> field</li> +<li>Method <tt class="docutils literal">TestRun.get_cases()</tt> will return <tt class="docutils literal">execution_id</tt> instead of +<tt class="docutils literal">case_run_id</tt> field and <tt class="docutils literal">id</tt> instead of <tt class="docutils literal">case_id</tt> field</li> +<li>Methods <tt class="docutils literal">TestRun.add_case()</tt>, <tt class="docutils literal">TestExecution.create()</tt>, +<tt class="docutils literal">TestExecution.filter()</tt> and <tt class="docutils literal">TestExecution.update()</tt> will return +<tt class="docutils literal">id</tt> instead of <tt class="docutils literal">case_run_id</tt> field</li> +<li>Methods <tt class="docutils literal">TestRun.create()</tt>, <tt class="docutils literal">TestRun.filter()</tt>, <tt class="docutils literal">TestRun.update()</tt> will +return <tt class="docutils literal">id</tt> instead of <tt class="docutils literal">run_id</tt> field</li> +<li>Methods <tt class="docutils literal">TestPlan.create()</tt>, <tt class="docutils literal">TestPlan.filter()</tt> and +<tt class="docutils literal">TestPlan.update()</tt> will return <tt class="docutils literal">id</tt> instead of <tt class="docutils literal">plan_id</tt> field</li> +<li>Methods <tt class="docutils literal">TestCase.add_component()</tt>, <tt class="docutils literal">TestCase.create()</tt>, +<tt class="docutils literal">TestCase.filter()</tt> and <tt class="docutils literal">TestCase.update()</tt> will return <tt class="docutils literal">id</tt> instead +of <tt class="docutils literal">case_id</tt> field</li> +</ul> +<p><strong>NOTES:</strong></p> +<p>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:</p> +<ul class="simple"> +<li>kiwitcms-tap-plugin v8.0.1</li> +<li>kiwitcms-junit.xml-plugin v8.0.1</li> +<li>kiwitcms-junit-plugin v8.0</li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Allow displaying lists with more then 9 items when reviewing test cases. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/339">Issue #339</a> (Mfon Eti-mfon)</li> +<li>Make <tt class="docutils literal">tcms.tests.storage.RaiseWhenFileNotFound`</tt> capable of finding +finding static files on Windows which enables development mode for folks +not using Linux environment. See +<a class="reference external" href="https://stackoverflow.com/questions/55297178">SO #55297178</a> (Mfon Eti-mfon)</li> +<li>Allow changing test execution status without adding comment. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1261">Issue #1261</a></li> +<li>Properly refresh test run progress bar when changing statuses. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1326">Issue #1326</a></li> +<li>Fix a bug where updating test cases from the UI was causing text and various +other fields to be reset. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1318">Issue #1318</a></li> +</ul> +</div> +<div class="section" id="refactoring"> +<h3>Refactoring</h3> +<ul class="simple"> +<li>Extract attachments widget to new template. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1124">Issue #1124</a> +(Rosen Sasov)</li> +<li>Rename RPC related classes. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/682">Issue #682</a> +(Rosen Sasov)</li> +<li>Add new test (Mariyan Garvanski)</li> +<li>Start using GitHub actions, first for running flake8</li> +<li>Remove unused <tt class="docutils literal">TestCase.get_previous_and_next()</tt></li> +<li>Remove unused <tt class="docutils literal">TestCaseStatus.string_to_instance()</tt></li> +<li>Remove unused <tt class="docutils literal">TestCase.create()</tt></li> +<li>Remove unused <tt class="docutils literal">json_success_refresh_page()</tt></li> +<li>Remove unused fields from <tt class="docutils literal">SearchPlanForm</tt></li> +<li>Use JSON-RPC in <tt class="docutils literal">previewPlan()</tt></li> +<li>Remove <tt class="docutils literal">toggleTestCaseContents()</tt>, duplicate of <tt class="docutils literal">toggleTestExecutionPane()</tt></li> +<li>Refactor a few more views to class-based</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/bg#">Bulgarian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/fr#">French translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/ko#">Korean translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/tr#">Turkish translation</a></li> +</ul> +</div> +</div> +<div class="section" id="github-marketplace-listing-deprecation"> +<h2>GitHub Marketplace listing deprecation</h2> +<p>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!</p> +<p>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:</p> +<ul class="simple"> +<li>Go to <a class="reference external" href="https://github.com/marketplace/kiwi-tcms">https://github.com/marketplace/kiwi-tcms</a></li> +<li>From &quot;Edit your plan&quot; button at the top select your GitHub account</li> +<li>Then click &quot;Cancel this plan&quot; link which is at the left-hand side +at the bottom of the description box!</li> +</ul> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p><a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">Backup</a> first! +If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +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 +</pre> +<p><strong>WHERE:</strong> <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> has been updated from your private git repository! +The file provided in our GitHub repository is an example. Not for production use!</p> +<p><strong>WARNING:</strong> <tt class="docutils literal">kiwitcms/kiwi:latest</tt> and <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> 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:</p> +<pre class="literal-block"> +# starting from an older Kiwi TCMS version +docker-compose down +docker pull kiwitcms/kiwi:&lt;next_upgrade_version&gt; +edit docker-compose.yml to use kiwitcms/kiwi:&lt;next_upgrade_version&gt; +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +# repeat until you have reached latest +</pre> +<p>Happy testing!</p> +</div> +I deleted our newsletter from Mailchimp ! Please re-subscribe2020-02-11T12:25:00+02:002020-02-11T12:25:00+02:00Alexander Todorovtag:None,2020-02-11:/blog/atodorov/2020/02/11/i-deleted-our-newsletter-from-mailchimp-please-re-subscribe/<p>Hello testers, +I have to admit that I made a rookie mistake and deleted the entire email database +for the Kiwi TCMS +<a href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">newsletter</a>! +And of course we didn't have a backup of this database :-(. Please +<a href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">re-subscribe here</a> +and read below if you are interested to know what happened.</p> +<p>Last week …</p><p>Hello testers, +I have to admit that I made a rookie mistake and deleted the entire email database +for the Kiwi TCMS +<a href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">newsletter</a>! +And of course we didn't have a backup of this database :-(. Please +<a href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">re-subscribe here</a> +and read below if you are interested to know what happened.</p> +<p>Last week, while exploring how to cancel active subscriptions for our +deprecated GitHub Marketplace listing I found there is no way to cancel +those programatically. So I've compiled a list of email addresses and decided +to send subscribers an email asking them to cancel their subscriptions.</p> +<p>For this purpose I decided to import the contacts into Mailchimp because +it gives you a better interface to design the actual message, include images +in the message body, preview and test the message before it is sent! The import +of addresses went fine, new addresses were tagged appropriately to separate them +from the rest of the newsletter audience <strong>but</strong> they were not subscribed to +receive emails automatically.</p> +<p>I selected "non-subscribed" option when importing as a second barrier to +accidentally emailing people who do not want to receive regular news from us! +However it turned out Mailchimp can't send messages to non-subscribed addresses! +Maybe that's part of their attempts to be GDPR compliant.</p> +<p>So I decided to delete the freshly imported addresses, import them again +and this time tag + subscribe them during the import! When selecting the addresses +for deletion I am 99% confident I did filter them by tag first and then selected +<strong>DELETE</strong>! And the entire contacts list was gone!</p> +<p>I've also contacted Mailchimp immediately to ask whether or not the addresses +can be restored. Unfortunately they are trying to be super GDPR compliant and +claim they don't have this information into their system anymore. +And in this particular case we've been relying on the vendor to keep backups +on their end so didn't even think about trying to backup this database!</p> +<p>For users who have accounts at +<a href="https://public.tenant.kiwitcms.org">https://public.tenant.kiwitcms.org</a> +we do have +their email addresses but we're not going to automatically re-subscribe them. +We've stopped auto-subscribing +<a href="/blog/kiwi-tcms-team/2018/06/24/kiwi-tcms-42/">2 years ago</a> and also there's +no way of telling which addresses were on the list in the first hand.</p> +<p>Please +<a href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">re-subscribe here</a> +and I promise we're going to start backing up the newsletter database as well.</p> +<p>Thank you!</p>GitHub OAuth tokens have been revoked2020-02-04T18:25:00+02:002020-02-04T18:25:00+02:00Kiwi TCMS Teamtag:None,2020-02-04:/blog/kiwi-tcms-team/2020/02/04/github-oauth-tokens-have-been-revoked/<p>Hello testers as we've +<a href="/blog/kiwi-tcms-team/2020/01/12/kiwi-tcms-is-migrating-from-oauth-to-github-app/">stated previously</a> +Kiwi TCMS has migrated to a new GitHub backend. The previous OAuth +application with ID <code>e45b09369720518e1fc3</code> has been deprecated.</p> +<p>OAuth tokens for this application have been revoked and you should have +received an email notification from GitHub about this.</p> +<p>If you still have an …</p><p>Hello testers as we've +<a href="/blog/kiwi-tcms-team/2020/01/12/kiwi-tcms-is-migrating-from-oauth-to-github-app/">stated previously</a> +Kiwi TCMS has migrated to a new GitHub backend. The previous OAuth +application with ID <code>e45b09369720518e1fc3</code> has been deprecated.</p> +<p>OAuth tokens for this application have been revoked and you should have +received an email notification from GitHub about this.</p> +<p>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.</p> +<p>Thank you!</p>Project roadmap 20202020-01-17T19:40:00+02:002020-01-17T19:40:00+02:00Alexander Todorovtag:None,2020-01-17:/blog/atodorov/2020/01/17/project-roadmap-2020/<p>Hello testers, +the Kiwi TCMS team sat down together last week and talked about what we feel +is important for us during the upcoming year. This blog post outlines our +roadmap for 2020!</p> +<p><img style="background-color: inherit" src="/images/roadmap2020.png" alt="roadmap image 2020"></p> +<h1>Project sustainability</h1> +<p>The big goal towards which we are striving is to turn Kiwi TCMS into a …</p><p>Hello testers, +the Kiwi TCMS team sat down together last week and talked about what we feel +is important for us during the upcoming year. This blog post outlines our +roadmap for 2020!</p> +<p><img style="background-color: inherit" src="/images/roadmap2020.png" alt="roadmap image 2020"></p> +<h1>Project sustainability</h1> +<p>The big goal towards which we are striving is to turn Kiwi TCMS into a +sustainable open source project. For now this means several key areas:</p> +<div class="highlight"><pre><span></span><code><span class="mf">1</span><span class="p">)</span> <span class="n">Team</span> +<span class="mf">2</span><span class="p">)</span> <span class="n">Technical</span> +<span class="mf">3</span><span class="p">)</span> <span class="n">Community</span> +</code></pre></div> + + +<h2>Team</h2> +<p>Right now we have a core team with 6 newcomers on-boarding. +Engineering performance is all over the place with some people contributing +too much while others contributing too little. More importantly there is no +consistent pace of contributions which makes planning timely completion of +technical tasks impossible.</p> +<p>At the moment we do operate as a bunch of disconnected people who happen to +talk to each other from time to time.</p> +<p>We are going to adjust our internal processes and how we on-board new members. +In fact we did our first "scrum-like" meeting this week and agreed to change +our existing practice and strive to become better as a team!</p> +<p><strong>Goal:</strong> to have a cohesive team at the end of the year which operates with +a predictable capacity.</p> +<p><strong>Goal:</strong> 1 PR/week/person as broad measure of individual performance.</p> +<h2>Technical</h2> +<p>The areas shown on the picture above will receive more priority.</p> +<p><strong>Goal:</strong> complete remaining <a href="/blog/kiwi-tcms-team/2019/03/03/legacy-reports-become-telemetry/">Telemetry features</a>.</p> +<p><strong>Goal:</strong> complete +<a href="https://github.com/kiwitcms/Kiwi/milestone/1">bug-tracker integration milestone</a>.</p> +<p><strong>Goal:</strong> all pylint issues resolved.</p> +<p><strong>Goal:</strong> migrate all remaining legacy templates to Patternfly UI. See +<a href="https://github.com/kiwitcms/Kiwi/milestone/3">patternfly-migration</a> milestone.</p> +<p><strong>Goal:</strong> where FE sends AJAX requests to BE views replace with JSON RPC API instead.</p> +<p><strong>Extra:</strong> start tackling the JavaScript mess that we have. This depends and is related +to Patternfly migration and overall refactoring.</p> +<p><strong>Extra:</strong> make it easier for downstream installations to extend and override parts +of Kiwi TCMS in order for users to adjust the system to their own needs. +The system is pretty flexible as-is but there have been requests, +both online and offline, to provide some extra features! We'll start looking +into them, likely making partial progress in the next 12 months.</p> +<h2>Community</h2> +<p>Last year Kiwi TCMS had massive success at every single conference that we've been to. +Both project and team have been well received. While we are going to continue +being part of various communities around the world we are trying to limit +extensive travel and focus on functionality and partnerships which will +increase Kiwi TCMS eco-system, make the project even more popular and +drive further adoption!</p> +<p><strong>Goal:</strong> extended GitHub integration via +<a href="https://github.com/kiwitcms/github-app/">kiwitcms-github-app</a> plugin.</p> +<p><strong>Goal:</strong> release the following +<a href="https://kiwitcms.readthedocs.io/en/latest/plugins/automation-frameworks.html">test automation framework plugins</a> +for Kiwi TCMS:</p> +<ul> +<li><a href="https://github.com/kiwitcms/phpunit-plugin/">PHPUnit plugin</a></li> +<li><a href="https://github.com/kiwitcms/pytest-plugin/">py.test plugin</a></li> +<li>TestNG plugin</li> +<li>Jenkins plugin</li> +<li>Robot framework plugin</li> +<li>Django plugin</li> +</ul> +<p>For more information see +<a href="https://github.com/kiwitcms/Kiwi/milestone/2">test-automation-plugins</a> milestone.</p> +<p><strong>Ongoing:</strong> work with our partners from the proprietary and open source worlds. +This is hard to quantify and lots of it doesn't actually depend on the team. +However we are continuing to talk to them regularly. Expect new feedback to +become available under GitHub Issues.</p> +<p><strong>Extra:</strong> see what we can do about testing productivity! This has always been +part of our mission but we have not been able to produce anything worth sharing. +We do have ideas in this space but we are generally looking for partnerships and collaborations. +It is very likely that there will not be very much progress on this front +because it is hard to define it properly :-(.</p> +<h2>Summary</h2> +<p>At the end of the day most of these goals compliment each other and help drive all of +them to completion. Many of the still on-boarding people have expressed desire to +improve their Python &amp; Django skills. Working to resolve issues in the above specific +areas will give them this opportunity! I expect they will show good progress on their respective +tasks so we can write more about them on this blog.</p> +<p>Happy testing!</p>Kiwi TCMS 7.32020-01-16T01:00:00+02:002020-01-16T01:00:00+02:00Kiwi TCMS Teamtag:None,2020-01-16:/blog/kiwi-tcms-team/2020/01/16/kiwi-tcms-73/<p>We're happy to announce Kiwi TCMS version 7.3!</p> +<p><strong>IMPORTANT:</strong> this is a critical security update for +<strong>CVE-2019-19844: Potential account hijack via password reset form!</strong></p> +<p>Also migrates to Django 3.0 and includes several other improvement +and bug-fixes!</p> +<p>You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade …</p><p>We're happy to announce Kiwi TCMS version 7.3!</p> +<p><strong>IMPORTANT:</strong> this is a critical security update for +<strong>CVE-2019-19844: Potential account hijack via password reset form!</strong></p> +<p>Also migrates to Django 3.0 and includes several other improvement +and bug-fixes!</p> +<p>You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +<p>Docker images:</p> +<pre class="literal-block"> +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 +</pre> +<div class="section" id="changes-since-kiwi-tcms-7-2"> +<h2>Changes since Kiwi TCMS 7.2</h2> +<div class="section" id="security"> +<h3>Security</h3> +<ul class="simple"> +<li>Update Django from 2.2.8 to 3.0.2</li> +</ul> +</div> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update python-gitlab from 1.13.0 to 1.15.0</li> +<li>Update pygithub from 1.44.1 to 1.45</li> +<li>Update django-grappelli from 2.13.2 to 2.13.3</li> +<li>Bump django-uuslug from 1.1.9 to 1.2.0</li> +<li>Bump django-attachments from 1.4.1 to 1.5</li> +<li>Bump django-vinaigrette from 1.2.0 to 2.0.1</li> +<li>Update marked to version 0.8.0</li> +<li>Update prismjs to version 1.19.0</li> +<li>Generalize existing <tt class="docutils literal">kiwitcms.telemetry.plugins</tt> handling code by +renaming the entry point to <tt class="docutils literal">kiwitcms.plugins</tt></li> +<li>Refactor views to class based (Svetlozar Stoyanov)</li> +<li>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</li> +</ul> +</div> +<div class="section" id="database"> +<h3>Database</h3> +<ul class="simple"> +<li>When migrating from the older <tt class="docutils literal">Bug</tt> model to <tt class="docutils literal">LinkReference</tt> skip +bugs which are attached directly to test cases instead of test executions. +See <a class="reference external" href="https://stackoverflow.com/questions/59321756/">SO #59321756</a></li> +<li>Remove <tt class="docutils literal">AutoField.max_length</tt> because it is ignored by Django 3</li> +</ul> +</div> +<div class="section" id="api"> +<h3>API</h3> +<ul class="simple"> +<li><tt class="docutils literal">TestCase.update()</tt> method now allows to update the <tt class="docutils literal">author</tt> field. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/630">Issue #630</a></li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Modify template pass <tt class="docutils literal">object</tt> as <tt class="docutils literal">test_plan</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1307">Issue #1307</a> (Ed Oswald S. Go)</li> +<li>Enable version selection in test plan search page. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1276">Issue #1276</a></li> +<li>Apply percentage rounding for completed test executions. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1230">Issue #1230</a></li> +<li>Fix a logical bug in conditional expression when deciding whether or not +reporting bugs to selected issue tracker is disabled</li> +</ul> +</div> +<div class="section" id="refactoring"> +<h3>Refactoring</h3> +<ul class="simple"> +<li>Add code of conduct. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1185">Issue #1185</a> (Rosen Sasov)</li> +<li>Add test for <tt class="docutils literal">KIWI_DONT_ENFORSE_HTTPS</tt>. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1274">Issue #1274</a></li> +<li>Replace <tt class="docutils literal">ugettext_lazy</tt> with <tt class="docutils literal">gettext_lazy</tt> for Django 3</li> +<li>Remove <tt class="docutils literal">BaseCaseSearchForm.bug_id</tt> field</li> +<li>Refactor testcase edit view to class-based</li> +<li>Happy New Year pylint</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/zh-CN#">Chinese Simplified translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/vi#">Vietnamese translation</a></li> +</ul> +</div> +</div> +<div class="section" id="github-integration"> +<h2>GitHub integration</h2> +<p>The hosted version of Kiwi TCMS ships with additional GitHub integration. See +<a class="reference external" href="/blog/kiwi-tcms-team/2020/01/12/kiwi-tcms-is-migrating-from-oauth-to-github-app/">GitHub App announcement</a> and +<a class="reference external" href="https://github.com/kiwitcms/github-app/blob/master/README.rst">github-app</a> +for more information!</p> +</div> +<div class="section" id="upcoming-conferences"> +<h2>Upcoming conferences</h2> +<p>The next two events we are going to participate are:</p> +<ul class="simple"> +<li><a class="reference external" href="https://devconfcz2020a.sched.com/speaker/a.sankov96">DevConf.CZ, Jan 24-26, Brno</a> +where Anton Sankov will be a speaker</li> +<li><a class="reference external" href="/blog/kiwi-tcms-team/2019/11/26/kiwi-tcms-is-going-to-fosdem-2020/">FOSDEM, Feb 1-2, Brussels</a> +where you can meet with the entire team</li> +</ul> +<p>If you are around come and say &quot;Happy testing&quot;!</p> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p><a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">Backup</a> first! +If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +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 +</pre> +<p><strong>WHERE:</strong> <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> has been updated from your private git repository! +The file provided in our GitHub repository is an example. Not for production use!</p> +<p><strong>WARNING:</strong> <tt class="docutils literal">kiwitcms/kiwi:latest</tt> and <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> 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:</p> +<pre class="literal-block"> +# starting from an older Kiwi TCMS version +docker-compose down +docker pull kiwitcms/kiwi:&lt;next_upgrade_version&gt; +edit docker-compose.yml to use kiwitcms/kiwi:&lt;next_upgrade_version&gt; +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +# repeat until you have reached latest +</pre> +<p>Happy testing!</p> +</div> +Kiwi TCMS is migrating from OAuth to GitHub App2020-01-12T18:31:00+02:002020-01-12T18:31:00+02:00Kiwi TCMS Teamtag:None,2020-01-12:/blog/kiwi-tcms-team/2020/01/12/kiwi-tcms-is-migrating-from-oauth-to-github-app/<p>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 +<a href="/blog/atodorov/2019/01/10/project-mission-and-goals-for-2019/">yearly goals</a>. +This blog post outlines the differences between the old and the new!</p> +<p>The old OAuth application …</p><p>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 +<a href="/blog/atodorov/2019/01/10/project-mission-and-goals-for-2019/">yearly goals</a>. +This blog post outlines the differences between the old and the new!</p> +<p>The old OAuth application only had access to your username, name and email +for authentication purposes. Its authorization screen looked like so:</p> +<p><img src="/images/github/oauth_login.png" + alt="OAuth login screen" + style="float:none"></p> +<p>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 +<a href="https://public.tenant.kiwitcms.org">https://public.tenant.kiwitcms.org</a>. If this is your +first time logging into Kiwi TCMS after the migration you will see the following screen:</p> +<p><img src="/images/github/app_login.png" + alt="App login screen" + style="float:none"></p> +<p>Notice how the heading, information section and action button are slightly different! +The important section is <strong>Resources on your account</strong>! 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.</p> +<p>To permit this GitHub App to access your repositories and/or act on your behalf +you must <strong>Install</strong> 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 <strong>Install &amp; Authorize</strong> button on our home page or +directly from <a href="https://github.com/apps/kiwi-tcms">https://github.com/apps/kiwi-tcms</a>! +The screen should look like this:</p> +<p><img src="/images/github/app_installation.png" + alt="App installation screen" + style="float:none"></p> +<p>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 +<a href="https://github.com/kiwitcms/github-app">https://github.com/kiwitcms/github-app</a>!</p> +<p>Further ideas about integration between GitHub and Kiwi TCMS, including the original +idea about status checks from <a href="https://github.com/kiwitcms/Kiwi/issues/700">Issue #700</a>, +can be found at +<a href="https://github.com/kiwitcms/github-app/issues">https://github.com/kiwitcms/github-app/issues</a>.</p> +<h2>Help us grow</h2> +<p>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.</p> +<p>Please help us get back on track! Here's what we ask you to do (in this order):</p> +<ul> +<li>Go to <a href="https://public.tenant.kiwitcms.org">https://public.tenant.kiwitcms.org</a> and + click the GitHub login icon, follow through with the process;</li> +<li>Go to <a href="https://github.com/apps/kiwi-tcms">https://github.com/apps/kiwi-tcms</a> and + click the <strong>Install</strong> button, select account &amp; repositories and complete the + process;</li> +<li>Share this blog post with friends, co-workers and other testers who might be + interested to help!</li> +</ul> +<p>Thank you! Happy testing and happy new year!</p>Roadmap status report for 20192019-12-26T16:56:00+02:002019-12-26T16:56:00+02:00Alexander Todorovtag:None,2019-12-26:/blog/atodorov/2019/12/26/roadmap-status-report-for-2019/<p>Hello everyone, in this article I will outline the progress that the Kiwi TCMS +team has made towards achieving the goals on our +<a href="/blog/atodorov/2019/01/10/project-mission-and-goals-for-2019/">2019 roadmap</a>. +TL,DR: last year we've made lots of big and visible changes in Kiwi TCMS. +This year less so. Progress has been slower than before …</p><p>Hello everyone, in this article I will outline the progress that the Kiwi TCMS +team has made towards achieving the goals on our +<a href="/blog/atodorov/2019/01/10/project-mission-and-goals-for-2019/">2019 roadmap</a>. +TL,DR: last year we've made lots of big and visible changes in Kiwi TCMS. +This year less so. Progress has been slower than before and not so much +visible. Community and team is growing. More contributors are welcome.</p> +<h2>Complete the internal refactoring</h2> +<p><em>Status: small progress, needs help</em></p> +<p><a href="https://codeclimate.com/github/kiwitcms/Kiwi">CodeClimate</a> progress is:</p> +<ul> +<li>-60 code smells</li> +<li>-55 duplications</li> +<li>-50 other issues</li> +<li>4.4% technical debt improvement</li> +<li>-240 hrs remaining until issues are fixed</li> +</ul> +<p>The trend is showing less issues remaining +but it has been a slow progress. As we fix the easier items the remaining ones +become harder to deal with.</p> +<p>We've done minor work related to fixing issues reported by pylint. Around +150 of them still remain!</p> +<p>We have not done any targeted work to resolve other issues reported by Scrutinizer, +remove vendored-in JavaScript libraries, JavaScript refactoring or +classification of issues in 3rd party dependencies.</p> +<h2>Redesign the UI templates with the help of Patternfly</h2> +<p><em>Status: 60% done, needs help</em></p> +<p>There are 22 HTML templates remaining to be redesigned (from 59). That's mostly +due to internal cleanup and some refactoring! Test plan and Test run pages are the +two major templates that still need to be redesigned with Patternfly.</p> +<h2>Modernize reporting aka Telemetry</h2> +<p><em>Status: 60% done, in progress, behind schedule</em></p> +<p>The specs for the new <a href="/blog/kiwi-tcms-team/2019/03/03/legacy-reports-become-telemetry/">Telemetry</a> system +have been defined after taking into account feedback on GitHub issues. Anton Sankov is +the leading developer for this feature. So far we have 4 telemetry reports merged: +testing break-down, status matrix, execution trends and flaky tests.</p> +<p>There are lots of minor issues or missing functionality in these first iterations +(compared to specification). Work continues on the other telemetry use-cases +and related items.</p> +<h2>Plugins for 3rd party test automation frameworks</h2> +<p><em>Status: good, needs help</em></p> +<p><em>UPDATE:</em> no change in last 6 months.</p> +<p>If you'd like to see plugins for more test automation frameworks +and/or file formats please checkout the +<a href="https://kiwitcms.readthedocs.io/en/latest/automation-frameworks.html">documentation</a> +for links and more info.</p> +<h2>Redefine bug-tracker integration</h2> +<p><em>Status: 66% complete, in progress, behind schedule</em></p> +<p>We've been making slow progress on this milestone lately. For more info +see +<a href="https://github.com/kiwitcms/Kiwi/milestone/1">https://github.com/kiwitcms/Kiwi/milestone/1</a></p> +<h2>GitHub flow integration</h2> +<p><em>Status: done, awaiting deployment</em></p> +<p>Our team spent some time making Kiwi TCMS the first open source TCMS available +on the <a href="https://github.com/marketplace/kiwi-tcms">GitHub Marketplace</a>. At the end +of this year we were able to create a small application that allows further +integration and extending the testing workflow to the GitHub platform.</p> +<p>This is waiting on a few more clarifications from GitHub before we deploy but +for now it can be considered as done. Future functionality will be tracked +and developed directly at +<a href="https://github.com/kiwitcms/github-app/issues">https://github.com/kiwitcms/github-app/issues</a>.</p> +<h2>Agile integration with Trello</h2> +<p><em>Status: no progress, will drop</em></p> +<p>This will be dropped from roadmap for the next year until we can get more interest +from the community.</p> +<h2>Improve engineering productivity</h2> +<p><em>Status: no progress</em></p> +<p>Looking for external help here. This will stay as a low priority item on our +roadmap for 2020 until we can free more resources on the team.</p> +<h2>Community</h2> +<p><em>Status: great, on track, needs work</em></p> +<p>This is our strongest area during this year. We have a strong presence in +multiple communities, our event schedule is very busy and we are gaining more +recognition every day! Core team hit several big bumps this year and is still +recovering with a few more people onboarding.</p> +<p>Kiwi TCMS suffers from the problem that many of our users can't be contributors +or simply don't want to!</p> +<p>In short: it is important for us to follow our mission and develop our core team +so we can deliver on promises made in our roadmap! That requires a lot of time and +effort which reduces short-term productivity.</p> +<p>Happy testing!</p>Kiwi TCMS 7.22019-12-09T10:25:00+02:002019-12-09T10:25:00+02:00Kiwi TCMS Teamtag:None,2019-12-09:/blog/kiwi-tcms-team/2019/12/09/kiwi-tcms-72/<p>We're happy to announce Kiwi TCMS version 7.2! +This is an improvement &amp; bug fix release which includes +new database migrations and API methods, internal refactoring and updated +translations. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5 …</pre><p>We're happy to announce Kiwi TCMS version 7.2! +This is an improvement &amp; bug fix release which includes +new database migrations and API methods, internal refactoring and updated +translations. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +<p>Docker images:</p> +<pre class="literal-block"> +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 +</pre> +<div class="section" id="changes-since-kiwi-tcms-7-1"> +<h2>Changes since Kiwi TCMS 7.1</h2> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Base docker image to new CentOS 8</li> +<li>Update Django from 2.2.6 to 2.2.8</li> +<li>Update django-contrib-comments from 1.9.1 to 1.9.2</li> +<li>Update django-grappelli from 2.13.1 to 2.13.2</li> +<li>Update django-modern-rpc from 0.11.1 to 0.12.0</li> +<li>Update django-simple-history from 2.7.3 to 2.8.0</li> +<li>Update mysqlclient from 1.4.4 to 1.4.6</li> +<li>Update pygithub from 1.44 to 1.44.1</li> +<li>Update python-gitlab from 1.12.1 to 1.13.0</li> +<li>Several documentation updates</li> +</ul> +</div> +<div class="section" id="database-migrations"> +<h3>Database migrations</h3> +<ul class="simple"> +<li>Add new database fields <tt class="docutils literal">weight</tt>, <tt class="docutils literal">icon</tt> and <tt class="docutils literal">color</tt> to +<tt class="docutils literal">TestExecutionStatus</tt> and adjust existing code to work with them. +This is a necessary step before allowing customization of test execution +statuses, see +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/236">Issue #236</a></li> +</ul> +</div> +<div class="section" id="api"> +<h3>API</h3> +<ul class="simple"> +<li>RPC method <tt class="docutils literal">TestExecution.add_comment()</tt> now requires +<tt class="docutils literal">django_comments.add_comment</tt> permission</li> +<li>Add new RPC method <tt class="docutils literal">TestExecution.remove_comment()</tt></li> +<li>Add new RPC method <tt class="docutils literal">TestCase.add_comment()</tt></li> +<li>Add new RPC method <tt class="docutils literal">TestCase.remove_comment()</tt></li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li><tt class="docutils literal">testplans.views.DeleteCasesView</tt> now requires <tt class="docutils literal">testplans.change_testplan</tt> +permission (Svetlomir Balevski)</li> +<li><tt class="docutils literal">testplans.views.ReorderCasesView</tt> now requires <tt class="docutils literal">testplans.change_testplan</tt> +permission (Svetlomir Balevski)</li> +<li>Fix counting bug in execution trends telemetry</li> +<li>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</li> +<li>Fix broken bulk menu in TestRun page when (translated) status names +are too long</li> +<li>Automatically expand TestExecution comment history if there are comments +present. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/349">Issue #349</a> (Matt Porter)</li> +<li>Document timezone settings and show current server time in navbar. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1206">Issue #1206</a></li> +<li>Check for permissions in HTML template. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/961">Issue #961</a></li> +<li>Document bug tracker integration support. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/698">Issue #698</a></li> +<li>Delete comments when TestCase and TestExecution are removed. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1028">Issue #1028</a></li> +</ul> +</div> +<div class="section" id="refactoring"> +<h3>Refactoring</h3> +<ul class="simple"> +<li>Pylint fixes (Mariyan Garvanski)</li> +<li>Use <tt class="docutils literal">django.utils.timezone.now()</tt> instead of <tt class="docutils literal">datetime.now()</tt>. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/545">Issue #545</a></li> +<li>Use JSON-RPC instead of backend views when working with comments. Resolves +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/960">Issue #960</a></li> +<li>Remove <tt class="docutils literal">tcms.core.contrib.comments</tt> module. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/959">Issue #959</a></li> +<li>Remove <tt class="docutils literal">label=</tt> attribute from form field. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/652">Issue #652</a></li> +<li>Move and rename XML-RPC forms. Resolves +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/681">Issue #681</a></li> +<li>Convert <tt class="docutils literal">testplans.views.DeleteCasesView</tt> to JSON-RPC</li> +<li>Refactor more views from function based to class based</li> +<li>Remove duplicate JavaScript</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/bg#">Bulgarian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/zh-TW#">Chinese Traditional translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/fr#">French translation</a></li> +</ul> +</div> +</div> +<div class="section" id="important-changes"> +<h2>Important changes</h2> +<p>Soon Kiwi TCMS will switch from <em>OAuth</em> to <em>GitHub App</em> integration type with GitHub. +Login with your GitHub accounts will still be supported but you will also be +able to <em>INSTALL</em> Kiwi TCMS into your account/organization/repositories. +This will open the possibility for further integration with GitHub as expressed +in our <a class="reference external" href="/blog/atodorov/2019/01/10/project-mission-and-goals-for-2019/">roadmap for 2019</a>!</p> +<p>We are going to share more information when this becomes available.</p> +</div> +<div class="section" id="upcoming-conferences"> +<h2>Upcoming conferences</h2> +<p>The next two events we are going to participate are:</p> +<ul class="simple"> +<li><a class="reference external" href="https://www.devconf.info/cz/">DevConf.CZ, Jan 24-26, Brno</a> +where Anton Sankov will be a speaker</li> +<li><a class="reference external" href="/blog/kiwi-tcms-team/2019/11/26/kiwi-tcms-is-going-to-fosdem-2020/">FOSDEM, Feb 1-2, Brussels</a> +where you can meet with the entire team</li> +</ul> +<p>If you are around come and say &quot;Happy testing&quot;!</p> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p><a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">Backup</a> first! +If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +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 +</pre> +<p><strong>WHERE:</strong> <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> has been updated from your private git repository! +The file provided in our GitHub repository is an example. Not for production use!</p> +<p><strong>WARNING:</strong> <tt class="docutils literal">kiwitcms/kiwi:latest</tt> and <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> 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:</p> +<pre class="literal-block"> +# starting from an older Kiwi TCMS version +docker-compose down +docker pull kiwitcms/kiwi:&lt;next_upgrade_version&gt; +edit docker-compose.yml to use kiwitcms/kiwi:&lt;next_upgrade_version&gt; +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +# repeat until you have reached latest +</pre> +<p>Happy testing!</p> +</div> +Kiwi TCMS is going to FOSDEM 20202019-11-26T13:40:00+02:002019-11-26T13:40:00+02:00Kiwi TCMS Teamtag:None,2019-11-26:/blog/kiwi-tcms-team/2019/11/26/kiwi-tcms-is-going-to-fosdem-2020/<p><img src="/images/fosdem/oss_test_management_19.jpg" + alt="Stand at FOSDEM'19" + style="float:none"></p> +<p>Hello testers, Kiwi TCMS is going to <a href="http://fosdem.org/">FOSDEM 2020</a>. +This is where you can find us:</p> +<ul> +<li>Fri Jan 31st: <a href="https://fosdem.org/2020/beerevent/">after 18:00 @ Delirium Café</a> - + we are taking part of the FOSDEM Beer Event where all participants are invited. + <code>Shout out with #KiwiTCMS</code> on Twitter if you can't find us in …</li></ul><p><img src="/images/fosdem/oss_test_management_19.jpg" + alt="Stand at FOSDEM'19" + style="float:none"></p> +<p>Hello testers, Kiwi TCMS is going to <a href="http://fosdem.org/">FOSDEM 2020</a>. +This is where you can find us:</p> +<ul> +<li>Fri Jan 31st: <a href="https://fosdem.org/2020/beerevent/">after 18:00 @ Delirium Café</a> - + we are taking part of the FOSDEM Beer Event where all participants are invited. + <code>Shout out with #KiwiTCMS</code> on Twitter if you can't find us in the crowd</li> +<li>Sat Feb 1st: + <a href="https://fosdem.org/2020/schedule/track/testing_and_automation/">Testing and Automation devroom</a> - + we are proud to be co-hosting this devroom together with Linaro and SUSE. + CfP is open until Dec 10th 2019. Apply <a href="https://fosdem-testingautomation.github.io/">here</a>!</li> +<li>Sun Feb 2nd: <a href="https://fosdem.org/2020/stands/">Open Source Test Management stand</a> - + we will be together with our friends from SystemTestPortal and we are preparing + some real black-box testing for you!</li> +</ul> +<p>We would like to meet with all of you and talk about software testing, test management and +test process organization. In case you are stuck for crazy ideas checkout +<a href="/blog/atodorov/2019/01/10/project-mission-and-goals-for-2019/">our project mission</a> for inspiration.</p> +<p><small><em>Picture: FOSDEM'19 with Kiwi TCMS, ReportPortal &amp; SystemTestPortal</em></small></p> +<p>Happy testing!</p>How to override bug details in Kiwi TCMS2019-11-11T11:11:00+02:002019-11-11T11:11:00+02:00Alexander Todorovtag:None,2019-11-11:/blog/atodorov/2019/11/11/how-to-override-bug-details-in-kiwi-tcms/<p>Starting with version 7.0 Kiwi TCMS pages displaying URLs to bugs also +contain an info icon which shows additional information as tooltip. These +are designed to provide more contextual information about the bug. By default +the tooltip shows the OpenGraph metadata for that URL. This article +will explain how …</p><p>Starting with version 7.0 Kiwi TCMS pages displaying URLs to bugs also +contain an info icon which shows additional information as tooltip. These +are designed to provide more contextual information about the bug. By default +the tooltip shows the OpenGraph metadata for that URL. This article +will explain how to override this in 2 different ways.</p> +<p><img src="/images/testcase_shows_bug_details.png" alt="bug details shown" style="float:none"></p> +<h2>Option #1: using the caching layer</h2> +<p>Additional bug information is cached on the application layer. The cache +key is the bug URL! By default Kiwi TCMS uses local-memory caching which +isn't accessible for external processes but can be reconfigured very easily. +This example changes the <code>CACHES</code> setting to use a directory on the +file system like so</p> +<div class="highlight"><pre><span></span><code><span class="n">CACHES</span> <span class="o">=</span> <span class="p">{</span> + <span class="s1">&#39;default&#39;</span><span class="p">:</span> <span class="p">{</span> + <span class="s1">&#39;BACKEND&#39;</span><span class="p">:</span> <span class="s1">&#39;django.core.cache.backends.filebased.FileBasedCache&#39;</span><span class="p">,</span> + <span class="s1">&#39;LOCATION&#39;</span><span class="p">:</span> <span class="s1">&#39;/tmp/kiwi-cache&#39;</span><span class="p">,</span> + <span class="s1">&#39;TIMEOUT&#39;</span><span class="p">:</span> <span class="mi">3600</span><span class="p">,</span> + <span class="p">}</span> +<span class="p">}</span> +</code></pre></div> + + +<p>Then you need to poll your 3rd party bug tracker (and/or other systems) and +update the cache for each URL</p> +<div class="highlight"><pre><span></span><code><span class="kn">from</span> <span class="nn">django.core.cache</span> <span class="kn">import</span> <span class="n">cache</span> +<span class="kn">from</span> <span class="nn">tcms.core.contrib.linkreference.models</span> <span class="kn">import</span> <span class="n">LinkReference</span> + +<span class="k">for</span> <span class="n">reference</span> <span class="ow">in</span> <span class="n">LinkReference</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">is_defect</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span> + <span class="c1"># possibly filter objects coming only from your own bug tracker</span> + <span class="c1"># in case there are multiple trackers in use</span> + + <span class="c1"># custom methods to grab more information. Must return strings</span> + <span class="n">title</span> <span class="o">=</span> <span class="n">fetch_title_from_bug_tracker</span><span class="p">(</span><span class="n">reference</span><span class="o">.</span><span class="n">url</span><span class="p">)</span> + <span class="n">description</span> <span class="o">=</span> <span class="n">fetch_description_from_bug_tracker</span><span class="p">(</span><span class="n">reference</span><span class="o">.</span><span class="n">url</span><span class="p">)</span> + + <span class="c1"># store the information in Kiwi TCMS cache</span> + <span class="n">cache</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">reference</span><span class="p">,</span> <span class="p">{</span><span class="s1">&#39;title&#39;</span><span class="p">:</span> <span class="n">title</span><span class="p">,</span> <span class="s1">&#39;description&#39;</span><span class="p">:</span> <span class="n">description</span><span class="p">})</span> +</code></pre></div> + + +<p>Then execute the Python script above regularly. For example use the following +as your cron script</p> +<div class="highlight"><pre><span></span><code><span class="ch">#!/bin/bash</span> +<span class="nb">export</span> <span class="nv">VIRTUAL_ENV</span><span class="o">=</span>/venv +<span class="nb">export</span> <span class="nv">PATH</span><span class="o">=</span>/venv/bin:<span class="si">${</span><span class="nv">PATH</span><span class="si">}</span> +cat /path/to/cache_updater.py <span class="p">|</span> /Kiwi/manage.py shell +</code></pre></div> + + +<p><img src="/images/testcase_shows_bug_details_cache.png" alt="bug details from customized cache" style="float:none"></p> +<p><strong>IMPORTANT</strong></p> +<ul> +<li>Kiwi TCMS expires cache entries after an hour. Either change + the <code>TIMEOUT</code> setting shown above or run your script more frequently</li> +<li>How to modify default Kiwi TCMS settings is documented + <a href="https://kiwitcms.readthedocs.io/en/latest/installing_docker.html#customization">here</a></li> +<li>The Python + Bash scripts above don't need to be on the same system where Kiwi TCMS + is hosted. However they need the same Python 3 virtualenv and cache settings as + Kiwi TCMS does</li> +<li>Information about Django's cache framework and available backends + can be found <a href="https://docs.djangoproject.com/en/2.2/topics/cache/">here</a></li> +<li><code>memcached</code> is a supported cache backend option, see + <a href="https://docs.djangoproject.com/en/2.2/topics/cache/#memcached">here</a></li> +<li><a href="https://pypi.org/project/django-elasticache/">django-elasticache</a> is a + backend for Amazon ElastiCache which provides several configuration examples</li> +<li>Both <a href="https://github.com/niwinz/django-redis">django-redis</a> and + <a href="https://github.com/sebleier/django-redis-cache">django-redis-cache</a> are good + libraries which support Redis</li> +<li>Any 3rd party libraries must be <code>pip3 install</code>-ed into your own docker image</li> +</ul> +<h2>Option #2: extend bug tracker integration</h2> +<p>Let's say you are already running a customized Docker image of Kiwi TCMS. Then +you may opt-in to extend the existing bug tracker integration code which provides +the information shown in the tooltip. In this example I've extended the +<code>KiwiTCMS</code> bug tracker implementation but you can even provide your own from +scratch</p> +<div class="highlight"><pre><span></span><code><span class="k">class</span> <span class="nc">ExtendedBugTracker</span><span class="p">(</span><span class="n">KiwiTCMS</span><span class="p">):</span> + <span class="k">def</span> <span class="nf">details</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">url</span><span class="p">):</span> + <span class="n">result</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">details</span><span class="p">(</span><span class="n">url</span><span class="p">)</span> + + <span class="n">result</span><span class="p">[</span><span class="s1">&#39;title&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;EXTENDED: &#39;</span> <span class="o">+</span> <span class="n">result</span><span class="p">[</span><span class="s1">&#39;title&#39;</span><span class="p">]</span> + <span class="n">result</span><span class="p">[</span><span class="s1">&#39;description&#39;</span><span class="p">]</span> <span class="o">+=</span> <span class="s1">&#39;&lt;h1&gt;IMPORTANT&lt;/h1&gt;&#39;</span> + + <span class="k">return</span> <span class="n">result</span> +</code></pre></div> + + +<p>Then import the new <code>ExtendedBugTracker</code> class inside +<code>tcms/issuetracker/types.py</code> like so</p> +<div class="highlight"><pre><span></span><code><span class="gh">index 9ad90ac..2c76621 100644</span> +<span class="gd">--- a/tcms/issuetracker/types.py</span> +<span class="gi">+++ b/tcms/issuetracker/types.py</span> +<span class="gu">@@ -17,6 +17,9 @@ from django.conf import settings</span> + + from tcms.issuetracker.base import IssueTrackerType + from tcms.issuetracker.kiwitcms import KiwiTCMS # noqa +<span class="gi">+from tcms.issuetracker.kiwitcms import ExtendedBugTracker</span> +</code></pre></div> + + +<p>and change the bug tracker type, via https://tcms.example.com/admin/testcases/bugsystem/, +to <em>ExtendedBugTracker</em>.</p> +<p><img src="/images/testcase_shows_bug_details_extended.png" alt="bug details extended internally" style="float:none"></p> +<p><strong>IMPORTANT</strong></p> +<ul> +<li><em>ExtendedBugTracker</em> may live anywhere on the filesystem but Python must be + able to import it</li> +<li>It is best to bundle all of your customizations into a Python package and + <code>pip3 install</code> it into your customized docker image</li> +<li><em>ExtendedBugTracker</em> must be imported into <code>tcms/issuetracker/types.py</code> in order + for the admin interface and other functions to find it. You may also place the + import at the bottom of <code>tcms/issuetracker/types.py</code></li> +<li>API documentation for bug tracker integration can be found + <a href="https://kiwitcms.readthedocs.io/en/latest/modules/tcms.issuetracker.html">here</a></li> +<li>Rebuilding the docker image is outside the scope of this article. Have a look + at this + <a href="https://github.com/MrSenko/kiwitcms-enterprise/blob/master/Dockerfile">Dockerfile</a> + for inspiration</li> +</ul> +<p><strong>NOTE:</strong> starting with <a href="/blog/kiwi-tcms-team/2020/07/10/kiwi-tcms-85/">Kiwi TCMS v8.5</a> +external bug tracker integration classes are listed in the <code>EXTERNAL_BUG_TRACKERS</code> +setting. If you are using v8.5 or newer instead of +importing <code>ExtendedBugTracker</code> in <code>tcms/issuetracker/types.py</code> you should +override the list of available bug tracker integrations:</p> +<div class="highlight"><pre><span></span><code><span class="n">EXTERNAL_BUG_TRACKERS</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s1">&#39;mymodule.ExtendedBugTracker&#39;</span><span class="p">)</span> +</code></pre></div> + + +<p>Happy testing!</p>Kiwi TCMS 7.12019-10-29T13:40:00+02:002019-10-29T13:40:00+02:00Kiwi TCMS Teamtag:None,2019-10-29:/blog/kiwi-tcms-team/2019/10/29/kiwi-tcms-71/<p>We're happy to announce Kiwi TCMS version 7.1! +This is a small improvement update which includes +database schema and API changes, several other improvements, +internal refactoring and updated translations. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 …</pre><p>We're happy to announce Kiwi TCMS version 7.1! +This is a small improvement update which includes +database schema and API changes, several other improvements, +internal refactoring and updated translations. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +<p>Docker images:</p> +<pre class="literal-block"> +kiwitcms/kiwi latest c8cf36ac5ca5 602 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 +</pre> +<div class="section" id="changes-since-kiwi-tcms-7-0"> +<h2>Changes since Kiwi TCMS 7.0</h2> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update django from 2.2.5 to 2.2.6</li> +<li>Update python-gitlab from 1.11.0 to 1.12.1</li> +<li>Update pygithub from 1.43.8 to 1.44</li> +<li>Update psycopg2 from 2.8.3 to 2.8.4</li> +<li>Add help tooltips in all telemetry pages</li> +<li>Better styling for checkboxes in 'Add hyperlink' dialog, +part of TestRun page</li> +<li>Add hyperlink validation. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1147">Issue #1147</a></li> +</ul> +</div> +<div class="section" id="database-migrations"> +<h3>Database migrations</h3> +<ul class="simple"> +<li>Add <tt class="docutils literal">bugs</tt> permissions to <tt class="docutils literal">Tester</tt> group. Will make any difference +only if upgrading from existing installation</li> +</ul> +</div> +<div class="section" id="api"> +<h3>API</h3> +<ul class="simple"> +<li>New method <tt class="docutils literal">Bug.remove()</tt></li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Always build with the latest versions of translations</li> +<li>Add 'Delete' menu item in Bugs page. Fixes #1153 +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1154">Issue #1153</a></li> +<li>When deleting hyperlink from TestExecution hide the actual UI +elements from the page</li> +<li>Fix failure to delete TCs when the number of TCs inside TP is greater +than 100. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1149">Issue #1149</a> and +<a class="reference external" href="https://sentry.io/organizations/open-technologies-bulgaria-ltd/issues/1245504316/">Sentry KIWI-TCMS-8F</a></li> +</ul> +</div> +<div class="section" id="refactoring"> +<h3>Refactoring</h3> +<ul class="simple"> +<li>Rename directory <tt class="docutils literal">xmlrpc</tt> to <tt class="docutils literal">rpc</tt> and pylint updates. Refs +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/682">Issue #682</a> +(Matej Aleksandrov, Sinergise)</li> +<li>Remove labels from form fields, Refs +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/652">Issue #652</a> (Azmi YÜKSEL)</li> +<li>New base class for tests around permissions (Svetlomir Balevski)</li> +<li>New &quot;blueprint&quot; test case around permissions to make testing in this area more +robust</li> +<li>Refactor many views from function based to class based</li> +<li>Update stale tests in <tt class="docutils literal">tcms/core/tests/</tt> and make sure they aren't ignored +by the test runner</li> +<li>Remove empty class <tt class="docutils literal">XMLRPCBaseCaseForm</tt></li> +<li>Remove <tt class="docutils literal">XMLRPCNewCaseForm</tt>, duplicate of <tt class="docutils literal">NewCaseForm</tt></li> +<li>Remove <tt class="docutils literal">rpc.forms.UpdateCaseForm</tt> in favor of <tt class="docutils literal">XMLRPCUpdateCaseForm</tt></li> +<li>Update only English sources with new strings as a temporary workaround b/c +Crowdin uses different formatting heuristics than gettext. This will minimize +the number of .po format changes</li> +<li>A few pylint fixes</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sq#">Albanian translation</a> - 97%</li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/bg#">Bulgarian translation</a> - 91%</li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/zh-CN#">Chinese Simplified</a> - 71%</li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/el#">Greek translation</a> - 44%</li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/it#">Italian translation</a> - 97%</li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/ja#">Japanese translation</a> - 0%</li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/mk#">Macedonian translation</a> - 11%</li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/ru#">Russian translation</a> - 97%</li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a> - 100%</li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/es-ES#">Spanish translation</a> - 96%</li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/tr#">Turkish translation</a> - 97%</li> +</ul> +</div> +</div> +<div class="section" id="acknowledgments"> +<h2>Acknowledgments</h2> +<p>A special &quot;thank you&quot; goes to our friends from +<a class="reference external" href="https://pyconbalkan.com/">PyCon Balkan</a> in Belgrade who allowed us to host +an open source coding sprint in Belgrade during the conference!</p> +<p>A second &quot;thank you&quot; goes to +<a class="reference external" href="https://openlabs.cc/en/">Open Labs Hackerspace</a> who hosted a localization +sprint in Tirana and contributed to several different languages!</p> +<p>Thank you for being part of our community. Version 7.1 includes all of your +contributions.</p> +</div> +<div class="section" id="website-updates"> +<h2>Website updates</h2> +<p>We're using the opportunity to share that website is now serving via SSL courtesy +of GitHub and Let's encrypt.</p> +<p>Our main page has also been updated to showcase some of our customers: +Better (Slovenia), Minds, Inc. (USA), Musala Soft (Bulgaria). If you would like to +feature your corporate logo and tell us how you use Kiwi TCMS then +drop us an email!</p> +</div> +<div class="section" id="upcoming-conferences"> +<h2>Upcoming conferences</h2> +<p>The next two events we are going to participate are:</p> +<ul class="simple"> +<li><a class="reference external" href="http://www.openfest.org/">OpenFest, Nov 2-3, Sofia</a> +where we will have an info booth</li> +<li><a class="reference external" href="https://www.istacon.org/">ISTA Conference, Nov 14-15, Sofia</a> +where you can meet with Alex Todorov and some of our contributors and +customers</li> +</ul> +<p>If you are around come and say &quot;Happy testing&quot;!</p> +</div> +<div class="section" id="upcoming-fosdem-2020"> +<h2>Upcoming FOSDEM 2020</h2> +<p>We are happy to announce that our team, together with SUSE and Linaro will be +hosting the +<a class="reference external" href="http://fosdem-testingautomation.github.io/">Testing and Automation Developer Room</a> +at FOSDEM in Brussels next February.</p> +<p>Call for papers is open until December 10th 2019. Anything related to +software testing and open source is welcome. Apply from the link above.</p> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p><a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">Backup</a> first! +If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +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 +</pre> +<p><strong>WHERE:</strong> <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> has been updated from your private git repository! +The file provided in our GitHub repository is an example. Not for production use!</p> +<p><strong>WARNING:</strong> <tt class="docutils literal">kiwitcms/kiwi:latest</tt> and <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> 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:</p> +<pre class="literal-block"> +# starting from an older Kiwi TCMS version +docker-compose down +docker pull kiwitcms/kiwi:&lt;next_upgrade_version&gt; +edit docker-compose.yml to use kiwitcms/kiwi:&lt;next_upgrade_version&gt; +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +# repeat until you have reached latest +</pre> +<p>Happy testing!</p> +</div> +Kiwi TCMS 7.02019-09-24T10:30:00+03:002019-09-24T10:30:00+03:00Kiwi TCMS Teamtag:None,2019-09-24:/blog/kiwi-tcms-team/2019/09/24/kiwi-tcms-70/<p>We're happy to announce Kiwi TCMS version 7.0! +This is a major release which includes security updates, +significant database schema and API changes, many improvements, +removed functionality, bug fixes, substantial internal refactoring and +several new languages. You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>!</p> +<p>The 7.0 …</p><p>We're happy to announce Kiwi TCMS version 7.0! +This is a major release which includes security updates, +significant database schema and API changes, many improvements, +removed functionality, bug fixes, substantial internal refactoring and +several new languages. You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>!</p> +<p>The 7.0 version number happily coincides with the fact that we've surpassed +70000 downloads from <a class="reference external" href="https://hub.docker.com/r/kiwitcms/kiwi/">Docker Hub</a>.</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +<p>Docker images:</p> +<pre class="literal-block"> +kiwitcms/kiwi latest d34dc6d896bf 584 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 +</pre> +<div class="section" id="changes-since-kiwi-tcms-6-11"> +<h2>Changes since Kiwi TCMS 6.11</h2> +<div class="section" id="security"> +<h3>Security</h3> +<ul class="simple"> +<li>API method <tt class="docutils literal">BugSystem.filter()</tt> has been removed (now unused) but +it was possible to use this method to steal passwords or keys used for +Issue Tracker integration. This vulnerability could be exploited by +users logged into Kiwi TCMS and is classified as medium severity! +We advise you to change your integration API keys and passwords +immediately!</li> +</ul> +</div> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update Django from 2.2.4 to 2.2.5</li> +<li>Update django-uuslug from 1.1.8 to 1.1.9</li> +<li>Update mysqlclient from 1.4.2.post1 to 1.4.4</li> +<li>Update python-bugzilla from 2.2.0 to 2.3.0</li> +<li>Update python-gitlab from 1.10.0 to 1.11.0</li> +<li>Update patternfly from 3.59.3 to 3.59.4</li> +<li>Reduce docker image size from 1.01 GB to under 600 MB</li> +<li>Add TestCase Health telemetry</li> +<li>Add support for Redmine issue tracker. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/41">Issue #41</a> (Jesse C. Lin)</li> +<li>Add breathing room around HTML form's submit buttons (Rady Madjev)</li> +<li>New TestRun page action: bulk-add hyperlinks to TestExecution(s)</li> +<li>Make it possible to disable HTTPS by specifying the +<tt class="docutils literal">KIWI_DONT_ENFORCE_HTTPS</tt> environment variable! Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1036">Issue #1036</a> (Marco Descher)</li> +<li>Documentation updates, including internal style checker. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1000">Issue #1000</a> (Prome88)</li> +<li>When linking a TestExecution to a defect and choosing to update the +Issue Tracker Kiwi TCMS will not add a comment pointing back to +TR ID/summary/URL and TE ID/summary. This provides more detailed information +about the reproducer instead of just linking to a TestCase without any +specific execution details like we did in the past</li> +<li>Display additional defect information via Issue Tracker integration. +On Patternfly pages which show defect URLs this is accessible via a +small info icon. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/117">Issue #117</a></li> +<li>Add minimalistic defect tracker functionality. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/699">Issue #699</a><ul> +<li>integrated with Issue Tracker integration layer as if it was +an external system</li> +<li>when adding hyperlink to TestExecition (also via API method +<tt class="docutils literal">TestExecution.add_link()</tt>) this is special cased and the +references between <tt class="docutils literal">Bug</tt> and <tt class="docutils literal">TestExecution</tt> are always updated</li> +<li>when clicking 'Report bug' from inside Test Execution the new +defect is reported automatically and a new browser window opens to +display the information</li> +</ul> +</li> +</ul> +</div> +<div class="section" id="database-migrations"> +<h3>Database migrations</h3> +<ul> +<li><p class="first">Tell the migration planner to apply +<tt class="docutils literal">testruns.0006_rename_test_case_run_to_test_execution</tt> after +<tt class="docutils literal">linkreference.0001_squashed</tt>. This enables subsequent migrations +and new functionality to be applied without crashing.</p> +<blockquote> +<div class="admonition warning"> +<p class="first admonition-title">Warning</p> +<p class="last">Django should be able to handle this automatically both for +existing installations and for new ones. In any case make sure +you backup your data first and make a dry-run to verify that +nothing breaks!</p> +</div> +</blockquote> +</li> +<li><p class="first">Remove fields <tt class="docutils literal">url_reg_exp</tt>, <tt class="docutils literal">validate_reg_exp</tt> and <tt class="docutils literal">description</tt> from +<tt class="docutils literal">BugSystem</tt> model</p> +</li> +<li><p class="first">Update the following fields in <tt class="docutils literal">LinkReference</tt> model:</p> +<ul class="simple"> +<li>rename <tt class="docutils literal">test_case_run</tt> to <tt class="docutils literal">execution</tt></li> +<li>add indexing for <tt class="docutils literal">created_on</tt> and <tt class="docutils literal">url</tt></li> +<li>add <tt class="docutils literal">is_defect</tt> field</li> +</ul> +</li> +<li><p class="first">Apply <tt class="docutils literal">LinkReference</tt> permissions to default group <tt class="docutils literal">Tester</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/881">Issue #881</a></p> +<blockquote> +<div class="admonition warning"> +<p class="first admonition-title">Warning</p> +<p class="last">Administrators of existing applications will need to +apply these permissions by hand via the Admin section.</p> +</div> +</blockquote> +</li> +<li><p class="first">Remove <tt class="docutils literal">testcases.Bug</tt> model, replaced with <tt class="docutils literal">LinkReference</tt>. +Closes <a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1029">Issue #1029</a> and +obsoletes <a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/320">Issue #320</a>.</p> +<blockquote> +<div class="admonition note"> +<p class="first admonition-title">Note</p> +<p class="last">Linking bugs to TestExecution is now performed via URLs instead of +keeping a reference to BUG-ID and trying to reconstruct the URL +on the fly.</p> +</div> +<div class="admonition warning"> +<p class="first admonition-title">Warning</p> +<p class="last">The model named <tt class="docutils literal">Bug</tt> which is added by subsequent migrations +refers to defects reported into Kiwi TCMS minimalistic defect tracker!</p> +</div> +</blockquote> +</li> +<li><p class="first">New model <tt class="docutils literal">bugs.Bug</tt> is now available. Permissions of type +<tt class="docutils literal">bugs | bug | Can ...</tt> will be applied to the default group named +<tt class="docutils literal">Tester</tt> only for new installations.</p> +<blockquote> +<div class="admonition warning"> +<p class="first admonition-title">Warning</p> +<p class="last">Administrators of existing applications will need to +apply these permissions by hand via the Admin section.</p> +</div> +</blockquote> +</li> +</ul> +</div> +<div class="section" id="api"> +<h3>API</h3> +<ul class="simple"> +<li><tt class="docutils literal">TestExecution.add_link()</tt> method now returns serialized +<tt class="docutils literal">LinkReference</tt> object.</li> +<li><tt class="docutils literal">TestExecution.remove_link()</tt> method now accepts one parameter of type +<tt class="docutils literal">dict</tt> used to filter the objects which to remove</li> +<li><tt class="docutils literal">TestExecution.get_links()</tt> method now accepts one parameter of type +<tt class="docutils literal">dict</tt> instead of <tt class="docutils literal">int</tt></li> +<li><tt class="docutils literal">TestExecution.add_link()</tt> method signature changed from +(int, str, str) to (dict), where the single parameter holds field values for +the <tt class="docutils literal">LinkReference</tt> model</li> +<li>Remove <tt class="docutils literal">TestExecution.add_bug()</tt> method, use <tt class="docutils literal">TestExecution.add_link()</tt></li> +<li>Remove <tt class="docutils literal">TestExecution.remove_bug()</tt> method, use +<tt class="docutils literal">TestExecution.remove_link()</tt></li> +<li>Remove <tt class="docutils literal">TestCase.add_bug()</tt> method</li> +<li>Remove <tt class="docutils literal">TestCase.remove_bug()</tt> method</li> +<li>Remove <tt class="docutils literal">Bug.remove()</tt> method, use <tt class="docutils literal">TestExecution.remove_link()</tt></li> +<li>Remove <tt class="docutils literal">Bug.create()</tt> method, use <tt class="docutils literal">TestExecution.add_link()</tt></li> +<li>Add method <tt class="docutils literal">Bug.details()</tt> which together with the underlying +<tt class="docutils literal">IssueTracker.details()</tt> is the foundation of how Kiwi TCMS fetches +extra details from the issue tracking system. The default implementation +uses OpenGraph protocol to collect the data that will be shown. You may +override <tt class="docutils literal">.details()</tt> for each issue tracker (or add your own IT) to +extend this functionality. Information is cached for 1 hour by default. +References +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/117">Issue #117</a></li> +<li>Add methods <tt class="docutils literal">Bug.add_tag()</tt> and <tt class="docutils literal">Bug.remove_tag()</tt></li> +<li>Existing method with name <tt class="docutils literal">Bug.filter()</tt> has changed behavior. It is +now used to query objects from Kiwi TCMS minimalistic defect tracker</li> +</ul> +</div> +<div class="section" id="removed-functionality"> +<h3>Removed functionality</h3> +<ul class="simple"> +<li>Remove <tt class="docutils literal">IssueTrackerType.all_issues_link()</tt> method. This was used in +TestRun Report page to show a single link that will open all bugs in the +Issue Tracker. Most trackers don't support this and the UI portion has +been rewritten</li> +<li>Remove <tt class="docutils literal">LinkOnly</tt> issue tracker - obsolete because all defects are +now added to TestExecutions via their URLs</li> +<li>Remove bulk-add/bulk-remove of bugs in TestRun page, replaced by bulk-add +for hyperlinks</li> +</ul> +</div> +<div class="section" id="settings"> +<h3>Settings</h3> +<ul class="simple"> +<li>Respect the <tt class="docutils literal">CACHES</tt> setting, see +<a class="reference external" href="https://docs.djangoproject.com/en/2.2/ref/settings/#std:setting-CACHES">Django docs</a> +for more info. Initially this setting is used to cache defect details received +via Issue Tracker integration. See +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/117">Issue #117</a></li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Don't auto-download FontAwesome for SimpleMDE. Resolves icons disappearing +on pages which have the markdown editor. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/905">Issue #905</a></li> +<li>Reorder HTML elements so Delete button is still visible in TestCase review +comment section. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1013">Issue #1013</a> (Rady Madjev)</li> +<li>Remove section that displays bugs in TestExecution container. Bugs are now +denoted by a small icon next to their hyperlink. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/475">Issue #475</a></li> +<li>Cache Issue Tracker connections per <tt class="docutils literal">base_url</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/290">Issue #290</a></li> +</ul> +</div> +<div class="section" id="refactoring"> +<h3>Refactoring</h3> +<ul class="simple"> +<li>Lots of refactoring from function based views to class based views (Rady Madjev)</li> +<li>Use JavaScript and the API to remove case execution instead of dedicated +backend function (Rady Madjev)</li> +<li>Update pylint directives around missing permissions (Svetlomir Balevski)</li> +<li>Fix typo in identifier. Fixes +<a class="reference external" href="https://scan4.coverity.com/reports.htm#v38579/p14953/fileInstanceId=65904319&amp;defectInstanceId=11526612&amp;mergedDefectId=344186&amp;eventId=1">CID 344186</a></li> +<li>Use <tt class="docutils literal">TestExecution.add_link()</tt> and <tt class="docutils literal">TestExecution.remove_link()</tt> in UI +instead of dedicated backend function.</li> +<li>Remove unused LinkReference views, forms and tests modules</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Introduce a translation mode where you can translate the interface via +in-context editor. For more information see +<a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/contribution.html#translation">Translation guide</a>. +Fixes <a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1098">Issue #1098</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sq#">Albanian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/bg#">Bulgarian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/zh-TW#">Chinese Traditional translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/fr#">French translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/el#">Greek translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/it#">Italian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/tr#">Turkish translation</a></li> +</ul> +<p>For more information check-out +<a class="reference external" href="https://crowdin.com/project/kiwitcms">all supported languages</a>. +To request new language +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/new?title=Request+new+language:+...&amp;body=Please+enable+...+language+in+Crowdin">click here</a>!</p> +</div> +</div> +<div class="section" id="junit-xml-plugin-v0-4"> +<h2>junit.xml-plugin v0.4</h2> +<p>A few days ago we have also released +<a class="reference external" href="https://github.com/kiwitcms/junit.xml-plugin">kiwitcms-junit.xml-plugin</a> +v0.4 with the following changes:</p> +<ul class="simple"> +<li>Update junitparser from 1.3.2 to 1.3.4</li> +<li>Also support XML files with &lt;testsuites&gt; root tag (Katalon Studio). Fixes +<a class="reference external" href="https://github.com/kiwitcms/junit.xml-plugin/issues/9">Issue #9</a></li> +</ul> +</div> +<div class="section" id="tap-plugin-v0-4"> +<h2>tap-plugin v0.4</h2> +<p>We have also released +<a class="reference external" href="https://github.com/kiwitcms/tap-plugin">kiwitcms-tap-plugin</a> +v0.4 with the following changes:</p> +<ul class="simple"> +<li>Include traceback from TAP file as TestExecution comment. Fixes +<a class="reference external" href="https://github.com/kiwitcms/tap-plugin/issues/7">Issue #7</a> +(Christophe CHAUVET)</li> +</ul> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p><a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">Backup</a> first! +If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +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 +</pre> +<p><strong>WHERE:</strong> <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> has been updated from your private git repository! +The file provided in our GitHub repository is an example. Not for production use!</p> +<p><strong>WARNING:</strong> <tt class="docutils literal">kiwitcms/kiwi:latest</tt> and <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> 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:</p> +<pre class="literal-block"> +# starting from an older Kiwi TCMS version +docker-compose down +docker pull kiwitcms/kiwi:&lt;next_upgrade_version&gt; +edit docker-compose.yml to use kiwitcms/kiwi:&lt;next_upgrade_version&gt; +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +# repeat until you have reached latest +</pre> +<p>Happy testing!</p> +</div> +Open source sprints at PyCon Balkan in Belgrade2019-09-03T12:46:00+03:002019-09-03T12:46:00+03:00Kiwi TCMS Teamtag:None,2019-09-03:/blog/kiwi-tcms-team/2019/09/03/open-source-sprints-at-pycon-balkan-in-belgrade/<p>Next month our team will be at +<a href="https://pyconbalkan.com/">PyCon Balkan, Oct 3-5</a> in Belgrade. Together with +presentation and a workshop we are going to host open source sprints! +These will be an informal gathering where participants will be able to +learn more about how open source works and go through their …</p><p>Next month our team will be at +<a href="https://pyconbalkan.com/">PyCon Balkan, Oct 3-5</a> in Belgrade. Together with +presentation and a workshop we are going to host open source sprints! +These will be an informal gathering where participants will be able to +learn more about how open source works and go through their first +contributions. This is ideal for students and less experienced people +but we welcome everyone. There will be tasks ranging from easy to very hard!</p> +<p><strong>Who:</strong> 4 mentors from Kiwi TCMS and you!</p> +<p><strong>What:</strong> full day of peer programming and contributing to Kiwi TCMS</p> +<p><strong>Where:</strong> room will be announced on the days of the conference, + follow <a href="https://twitter.com/KiwiTCMS">@KiwiTCMS</a> for more info</p> +<p><strong>Why:</strong> up your tech skills, build your GitHub profile and have fun together</p> +<h2>Translate Kiwi TCMS</h2> +<p>Difficulty: easy</p> +<p>We have enabled Serbian language in our translation system. To get started +checkout our +<a href="https://kiwitcms.readthedocs.io/en/latest/contribution.html#translation">translation contribution</a> +page. +Once strings are translated <code>kiwitcms-bot</code> will automatically open a pull +request with the new text.</p> +<h2>Find unused CSS classes</h2> +<p>Difficulty: easy</p> +<p>This should be relatively easy. For each class/selector defined in our CSS files +search (grep) if any of the HTML templates use it. If it is not in use then remove +it.</p> +<h2>Find unused JavaScript code</h2> +<p>Difficulty: easy</p> +<p>Similar to the above. We're not 100% certain but there could be legacy JavaScript +functions which are no longer in use. Find them and remove them! At the very least +you have confirmed that all functions are in use!</p> +<h2>CodeClimate Minor severity issues</h2> +<p>Difficulty: easy to moderate</p> +<p>Check-out the +<a href="https://codeclimate.com/github/kiwitcms/Kiwi/issues?severity%5B%5D=minor&amp;status%5B%5D=&amp;status%5B%5D=open&amp;status%5B%5D=confirmed&amp;engine_name%5B%5D=structure&amp;engine_name%5B%5D=duplication&amp;engine_name%5B%5D=bandit&amp;engine_name%5B%5D=csslint&amp;engine_name%5B%5D=fixme&amp;engine_name%5B%5D=radon&amp;engine_name%5B%5D=sonar-python">list of Minor severity issues</a>. +There are many of them:</p> +<ul> +<li>CSS lint issues (we suggest you start with this one)</li> +<li>functions longer than 25 lines of code</li> +<li>functions with bigger cognitive and cyclomatic complexity</li> +<li>modules longer than 250 LOC</li> +</ul> +<p>Try fixing a few to see how it goes and continue if you feel confident. +Not everything may be an issue so if you have any questions ask someone from our team.</p> +<h2>CodeClimate Major severity issues</h2> +<p>Difficulty: moderate to hard</p> +<p>Check-out the +<a href="https://codeclimate.com/github/kiwitcms/Kiwi/issues?severity%5B%5D=major&amp;status%5B%5D=&amp;status%5B%5D=open&amp;status%5B%5D=confirmed&amp;engine_name%5B%5D=structure&amp;engine_name%5B%5D=duplication&amp;engine_name%5B%5D=bandit&amp;engine_name%5B%5D=csslint&amp;engine_name%5B%5D=fixme&amp;engine_name%5B%5D=radon&amp;engine_name%5B%5D=sonar-python">list of Major severity issues</a>. +There are around 150 of them:</p> +<ul> +<li>identical and similar code blocks</li> +<li>big modules</li> +<li>big functions</li> +</ul> +<p>Most of these require some sort of refactoring, either splitting snippets +of code into smaller pieces (functions or sub-modules) or using one function +in several places instead of 2 very similar but different functions, etc. +Ask our team members about which approach they prefer for fixing these issues +to minimize the effort spent here.</p> +<h2>CodeClimate Critical severity issues</h2> +<p>Difficulty: hard</p> +<p>Check-out the +<a href="https://codeclimate.com/github/kiwitcms/Kiwi/issues?severity%5B%5D=critical&amp;status%5B%5D=&amp;status%5B%5D=open&amp;status%5B%5D=confirmed&amp;engine_name%5B%5D=structure&amp;engine_name%5B%5D=duplication&amp;engine_name%5B%5D=bandit&amp;engine_name%5B%5D=csslint&amp;engine_name%5B%5D=fixme&amp;engine_name%5B%5D=radon&amp;engine_name%5B%5D=sonar-python">list of Critical severity issues</a>. +All of these are functions with high cognitive complexity and +the recommended way to deal with them is refactoring into +<a href="https://docs.djangoproject.com/en/2.2/topics/class-based-views/">class based views</a>.</p> +<h2>Improve pylint health</h2> +<p>Difficulty: easy</p> +<p>Execute pylint against the latest sources and start fixing the issues. +Looking at <a href="https://travis-ci.org/kiwitcms/Kiwi/jobs/579167487">pylint logs</a> the +following items are relatively easy to work on:</p> +<ul> +<li>Everything in module tcms.urls</li> +<li>Everything in module tcms.telemetry.api</li> +<li>Everything in module tcms.testruns.tests.test_views</li> +<li>Everything in module tcms.xmlrpc.forms</li> +<li>Everything in module tcms.testcases.tests.test_models</li> +<li>Everything in module tcms.core.forms.fields</li> +<li>Everything in module tcms.settings.common</li> +<li>Everything in module tcms.settings.test</li> +<li>All <code>module-in-directory-without-init</code> errors reported for module tcms.tests.__init__</li> +</ul> +<p>Note: <code>fixme</code>, <code>missing-permission-required</code> and <code>avoid-auto-field</code> errors are usually harder +to resolve and will require more work/refactoring. If you feel confident go ahead and +fix them, if not skip to the next error message.</p> +<p>We also use a custom pylint checker which reports function based views. +If you are looking for something harder to work on, then give it a try +(see 3rd pylint line in <code>Makefile</code>) and refactor some of the existing +view functions into class based views.</p> +<h2>Fix 3rd party security issues discovered by Bandit</h2> +<p>Difficulty: moderate to hard</p> +<p>Bandit is a static analysis tool similar to pylint. It focuses on discovering +issues which may lead to security vulnerabilities. We have resolved all such +issues in our own source code but we also execute Bandit against the entire +Python dependency stack. There it finds thousands of issues, so much so that +the reporter crashes.</p> +<p><a href="https://travis-ci.org/kiwitcms/Kiwi/jobs/579167486">In CI</a> there are around +130 issues reported. The best course of action here is to execute Bandit locally +against the offending library and then figure out what to do:</p> +<ul> +<li>report an issue upstream</li> +<li>send a pull request upstream</li> +<li>if these are test files maybe exclude them from the package (e.g. don't ship them for production)</li> +</ul> +<p>Note: inside Travis CI we have all runtime and testing dependencies which is more +than what we have inside the official Docker image for Kiwi TCMS.</p> +<h2>Work on reported issues</h2> +<p>The following issues look suitable for a sprint and don't require lots of +background knowledge. You can also find them using the +<a href="https://github.com/kiwitcms/Kiwi/labels/PyConBalkan"><code>PyConBalkan</code></a> label on +GitHub:</p> +<ul> +<li><a href="https://github.com/kiwitcms/Kiwi/issues/212">#212</a> - moderate - Convert jQ to $ - + this is an easy search &amp; rename but will require more extensive manual testing</li> +<li><a href="https://github.com/kiwitcms/Kiwi/issues/431">#431</a> - moderate to hard - Remove JavaScript fireEvent() - + 17 matches in <code>static/js/</code>. Must be replaced with direct function calls</li> +<li><a href="https://github.com/kiwitcms/Kiwi/issues/652">#652</a> - easy - Removal of labels from form fields - + all labels must be included in the HTML template and marked for translation</li> +<li><a href="https://github.com/kiwitcms/Kiwi/issues/681">#681</a>, <a href="https://github.com/kiwitcms/Kiwi/issues/682">#682</a> - moderate - + Move API modules &amp; their tests from <code>xmlrpc/api/&lt;app&gt;.py</code> to <code>&lt;app&gt;/api.py</code>. These have good test + coverage so you have to make sure you don't break anything</li> +<li><a href="https://github.com/kiwitcms/Kiwi/issues/971">#971</a> - moderate - manage.py command for changing Site URL - + will help with automatic provisioning, e.g. Ansible. For howto see + <a href="https://docs.djangoproject.com/en/2.2/howto/custom-management-commands/">Django docs</a></li> +<li><a href="https://github.com/kiwitcms/Kiwi/issues/1021">#1021</a> - moderate - Update TestCase page UI to allow adding TestPlans to cases - + use <code>TestPlan.add_case()</code> API method and refresh the widget. See how Tags and Components cards work + in the same page</li> +<li><a href="https://github.com/kiwitcms/Kiwi/issues/1070">#1070</a> - moderate - manage.py command for checking email settings - + will help with troubleshooting misconfigured email. Must raise exceptions if something fails. + For howto see + <a href="https://docs.djangoproject.com/en/2.2/howto/custom-management-commands/">Django docs</a></li> +<li><a href="https://github.com/kiwitcms/Kiwi/issues/733">#733</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/736">#736</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/738">#738</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/883">#883</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/1089">#1089</a> - hard to very hard - New checkers for pylint - + Kiwi TCMS uses customized pylint checkers to discover various conditions. We need a few more + of them and/or update of the existing ones</li> +</ul> +<p>We hope to see you in Belgrade. Until then: Happy testing!</p>Kiwi TCMS conference presence, AW20192019-08-09T10:55:00+03:002019-08-09T10:55:00+03:00Kiwi TCMS Teamtag:None,2019-08-09:/blog/kiwi-tcms-team/2019/08/09/kiwi-tcms-conference-presence-aw2019/<p>Your favorite open source test case management system is going on tour again. +During the next several months we will be at:</p> +<ul> +<li><a href="https://www.facebook.com/events/647230689047274/">DEV.BG All in One, Aug 24, Sofia</a> + where we will have an info booth</li> +<li><a href="https://www.facebook.com/Tabara.de.Testare/">Tabara de Testare Meetup, Sept 25, Bucharest</a> + where Alex Todorov will join a …</li></ul><p>Your favorite open source test case management system is going on tour again. +During the next several months we will be at:</p> +<ul> +<li><a href="https://www.facebook.com/events/647230689047274/">DEV.BG All in One, Aug 24, Sofia</a> + where we will have an info booth</li> +<li><a href="https://www.facebook.com/Tabara.de.Testare/">Tabara de Testare Meetup, Sept 25, Bucharest</a> + where Alex Todorov will join a discussion panel. To be confirmed!</li> +<li><a href="https://seetest.org/">SEETEST, Sept 26-27, Bucharest</a> - + where you can meet with Alex Todorov and some of our community friends and contributors</li> +<li><a href="https://ruseconf.com/">RuseConf, Sept 28, Ruse</a> - + where Alex Todorov and our friend Gjore Zaharchev (Seavus, Macedonia) will host + 2 presentations</li> +<li><a href="https://www.meetup.com/testival/">Testival Meetup, Oct 1-2, Zagreb</a></li> +<li><a href="https://pyconbalkan.com/">PyCon Balkan, Oct 3-5, Belgrade</a> where:<ul> +<li>Alex Todorov will present <em>Extending your static analysis for fun and profit</em></li> +<li>Kiwi TCMS team will host open source prints for 1 or 2 days (more info soon)</li> +</ul> +</li> +<li><a href="https://pionir.zamphyr.com/">Quality Assurance According to Einstein, Oct 6, Kikinda</a> + where Alex Todorov will be meeting up with the local technical community as part of our + joint work with Zamphyr</li> +<li><a href="https://www.hackconf.bg/bg/">HackConf, Oct 11-13, Sofia</a> where:<ul> +<li>Rayna Stankova &amp; Ivaylo Ivanov will be hosting <em>Git for beginners</em> workshop</li> +<li>Anton Sankov &amp; Alex Todorov will be hosting <em>Python for beginners</em> workshop</li> +<li>you can use <strong>KIWITCMS</strong> discount code</li> +</ul> +</li> +<li><a href="https://www.testcon.lt/">TestCon Europe, Oct 15-17, Vilnius</a> + where Alex Todorov will present <em>Finding security issues in open source</em> + and <em>Extend your static analysis for fun and profit</em> (backup presentation + in case other speakers don't show up)</li> +<li><a href="https://2019.testwarez.pl/">TestWarez, Oct 24-25, Ossa (near Warsaw)</a>.</li> +<li><a href="http://www.openfest.org/">OpenFest, Nov 2-3, Sofia</a> + where we will have an info booth</li> +<li><a href="https://www.istacon.org/">ISTA Conference, Nov 14-15, Sofia</a> + where you can meet with Alex Todorov and some of our contributors and + customers</li> +</ul> +<p>Feel free to ping us at <a href="https://twitter.com/KiwiTCMS">@KiwiTCMS</a> or look for the +kiwi bird logo and come to say hi. Happy testing!</p>Kiwi TCMS 6.112019-08-02T09:40:00+03:002019-08-02T09:40:00+03:00Kiwi TCMS Teamtag:None,2019-08-02:/blog/kiwi-tcms-team/2019/08/02/kiwi-tcms-611/<p>We're happy to announce Kiwi TCMS version 6.11! +This is a security and improvement release which updates +many internal dependencies, adds 2 new Telemetry reports, updates +TestPlan and TestCase cloning pages and provides several other +improvements and bug fixes. You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org …</a></p><p>We're happy to announce Kiwi TCMS version 6.11! +This is a security and improvement release which updates +many internal dependencies, adds 2 new Telemetry reports, updates +TestPlan and TestCase cloning pages and provides several other +improvements and bug fixes. You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +<p>Docker images:</p> +<pre class="literal-block"> +kiwitcms/kiwi latest 6a8249d23a67 1.011 GB +kiwitcms/kiwi 6.2 7870085ad415 957.6 MB +kiwitcms/kiwi 6.1.1 49fa42ddfe4d 955.7 MB +kiwitcms/kiwi 6.1 b559123d25b0 970.2 MB +kiwitcms/kiwi 6.0.1 87b24d94197d 970.1 MB +kiwitcms/kiwi 5.3.1 a420465852be 976.8 MB +</pre> +<div class="section" id="changes-since-kiwi-tcms-6-10"> +<h2>Changes since Kiwi TCMS 6.10</h2> +<div class="section" id="security"> +<h3>Security</h3> +<ul class="simple"> +<li>Update Django +<a class="reference external" href="https://docs.djangoproject.com/en/2.2/releases/2.2.4/">from 2.2.2 to 2.2.4</a></li> +<li>Update marked to version 0.7.0, see +<a class="reference external" href="https://github.com/markedjs/marked/releases/tag/v0.7.0">release notes</a></li> +</ul> +</div> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update python-gitlab from 1.8.0 to 1.10.0</li> +<li>Update django-grappelli from 2.12.3 to 2.13.1</li> +<li>Update django-simple-history from 2.7.2 to 2.7.3</li> +<li>Update django-attachments to 1.4.1</li> +<li>Update PyGithub from 1.43.7 to 1.43.8</li> +<li>Update patternfly to version 3.59.3</li> +<li>Update prismjs to version 1.17.0</li> +<li>Add Testing Status Matrix telemetry</li> +<li>Add Testing Execution Trends telemetry</li> +<li>Make it possible to attach files directly inside Test Plan page</li> +<li>Make it possible to attach files directly inside Test Execution widget</li> +<li>Convert Clone TestPlan page to Patternfly, greatly simplify the UI +and update behavior:<ul> +<li>Cloned TP author will always be set to the current user</li> +<li>Cloned TC author will always be set to the current user</li> +<li>Always keep the original default tester for test cases when cloning</li> +<li>Refactor to class based view</li> +<li>Fix a problem where Version values failed form validation b/c +we've been trying to filter based on non-existing field +<tt class="docutils literal">product_id</tt> instead of just <tt class="docutils literal">product</tt></li> +<li>Fixes a problem where erroneous Version value was shown in the UI</li> +</ul> +</li> +<li>Convert Clone TestCase page to Patternfly, greatly simplify the UI +and update behavior. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/838/">Issue #838</a>:<ul> +<li>Allow cloning into multiple test plans</li> +<li>Remove 'Filter another plan' option. Will be replaced by +'Add TP to TC', see +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1021">Issue #1021</a></li> +<li>Always update sortkey. Cloned TC will show at the bottom of the +TestPlan</li> +<li>Cloned TC author will always be set to the current user</li> +<li>Always keep the original default tester</li> +</ul> +</li> +</ul> +</div> +<div class="section" id="api"> +<h3>API</h3> +<ul class="simple"> +<li>First parameter of RPC method <tt class="docutils literal">Bug.report()</tt> +has been renamed from <tt class="docutils literal">test_case_run_id</tt> to <tt class="docutils literal">execution_id</tt>. This may +break existing API scripts which try to pass this argument by name +instead of by position!</li> +</ul> +</div> +<div class="section" id="settings"> +<h3>Settings</h3> +<ul class="simple"> +<li>Allow ENV variables <tt class="docutils literal">KIWI_USE_TZ</tt> and <tt class="docutils literal">KIWI_TIME_ZONE</tt> to control +settings <tt class="docutils literal">USE_TZ</tt> and <tt class="docutils literal">TIME_ZONE</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/982/">Issue #982</a> (Jason Yi)</li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Fix wrong permission label when deleting comments. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/1010/">Issue #1010</a></li> +</ul> +</div> +<div class="section" id="refactoring"> +<h3>Refactoring</h3> +<ul class="simple"> +<li>Disable unnecessary pylint messages for missing-permission-required +checker (Svetlomir Balevski)</li> +<li>Remove unnecessary <tt class="docutils literal">from_plan</tt> URL variable making cleaner URLs</li> +<li>kiwi_lint: Don't check nested functions for permissions</li> +<li>Remove and regroup JavaScript functions</li> +<li>Instruct pyup-bot to monitor <tt class="docutils literal">requirements/tarballs.txt</tt> for updates</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/fr#">French translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +</ul> +</div> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p><a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">Backup</a> first! +If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +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 +</pre> +<p><strong>WHERE:</strong> <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> has been updated from your private git repository! +The file provided in our GitHub repository is an example. Not for production use!</p> +<p><strong>WARNING:</strong> <tt class="docutils literal">kiwitcms/kiwi:latest</tt> and <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> 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:</p> +<pre class="literal-block"> +# starting from an older Kiwi TCMS version +docker-compose down +docker pull kiwitcms/kiwi:&lt;next_upgrade_version&gt; +edit docker-compose.yml to use kiwitcms/kiwi:&lt;next_upgrade_version&gt; +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +# repeat until you have reached latest +</pre> +<p>Happy testing!</p> +</div> +Contributor profile: Aneta Petkova2019-07-08T17:53:00+03:002019-07-08T17:53:00+03:00Kiwi TCMS Teamtag:None,2019-07-08:/blog/kiwi-tcms-team/2019/07/08/contributor-profile-aneta-petkova/<p>Happy Monday, testers! +In this <a href="/blog/tags/community/">series</a> we are introducing the contributors behind Kiwi TCMS. +This is our community and these are their stories.</p> +<div class="member-bio"> + <img class="rounded" src="/images/contributors/aneta.jpg" height="150" width="150"> + <strong>Aneta Petkova</strong> - QA Chapter Lead at SumUp + <em></em> + + <p> + Aneta is a software engineer navigating the complex field of QA + since her first "grownup" job. She's been working in …</p></div><p>Happy Monday, testers! +In this <a href="/blog/tags/community/">series</a> we are introducing the contributors behind Kiwi TCMS. +This is our community and these are their stories.</p> +<div class="member-bio"> + <img class="rounded" src="/images/contributors/aneta.jpg" height="150" width="150"> + <strong>Aneta Petkova</strong> - QA Chapter Lead at SumUp + <em></em> + + <p> + Aneta is a software engineer navigating the complex field of QA + since her first "grownup" job. She's been working in the area of + test automation for web applications using different programming languages and tools. + + Her mission is to inspire people to think about quality from the + very inception of ideas and to blur the line between developers and + QA specialists. + </p> + + <a href="https://twitter.com/anetavp" class="bio-link"> + <i class="lab la-twitter"></i> + </a> + + <a href="https://github.com/apetkova" class="bio-link"> + <i class="lab la-github"></i> + </a> + + <a href="https://bg.linkedin.com/in/apetkova" class="bio-link"> + <i class="lab la-linkedin"></i> + </a> +</div> + +<h2>What is your professional background</h2> +<p>I have an engineering degree in computer science and I've spend the last 8 years in Quality Assurance. +Java, TestNG and UI automation with Selenium WebDriver are my strongest technical skills but +I use different programming languages and tools.</p> +<blockquote> +<p>I believe languages and tools should only support an engineer and never define them.</p> +</blockquote> +<p>Currently I am the QA Chapter Lead at <a href="https://sumup.com/">SumUp</a>, +where I can work towards achieving my goals in an amazing team of people that do what they love.</p> +<h2>When did you use open source for the first time</h2> +<p>The first time I remember was in 2011, but I've probably used it before and just didn't pay attention. +To me it seemed the same as proprietary, and I guess that means it was good.</p> +<h2>Describe your contributions to the project</h2> +<p>I created <a href="https://github.com/kiwitcms/junit-plugin/">kiwitcms-junit-plugin</a>. +This is a native Java library which you can install via Maven Central. It +will discover your automated test suite and publish test execution results in +Kiwi TCMS. This plugin is very simple and requires only minimal configuration +before it is ready to work. +Check-out the example in <a href="https://tcms.kiwitcms.org/plan/25/">TP-25</a>!</p> +<p><em>editor comment:</em> Aneta and Ivo (Kiwi TCMS) hosted the +<a href="https://www.youtube.com/watch?v=r5sp0e7LsDc">"Git crash course" workshop at HackConf 2018</a>. +Kiwi TCMS will be hosting 2 workshops this year so stay tuned!</p> +<h2>Why did you decide to contribute to Kiwi TCMS</h2> +<p>I had recently switched Java for Ruby and I was feeling nostalgic. +Also, I had spent my entire career so far in QA and I wanted to slip on +the developer shoes for at least a little bit.</p> +<h2>Was there something which was hard for you during the contribution process</h2> +<p>I'm used to working in a team and when I started working on this project +I was the only active Java developer. Luckily for me, I live in the time of StackOverflow, +so I managed to get most of my questions answered by strangers on the Internet.</p> +<blockquote> +<p>I learned tons of stuff, but mostly I learned I can build software, not just test it!</p> +</blockquote> +<h2>Which is the best part of contributing to Kiwi TCMS</h2> +<p>Doing something that has the potential to help others and that could be improved upon.</p> +<h2>What is next for you in professional and open source plan</h2> +<p>My current focus is moving slightly into DevOps direction and I am really overwhelmed +by the amount of things to learn. I feel there is so much I want to experiment with. +I am not really planning anything related to open source - it has never been a goal for me - +but when I come across a project I feel strongly about, I'd probably be tempted to contribute.</p> +<p><em>Thank you, Aneta! Happy testing!</em></p>Contributor profile: Primož Klemen2019-07-05T11:10:00+03:002019-07-05T11:10:00+03:00Kiwi TCMS Teamtag:None,2019-07-05:/blog/kiwi-tcms-team/2019/07/05/contributor-profile-primoz-klemen/<p>In this new <a href="/blog/tags/community/">series</a> we are going to introduce the contributors behind Kiwi TCMS. +This is our community and these are their stories.</p> +<div class="member-bio"> + <img class="rounded" src="/images/contributors/primoz.jpg" height="150" width="150"> + <strong>Primož Klemen</strong> - + <em>QA tester, full time dad, Manchester United F.C. supporter</em> + + <p> + Primož is an early adopter and our Slovenian translator. He's been actively engaging + in GitHub …</p></div><p>In this new <a href="/blog/tags/community/">series</a> we are going to introduce the contributors behind Kiwi TCMS. +This is our community and these are their stories.</p> +<div class="member-bio"> + <img class="rounded" src="/images/contributors/primoz.jpg" height="150" width="150"> + <strong>Primož Klemen</strong> - + <em>QA tester, full time dad, Manchester United F.C. supporter</em> + + <p> + Primož is an early adopter and our Slovenian translator. He's been actively engaging + in GitHub issues, posted pull requests for improving documentation and follows us on + <a href="https://stackoverflow.com/questions/tagged/kiwi-tcms">StackOverflow</a> as well. + </p> + + <a href="https://github.com/Prome88" class="bio-link"> + <i class="lab la-github"></i> + </a> + + <a href="https://www.linkedin.com/in/primozklemen/" class="bio-link"> + <i class="lab la-linkedin"></i> + </a> +</div> + +<h2>What is your professional background</h2> +<p>I've started working in IT as tech support for the 2nd largest Slovenian ISP at the time. +Then I've been at leading software provider for fintech in the Balkans region in the same +role and gradually transitioned into QA role. Currently, I'm working as a QA tester for +<a href="http://better.care">Better (by Marand)</a> and ensure, with help of my colleagues of course, +proper quality of administration application for health care sector.</p> +<h2>When did you use open source for the first time</h2> +<p>If I recall correctly that would be some 14 years ago when I ditched dreaded +Internet Explorer in favor of Mozilla Firefox browser. The whole Internet got better in +a matter of seconds.</p> +<h2>What are your contributions to Kiwi TCMS</h2> +<p>I mainly contribute via translating the application into my native language, Slovenian. +Currently there are +<a href="https://crowdin.com/project/kiwitcms">7 languages available</a> for Kiwi TCMS so you are +more than welcome to join and add another one. +<a href="https://kiwitcms.readthedocs.io/en/latest/contribution.html#translation">Translating via Crowdin</a> +is very simple and requires no additional technical skills. I've also dabbled into project +documentation and proposed a few updates to it. I'm also the culprit for some +<a href="https://github.com/kiwitcms/Kiwi/issues/Prome88">32 issues</a> and counting, +the majority of them being proposals for future application enhancements and few UX/UI bugs +(déformation professionnelle :-)).</p> +<h2>Why did you decide to contribute to Kiwi TCMS</h2> +<blockquote> +<p>The guys and gals from the Kiwi TCMS team provided us with an application which solved +our pain about building, maintaining and running manual regression tests.</p> +</blockquote> +<p>They did all of that for free in their spare time! So I've decided to give something back to +the whole community. This was indeed my first +contribution to the open source world but not the last. Since then I've also +contributed to other projects which I use on a regular basis.</p> +<blockquote> +<p>In hindsight, Kiwi TCMS converted me from an open source user to open source contributor!</p> +</blockquote> +<h2>Was there something which was hard for you during the contribution process</h2> +<p>Contributing to the project, as a non-developer, is very easy and intuitive by +either opening issues on GitHub or translating via Crowdin or even committing +updated documentation to git repository through GitHub Desktop client. +All of the aforementioned was new to me and I've learned in depth how to use +these tools. I've also had the pleasure to familiarize myself with project documentation +- Sphinx and reStructuredText are my two new best friends.</p> +<h2>Which is the best part of contributing to Kiwi TCMS</h2> +<p>Being able to actively improve an application that we use on a daily basis in our +development process. Getting to know more people from all around the globe and see their +insights about software quality assurance thus learning something new every day.</p> +<h2>What is next for you in professional and open source plan</h2> +<p>Professionally I'm 100% committed to <a href="http://better.care">Better (by Marand)</a> and helping us achieve +the best standard of quality for health care applications which also incorporates +using the knowledge gathered by following and/or contributing to open source. +I'm going to continue contributing to Kiwi TCMS and +Captura and if time allows maybe involve myself with some other interesting projects.</p> +<p><em>Thank you, Primož! Happy testing!</em></p>Mid-year roadmap status report2019-06-28T15:50:00+03:002019-06-28T15:50:00+03:00Alexander Todorovtag:None,2019-06-28:/blog/atodorov/2019/06/28/mid-year-roadmap-status-report/<p>Hello everyone, in this article I will outline the progress that the Kiwi TCMS +team has made towards achieving the goals on our +<a href="/blog/atodorov/2019/01/10/project-mission-and-goals-for-2019/">2019 mission and roadmap</a>. +TL,DR: Kiwi TCMS has made progress since January, it's been tough and may not have been +very visible. I feel like we've …</p><p>Hello everyone, in this article I will outline the progress that the Kiwi TCMS +team has made towards achieving the goals on our +<a href="/blog/atodorov/2019/01/10/project-mission-and-goals-for-2019/">2019 mission and roadmap</a>. +TL,DR: Kiwi TCMS has made progress since January, it's been tough and may not have been +very visible. I feel like we've been behind schedule till now! The greatest +positive thing has been community and team development!</p> +<h2>Complete the internal refactoring</h2> +<p><em>Status: minimal progress, needs help</em></p> +<p><a href="https://codeclimate.com/github/kiwitcms/Kiwi">CodeClimate</a> progress is:</p> +<ul> +<li>-30 code smells</li> +<li>-40 duplications</li> +<li>-30 other issues</li> +<li>4% technical debt improvement</li> +<li>-200 hrs remaining until issues are fixed</li> +</ul> +<p>This is mostly the result of code reviews and minor fixes, not targeted work.</p> +<p>We have not done any targeted work to resolve other issues reported by Scrutinizer, +Pylint, remove vendored-in JavaScript libraries, JavaScript refactoring or +classification of issues in 3rd party dependencies.</p> +<p>There are new people onboarding in the team right now and our plan is for +them to start grinding at these issues very soon!</p> +<h2>Redesign the UI templates with the help of Patternfly</h2> +<p><em>Status: 50% done, needs help</em></p> +<p>There are 27 HTML templates remaining to be redesigned (from 59). That's mostly +due to internal cleanup than targeted refactoring. More work on this item +will probably follow towards the end of the year after we get more priority items out of +the way and get more of the new team members rolling!</p> +<h2>Modernize reporting aka Telemetry</h2> +<p><em>Status: in progress, a bit behind schedule</em></p> +<p>The specs for the new <a href="/blog/kiwi-tcms-team/2019/03/03/legacy-reports-become-telemetry/">Telemetry</a> system +have been defined after taking into account feedback on GitHub issues. Anton Sankov is +the leading developer for this feature. So far we have 2 telemetry reports merged: +testing break-down and status matrix. The next one will be execution trends.</p> +<p>There are lots of minor issues or missing functionality in these first iterations +(compared to specification). Our plan is to have the major use-cases satisfied first +and then work to refine all of the existing telemetry pages.</p> +<h2>Plugins for 3rd party test automation frameworks</h2> +<p><em>Status: good, needs help</em></p> +<p>Until now we have released TAP, junit.xml and native JUnit 5 plugins. There's also +a PHPUnit plugin which is more or less complete but unreleased yet. Both JUnit 5 +and PHPUnit plugins are developed by external contributors!</p> +<p>We often get asked for plugins for languages and frameworks we don't use or don't +even know! Given that our expertise is mostly in Python we will gladly accept your +pull requests if you decide to maintain or contribute to one of the plugins. This +will also help us get insight into what automation frameworks people are using +and how exactly you structure a test automation workflow around Kiwi TCMS.</p> +<p>Checkout the +<a href="https://kiwitcms.readthedocs.io/en/latest/plugins.html">documentation</a> for links +and more info.</p> +<h2>Redefine bug-tracker integration</h2> +<p><em>Status: no progress</em></p> +<p>Last week, right after OpenExpo, we did a check-up session and this was one of the +areas identified with zero amount of progress. I have a strong preference to work +on this feature myself but have not been able to due to various other items that +need my attention.</p> +<p>The short version is that I'd prefer to remove all issue tracker specific code +and allow the tester to add arbitrary URLs to link to existing bugs. How to do +integration (even as simple as publishing a comment in the bug tracker) over +a generic interface still eludes me. In the next few weeks I will kick-off this +topic with a separate blog post/issue for everyone to comment on.</p> +<h2>GitHub flow integration</h2> +<p><em>Status: no progress</em></p> +<p>Our team spent some time making Kiwi TCMS the first open source TCMS available +on the <a href="https://github.com/marketplace/kiwi-tcms">GitHub Marketplace</a>. We will +continue this integration effort and flow integration will emerge from that. +There's also many things that need to be done to satisfy GitHub's .</p> +<h2>Agile integration with Trello</h2> +<p><em>Status: no progress</em></p> +<h2>Improve engineering productivity</h2> +<p><em>Status: no progress</em></p> +<p>Our mission is to transform testing in your organization by providing +the tools for that via Kiwi TCMS. It is astonishing that so far nobody has provided +any kind of feedback in <a href="https://github.com/kiwitcms/Kiwi/issues/703">Issue #703</a> +wrt improving productivity in their teams!</p> +<p>We have some ideas which have been blocked by lack of resources on the team and +refactoring tasks. Because we've adopted this as our mission this is an important +item for us and we'll continue working on it as resources allow. +Progress is to be expected towards the end of the year.</p> +<h2>Community</h2> +<p><em>Status: great, on track, needs work</em></p> +<p>This is our strongest area during the year so far. We have a strong presence in +several communities, our event schedule is busy enough and we are gaining more +recognition every day!</p> +<ul> +<li>Hosted project stand at 3/5 conferences with 2 more on-track</li> +<li>Won the OpenAward for <a href="2019-06-24-openawards-winner.markdown">Best Tech Community</a></li> +<li>Hosted several presentations and workshops with few more on track</li> +<li>Found new talent to join the core team: 2 just ready to start contributing, 5 more in training</li> +<li>1 more senior engineer as a mentor. We also have a few independent wanna-be contributors + and will be hosting qualification interviews for marketing assistant very soon</li> +<li>There are contributions and pull requests coming from users of Kiwi TCMS as well. + We'd like to see more of course.</li> +<li>There are a couple of open source projects and companies using Kiwi TCMS who + are friendly towards the project. We are working with them to get a public + endorsement on the website and engage in more technical work together. Of course + everyone has limited resources and is very busy :-(</li> +<li>Sponsors on <a href="https://opencollective.com/kiwitcms#contributors">OpenCollect</a> are just + a few but we didn't have any previously so this is a good sign.</li> +</ul> +<p>This is the moment to mention that not all is honey and roses in open source land. +Kiwi TCMS suffers from the problem that many of our users can't be contributors +or simply don't want to!</p> +<p>Manual testers can't program. This is a fact and a good sized chunk of our user base +actually performs manual testing. Those that can write automation and probably +code decently well may not be familiar with Python and Django. At least in Bulgaria +these two aren't very popular, definitely not among testers. That is to say this part +of the user-base simply doesn't have the necessary skills to contribute and the majority +of what we need is code contribution!</p> +<p>Another (fairly big IMO) group of users are coming from proprietary companies who +view open source and Kiwi TCMS as a zero cost option. Something that they take free +of charge and use it without ever contributing back. They don't understand nor really +care about the open source culture.</p> +<p>To make things worse we receive requests every single day via +our private email addresses or questions via IM despite our website clearly stating +community engagement rules. On a few occasions we have received very rude comments +of the sort "our company demands you fix this", "is this going to be ready this year" +(context implying entitlement), etc. To make things more ridiculous we've even received +support requests (via contact form) from companies and start-up +who get their return address wrong so we can't get in touch directly!</p> +<p>In short: don't demand anything from us unless you are ready to pay for it, work for it +yourself or propose a mutually beneficial scenario. We do try to keep the community +happy but more importantly follow our mission and develop our core team!</p> +<p>Happy testing!</p>Kiwi TCMS is OpenAwards 2019 Best Tech Community Winner2019-06-24T13:10:00+03:002019-06-24T13:10:00+03:00Alexander Todorovtag:None,2019-06-24:/blog/atodorov/2019/06/24/kiwi-tcms-is-openawards-2019-best-tech-community-winner/<p><img src="/images/openexpo/award.jpg" + alt="Image of the award" + style="float: none"></p> +<p>Kiwi TCMS is the winner at OpenAwards'19 category Best Tech Community! +Big thanks to the jury, our contributors and core-team and the larger +open source and quality assurance communities who voted for us and supported +the project during all of those years.</p> +<p>This award is the best present we could …</p><p><img src="/images/openexpo/award.jpg" + alt="Image of the award" + style="float: none"></p> +<p>Kiwi TCMS is the winner at OpenAwards'19 category Best Tech Community! +Big thanks to the jury, our contributors and core-team and the larger +open source and quality assurance communities who voted for us and supported +the project during all of those years.</p> +<p>This award is the best present we could get to mark the 10th anniversary +of the project. More news of how we are progressing with current roadmap will +follow soon in a separate blog post.</p> +<p>Thank you &amp; happy testing!</p>Kiwi TCMS 6.102019-06-18T22:45:00+03:002019-06-18T22:45:00+03:00Kiwi TCMS Teamtag:None,2019-06-18:/blog/kiwi-tcms-team/2019/06/18/kiwi-tcms-610/<p>We're happy to announce Kiwi TCMS version 6.10! +This is a small security and improvement update. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 …</pre><p>We're happy to announce Kiwi TCMS version 6.10! +This is a small security and improvement update. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +<p>Docker images:</p> +<pre class="literal-block"> +kiwitcms/kiwi latest bbb581d60ed1 1.005 GB +kiwitcms/kiwi 6.2 7870085ad415 957.6 MB +kiwitcms/kiwi 6.1.1 49fa42ddfe4d 955.7 MB +kiwitcms/kiwi 6.1 b559123d25b0 970.2 MB +kiwitcms/kiwi 6.0.1 87b24d94197d 970.1 MB +kiwitcms/kiwi 5.3.1 a420465852be 976.8 MB +</pre> +<div class="section" id="changes-since-kiwi-tcms-6-9"> +<h2>Changes since Kiwi TCMS 6.9</h2> +<div class="section" id="security"> +<h3>Security</h3> +<ul class="simple"> +<li>Update Django from 2.2.1 to 2.2.2 for medium severity +CVE-2019-12308 (XSS), CVE-2019-11358 (jQuery). +<a class="reference external" href="https://docs.djangoproject.com/en/2.2/releases/2.2.2/">More info</a></li> +<li>Add missing permission checks for menus in Test run page UI template. +Permission check added for TestExecution status and comment menu. +References <a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/716">Issue #716</a></li> +<li>Re-enable static analysis with <tt class="docutils literal">bandit</tt> and <tt class="docutils literal">Coverity Scan</tt> in +Travis CI (Svetlomir Balevski)</li> +</ul> +</div> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update psycopg2 from 2.8.2 to 2.8.3</li> +<li>Update markdown from 3.1 to 3.1.1</li> +<li>Update patternfly to version 3.59.2</li> +<li>Override <tt class="docutils literal">PasswordResetForm</tt> because <tt class="docutils literal">Site.objects.get_current()</tt> +didn't produce correct results when working with <tt class="docutils literal"><span class="pre">kiwitcms-tenants</span></tt></li> +<li>Show column <tt class="docutils literal">is_active</tt> in user admin page</li> +</ul> +</div> +<div class="section" id="refactoring"> +<h3>Refactoring</h3> +<ul class="simple"> +<li>Add test for <tt class="docutils literal">email_case_deletion()</tt> (Rik)</li> +<li>New linter to warn about usage of <tt class="docutils literal">AutoField</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/737">Issue #737</a> (Ivo Donchev, HackSoft)</li> +<li>New linter to discover empty classed. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/739">Issue #739</a> (Daniel Goshev)</li> +<li>New linter to warn about usage of <tt class="docutils literal">OneToOneField</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/735">Issue #735</a> (George Goranov)</li> +<li>New linter to warn about usage of function based views. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/734">Issue #734</a> (Yavor Lulchev, Uber)</li> +<li>New linter to discover Python files in directories without <tt class="docutils literal">__init__.py</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/790">Issue #790</a></li> +</ul> +</div> +</div> +<div class="section" id="join-us-at-openexpo-in-madrid"> +<h2>Join us at OpenExpo in Madrid</h2> +<p>Kiwi TCMS is exhibitor at <a class="reference external" href="https://openexpoeurope.com/">OpenExpo Europe</a> +on June 20th in Madrid. We will be hosting an info booth and 2 technical +presentations delivered by +<a class="reference external" href="https://openexpoeurope.com/speaker/anton-sankov/">Anton Sankov</a> and +<a class="reference external" href="https://openexpoeurope.com/speaker/alexander-todorov/">Alex Todorov</a>.</p> +<p>Kiwi TCMS is also the leading finalist in the +<a class="reference external" href="https://a.cstmapp.com/entries/31129/sort:votes/direction:desc">Best Tech Community</a> +category at Open Awards 2019!</p> +<p>Use <strong>OE19SPEAKERINVITE</strong> 100% discount code! Get your ticket +<a class="reference external" href="https://www.eventbrite.es/e/openexpo-europe-2019-the-leading-enterprise-it-open-innovation-summit-tickets-56499351080?discount=OE19SPEAKERINVITE#tickets">here</a>!</p> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p>If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +cd Kiwi/ +git pull +docker-compose down +docker pull kiwitcms/kiwi +docker pull centos/mariadb +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +</pre> +<p>Don't forget to <a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">backup</a> +before upgrade!</p> +<p><strong>WARNING:</strong> <tt class="docutils literal">kiwitcms/kiwi:latest</tt> and <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> 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:</p> +<pre class="literal-block"> +# starting from an older Kiwi TCMS version +docker-compose down +docker pull kiwitcms/kiwi:&lt;next_upgrade_version&gt; +edit docker-compose.yml to use kiwitcms/kiwi:&lt;next_upgrade_version&gt; +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +# repeat until you have reached latest +</pre> +<p>Happy testing!</p> +</div> +Kiwi TCMS needs your help winning OpenAwards 20192019-05-27T16:15:00+03:002019-05-27T16:15:00+03:00Kiwi TCMS Teamtag:None,2019-05-27:/blog/kiwi-tcms-team/2019/05/27/kiwi-tcms-needs-your-help-winning-openawards-2019/<p><img src="/images/openexpo/openawards2019.jpg" + alt="Vote for Kiwi TCMS at OpenAwards 2019" + style="float: none"></p> +<p>Thanks to you, our community supporters, Anton Sankov and Alex Todorov +<a href="/blog/kiwi-tcms-team/2019/03/13/taking-the-lead-at-openexpo-europe-cfp-votes/">took the lead at OpenExpo 2019 CfP votes</a>. +We need your help one more time. Our team has submitted participation in +'Best Tech Community' and 'Best Success Story' categories.</p> +<p>Unfortunately our submission into 'Best Success Story' has been pulled …</p><p><img src="/images/openexpo/openawards2019.jpg" + alt="Vote for Kiwi TCMS at OpenAwards 2019" + style="float: none"></p> +<p>Thanks to you, our community supporters, Anton Sankov and Alex Todorov +<a href="/blog/kiwi-tcms-team/2019/03/13/taking-the-lead-at-openexpo-europe-cfp-votes/">took the lead at OpenExpo 2019 CfP votes</a>. +We need your help one more time. Our team has submitted participation in +'Best Tech Community' and 'Best Success Story' categories.</p> +<p>Unfortunately our submission into 'Best Success Story' has been pulled down! +We used that category to share the story from a dead open source project into +a thriving open source community with lots of users and contributors and to +highlight some of our milestones. Here's the short version:</p> +<ul> +<li>lots of technical updates and refactoring, latest everything, modern UI</li> +<li>the <strong>only</strong> open source test case management system on GitHub Marketplace</li> +<li>nearly 60000 downloads on Docker Hub</li> +<li>growing and active core team</li> +<li>active OSS contributors</li> +</ul> +<p>Please help us gain more recognition:</p> +<ul> +<li><a href="https://a.cstmapp.com/voteme/31129/633186885">Vote for Kiwi TCMS</a> + in the Best Tech Community category!</li> +</ul> +<p>Thanks you &amp; happy testing!</p>Pylint workshop with Django Bulgaria user group2019-05-25T14:27:00+03:002019-05-25T14:27:00+03:00Alexander Todorovtag:None,2019-05-25:/blog/atodorov/2019/05/25/pylint-workshop-with-django-bulgaria-user-group/<p>On Tuesday I hosted my pylint workshop during the regular +<a href="https://www.facebook.com/events/295673718035353/">Django Bulgaria meetup</a>. +This edition was the first which was practice based.</p> +<p>Attendance numbers were low but participation was very good. We managed to +create 4 new checkers for Kiwi TCMS:</p> +<ul> +<li><a href="https://github.com/kiwitcms/Kiwi/pull/949">PR #949 - AutoField checker</a></li> +<li><a href="https://github.com/kiwitcms/Kiwi/pull/950">PR #950 - OneToOneField checker</a></li> +<li><a href="https://github.com/kiwitcms/Kiwi/pull/951">PR …</a></li></ul><p>On Tuesday I hosted my pylint workshop during the regular +<a href="https://www.facebook.com/events/295673718035353/">Django Bulgaria meetup</a>. +This edition was the first which was practice based.</p> +<p>Attendance numbers were low but participation was very good. We managed to +create 4 new checkers for Kiwi TCMS:</p> +<ul> +<li><a href="https://github.com/kiwitcms/Kiwi/pull/949">PR #949 - AutoField checker</a></li> +<li><a href="https://github.com/kiwitcms/Kiwi/pull/950">PR #950 - OneToOneField checker</a></li> +<li><a href="https://github.com/kiwitcms/Kiwi/pull/951">PR #951 - discover directories without __init__.py</a></li> +<li><a href="https://github.com/kiwitcms/Kiwi/pull/952">PR #952 - empty class checker</a></li> +<li><a href="https://github.com/kiwitcms/Kiwi/pull/955">PR #955 - function based view checker</a></li> +</ul> +<p>Many thanks to all contributors. These new checkers have discovered quite a +few new issues with Kiwi TCMS so this is an area which our team is going to improve.</p> +<p>Those who missed the workshop will be able to catch up one of the next editions:</p> +<ul> +<li>26-29 August, GUADEC, Thessaloniki - TBC (presentation)</li> +<li>end of September, Python meetup, Zagreb - TBA</li> +<li>03-05 October, PyCon Balkan, Belgrade - TBC</li> +<li>11-13 October, HackConf, Sofia</li> +<li>15-17 October, TestCon Europe, Vilnius - TBC (backup presentation)</li> +<li>23-25 October, Testwarez, Ossa, Poland - TBC (presentation)</li> +<li>14-15 November, Software Engineering Conference Russia, Saint-Petersburg - TBC</li> +<li>20-22 November, ConTEST, New York - TBC (workshop and/or presentation)</li> +</ul> +<p>Happy testing!</p>Kiwi TCMS 6.92019-05-16T16:20:00+03:002019-05-16T16:20:00+03:00Kiwi TCMS Teamtag:None,2019-05-16:/blog/kiwi-tcms-team/2019/05/16/kiwi-tcms-69/<p>We're happy to announce Kiwi TCMS version 6.9! +This is a small improvement and bug-fix update which introduces +our first telemetry report: testing breakdown. You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer …</pre><p>We're happy to announce Kiwi TCMS version 6.9! +This is a small improvement and bug-fix update which introduces +our first telemetry report: testing breakdown. You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +<p>Docker images:</p> +<pre class="literal-block"> +kiwitcms/kiwi latest a01eaeddf213 1.001 GB +kiwitcms/kiwi 6.2 7870085ad415 957.6 MB +kiwitcms/kiwi 6.1.1 49fa42ddfe4d 955.7 MB +kiwitcms/kiwi 6.1 b559123d25b0 970.2 MB +kiwitcms/kiwi 6.0.1 87b24d94197d 970.1 MB +kiwitcms/kiwi 5.3.1 a420465852be 976.8 MB +</pre> +<div class="section" id="changes-since-kiwi-tcms-6-8"> +<h2>Changes since Kiwi TCMS 6.8</h2> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update mysqlclient from 1.4.2 to 1.4.2.post1</li> +<li>Ship with prism.js so it can be used for syntax highlighting</li> +<li>Add Testing Breakdown telemetry</li> +<li>Mark more strings for translations</li> +<li>Add <tt class="docutils literal">delete_user()</tt> function which can delete data across +Postgre schemas (if kiwitcms-tenants add-on is installed)</li> +</ul> +</div> +<div class="section" id="api"> +<h3>API</h3> +<ul class="simple"> +<li>Remove deprecated <tt class="docutils literal">TestCaseRun.</tt> API methods. Use the new +<tt class="docutils literal">TestExecution.</tt> methods introduced in v6.7. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/889/">Issue #889</a></li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Fix typos in documentation (&#64;Prome88)</li> +<li>Fix <tt class="docutils literal">TemplateParseError</tt> in email templates when removing test cases. +On-delete email notification is now sent properly</li> +</ul> +</div> +<div class="section" id="refactoring"> +<h3>Refactoring</h3> +<ul class="simple"> +<li>Add more tests around TestRun/TestExecution menu permissions</li> +<li>Minor pylint fixes</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/fr#">French translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +</ul> +</div> +</div> +<div class="section" id="join-us-at-openexpo-in-madrid"> +<h2>Join us at OpenExpo in Madrid</h2> +<p>Kiwi TCMS is exhibitor at <a class="reference external" href="https://openexpoeurope.com/">OpenExpo Europe</a> +on June 20th in Madrid. We will be hosting an info booth and 2 technical +presentations delivered by Anton Sankov and Alex Todorov.</p> +<p>Next week we are going to announce 100% discount tickets +for our guests at the conference. If you are interested in coming +<a class="reference external" href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">subscribe to our newsletter</a> +and don't miss the announcement!</p> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p>If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +cd Kiwi/ +git pull +docker-compose down +docker pull kiwitcms/kiwi +docker pull centos/mariadb +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +</pre> +<p>Don't forget to <a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">backup</a> +before upgrade!</p> +<p><strong>WARNING:</strong> <tt class="docutils literal">kiwitcms/kiwi:latest</tt> and <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> 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:</p> +<pre class="literal-block"> +# starting from an older Kiwi TCMS version +docker-compose down +docker pull kiwitcms/kiwi:&lt;next_upgrade_version&gt; +edit docker-compose.yml to use kiwitcms/kiwi:&lt;next_upgrade_version&gt; +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +# repeat until you have reached latest +</pre> +<p>Happy testing!</p> +</div> +Kiwi TCMS 6.82019-05-03T13:45:00+03:002019-05-03T13:45:00+03:00Kiwi TCMS Teamtag:None,2019-05-03:/blog/kiwi-tcms-team/2019/05/03/kiwi-tcms-68/<p>We're happy to announce Kiwi TCMS version 6.8! +This is a small improvement and bug-fix update. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 …</pre><p>We're happy to announce Kiwi TCMS version 6.8! +This is a small improvement and bug-fix update. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +<p>Docker images:</p> +<pre class="literal-block"> +kiwitcms/kiwi latest fca095f95475 994.8 MB +kiwitcms/kiwi 6.2 7870085ad415 957.6 MB +kiwitcms/kiwi 6.1.1 49fa42ddfe4d 955.7 MB +kiwitcms/kiwi 6.1 b559123d25b0 970.2 MB +kiwitcms/kiwi 6.0.1 87b24d94197d 970.1 MB +kiwitcms/kiwi 5.3.1 a420465852be 976.8 MB +</pre> +<div class="section" id="changes-since-kiwi-tcms-6-7"> +<h2>Changes since Kiwi TCMS 6.7</h2> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update Django from 2.2 to 2.2.1</li> +<li>Update django-simple-history from 2.7.0 to 2.7.2</li> +<li>Update django-grappelli from 2.12.2 to 2.12.3</li> +<li>Update psycopg2 from 2.8 to 2.8.2</li> +<li>Update pygithub from 1.43.6 to 1.43.7</li> +<li>Upgrade pip and setuptools inside Docker image</li> +<li>Update documentation with newer screenshots and updated Tutotial. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/837/">Issue #837</a> (&#64;Prome88)</li> +<li>Document how to enable public read-only views</li> +<li>Remove deprecated documentation section about Bugzilla authentication</li> +<li>Install PostgreSQL libraries in Docker image which makes it easier to +switch the DB backend without rebuilding the entire image</li> +<li>Remove npm, libxml2-devel and libxslt-devel from Docker image</li> +<li>Database engine configuration now respects the <tt class="docutils literal">KIWI_DB_ENGINE</tt> environment +variable which defaults to <tt class="docutils literal">django.db.backends.mysql</tt>. This will make it +easier for admins to change DB engine by updating their <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt></li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Pin bootstrap-switch to version 3.3.4 in <tt class="docutils literal">package.json</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/916/">Issue #916</a></li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/fr#">French translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +<li>New language <a class="reference external" href="https://crowdin.com/project/kiwitcms/ru#">Russian</a></li> +<li>New language <a class="reference external" href="https://crowdin.com/project/kiwitcms/cz#">Czech</a></li> +</ul> +</div> +<div class="section" id="refactoring"> +<h3>Refactoring</h3> +<ul class="simple"> +<li>Don't use <tt class="docutils literal">Site.objects.get_current()</tt> because it has an internal cache +and causes email notifications from tenants to use the wrong URL</li> +<li>More changes around renaming of TestCaseRun to TestExecution</li> +</ul> +</div> +</div> +<div class="section" id="github-marketplace"> +<h2>GitHub Marketplace</h2> +<p>During the past week we have silently launched Kiwi TCMS on +<a class="reference external" href="https://github.com/marketplace/kiwi-tcms/">GitHub Marketplace</a>. Free plans +will be redirected to +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">public.tenant.kiwitcms.org</a> +while paid plans will be hosted under <tt class="docutils literal">*.tenant.kiwitcms.org</tt> sub-domains!</p> +<p>Our team is still working on all requirements for GitHub integration and we will +issue a formal statement when ready!</p> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p>If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +cd Kiwi/ +git pull +docker-compose down +docker pull kiwitcms/kiwi +docker pull centos/mariadb +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +</pre> +<p>Don't forget to <a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">backup</a> +before upgrade!</p> +<p><strong>WARNING:</strong> <tt class="docutils literal">kiwitcms/kiwi:latest</tt> and <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> 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:</p> +<pre class="literal-block"> +# starting from an older Kiwi TCMS version +docker-compose down +docker pull kiwitcms/kiwi:&lt;next_upgrade_version&gt; +edit docker-compose.yml to use kiwitcms/kiwi:&lt;next_upgrade_version&gt; +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +# repeat until you have reached latest +</pre> +<p>Happy testing!</p> +</div> +Kiwi TCMS 6.72019-04-06T17:15:00+03:002019-04-06T17:15:00+03:00Kiwi TCMS Teamtag:None,2019-04-06:/blog/kiwi-tcms-team/2019/04/06/kiwi-tcms-67/<p>We're happy to announce Kiwi TCMS version 6.7! +This is a small improvement and bug-fix update. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 …</pre><p>We're happy to announce Kiwi TCMS version 6.7! +This is a small improvement and bug-fix update. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +<p>Docker images:</p> +<pre class="literal-block"> +kiwitcms/kiwi latest 702a78976de7 993.5 MB +kiwitcms/kiwi 6.2 7870085ad415 957.6 MB +kiwitcms/kiwi 6.1.1 49fa42ddfe4d 955.7 MB +kiwitcms/kiwi 6.1 b559123d25b0 970.2 MB +kiwitcms/kiwi 6.0.1 87b24d94197d 970.1 MB +kiwitcms/kiwi 5.3.1 a420465852be 976.8 MB +</pre> +<div class="section" id="changes-since-kiwi-tcms-6-6"> +<h2>Changes since Kiwi TCMS 6.6</h2> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update Django from 2.1.7 to 2.2</li> +<li>Update markdown from 3.0.1 to 3.1</li> +<li>Update psycopg2 from 2.7.7 to 2.8</li> +<li>Update pygithub from 1.43.5 to 1.43.6</li> +<li>Update bleach-whitelist from 0.0.9 to 0.0.10</li> +<li>Update marked(.js) to version 0.6.2</li> +<li>Support arbitrary depth for <tt class="docutils literal">MENU_ITEMS</tt> setting</li> +<li>Support auto-discovery of 3rd party Telemetry plugins, see +<a class="reference external" href="https://kiwitcms.readthedocs.io/en/latest/telemetry/index.html">documentation</a></li> +</ul> +</div> +<div class="section" id="database-migrations"> +<h3>Database migrations</h3> +<ul class="simple"> +<li>Rename <tt class="docutils literal">TestCaseRun</tt> to <tt class="docutils literal">TestExecution</tt> including renaming existing +permissions</li> +<li>Rename <tt class="docutils literal">TestCaseRunStatus</tt> to <tt class="docutils literal">TestExecutionStatus</tt></li> +</ul> +</div> +<div class="section" id="api"> +<h3>API</h3> +<ul class="simple"> +<li>Rename <tt class="docutils literal">TestCaseRun.*</tt> to <tt class="docutils literal">TestExecution.*</tt></li> +<li>Rename <tt class="docutils literal">TestCaseRunStatus.*</tt> to <tt class="docutils literal">TestExecution.*</tt></li> +<li>This version keeps the old names for backwards compatibility reasons but they +will be removed in +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/889">Issue #889</a></li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Prompt user before deleting attachments. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/867">Issue #867</a> (Martin Jordanov)</li> +<li><tt class="docutils literal">email_case_deletion()</tt> format error fixed so notifications when +test cases are deleted are not sent (Rik)</li> +</ul> +</div> +<div class="section" id="refactoring"> +<h3>Refactoring</h3> +<ul class="simple"> +<li>Remove unused images</li> +<li>Install <tt class="docutils literal">node_modules/</tt> under <tt class="docutils literal">tcms/</tt> and include it inside PyPI tarball</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +</ul> +</div> +</div> +<div class="section" id="native-junit-5-plugin"> +<h2>Native JUnit 5 plugin</h2> +<p>Our team is happy to announce the availability of +<a class="reference external" href="https://github.com/kiwitcms/junit-plugin/">kiwitcms-junit-plugin</a>. +This is a native JUnit 5 plugin which will read the results from your +automated test suite and send them back to Kiwi TCMS.</p> +<p>Version 1.0.3 and the latest changes in master branch are still to be considered +Beta quality. They are available for early preview and feedback.</p> +<p>Many thanks to <a class="reference external" href="https://github.com/apetkova">Aneta Petkova</a> who is the +main contributor behind this plugin!</p> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p>If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +cd Kiwi/ +git pull +docker-compose down +docker pull kiwitcms/kiwi +docker pull centos/mariadb +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +</pre> +<p>Don't forget to <a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">backup</a> +before upgrade!</p> +<p><strong>WARNING:</strong> <tt class="docutils literal">kiwitcms/kiwi:latest</tt> and <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> 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:</p> +<pre class="literal-block"> +# starting from an older Kiwi TCMS version +docker-compose down +docker pull kiwitcms/kiwi:&lt;next_upgrade_version&gt; +edit docker-compose.yml to use kiwitcms/kiwi:&lt;next_upgrade_version&gt; +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +# repeat until you have reached latest +</pre> +<p>Happy testing!</p> +</div> +Kiwi TCMS 6.62019-03-19T22:40:00+02:002019-03-19T22:40:00+02:00Kiwi TCMS Teamtag:None,2019-03-19:/blog/kiwi-tcms-team/2019/03/19/kiwi-tcms-66/<p>We're happy to announce Kiwi TCMS version 6.6! This is a +medium severity security update, improvement and bug-fix update. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0 …</pre><p>We're happy to announce Kiwi TCMS version 6.6! This is a +medium severity security update, improvement and bug-fix update. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +<p>Docker images:</p> +<pre class="literal-block"> +kiwitcms/kiwi latest c4734f98ca37 971.3 MB +kiwitcms/kiwi 6.2 7870085ad415 957.6 MB +kiwitcms/kiwi 6.1.1 49fa42ddfe4d 955.7 MB +kiwitcms/kiwi 6.1 b559123d25b0 970.2 MB +kiwitcms/kiwi 6.0.1 87b24d94197d 970.1 MB +kiwitcms/kiwi 5.3.1 a420465852be 976.8 MB +</pre> +<div class="section" id="changes-since-kiwi-tcms-6-5-3"> +<h2>Changes since Kiwi TCMS 6.5.3</h2> +<div class="section" id="security"> +<h3>Security</h3> +<ul class="simple"> +<li>Explicitly require marked v0.6.1 to fix medium severity ReDoS vulnerability. See +<a class="reference external" href="https://snyk.io/vuln/SNYK-JS-MARKED-73637">SNYK-JS-MARKED-73637</a></li> +</ul> +</div> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update <tt class="docutils literal"><span class="pre">python-gitlab</span></tt> from 1.7.0 to 1.8.0</li> +<li>Update <tt class="docutils literal"><span class="pre">django-contrib-comments</span></tt> from 1.9.0 to 1.9.1</li> +<li>More strings marked as translatable (Christophe CHAUVET)</li> +<li>When creating new TestCase you can now change notification settings. +Previously this was only possible during editing</li> +<li>Document import-export approaches. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/795">Issue #795</a></li> +<li>Document available test automation plugins</li> +<li>Improve documentation around Docker customization and SSL termination</li> +<li>Add documentation example of reverse rroxy configuration for HAProxy (Nicolas Auvray)</li> +<li><tt class="docutils literal">TestPlan.add_case()</tt> will now set the sortkey to highest in plan + 10 (Rik)</li> +<li>Add <tt class="docutils literal">LinkOnly</tt> issue tracker. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/289">Issue #289</a></li> +<li>Use the same HTML template for both TestCase new &amp; edit</li> +<li>New API methods for adding, removing and listing attachments. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/446">Issue #446</a>:<ul> +<li>TestPlan.add_attachment()</li> +<li>TestCase.add_attachment()</li> +<li>TestPlan.list_attachments()</li> +<li>TestCase.list_attachments()</li> +<li>Attachments.remove_attachment()</li> +</ul> +</li> +</ul> +</div> +<div class="section" id="database-migrations"> +<h3>Database migrations</h3> +<ul> +<li><p class="first">Populate missing <tt class="docutils literal">TestCase.text</tt> history. +In version 6.5 the <tt class="docutils literal">TestCase</tt> model was updated to store the text +into a single field called <tt class="docutils literal">text</tt> instead of 4 separate fields. +During that migration historical records were updated to have +the new <tt class="docutils literal">text</tt> field but values were not properly assigned.</p> +<p>The &quot;effect&quot; of this is that in TestCaseRun records you were not +able to see the actual text b/c it was None.</p> +<p>This change ammends <tt class="docutils literal">0006_merge_text_field_into_testcase_model</tt> for +installations which have not yet migrated to 6.5 or later. We also +provide the data-only migration <tt class="docutils literal">0009_populate_missing_text_history</tt> +which will inspect the current state of the DB and copy the text to +the last historical record.</p> +</li> +</ul> +</div> +<div class="section" id="removed-functionality"> +<h3>Removed functionality</h3> +<ul> +<li><p class="first">Remove legacy reports. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/657">Issue #657</a></p> +</li> +<li><p class="first">Remove &quot;Save &amp; Continue&quot; functionality from TestCase edit page</p> +</li> +<li><p class="first">Renamed API methods:</p> +<ul class="simple"> +<li><tt class="docutils literal">TestCaseRun.add_log()</tt> -&gt; <tt class="docutils literal">TestCaseRun.add_link()</tt></li> +<li><tt class="docutils literal">TestCaseRun.remove_log()</tt> -&gt; <tt class="docutils literal">TestCaseRun.remove_link()</tt></li> +<li><tt class="docutils literal">TestCaseRun.get_logs()</tt> -&gt; <tt class="docutils literal">TestCaseRun.get_links()</tt></li> +</ul> +<p>These methods work with URL links, which can be added or removed to +test case runs.</p> +</li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Remove hard-coded timestamp in TestCase page template, References +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/765">Issue #765</a></li> +<li>Fix handling of <tt class="docutils literal"><span class="pre">?from_plan</span></tt> URL parameter in TestCase page</li> +<li>Make <tt class="docutils literal">TestCase.text</tt> occupy 100% width when rendered. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/798">Issue #798</a></li> +<li>Enable <tt class="docutils literal">markdown.extensions.tables</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/816">Issue #816</a></li> +<li>Handle form erros and default values for TestPlan new/edit. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/864">Issue #864</a></li> +<li>Tests + fix for failing TestCase rendering in French</li> +<li>Show color-coded statuses on dashboard page when seen with non-English +language</li> +<li>Refactor check for confirmed test cases when editting to work with +translations</li> +<li>Fix form values when filtering test cases inside TestPlan. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/674">Issue #674</a> (&#64;marion2016)</li> +<li>Show delete icon for attachments. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/847">Issue #847</a></li> +</ul> +</div> +<div class="section" id="refactoring"> +<h3>Refactoring</h3> +<ul class="simple"> +<li>Remove unused <tt class="docutils literal">.current_user</tt> instance attribute</li> +<li>Remove <tt class="docutils literal">EditCaseForm</tt> and use <tt class="docutils literal">NewCaseForm</tt> instead, References +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/708">Issue #708</a>, +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/812">Issue #812</a></li> +<li>Fix &quot;Select All&quot; checkbox. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/828">Issue #828</a> (Rady)</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/zh-CN#">Chinese Simplified translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/zh-TW#">Chinese Traditional translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/de#">German translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/fr#">French translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +<li>Changed misspelled source string <tt class="docutils literal">Requirments</tt> -&gt; <tt class="docutils literal">Requirements</tt> (&#64;Prome88)</li> +</ul> +</div> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p>If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +cd Kiwi/ +git pull +docker-compose down +docker pull kiwitcms/kiwi +docker pull centos/mariadb +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +</pre> +<p>Don't forget to <a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">backup</a> +before upgrade!</p> +<p><strong>WARNING:</strong> <tt class="docutils literal">kiwitcms/kiwi:latest</tt> and <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> 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:</p> +<pre class="literal-block"> +# starting from an older Kiwi TCMS version +docker-compose down +docker pull kiwitcms/kiwi:&lt;next_upgrade_version&gt; +edit docker-compose.yml to use kiwitcms/kiwi:&lt;next_upgrade_version&gt; +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +# repeat until you have reached latest +</pre> +<p>Happy testing!</p> +</div> +Taking the lead at OpenExpo Europe CfP votes2019-03-13T07:27:00+02:002019-03-13T07:27:00+02:00Kiwi TCMS Teamtag:None,2019-03-13:/blog/kiwi-tcms-team/2019/03/13/taking-the-lead-at-openexpo-europe-cfp-votes/<p><img src="/images/openexpo/vote_openexpo19.jpg" + alt="Vote for Kiwi TCMS at OpenExpo" + style="float: none"></p> +<p>We are happy to announce that Anton Sankov and Alex Todorov are currently taking +the lead at OpenExpo Europe's CfP votes!</p> +<p>Going to OpenExpo will be huge boost for Kiwi TCMS so please help us make this happen! +Voting is open until March 17th 2019! You can cast your vote …</p><p><img src="/images/openexpo/vote_openexpo19.jpg" + alt="Vote for Kiwi TCMS at OpenExpo" + style="float: none"></p> +<p>We are happy to announce that Anton Sankov and Alex Todorov are currently taking +the lead at OpenExpo Europe's CfP votes!</p> +<p>Going to OpenExpo will be huge boost for Kiwi TCMS so please help us make this happen! +Voting is open until March 17th 2019! You can cast your vote via Facebook login +but remember to confirm your email address!</p> +<ul> +<li>Vote for Alex'es + <a href="https://a.cstmapp.com/entries/29369/sort:votes/direction:desc">cyber security presentation</a></li> +<li>Vote for Anton's + <a href="https://a.cstmapp.com/entries/30063/sort:votes/direction:desc">micro-services tech talk</a></li> +<li>Vote for Alex'es + <a href="https://a.cstmapp.com/entries/30063/sort:votes/direction:desc">pylint plugins tech-talk</a>: + currently 3rd in the Open Source Tech Talks category</li> +</ul> +<p>Thank you &amp; happy testing!</p>Legacy reports become Telemetry2019-03-03T21:27:00+02:002019-03-03T21:27:00+02:00Kiwi TCMS Teamtag:None,2019-03-03:/blog/kiwi-tcms-team/2019/03/03/legacy-reports-become-telemetry/<p>As we've <a href="/blog/atodorov/2019/01/10/project-mission-and-goals-for-2019/">promised</a> Kiwi TCMS is +starting work on improving the legacy reports functionality. +After analyzing your feedback in +<a href="https://github.com/kiwitcms/Kiwi/issues/657">Issue #657</a> here's what we came up +with. <em>Note: screenshots below are mockups.</em></p> +<h2>General tech specs</h2> +<ul> +<li>Once a self-contained tarball is installed inside the Docker image (or inside local virtualenv) + Kiwi …</li></ul><p>As we've <a href="/blog/atodorov/2019/01/10/project-mission-and-goals-for-2019/">promised</a> Kiwi TCMS is +starting work on improving the legacy reports functionality. +After analyzing your feedback in +<a href="https://github.com/kiwitcms/Kiwi/issues/657">Issue #657</a> here's what we came up +with. <em>Note: screenshots below are mockups.</em></p> +<h2>General tech specs</h2> +<ul> +<li>Once a self-contained tarball is installed inside the Docker image (or inside local virtualenv) + Kiwi TCMS will be able to find it automatically and update the menu options. Aka plugins. + No further configuration should be necessary other than providing the source code implementing + the new functionality</li> +<li>Navigation menu will be able to support several layers of menus</li> +<li>Where possible Telemetry pages will reuse existing HTML templates</li> +<li>Telemetry data will be implemented as an RPC method that can be consumed by the front-end + via JSON-RPC</li> +<li>Charts will be rendered in the browser with c3/d3, + see <a href="https://www.patternfly.org/pattern-library/data-visualization/area-chart/">Data Visualization</a></li> +</ul> +<h2>Feature: Rename TestCaseRun to TestExecution</h2> +<p>Inside Kiwi TCMS the term "test case" is used to refer to specific scenario of +testing steps. A "test run" is the collection of multiple "test cases" which +will be executed against a particular product build and environment.</p> +<p>The specific results are kept into what is now called "test case run". This will +be renamed to "test execution" (internally <code>TestExecution</code> class) to make it more +clear and easier to distinguish among other artifacts.</p> +<h2>Feature: Better color coding for test execution status</h2> +<p>As a webUI user I want to easily distinguish between PASSED, FAILED and other statuses +when looking at charts and graphical visualizations.</p> +<p><img src="/images/telemetry/tr_progress_bar.png" alt="TestRun progress" style="float: none"></p> +<p>This feature request comes from the TestRun progress bar. +Other charts should use the same 4 status categories and color coding standards:</p> +<ul> +<li>IDLE - <code>pf-black-600</code></li> +<li>PASSED - <code>pf-green-400</code></li> +<li>FAILED - <code>pf-red-100</code></li> +<li>OTHER - <code>pf-orange-400</code>. This includes other statuses which are not PASSED, FAILED and IDLE.</li> +</ul> +<p>Here the percent value will continue to mean <em>percent completed, aka non-IDLE</em>.</p> +<p>Implementation wise the <code>TestCaseRunStatus</code> class defines methods for the actual icons to be used. +The same can be done for colors and this can be used directly in the HTML templates. +For color definitions see <a href="https://www.patternfly.org/styles/color-palette/">Status Palette</a>.</p> +<h2>Feature: Printable Test Execution Report</h2> +<p>As a tester I want to have a nice looking TestRun execution report which I can present to +my managers, stakeholders and/or customers. The page needs to be printer friendly for +“Print to PDF” or print on paper!</p> +<p>Kiwi TCMS already has this feature. Clicking the <code>[Report]</code> button +in the progress widget at <a href="https://public.tenant.kiwitcms.org/runs/625/">TR-625</a> presents +TestRun execution information in a simplified format found at +<a href="https://public.tenant.kiwitcms.org/runs/625/report/">TR-625/Report</a>. +In order to improve the current implementation:</p> +<ul> +<li>Convert TestRun page to Patternfly which generally prints better</li> +<li>Add bug list at the bottom of the page, below all test execution rows</li> +<li>Keep “View all in Issue Tracker” link (supported only for some bug trackers)</li> +<li>The widget for TestRun progress must be kept</li> +<li>Tweak CSS classes to disable printing for visual elements that we don't need. + This will be decided after the entire page has been converted to Patternfly</li> +<li>Remove the existing <code>testruns.views.TestRunReportView</code> and associated templates, + JavaScript and CSS because they will not be needed anymore</li> +</ul> +<h2>Feature: Individual or team performance telemetry</h2> +<p>As a manager I want to know what the work-load/performance of individual teams and +engineers is. I can use this information either for performance review or for +capacity planning of future work.</p> +<p><img src="/images/telemetry/performance_indicator.png" alt="Individual/team performance" style="float: none"></p> +<p>A new page will be available under TELEMETRY -&gt; Management -&gt; Performance which will:</p> +<ul> +<li>Allow filtering by<ul> +<li>Group (multi-select)</li> +<li>User (multi select, depends on Group)</li> +<li>Start / Stop dates</li> +<li>Product</li> +</ul> +</li> +<li>Show results per User or per Group (if no users are selected)</li> +<li>Allow grouping per TestRun ID or calendar week number</li> +</ul> +<p>The backend will query <code>TestExecution.objects</code> and apply the selected +filters and grouping logic! +The returned data is the count of how many tests this person/team was able to execute.</p> +<p>Further refinement: +Aggregate count by statuses (executed vs. non-executed or PASSED vs. FAILED vs. OTHER). +May be represented as a stacked bar chart if grouping of series is supported.</p> +<h2>Feature: Time-tracking telemetry</h2> +<p>As a manager I want to know how much time it took to complete previous testing activities. +I can use this information for predicting future capacity.</p> +<p>New page under TELEMETRY -&gt; Management -&gt; Time tracking.</p> +<ul> +<li>Filtering will be the same as performance telemetry</li> +<li>Grouping will be the same as performance telemetry</li> +<li><strong>Unknown:</strong> total execution time is calculated as<ul> +<li>the sum of duration for each TestExecution (not available ATM, + automation plugins not sending this info) or</li> +<li>the total time for the entire TestRrun (not supported by automation plugins)</li> +</ul> +</li> +</ul> +<p>Visually this will be a line chart with one line for each user/group which have +been selected. It will be very good if the existing chart libraries allow for a +stacked line chart or a stacked area chart here!</p> +<h2>Feature: Estimate TestRun completion time</h2> +<p>As a test lead I want to know approximately when testing is expected to complete.</p> +<p>This feature will utilize time-tracking data from previous executions and +display the approximated calculation in the web UI. The most obvious place for this +is the TestRun progress widget (under the progress bar) or the Test Run page +(near the Started at/Finished at fields).</p> +<p>Example text:</p> +<div class="highlight"><pre><span></span><code>Started at: YYYY-MM-DD 10:38 +Status: Running +Duration: 1.2 / 3 hrs +Estimated completion at: 13:30 +</code></pre></div> + + +<p><strong>Unknown:</strong> where does baseline duration come from? Either from the most recent TestRun +or an average from all of the previous Test Runs. Note that cumulative TestRun duration +is calculated between Start/Finish events while individual TestExecution records may +sum up to a different value! This needs to be clarified.</p> +<h2>Feature: TestCase health telemetry</h2> +<p>As a tester and/or manager I want to be able to discover which TestCase(s) are the most +common source of problems, that is they fail all the time or from time to time. +This may indicate poor test design or bad practices when developing the product. +This is also known as test stability or flaky tests!</p> +<p><img src="/images/telemetry/flaky_tests.png" alt="Flaky tests" style="float: none"></p> +<p>New page under TELEMETRY -&gt; Testing -&gt; Flaky tests</p> +<ul> +<li>Allow filtering by<ul> +<li>Product</li> +<li>Test plan (refined by product)</li> +<li>Start / Stop dates</li> +</ul> +</li> +<li>Show results in table form as shown in the image above</li> +<li>PASS/non-PASS stats will be calculated based on <code>TestExecution.objects</code></li> +<li>100% failing rate will be reported in the first table as ALWAYS FAILING</li> +<li>Executions where failing rate is &gt;0% and &lt;100% will be reported as FLAKY TESTS</li> +</ul> +<h2>Feature: TestCase breakdown telemetry</h2> +<p>As a tester and/or manager I want to see a breakdown of tests so that I have an +idea how the existing tests for the product are distributed!</p> +<p><img src="/images/telemetry/tc_breakdown.png" alt="Test case breakdown" style="float: none"></p> +<p>New page under TELEMETRY -&gt; Testing -&gt; Breakdown</p> +<ul> +<li>Allow filtering by<ul> +<li>Product</li> +<li>Test plan (refined by product)</li> +<li>Start / Stop dates</li> +</ul> +</li> +</ul> +<p>Shows combined bar/line charts with information about test case priorities, categories, +automation status and confirmed status.</p> +<h2>Feature: Individual TestCase health widget</h2> +<p>As a test engineer I want to be able to quickly see health information about individual +test case. This can help me visually locate TCs that need improvement so I can edit them +or will help me visually judge the past history of the TC I am looking at.</p> +<p><img src="/images/telemetry/tc_executions_card.png" alt="Individual TestCase health" style="float: none"></p> +<p>This depends on the previous feature. Possible places where health status can be shown:</p> +<ul> +<li>Test Case page, Executions card: info per TP</li> +<li>Test Run page, Test Executions table - visual icon + % to hint the user + about expected TC stability</li> +</ul> +<h2>Feature: Execution trends telemetry</h2> +<p>As a test manager I want to see information if Product builds are getting better or worse. +In other words what is the trend in TestExecution number and status!</p> +<p><img src="/images/telemetry/build_status.png" alt="Build status" style="float: none"></p> +<p>This is going to be a new page at TELEMETRY -&gt; Testing -&gt; Execution trends</p> +<ul> +<li>Filter by<ul> +<li>Product</li> +<li>Version (refined by Product)</li> +<li>Build (refined by Version)</li> +<li>Test Plan (refined by Product)</li> +<li>Start / Stop dates</li> +</ul> +</li> +<li>Shows total count of <code>TestExecution.objects</code> (stacked area chart) with color codes for status</li> +<li>Group by TestRun ID or calendar week</li> +</ul> +<p>You will be able to select TestRuns and/or weeks for detailed comparison.</p> +<h2>Feature: TestRun status matrix telemetry</h2> +<p>As a test manager I want to see detailed information about testing status for +specific test run(s) or a calendar period. I also want to be able to compare +the results between various weeks and/or test runs.</p> +<p><img src="/images/telemetry/compare_testruns.png" alt="Compare TestRuns" style="float: none"></p> +<p>This is a continuation of Execution trends telemetry but can be used on its own as well. +It will be accessible from TELEMETRY -&gt; Testing -&gt; Status matrix</p> +<p>Filtering options are the same. Results are displayed in a table format where +columns are the filtered (or previously selected) TestRun objects or calendar weeks. +The rows are the names of individual test cases that have been executed. If a case +is missing the cell will be empty.</p> +<p>Cells contain color coded information about status, timestamp of execution, +execution duration, links to the TestExecution object, latest comment in case +of failure.</p> +<p>Links to bugs will be shown in each cell with a summarized bug table below the +charts.</p> +<h2>Feature: Search and compare TestRuns</h2> +<p>This is complimentary to the TestRun status matrix feature! While searching +for TestRuns in SEARCH -&gt; Test Runs the user will be able to select several +rows and proceed to compare them as described above.</p> +<p>Happy testing!</p>Want to hack open source ?2019-03-02T19:40:00+02:002019-03-02T19:40:00+02:00Kiwi TCMS Teamtag:None,2019-03-02:/blog/kiwi-tcms-team/2019/03/02/want-to-hack-open-source/<p><img src="/images/team/hiring_banner.png" style="float:none;clear-both;margin:0;max-width: 100%"></p> +<p>Have you ever wanted to be part of an open source team? +Have you ever wanted to contribute back the open source community ? +Have you ever wanted to see your code used by thousands of people ?</p> +<p>If yes now you have the opportunity! Read on to learn how you can …</p><p><img src="/images/team/hiring_banner.png" style="float:none;clear-both;margin:0;max-width: 100%"></p> +<p>Have you ever wanted to be part of an open source team? +Have you ever wanted to contribute back the open source community ? +Have you ever wanted to see your code used by thousands of people ?</p> +<p>If yes now you have the opportunity! Read on to learn how you can help +Kiwi TCMS and how our team can help you.</p> +<h2>Inexperienced Python developer(s)</h2> +<p>It is fine not to have any experience at all! You will compensate with +commitment and hard work. Initially you are going to work on refactoring, +cleaning up pylint errors, removing duplicate code and other issues +reported by <a href="https://codeclimate.com/github/kiwitcms/Kiwi">CodeClimate</a>.</p> +<p>By doing this you will have the opportunity to learn git, Python, Django, +some CSS, JavaScript and Patternfly HTML of course. We are going to provide +you with all the learning materials plus help and guidance from existing team members.</p> +<p>Everyone on the team has gone though the same training procedure and grueling tasks +and so will you! Once you can demonstrate progress and learn the ropes you +will continue working on more complicated tasks.</p> +<h2>Experienced Python developer(s)</h2> +<p>So you have some experience already, you've probably contributed code before and are +now looking for more green stripes on your GitHub profile. We've got you covered!</p> +<p>There are many areas to choose from: issue tracker integration, GitHub integration, +GitLab integration, external API library, Kiwi TCMS plugins written in Python and +customized pylint linters! This is going to be where you get your hands dirty and +show your strengths. Our team is here to help if necessary but we expect you to +show progress by yourself.</p> +<p>A challenge for you will be to review pull requests from other contributors and +be patient with less experienced contributors and team members. This is an excellent +opportunity to work on your people skills as well.</p> +<h2>Experienced non-Python developer(s) (with Java)</h2> +<p>Kiwi TCMS is primarily looking for Java developers who will own our test automation +plugins. Currently we have a plugin for JUnit 5 and TestNG is in planning. Maybe +there will be a plugin for Jenkins as well. You are going to own these components +and work solely on them. Unless you decide to learn Python and Django that would +be a very easy job!</p> +<p>.NET, PHP, Ruby, JavaScript ? We don't have a lot of code written in these languages +but you can help change this. The main thing we'd like you to know +(or become familiar with) are the internals of popular test automation frameworks +for these languages and how to create plugins for them.</p> +<h2>QA engineer with Python</h2> +<p>You are going to test a lot! You are going to write test automation a lot! Ideally you +already have a medium level of experience in the software testing field and +want to improve your coding skills and/or get more experience into a different +application domain. We also have Linux and Docker in the mix, just for fun!</p> +<p>Your responsibility will be to design test scenarios for various features (new or existing), +write test automation scripts and help improve overall test coverage and quality +of Kiwi TCMS. You will also check-in on non-Python developers and +help them with test design when necessary.</p> +<p>There are other things that can be tested as well, for example Kiwi TCMS +performance and scalability. Here you will have to get down to the nitty-gritty +stuff and do some profiling to pin-point where the root cause of the problem is.</p> +<h2>Security freak</h2> +<p>We've got <a href="https://scan.coverity.com/projects/kiwitcms-kiwi">Coverity scan</a> and +<a href="https://snyk.io/test/github/kiwitcms/Kiwi">Snyk</a> automatically inspecting our +code base. We do have some other tools as well and we know they can never be enough.</p> +<p>You will be responsible for triaging the numerous issues being reported by these +tools and help us decide if they are a real threat or a false positive. For example +Coverity reports hundreds of issues mostly coming from our Python and Node.js dependency +stack. We haven't had the time to classify them and work with upstream communities +to fix them thus the majority of your contributions will be outside of the +Kiwi TCMS code base.</p> +<h2>Graphics designer</h2> +<p>Your main job is going to be creating beautiful images for our website, +blog posts and promotional material. All the images we use are licensed under +Creative Commons which we then modify with the specific Kiwi TCMS look and +feel. This is not going to change, your work will remain under a permissive +license!</p> +<h2>Marketing specialist</h2> +<p>You will be directly responsible for driving more traffic to our website, +interpreting Google Analytics metrics and coming up with creative ideas +how to boost Kiwi TCMS popularity. This means, but not limited to blog posts, +collaborations with other projects and/or bloggers, professional magazines, etc. +You will also be in charge of events and conferences that we go to! Whenever +possible you will be coming with us as well!</p> +<p>A challenge for you will be to learn some technical jargon and learn more +about the software testing profession and software testers in general!</p> +<h2>What's in it for you ?</h2> +<p>You will sharpen your skills! You will use Kiwi TCMS as a platform to +improve your career. You will experience the gratification of our community of users.</p> +<p>This blog is the medium where you can share tips +and tricks and technical articles about interesting features in Kiwi TCMS. +If you'd rather have your personal blog working on Kiwi TCMS will give you lots +of topics to write about.</p> +<p>We go to conferences and meetups too. If public speaking is your thing +you will have plenty of topics to talk about. We can also help you +deliver your first presentation! Everyone on the team has done it!</p> +<p>Our existing team will help you learn and we will help you grow. Our personal time +is the most expensive item we can offer to you! In return we expect you to +fulfill your commitments and when you promise something will be done you will +make sure it is done!</p> +<h2>How to apply ?</h2> +<p>You can figure this out yourself.</p> +<p>Happy testing!</p>How to use Kiwi TCMS plugins, Pt. 12019-02-22T15:10:00+02:002019-02-22T15:10:00+02:00Alexander Todorovtag:None,2019-02-22:/blog/atodorov/2019/02/22/how-to-use-kiwi-tcms-plugins-pt-1/<p>In +<a href="/blog/kiwi-tcms-team/2019/02/01/kiwi-tcms-65/">release notes for v6.5</a> +we announced several plugins which will fetch test names and execution results +from your automated test suite.</p> +<p>Plugins can be controlled via environment variables which will affect how +test results are recorded in the Kiwi TCMS database! This blog post is an introduction +how …</p><p>In +<a href="/blog/kiwi-tcms-team/2019/02/01/kiwi-tcms-65/">release notes for v6.5</a> +we announced several plugins which will fetch test names and execution results +from your automated test suite.</p> +<p>Plugins can be controlled via environment variables which will affect how +test results are recorded in the Kiwi TCMS database! This blog post is an introduction +how that works and what you can do with it! For this purpose I will be using the +<a href="https://github.com/kiwitcms/plugin-demo">plugin-demo</a> repository, which simulates +real development work.</p> +<p><em>Full documentation and list of available plugins is available in chapter +<a href="https://kiwitcms.readthedocs.io/en/latest/plugins.html">Automation Frameworks Plugins</a>!</em></p> +<h2>Always create new TestRun by default</h2> +<p>The default behavior is always to create a new TestRun if controlling variables +are not overridden! Product name, version and build will receive default values +if tests are running in Travis CI or Jenkins. For example +<a href="https://travis-ci.org/kiwitcms/plugin-demo/builds/496217246">Travis Build #2</a> for +<a href="https://github.com/kiwitcms/plugin-demo/commit/d455fb42fb7c2aedadfd5f66de7d131109c03350">commit d455fb4</a> +creates <a href="https://tcms.kiwitcms.org/runs/12/">TR-12</a> and +<a href="https://tcms.kiwitcms.org/plan/10/">TP-10</a>!</p> +<div class="highlight"><pre><span></span><code>Product=kiwitcms/plugin-demo +Version=d455fb42fb7c2aedadfd5f66de7d131109c03350 +Build=2 +</code></pre></div> + + +<p>Next we convert the README file from Markdown to reStructuredText which triggers +<a href="https://travis-ci.org/kiwitcms/plugin-demo/builds/496220575">Travis Build #3</a> for +<a href="https://github.com/kiwitcms/plugin-demo/commit/418b80b3bbb65a799f695dc59d488c76f560fa2b">commit 418b80b</a>. +This build <strong>again</strong> creates a new TestRun and new TestPlan for it. Respectively +<a href="https://tcms.kiwitcms.org/runs/14/">TR-14</a> and +<a href="https://tcms.kiwitcms.org/plan/12/">TP-12</a>!</p> +<div class="highlight"><pre><span></span><code>Product=kiwitcms/plugin-demo +Version=418b80b3bbb65a799f695dc59d488c76f560fa2b +Build=3 +</code></pre></div> + + +<p><strong>Important:</strong> we can see that version is different which will affect how artifacts +are organized in Kiwi TCMS, possibly affect how you will report status to stakeholders!</p> +<h2>Override ENV variables for more control</h2> +<p>Let's say the QA team has decided that all test results must be reported under the +same TestPlan. This means version must be the same between various builds in Travis CI! +To control this we export <code>TCMS_PRODUCT_VERSION=master</code> in CI <strong>before</strong> executing +the TAP plugin! Checkout the commit on GitHub to see how it is done!</p> +<p>This triggers +<a href="https://travis-ci.org/kiwitcms/plugin-demo/builds/496223505">Travis Build #4</a> for +<a href="https://github.com/kiwitcms/plugin-demo/commit/e484e59023caf665e8f93341395af6f397691b93">commit e484e59</a>. +Because this is the first time where Version == master the plugin creates +<a href="https://tcms.kiwitcms.org/plan/14/">TP-14</a> and reports the results under +<a href="https://tcms.kiwitcms.org/runs/16/">TR-16</a>.</p> +<div class="highlight"><pre><span></span><code>Product=kiwitcms/plugin-demo +Version=master +Build=4 +</code></pre></div> + + +<p>Right after that I realized we can make this configuration a bit more generic +because our team is planning to support multiple versions of the product and +development will be done in separate branches! +<a href="https://travis-ci.org/kiwitcms/plugin-demo/builds/496228021">Travis Build #5</a> for +<a href="https://github.com/kiwitcms/plugin-demo/commit/f1f2878d80a7327b54c8e33d1c6d6f14153d6d12">commit f1f2878</a> +still ends up with Version == master because we are still working on the <code>master</code> +branch! That is to say, the product is in active mode of development.</p> +<p>Results are reported in +<a href="https://tcms.kiwitcms.org/runs/18/">TR-18</a> which is again part of +<a href="https://tcms.kiwitcms.org/plan/14/">TP-14</a>.</p> +<div class="highlight"><pre><span></span><code>Product=kiwitcms/plugin-demo +Version=master +Build=5 +</code></pre></div> + + +<p><a href="https://travis-ci.org/kiwitcms/plugin-demo/builds/496229819">Travis Build #6</a> for +<a href="https://github.com/kiwitcms/plugin-demo/commit/df6153b2495bfc6825f25e544ae1806108aa490f">commit df6153b</a> +adds the new functionality <em>README badges</em> and reports test results in +<a href="https://tcms.kiwitcms.org/runs/20/">TR-20</a> which is again part of +<a href="https://tcms.kiwitcms.org/plan/14/">TP-14</a>.</p> +<h2>More ENV overrides</h2> +<p>While giving status reports back to stakeholders and developers the information that +we have in the TestRun is Build number! This follows the numbering scheme in Travis CI +(or Jenkins job number) and isn't very useful.</p> +<p>Let's define <code>TCMS_BUILD</code> to be the first 7 characters of the commit hash! When QA +tells devel that something isn't working and redirects them to the TestRun they can +immediately use the Build information and git checkout the offending variant of the product +for investigation.</p> +<p>This results in +<a href="https://travis-ci.org/kiwitcms/plugin-demo/builds/496233565">Travis Build #7</a> for +<a href="https://github.com/kiwitcms/plugin-demo/commit/bf75d0abe9695e3ee3b49b8944bab9db43bb25e6">commit bf75d0a</a>, +<a href="https://tcms.kiwitcms.org/runs/22/">TR-22</a>, +<a href="https://tcms.kiwitcms.org/plan/14/">TP-14</a>.</p> +<div class="highlight"><pre><span></span><code>Product=kiwitcms/plugin-demo +Version=master +Build=bf75d0a +</code></pre></div> + + +<h2>Report results in pre-existing TestRun</h2> +<p>There are many reasons you may want to do this:</p> +<ul> +<li>include both manual and automation tests for the same build;</li> +<li>mix results from multiple test suites for the same build, + e.g. unit, functional, performance</li> +<li>mix results from multiple but similar platforms in the same build, + e.g. cross-platform application for iOS and Android</li> +</ul> +<p>To do so I've created <a href="https://tcms.kiwitcms.org/runs/24/">TR-24</a> beforehand and +configured <code>TCMS_RUN_ID=24</code> in my CI environment. TR-24 also contains +<a href="https://tcms.kiwitcms.org/case/57/">TC-57: Verify we can report results from several plugins into the same TR</a>. +this was created and added via the web interface.</p> +<p><strong>Note:</strong> mixing additional test cases can be done either before or after +automation results are reported with the plugin!</p> +<p><strong>Important:</strong> when reporting results to an existing TestRun Kiwi TCMS plugins +don't care in which TestPlan this TR is! In theory it is possible to report +the results for <code>Product=kiwitcms/plugin-demo</code> into any TP/TR pair! However we +don't want to do this crazy thing and instead I've created TR-24 inside the already +existing TP-14!</p> +<p><strong>Note:</strong> because I don't know what is the git commit beforehand I've configured +TR-24 with <code>Build=unspecified</code>. If I wanted I could update this with the correct value +once I know the commit hash for the related changes I am testing.</p> +<p><strong>Important:</strong> the plugin-demo repository uses both kiwitcms-tap-plugin and +kiwitcms-junit.xml-plugin at the same time! They differ in the way test names +are compiled! Both are reported in TR-24. See TC-57 text for information how to +distinguish between the two.</p> +<p>See +<a href="https://travis-ci.org/kiwitcms/plugin-demo/builds/496237911">Travis Build #8</a> for +<a href="https://travis-ci.org/kiwitcms/plugin-demo/builds/496237911">commit 85ad939</a>, +<a href="https://tcms.kiwitcms.org/runs/24/">TR-24</a>, +<a href="https://tcms.kiwitcms.org/plan/14/">TP-14</a>.</p> +<div class="highlight"><pre><span></span><code>Product=kiwitcms/plugin-demo +Version=master +Build=unspecified +</code></pre></div> + + +<p>Also check-out comments in TR executions to see when and who had executed the test case.</p> +<p>So far there have been some tests which were failing (although Travis reports PASS) so +I decided to fix them. +<a href="https://travis-ci.org/kiwitcms/plugin-demo/builds/496240713">Travis Build #9</a> for +<a href="https://github.com/kiwitcms/plugin-demo/commit/a25b3841e656d47a7539c608e375cecbf3bed2ac">commit a25b384</a> +is still configured with <code>TCMS_RUN_ID=24</code>. This means results will be reported in +TR-24, effectively overwriting previous results.</p> +<p>Check-out <em>Change Log</em> under each individual execution and you will see several +time stamps when status was updated! In other words, as long as <code>TCMS_RUN_ID</code> is +pointing to an existing TestRun this TR will keep the results of the last test suite execution!</p> +<h2>Continue development, restore ENV configuration</h2> +<p><a href="https://travis-ci.org/kiwitcms/plugin-demo/builds/496243124">Travis Build #10</a> for +<a href="https://github.com/kiwitcms/plugin-demo/commit/c4f1ae5ecadb249d39923cedbbf53a85e50420b3">commit c4f1ae5</a> +removes <code>TCMS_RUN_ID</code>! Results are reported in +<a href="https://tcms.kiwitcms.org/runs/25/">TR-25</a>, +<a href="https://tcms.kiwitcms.org/plan/14/">TP-14</a>.</p> +<div class="highlight"><pre><span></span><code>Product=kiwitcms/plugin-demo +Version=master +Build=c4f1ae5 +</code></pre></div> + + +<h2>Branch out for an LTS version</h2> +<p>Our team has decided to make the first LTS release of the product. We branch out into +<code>lts-v0</code> branch in git and cut the first NVR. This results in +<a href="https://travis-ci.org/kiwitcms/plugin-demo/builds/496245067">Travis Build #11</a> for +<a href="https://github.com/kiwitcms/plugin-demo/commit/9f1ef717e3fb248d65535ed66b5c4e61e6f85a6e">commit 9f1ef71</a> +<a href="https://tcms.kiwitcms.org/runs/27/">TR-27</a>, +<a href="https://tcms.kiwitcms.org/plan/16/">TP-16</a>.</p> +<div class="highlight"><pre><span></span><code>Product=kiwitcms/plugin-demo +Version=lts-v0 +Build=9f1ef71 +</code></pre></div> + + +<p>Because this is the first time we are running tests for this product version +we end up with the newly created TP-16!</p> +<p><strong>Note:</strong> see how version was populated with the correct value for the git branch! +This is because my CI config uses <code>TCMS_PRODUCT_VERSION=$TRAVIS_BRANCH</code> and no further +changes were required! I made this change back in Travis Build #5 anticipating what +will come in the future!</p> +<p>The product is now live and customers have reported critical bugs for it: +<em>URLs for the badges in README are wrong</em>! I fix those and add more tests of course, see: +<a href="https://travis-ci.org/kiwitcms/plugin-demo/builds/496247347">Travis Build #12</a> for +<a href="https://github.com/kiwitcms/plugin-demo/commit/2d72754d3f911ef4e25287f203471f4466b95d12">commit 2d72754</a>, +<a href="https://tcms.kiwitcms.org/runs/29/">TR-29</a> for +<a href="https://tcms.kiwitcms.org/plan/16/">TP-16</a>.</p> +<div class="highlight"><pre><span></span><code>Product=kiwitcms/plugin-demo +Version=lts-v0 +Build=2d72754 +</code></pre></div> + + +<p>TR-29 contains the new <a href="https://tcms.kiwitcms.org/case/58/">TC-58</a>!</p> +<h2>cherry-pick between branches</h2> +<p>In the <code>lts-v0</code> branch customers have identified a serious issue. It doesn't exist on <code>master</code> +but the test is still valid so I cherry-pick it! In git you can backport or forwardport very +easily. Regardless of the direction Kiwi TCMS plugins will record the test results for you.</p> +<p>See +<a href="https://travis-ci.org/kiwitcms/plugin-demo/builds/496252529">Travis Build #13</a> for +<a href="https://github.com/kiwitcms/plugin-demo/commit/31ae5b3358137fde7d2b5c3656b384acc7331d95">commit 31ae5b3</a>, +<a href="https://tcms.kiwitcms.org/runs/31/">TR-31</a> for +<a href="https://tcms.kiwitcms.org/plan/14/">TP-14</a>.</p> +<p>We can see that TC-58, which was originally implemented on the <code>lts-v0</code> branch +is now present!</p> +<h2>Summary</h2> +<p>This is a very basic example of how you can organize collection and reporting for +your automation test suite results with Kiwi TCMS. The links here only refer to +artifacts created by <code>kiwitcms-tap-plugin</code> while in the DB we keep others as well.</p> +<p>There are feature requests for more ENV variables which will allow you to control +TestPlan creation and child/parent relationship between test plans. See +<a href="https://github.com/kiwitcms/tap-plugin/issues">https://github.com/kiwitcms/tap-plugin/issues</a> and vote with a <code>:+1:</code> reaction +to help us plan for these features.</p> +<p>Kiwi TCMS automation framework plugins are nothing more than result parsers +which talk back to a database. It is up to you to decide how to organize the +collection of test results and how to report on them later, when the need arises.</p> +<p>Future installments in this post series will take a look at workflows with +feature branches and pull requests and discuss possible organization scenarios. +You are welcome to share your ideas in the comments below.</p> +<p>Happy testing!</p>Kiwi TCMS 6.5.32019-02-12T00:20:00+02:002019-02-12T00:20:00+02:00Kiwi TCMS Teamtag:None,2019-02-12:/blog/kiwi-tcms-team/2019/02/12/kiwi-tcms-653/<p>We're happy to announce Kiwi TCMS version 6.5.3! This is a +security, improvement and bug-fix update that includes new +versions of Django, includes several database migrations and fixes several bugs. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5 …</pre><p>We're happy to announce Kiwi TCMS version 6.5.3! This is a +security, improvement and bug-fix update that includes new +versions of Django, includes several database migrations and fixes several bugs. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +<p>Docker images:</p> +<pre class="literal-block"> +kiwitcms/kiwi latest b9355cf85833 1.039 GB +kiwitcms/kiwi 6.2 7870085ad415 957.6 MB +kiwitcms/kiwi 6.1.1 49fa42ddfe4d 955.7 MB +kiwitcms/kiwi 6.1 b559123d25b0 970.2 MB +kiwitcms/kiwi 6.0.1 87b24d94197d 970.1 MB +kiwitcms/kiwi 5.3.1 a420465852be 976.8 MB +</pre> +<div class="section" id="changes-since-kiwi-tcms-6-5"> +<h2>Changes since Kiwi TCMS 6.5</h2> +<div class="section" id="security"> +<h3>Security</h3> +<ul class="simple"> +<li>Update Django from 2.1.5 to 2.1.7. Fixes CVE-2019-6975: +Memory exhaustion in <tt class="docutils literal">django.utils.numberformat.format()</tt></li> +</ul> +</div> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update mysqlclient from 1.4.1 to 1.4.2</li> +<li>Multiple template strings marked as translatable (Christophe CHAUVET)</li> +</ul> +</div> +<div class="section" id="database-migrations"> +<h3>Database migrations</h3> +<ul class="simple"> +<li>Email notifications for TestPlan and TestCase now default to True</li> +<li>Remove <tt class="docutils literal">TestPlanEmailSettings.is_active</tt> field</li> +</ul> +</div> +<div class="section" id="api"> +<h3>API</h3> +<ul class="simple"> +<li>New method <tt class="docutils literal">Bug.report()</tt>, References +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/18">Issue #18</a></li> +<li>Method <tt class="docutils literal">Bug.create()</tt> now accepts parameter <tt class="docutils literal">auto_report=False</tt></li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/de#">German translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/fr#">French translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Show the user who actually tested a TestCase instead of hard-coded value. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/765">Issue #765</a></li> +<li>Properly handle pagination button states and page numbers. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/767">Issue #767</a></li> +<li>Add TestCase to TestPlan if creating from inside a TestPlan. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/777">Issue #777</a></li> +<li>Made TestCase text more readable. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/764">Issue #764</a></li> +<li>Include missing templates and static files from PyPI tarball</li> +</ul> +</div> +<div class="section" id="refactoring"> +<h3>Refactoring</h3> +<ul class="simple"> +<li>Use <tt class="docutils literal">find_packages()</tt> when building PyPI tarball</li> +<li>Install Kiwi TCMS as tarball package inside Docker image instead of copying +from the source directory</li> +<li>Pylint fixes</li> +<li>Remove <tt class="docutils literal">testcases.views.ReturnActions()</tt> which is now unused</li> +<li>Refactor New TestCase to class-based view and add tests</li> +</ul> +</div> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p>If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +cd Kiwi/ +git pull +docker-compose down +docker pull kiwitcms/kiwi +docker pull centos/mariadb +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +</pre> +<p>Don't forget to <a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">backup</a> +before upgrade!</p> +<p><strong>WARNING:</strong> <tt class="docutils literal">kiwitcms/kiwi:latest</tt> and <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> 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:</p> +<pre class="literal-block"> +# starting from an older Kiwi TCMS version +docker-compose down +docker pull kiwitcms/kiwi:&lt;next_upgrade_version&gt; +edit docker-compose.yml to use kiwitcms/kiwi:&lt;next_upgrade_version&gt; +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +# repeat until you have reached latest +</pre> +<p>Happy testing!</p> +</div> +Kiwi TCMS 6.52019-02-01T09:35:00+02:002019-02-01T09:35:00+02:00Kiwi TCMS Teamtag:None,2019-02-01:/blog/kiwi-tcms-team/2019/02/01/kiwi-tcms-65/<p>We're happy to announce Kiwi TCMS version 6.5! This is a minor security, +improvement and bug-fix update that includes new +versions of Django and other dependencies, removes some database fields, +includes backend API updates and fixes several bugs. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Together …</p><p>We're happy to announce Kiwi TCMS version 6.5! This is a minor security, +improvement and bug-fix update that includes new +versions of Django and other dependencies, removes some database fields, +includes backend API updates and fixes several bugs. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Together with this release we announce:</p> +<ul class="simple"> +<li><a class="reference external" href="https://github.com/kiwitcms/tap-plugin">kiwitcms-tap-plugin</a> : for reading +Test Anything Protocol (TAP) files and uploading the results to Kiwi TCMS</li> +<li><a class="reference external" href="https://github.com/kiwitcms/junit.xml-plugin">kiwitcms-junit.xml-plugin</a> : +for reading junit.xml formatted files and uploading the results to Kiwi TCMS</li> +</ul> +<p>Both of these are implemented in Python and should work on standard TAP and +junit.xml files generated by various tools!</p> +<p>Additionally 3 more plugins are currently under development by contributors:</p> +<ul class="simple"> +<li>Native <a class="reference external" href="https://github.com/kiwitcms/junit-plugin/">JUnit 5 plugin</a> written +in Java</li> +<li>Native <a class="reference external" href="https://github.com/kiwitcms/phpunit-plugin/">PHPUnit</a> written +in PHP</li> +<li><a class="reference external" href="https://github.com/kiwitcms/pytest-plugin/">py.test plugin</a></li> +</ul> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +<p>Docker images:</p> +<pre class="literal-block"> +kiwitcms/kiwi latest 7ca4fda602fc 1.002 GB +kiwitcms/kiwi 6.2 7870085ad415 957.6 MB +kiwitcms/kiwi 6.1.1 49fa42ddfe4d 955.7 MB +kiwitcms/kiwi 6.1 b559123d25b0 970.2 MB +kiwitcms/kiwi 6.0.1 87b24d94197d 970.1 MB +kiwitcms/kiwi 5.3.1 a420465852be 976.8 MB +</pre> +<div class="section" id="changes-since-kiwi-tcms-6-4"> +<h2>Changes since Kiwi TCMS 6.4</h2> +<div class="section" id="security"> +<h3>Security</h3> +<ul class="simple"> +<li>Better override of SimpleMDE markdown rendering to prevent XSS vulnerabilities +in SimpleMDE</li> +</ul> +</div> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update patternfly to version 3.59.1</li> +<li>Update bleach from 3.0.2 to 3.1.0</li> +<li>Update django-vinaigrette from 1.1.1 to 1.2.0</li> +<li>Update django-simple-history from 2.6.0 to 2.7.0</li> +<li>Update django-grappelli from 2.12.1 to 2.12.2</li> +<li>Update mysqlclient from 1.3.14 to 1.4.1</li> +<li>Update psycopg2 from 2.7.6.1 to 2.7.7</li> +<li>Update pygithub from 1.43.4 to 1.43.5</li> +<li>Convert TestCase page to Patternfly<ul> +<li>page menu is under <tt class="docutils literal">...</tt> in navigation bar</li> +<li>Test plans card is missing the old 'add plan' functionality b/c we are not +at all sure if adding plans to test cases is used at all. Can bring it back +upon user request!</li> +<li>Bugs card is missing the add/remove functionality for b/c we are not +quite sure how that functionality is used outside test runs!</li> +</ul> +</li> +<li>Convert new TestCase page to Patternfly and provide Given-When-Then text +template. This prompts the author to use a BDD style definition for their +scenarios. We believe this puts the tester into a frame of mind more +suitable for expressing what needs to be tested</li> +<li>Add a favicon. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/532">Issue #532</a></li> +<li>Sort Component, Product and Version objects alphabetically. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/633">Issue #633</a></li> +<li>Search test case page now shows Components and Tags</li> +<li>Search test case page now allows filtering by date. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/715">Issue #715</a></li> +<li>Search test case page now uses radio buttons to filter by automation status</li> +<li>Small performance improvement when searching test plans and test cases</li> +<li>Search test run page now allows to filter by Product but still continue to +display all Builds in the selected Product</li> +<li>Updated doc-string formatting for some <tt class="docutils literal">tcms</tt> modules</li> +</ul> +</div> +<div class="section" id="database-migrations"> +<h3>Database migrations</h3> +<p><strong>Known issues:</strong> on our demo installation we have observed that permission +labels were skewed after applying migrations. The symptom is that labels for +removed models are still available, labels for some models may have been removed +from groups/users or there could be permission labels appearing twice in the +database.</p> +<p>This may affect only existing installations, new installations do not have +this problem!</p> +<p>We are not certain what caused this but a quick fix is to remove all permissions +from the default <em>Tester</em> group and re-add them again!</p> +<ul class="simple"> +<li>Remove <tt class="docutils literal">TestCase.alias</tt></li> +<li>Remove <tt class="docutils literal">TestCaseRun.running_date</tt></li> +<li>Remove <tt class="docutils literal">TestCaseRun.notes</tt></li> +<li>Remove <tt class="docutils literal">TestCase.is_automated_proposed</tt></li> +<li>Remove <tt class="docutils literal">TestCaseText</tt> model, merge into <tt class="docutils literal">TestCase.text</tt> field. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/198">Issue #198</a></li> +<li>Remove <tt class="docutils literal">Priority.sortkey</tt></li> +<li>Remove <tt class="docutils literal">Build.description</tt></li> +<li>Remove <tt class="docutils literal">Classification.sortkey</tt> and <tt class="docutils literal">Classification.description</tt></li> +<li>Convert <tt class="docutils literal">TestCase.is_automated</tt> from <tt class="docutils literal">int</tt> to <tt class="docutils literal">bool</tt></li> +<li>Rename <tt class="docutils literal">TestCaseRun.case_run_status</tt> to <tt class="docutils literal">status</tt></li> +</ul> +</div> +<div class="section" id="api"> +<h3>API</h3> +<ul class="simple"> +<li>New method <tt class="docutils literal">TestCaseRunStatus.filter()</tt></li> +<li>New method <tt class="docutils literal">Product.create()</tt></li> +<li>New method <tt class="docutils literal">Classification.filter()</tt></li> +<li>New method <tt class="docutils literal">BugSystem.filter()</tt></li> +<li>Changes to <tt class="docutils literal">TestCase.add_component()</tt>:<ul> +<li>now accepts component name instead of id</li> +<li>now fails if trying to add components linked to another Product.</li> +<li>now returns serialized <tt class="docutils literal">TestCase</tt> object</li> +</ul> +</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/fr#">French translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Fix for missing migrations from <tt class="docutils literal"><span class="pre">django-simple-history</span></tt>, see +<a class="reference external" href="https://github.com/treyhunner/django-simple-history/issues/512">DSH #512</a> and +<a class="reference external" href="https://stackoverflow.com/questions/54177838/">StackOverflow #54177838</a></li> +<li>Fix cloning of test cases by surrounding bootstrap-selectpicker call with +<tt class="docutils literal"><span class="pre">try-catch</span></tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/695">Issue #695</a></li> +<li>Fix a traceback with TestRun report page when the RPC connection to Bugzilla +can't be established</li> +</ul> +</div> +<div class="section" id="refactoring"> +<h3>Refactoring</h3> +<ul class="simple"> +<li>Remove unused form classes, methods, fields and label attributes</li> +<li>Remove unused or duplicate methods from <tt class="docutils literal">TestCase</tt> model</li> +<li>Remove useless methods from BaseCaseForm()</li> +<li>Add test for discovering missing migrations</li> +<li>Add test for sanity checking PyPI packages which will always +build tarball and wheel packages</li> +</ul> +</div> +</div> +<div class="section" id="tcms-api-5-2-30-jan-2019"> +<h2>tcms-api 5.2 (30 Jan 2019)</h2> +<ul class="simple"> +<li>Add <tt class="docutils literal">plugin_helpers.Backend</tt> which implements our test runner plugin +<a class="reference external" href="http://kiwitcms.org/blog/atodorov/2018/11/05/test-runner-plugin-specification/">specification</a> +in Python</li> +<li>Add dependency to <tt class="docutils literal">kerberos</tt> (Aniello Barletta)</li> +</ul> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p>If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +cd Kiwi/ +git pull +docker-compose down +docker pull kiwitcms/kiwi +docker pull centos/mariadb +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +</pre> +<p>Don't forget to <a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">backup</a> +before upgrade!</p> +<p><strong>WARNING:</strong> <tt class="docutils literal">kiwitcms/kiwi:latest</tt> and <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> 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:</p> +<pre class="literal-block"> +# starting from an older Kiwi TCMS version +docker-compose down +docker pull kiwitcms/kiwi:&lt;next_upgrade_version&gt; +edit docker-compose.yml to use kiwitcms/kiwi:&lt;next_upgrade_version&gt; +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +# repeat until you have reached latest +</pre> +<p>Happy testing!</p> +</div> +Kiwi TCMS is going to FOSDEM 20192019-01-17T17:30:00+02:002019-01-17T17:30:00+02:00Kiwi TCMS Teamtag:None,2019-01-17:/blog/kiwi-tcms-team/2019/01/17/kiwi-tcms-is-going-to-fosdem-2019/<p>Hello testers, Kiwi TCMS is going to <a href="http://fosdem.org/">FOSDEM</a> this year. +This is where you can find us:</p> +<p><img src="/images/kiwi_sticker.jpg" style="float:left; margin-right: 25px;" + alt="Kiwi TCMS sticker" title="Kiwi TCMS sticker"></p> +<ul> +<li>Fri Feb 1st: <a href="https://fosdem.org/2019/beerevent/">after 18:00 @ Delirium Café</a> - + we are taking part of the FOSDEM Beer Event where all participants are invited. + <code>Shout out with #KiwiTCMS</code> on Twitter if you can't find us …</li></ul><p>Hello testers, Kiwi TCMS is going to <a href="http://fosdem.org/">FOSDEM</a> this year. +This is where you can find us:</p> +<p><img src="/images/kiwi_sticker.jpg" style="float:left; margin-right: 25px;" + alt="Kiwi TCMS sticker" title="Kiwi TCMS sticker"></p> +<ul> +<li>Fri Feb 1st: <a href="https://fosdem.org/2019/beerevent/">after 18:00 @ Delirium Café</a> - + we are taking part of the FOSDEM Beer Event where all participants are invited. + <code>Shout out with #KiwiTCMS</code> on Twitter if you can't find us in the crowd</li> +<li>Both days: <a href="https://fosdem.org/2019/stands/">Building K, Level 2, Stand 10</a>. + We will be together with our friends from ReportPortal and SystemTestPortal at + the Open Source Test Management stand</li> +<li>Sat Feb 2nd: + <a href="https://fosdem.org/2019/schedule/track/lightning_talks/">18:00 @ Room H.2215 (Lightning Talks)</a> - + <a href="https://fosdem.org/2019/schedule/event/test_case_management/">10 years of open source test case management <em>with Kiwi TCMS</em></a> + lightning talk</li> +<li>Sun Feb 3rd: + <a href="https://fosdem.org/2019/schedule/track/python/">10:00 @ UD2.120 (Python devroom)</a> - + <a href="https://fosdem.org/2019/schedule/event/python_write_pylint_plugins/">How to write pylint plugins</a> + presentation with examples of plugins which our team uses to make Kiwi TCMS better</li> +</ul> +<p>We would like to meet with all of you and talk about test management and +test process organization. In case you are stuck for crazy ideas checkout +<a href="/blog/atodorov/2019/01/10/project-mission-and-goals-for-2019/">our project mission</a> for inspiration.</p> +<h2>Be part of the community</h2> +<p>We are turning 10 years old and we have presents for you! You will have to perform +a small challenge and you can get your hands(errr, feet) on a pair of these:</p> +<p><img src="/images/kiwi_socks.jpg" style="float:none" + alt="Kiwi TCMS socks" title="Kiwi TCMS socks"></p> +<p>Here's what else you can do to help us:</p> +<ul> +<li><a href="https://github.com/kiwitcms/Kiwi/stargazers">Become a stargazer</a> by clicking the + <code>Star</code> button on our GitHub repository</li> +<li><a href="https://twitter.com/KiwiTCMS">Follow @KiwiTCMS on Twitter</a></li> +<li><a href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Subscribe to our newsletter</a> - + we are GDPR compliant and we don't spam, we promise!</li> +<li>Send us testimonials and feedback about using Kiwi TCMS. + We will be happy to publish them on our website</li> +<li><a href="https://opencollective.com/kiwitcms">Become a sponsor</a>!</li> +</ul> +<p>Happy testing!</p>Project mission and goals for 20192019-01-10T10:35:00+02:002019-01-10T10:35:00+02:00Alexander Todorovtag:None,2019-01-10:/blog/atodorov/2019/01/10/project-mission-and-goals-for-2019/<p>Hello testers, Kiwi TCMS has taken on a brave new +mission! We would like to transform the testing process by making it more +organized, transparent &amp; accountable for everyone on your team. Our goal +is to improve engineering productivity and participation in +testing. The following blog post outlines how we would …</p><p>Hello testers, Kiwi TCMS has taken on a brave new +mission! We would like to transform the testing process by making it more +organized, transparent &amp; accountable for everyone on your team. Our goal +is to improve engineering productivity and participation in +testing. The following blog post outlines how we would like to achieve +this and what goals we put before ourselves for this year.</p> +<h2>Complete the internal refactoring</h2> +<p>Last year we took on the challenge to bring a legacy code base up to modern +coding standard. We did not complete that effort but made very good progress +along the way. This is not a small task and that's why our team will continue +with it this year.</p> +<p><img src="/images/codeclimate_jan_2019.png" style="float:none" + alt="CodeClimate report" title="CodeClimate report"></p> +<ul> +<li><a href="https://codeclimate.com/github/kiwitcms/Kiwi">CodeClimate</a>: + 0 issues, 0% technical debt, health score A</li> +<li><a href="https://scrutinizer-ci.com/g/kiwitcms/Kiwi/">Scrutinizer</a>: + only A and B type issues</li> +<li><a href="https://travis-ci.org/kiwitcms/Kiwi/jobs/475946313">Pylint</a>: 0 issues</li> +<li>Remove vendored-in Handlebars, jQuery, jQuery-UI and TableDnD JavaScript + libraries in favor of existing npm dependencies</li> +<li>Front-end uses the existing JSON-RPC instead of backend views that + are only used for AJAX requests. Tip: these are usually accessed via + <code>postToURL()</code> and <code>jQ.ajax()</code> on the front-end</li> +<li>Inspect and classify all 3rd party issues reported from + <a href="https://scan.coverity.com/projects/kiwitcms-kiwi">Coverity</a> and + <a href="https://travis-ci.org/kiwitcms/Kiwi/jobs/475946312">Bandit</a>. Report and fix + what we can, ignore the rest that do not affect Kiwi TCMS.</li> +</ul> +<h2>Redesign the UI templates with the help of Patternfly</h2> +<p>There are 59 templates remaining to be converted to a modern look and feel. +Along with them comes more refactoring and even redesign of the existing pages +and the workflow around them. Together with refactoring this will make Kiwi TCMS +easier to use and also to maintain.</p> +<h2>Modernize reporting</h2> +<p>We are planning to remove the existing reports feature because they are not well +designed. We will re-implement existing functionality that our community finds useful, +add new types of reports (incl. nicer graphics and UI) and make it possible for the +reporting sub-system to be more easily extendable.</p> +<p>Phase out is planned to begin after 1st March 2019! Until then we are looking for your +feedback. Please comment in +<a href="https://github.com/kiwitcms/Kiwi/issues/657">Issue #657</a>!</p> +<h2>Plugins for 3rd party test automation frameworks</h2> +<p>These will make it easier to collect results from automated test suites into +Kiwi TCMS for later analysis. Instead of creating scripts that parse the +results and talk to our API you will only have to install an additional package +in your test environment and configure the test runner to use it! Automation +test results will then appear inside Kiwi TCMS.</p> +<ul> +<li><a href="https://github.com/kiwitcms/junit-plugin">JUnit 5 plugin</a> - already in progress</li> +<li><a href="https://github.com/kiwitcms/Kiwi/issues/692">TestNG plugin</a> - RFC</li> +<li><a href="https://github.com/kiwitcms/Kiwi/issues/693">Django plugin</a> - RFC</li> +<li><a href="https://github.com/kiwitcms/Kiwi/issues/694">py.test plugin</a> - RFC</li> +</ul> +<p>If you would like to use such functionality leave your vote inside GitHub +issues! In case you would like to write a test-runner plugin you can find the +specification +<a href="http://kiwitcms.org/blog/atodorov/2018/11/05/test-runner-plugin-specification/">here</a>.</p> +<h2>Redefine bug-tracker integration</h2> +<blockquote> +<p>Question: Does Kiwi TCMS integrate with JIRA?</p> +<p>Answer: Well, it does. How exactly do you want to integrate?</p> +<p>... silence ...</p> +</blockquote> +<p>The following dialog happens every time someone asks me about bug-tracker +integration, especially with JIRA. The thing is integration is a specified +set of behavior which may or may not be desired in a particular team. As of now +Kiwi TCMS is able to open a URL to your bug-tracker with predefined field +values, add comments to bug reports and report a simple summary of bugs +inside a TestRun.</p> +<p>We recognize this may not be enough and together with the community we +really need to define what bug tracker integration means! The broader domain +of application lifecycle management tools (of which TCMS is a sub-set) have an +integrated bug tracking system. We can add something like this and save you +the trouble of using JIRA, however many teams have already invested in +integrating their infrastructure or just like other tools. For example we love +GitHub issues and our team regularly makes public reports about issues that +we find internally!</p> +<ul> +<li>Goal: Redefine what bug-tracker integration means, vote in + <a href="https://github.com/kiwitcms/Kiwi/issues/698">Issue #698</a></li> +<li>Goal: Bug-tracker functionality inside Kiwi TCMS, similar to + GitHub Issues. Vote in + <a href="https://github.com/kiwitcms/Kiwi/issues/699">Issue #699</a></li> +<li>Goal: Integration with Redmine (per current specification), vote in + <a href="https://github.com/kiwitcms/Kiwi/issues/41">Issue #41</a></li> +<li>Goal: fix existing bugs around bug-tracker integration + (per current specification). Vote in + <a href="https://github.com/kiwitcms/Kiwi/issues/97">Issue #97</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/117">Issue #117</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/289">Issue #289</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/290">Issue #290</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/320">Issue #320</a>, + <a href="https://github.com/kiwitcms/Kiwi/issues/479">Issue #479</a> and + <a href="https://github.com/kiwitcms/Kiwi/issues/530">Issue #530</a></li> +</ul> +<h2>GitHub flow integration</h2> +<p>Developers have their +<a href="https://guides.github.com/introduction/flow/">GitHub PR flow</a> and if they +have done the job of having unit tests then they will merge only when things +are green! This leaves additional testing efforts kind of to the side and +doesn't really help with transparency and visibility. I'm not going to mention +having an automatically deployed staging environment for every change +because very few teams actually have managed to do this effectively.</p> +<p><img src="/images/github_kiwitcms_pr_status.png" style="float:none" + alt="Kiwi TCMS statuses on GitHub PR" title="Kiwi TCMS statuses on GitHub PR"></p> +<ul> +<li>Goal: Figure out how Kiwi TCMS can integrate with GitHub flow and bridge the gap. + Please share and <code>+1</code> your wildest ideas in + <a href="https://github.com/kiwitcms/Kiwi/issues/700">Issue #700</a>.</li> +<li>Follow up: depending on the results in #700 we will follow with other goals and + sub-tasks</li> +</ul> +<h2>Agile integration with Trello</h2> +<p>Speaking of modern engineering flow is your team truly agile? When and how +do you plan your testing activities ? Before the devel sprint or afterwards? +How many testers take part in refining product backlog and working on user stories?</p> +<p>Similar to GitHub flow lots of teams and open source projects are using Trello +to effectively organize their development process. Testing should not be left +behind and Kiwi TCMS may be able to help.</p> +<ul> +<li>Goal: Figure out how Kiwi TCMS fits into the overall <code>devel-test-planning</code> + process for agile teams and what we can do to make this easier for testers. + Please share and <code>+1</code> your wildest ideas in + <a href="https://github.com/kiwitcms/Kiwi/issues/701">Issue #701</a></li> +<li>Follow up: depending on the results in #701 we will follow with other goals and + sub-tasks</li> +</ul> +<h2>Improve engineering productivity</h2> +<p>What makes a test engineer productive when they need to assess product risk and +new features, when mapping product requirements documents (PRD) to test plans and +test cases, when collaborating on user stories and behavior specification ? +What makes developers, product owners, designers and other professionals productive +when it comes to dealing with testing ?</p> +<p>For example consider the following workflow:</p> +<ul> +<li>Company has idea for a new product</li> +<li>In case this is a big product it may have its own mission, i.e. what kind + of problem is it trying to solve and for which group of customers</li> +<li>Product backlog is then created which outlines features that map + to the product mission</li> +<li>Then the team, together with test engineers perform example mapping + and discuss and refine the initial feature requirements. User stories + are created</li> +<li>Behavior specification may also be created</li> +<li>Test plans and test cases are the immediate product of BDD specs and + desired user stories</li> +</ul> +<p>Later we iterate through the sprints and for each sprint something like +this happens:</p> +<ul> +<li>Desired product features are planned for development. They must be <em>complete</em> + at least in terms of requirements, specs and tests</li> +<li>Devel writes code, maybe some unit tests, testers can also write automated tests + and/or manually verify the current state of the feature being developed</li> +<li>Testing, including exploratory is performed before feature is merged</li> +<li>Rinse and repeat</li> +</ul> +<p>Devel is also part of testing, right? Product owners, UX and interaction +designers as well. Producing quality software product is a team effort!</p> +<p>In every step of the way Kiwi TCMS can provide notification wizards, guidelines +and/or documentation for best practices, facilitate tooling, e.g. to write user stories +and assess them or map out an exploratory testing session, etc. The list +of ideas is virtually endless. We can even go into deep learning, AI and +blockchain but honestly who knows how to use them in testing ?</p> +<p>Our team is not quite sure how this goal will look like 3 months from now +but we are certain that testing needs to happen first, last and all the time +during the entire software development lifecycle. By providing the necessary +functionality and tools in Kiwi TCMS we can boost engineering productivity +and steer the testing process in your organization into a better, more productive +direction which welcomes participation from all engineering groups.</p> +<p>Let's consider another point of view: testing is a creative activity +which is benefited by putting your brain into a specific state of mind! +For example Gherkin (the Given-When-Then language) has the benefit of +forcing you to think about behavior and while doing so you are vocalizing +the various roles in the system, what kind of actions are accepted and +what sort of result is expected! Many times this will help you remember or +discover missing scenarios, edge cases and raise even more questions!</p> +<p>Crazy ideas, brain dumps and <code>+1</code> as always are welcome in +<a href="https://github.com/kiwitcms/Kiwi/issues/703">Issue #703</a>.</p> +<h2>Community</h2> +<p>Coding alone is not fun! Here's what you can do to help us:</p> +<ul> +<li><a href="https://github.com/kiwitcms/Kiwi/stargazers">Become a stargazer</a> by clicking the + <code>Star</code> button on our GitHub repository</li> +<li><a href="https://twitter.com/KiwiTCMS">Follow @KiwiTCMS on Twitter</a></li> +<li><a href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Subscribe to our newsletter</a> - + we are GDPR compliant and we don't spam, we promise!</li> +<li>Vote with a <code>+1</code> reaction on GitHub issues (top-right corner)</li> +<li>Send us testimonials and feedback about using Kiwi TCMS. + We will be happy to publish them on our website</li> +<li>Send us a pull request on GitHub</li> +<li><a href="https://opencollective.com/kiwitcms">Become a sponsor</a>!</li> +</ul> +<p>We are also looking to expand our core team and the list of occasional +contributors. The following are mostly organizational goals:</p> +<ul> +<li>Goal: participate in 5 conferences with a project stand</li> +<li>Goal: define how we find, recruit and onboard new team members. The + foundation is already set in + <a href="https://tcms.kiwitcms.org/plan/3/kiwi-tcms-team-onboarding#testcases">TP-3</a></li> +<li>Goal: clearly mark GitHub issues which are suitable for external contributors + which don’t want to spend lots of time learning how Kiwi TCMS works under the hood. + We're going to tag all such issues with the + <a href="https://github.com/kiwitcms/Kiwi/labels/help%20wanted"> + <img src="/images/github_helpwanted.png" style="float: none; margin:0" + alt="GitHub help wanted" title="GitHub help wanted"> + </a> label</li> +</ul> +<h2>Development policy</h2> +<p>Our team will be working on areas related to the goals above. A <code>+1</code> +reaction on GitHub issues will help us prioritize what we work on!</p> +<p><img src="/images/github_plus_one.png" style="float:none" + alt="GitHub +1" title="GitHub +1"></p> +<p>Bug fixes and other +issues will be occasionally slipped into the stream and pull requests from +non-team contributors will be reviewed and merged in a timely fashion.</p> +<p>There is at least 1 full day of work that goes behind the scenes when +a new version is officially released: compile changelog, build images and +upload them, create blog post and newsletter announcement, share on social +media, etc. We also deploy on our own Kiwi TCMS instance as a stop-gap +measure before making everything public!</p> +<p>New PyPI tarballs and Docker images will be released every few weeks as +we see fit, this has been our standard process. We try to align releases +with Django's release schedule and try to cut a new version when there are known +security vulnerabilities fixed. However we can't guarantee this will always +be the case!</p> +<p>If you are in a hurry and need something quickly the best option is to +send a pull request, build your own Docker image from source and +maybe consider +<a href="https://opencollective.com/kiwitcms">sponsoring us via Open Collective</a>!</p> +<p>Happy testing!</p>Kiwi TCMS 6.42019-01-07T15:25:00+02:002019-01-07T15:25:00+02:00Kiwi TCMS Teamtag:None,2019-01-07:/blog/kiwi-tcms-team/2019/01/07/kiwi-tcms-64/<p>We're happy to announce Kiwi TCMS version 6.4! This is a security, +improvement and bug-fix update that includes new versions of Django, +Patternfly and other dependencies. You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 …</pre><p>We're happy to announce Kiwi TCMS version 6.4! This is a security, +improvement and bug-fix update that includes new versions of Django, +Patternfly and other dependencies. You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +<p>Docker images:</p> +<pre class="literal-block"> +kiwitcms/kiwi latest 39fcb88182bb 963.4 MB +kiwitcms/kiwi 6.2 7870085ad415 957.6 MB +kiwitcms/kiwi 6.1.1 49fa42ddfe4d 955.7 MB +kiwitcms/kiwi 6.1 b559123d25b0 970.2 MB +kiwitcms/kiwi 6.0.1 87b24d94197d 970.1 MB +kiwitcms/kiwi 5.3.1 a420465852be 976.8 MB +</pre> +<div class="section" id="changes-since-kiwi-tcms-6-3"> +<h2>Changes since Kiwi TCMS 6.3</h2> +<div class="section" id="security"> +<h3>Security</h3> +<ul class="simple"> +<li>Update Django from 2.1.4 to 2.1.5, which deals with CVE-2019-3498: +Content spoofing possibility in the default 404 page</li> +<li>Update Patternfly to version 3.59.0, which deals with XSS issue in bootstrap. +See CVE-2018-14041</li> +<li>By default session cookies will expire after 24 hours. This can be controlled +via the <tt class="docutils literal">SESSION_COOKIE_AGE</tt> setting. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/556">Issue #556</a></li> +</ul> +</div> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update mysqlclient from 1.3.13 to 1.3.14</li> +<li>Update python-gitlab from 1.6.0 to 1.7.0</li> +<li>Update django-simple-history from 2.5.1 to 2.6.0</li> +<li>Update pygithub from 1.43.3 to 1.43.4</li> +<li>New API method <tt class="docutils literal">TestCase.remove()</tt>. Initially requested as +<a class="reference external" href="https://stackoverflow.com/questions/53844380/">SO #53844380</a></li> +<li>Drop down select widges in Patternfly pages are now styled with +<tt class="docutils literal"><span class="pre">bootstrap-select</span></tt> giving them more consistent look and feel with +the rest of the page (Anton Sankov)</li> +<li>Create new TestPlan page now includes toggles to control notifications +and whether or not the test plan is active. This was previously available +only in edit page (Anton Sankov)</li> +<li>By default TestPlan notification toggles are turned on. Previously they +were off (Anton Sankov)</li> +<li>Create and Edit TestPlan pages now look the same (Anton Sankov)</li> +<li>Kiwi TCMS is now accepting donations via +<a class="reference external" href="https://opencollective.com/kiwitcms">Open Collective</a></li> +</ul> +</div> +<div class="section" id="removed-functionality"> +<h3>Removed functionality</h3> +<ul class="simple"> +<li>Remove <tt class="docutils literal">TestPlan page <span class="pre">-&gt;</span> Run menu <span class="pre">-&gt;</span> Add cases to run</tt> action. +This is the same as <tt class="docutils literal">TestRun page <span class="pre">-&gt;</span> Cases menu <span class="pre">-&gt;</span> Add</tt> action</li> +<li>Legacy reports will be removed after 1st March 2019. Provide your +feedback in +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/657">Issue #657</a></li> +<li>The <tt class="docutils literal">/run/</tt> URL path has been merged with <tt class="docutils literal">/runs/</tt> due to configuration +refactoring. This may break your bookmarks or permalinks!</li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Don't traceback if markdown text is <tt class="docutils literal">None</tt>. Originally reported as +<a class="reference external" href="https://stackoverflow.com/questions/53662887/">SO #53662887</a></li> +<li>Show loading spinner when searching. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/653">Issue #653</a></li> +<li>Quick fix: when viewing TestPlan cases make TC summary link to the test case. +Previously the summary column was a link to nowhere.</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/zh-TW#">Chinese Traditional translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/fr#">French translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +</ul> +</div> +<div class="section" id="refactoring"> +<h3>Refactoring</h3> +<ul class="simple"> +<li>Pylint fixes</li> +<li>New and updated internal linters</li> +<li>Refactor <tt class="docutils literal">testplans.views.new</tt> to class based view (Anton Sankov)</li> +<li>Refactor <tt class="docutils literal">TestCase <span class="pre">-&gt;</span> Bugs tab <span class="pre">-&gt;</span> Remove</tt> to JSON-RPC. References +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/18">Issue #18</a></li> +<li>Refactor <tt class="docutils literal">removeCaseRunBug()</tt> to JSON-RPC, References +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/18">Issue #18</a></li> +<li>Remove unused <tt class="docutils literal">render_form()</tt> methods</li> +<li>Remove unnecessary string-to-int conversion (Ivaylo Ivanov)</li> +<li>Remove obsolete label fields. References +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/652">Issue #652</a> (Anton Sankov)</li> +<li>Remove JavaScript that duplicates <tt class="docutils literal">requestOperationUponFilteredCases()</tt></li> +<li>Remove <tt class="docutils literal">QuerySetIterationProxy</tt> class - not used anymore</li> +</ul> +</div> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p>If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +cd Kiwi/ +git pull +docker-compose down +docker pull kiwitcms/kiwi +docker pull centos/mariadb +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +</pre> +<p>Don't forget to <a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">backup</a> +before upgrade!</p> +<p><strong>WARNING:</strong> <tt class="docutils literal">kiwitcms/kiwi:latest</tt> and <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> 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:</p> +<pre class="literal-block"> +# starting from an older Kiwi TCMS version +docker-compose down +docker pull kiwitcms/kiwi:&lt;next_upgrade_version&gt; +edit docker-compose.yml to use kiwitcms/kiwi:&lt;next_upgrade_version&gt; +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +# repeat until you have reached latest +</pre> +<p>Happy testing!</p> +</div> +Roadmap status report for 20182018-12-17T15:50:00+02:002018-12-17T15:50:00+02:00Alexander Todorovtag:None,2018-12-17:/blog/atodorov/2018/12/17/roadmap-status-report-for-2018/<p>Hello everyone, in this article I will outline the progress that the Kiwi TCMS +team has made towards achieving the goals in our 2018 +<a href="/blog/kiwi-tcms-team/2018/01/22/kiwi-tcms-roadmap-for-2018/">roadmap</a> +(<a href="/blog/atodorov/2018/07/25/mid-year-roadmap-status-report/">mid-year update here</a>). +TLDR; goals are completed at 62%. Refactoring legacy code is showing good results, +less so on the front-end side and there are …</p><p>Hello everyone, in this article I will outline the progress that the Kiwi TCMS +team has made towards achieving the goals in our 2018 +<a href="/blog/kiwi-tcms-team/2018/01/22/kiwi-tcms-roadmap-for-2018/">roadmap</a> +(<a href="/blog/atodorov/2018/07/25/mid-year-roadmap-status-report/">mid-year update here</a>). +TLDR; goals are completed at 62%. Refactoring legacy code is showing good results, +less so on the front-end side and there are items still in progress!</p> +<h2>Make code easier to maintain</h2> +<p><em>Status: good progress</em></p> +<p>Initially <a href="https://codeclimate.com/github/kiwitcms/Kiwi">CodeClimate</a> reported +a "D" rating with 600+ code smells and 600+ duplications and a 1 year estimation +to resolve these. We're now down to "C" rating with 171 smells and 203 duplications.</p> +<p>The level of technical debt has dropped from 32.5% down to 17.7% and we have removed +around 14000 lines of Python code and 8000 lines of JavaScript code without +losing significant functionality.</p> +<p>Checkout +<a href="https://codeclimate.com/github/kiwitcms/Kiwi/trends/technical_debt">the stats</a> +for more info!</p> +<h2>Use pylint and pylint-django</h2> +<p><em>Status: almost finished</em></p> +<p>Both pylint and pylint-django have been integrated into our CI workflow. There are even +some custom built plugins that we use. The number of issues reported is down to 100 +from 4000+ initially. These are predominantly <code>fixme</code> comments which are also in parts +of the code that are scheduled for removal and refactoring.</p> +<h2>Render HTML, return JSON</h2> +<p><em>Status: moderate progress</em></p> +<p>Several views were modified to return pure JSON but we've not +done any targeted work to resolve this issue. A number of other views have been +removed in favor of using the existing JSON-RPC layer.</p> +<p>This is an internal refactoring effort which isn't very visible from the outside. +This is also one of the factors contributing to the high number of removed +source code.</p> +<h2>Submit forms, post JSON, GET clean URLs</h2> +<p><em>Status: no progress</em></p> +<p>Not much has been done in this area except the occasional refactoring to +JSON-RPC.</p> +<h2>API layer</h2> +<p><em>Status: complete</em></p> +<h2>Documentation</h2> +<p><em>Status: moderate progress, dropped</em></p> +<p>All RPC methods have been documented! The rest of the internals will be documented +as we go along.</p> +<h2>No vendored JavaScript libraries</h2> +<p><em>Status: good progress</em></p> +<p>We still carry around jQuery, jQuery-UI and Handlebars.js. They will be +removed once the pages using them are converted to use the Patternfly widgets +library.</p> +<h2>Less HTML templates with better organization</h2> +<p><em>Status: moderate progress</em></p> +<p>There are still over 50 HTML templates in <code>tcms/templates/</code> that need to be +refactored into Patternfly. We've been working on them one at a time and will +focus more on this effort in the next couple of months.</p> +<h2>Modern interface with Patternfly</h2> +<p><em>Status: moderate progress</em></p> +<p>Some of the pages have been converted to use Patternfly. The most important pages +that still have a different look and feel are TestPlan view, TestCase view and +TestRun view. These are also the hardest to convert because they have lots of +tabs/components which pull information from various places. Our goal is to create +reusable widgets for the various components (e.g. a list of TestCases) and then +include these components into several different templates to minimize code +duplication.</p> +<h2>JavaScript updates and front-end testing</h2> +<p><em>Status: moderate progress</em></p> +<p>A number of JavaScript functions have been refactored and removed during the +past few releases but there are still thousands of lines of code left to deal with. +This effort is mostly happening in parallel with the Patternfly redesign. +We still don't have anything to test front-end JavaScript functionality!</p> +<h2>Community efforts</h2> +<p><em>Status: good progress</em></p> +<p>We are seeing a steady stream of new users registered on +<a href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a> and +there are several active contributors on GitHub. Most of our translators are +very active and keep their respective languages fresh and up to date!</p> +<p>Kiwi TCMS was represented at OSCAL Tirana, DjangoCon Heidelberg, PyCon Prague, +HackConf Sofia, PiterPy St. Petersburg and OpenFest Sofia. We've also been +approved for a project stand at FOSDEM 2019 so watch this blog for more news.</p> +<p>Happy testing!</p>Kiwi TCMS 6.32018-12-04T09:15:00+02:002018-12-04T09:15:00+02:00Kiwi TCMS Teamtag:None,2018-12-04:/blog/kiwi-tcms-team/2018/12/04/kiwi-tcms-63/<p>We're happy to announce Kiwi TCMS version 6.3! This is a medium severity +security update that includes new versions of Django and Patternfly, +new database migrations, lots of improvements, bug fixes and internal +refactoring. This version also introduces integration with GitLab issue +tracker! You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https …</a></p><p>We're happy to announce Kiwi TCMS version 6.3! This is a medium severity +security update that includes new versions of Django and Patternfly, +new database migrations, lots of improvements, bug fixes and internal +refactoring. This version also introduces integration with GitLab issue +tracker! You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +<p>Docker images:</p> +<pre class="literal-block"> +kiwitcms/kiwi latest 8135624fdca2 960.3 MB +kiwitcms/kiwi 6.2 7870085ad415 957.6 MB +kiwitcms/kiwi 6.1.1 49fa42ddfe4d 955.7 MB +kiwitcms/kiwi 6.1 b559123d25b0 970.2 MB +kiwitcms/kiwi 6.0.1 87b24d94197d 970.1 MB +kiwitcms/kiwi 5.3.1 a420465852be 976.8 MB +</pre> +<div class="section" id="changes-since-kiwi-tcms-6-2-1"> +<h2>Changes since Kiwi TCMS 6.2.1</h2> +<div class="section" id="security"> +<h3>Security</h3> +<ul class="simple"> +<li>Resolve medium severity XSS vulnerability which can be exploited when +previewing malicious text in Simple MDE editor. See +<a class="reference external" href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-19057">CVE-2018-19057</a>, +<a class="reference external" href="https://snyk.io/vuln/SNYK-JS-SIMPLEMDE-72570">SNYK-JS-SIMPLEMDE-72570</a></li> +<li>Use <tt class="docutils literal">mozilla/bleach</tt> before rendering Markdown to the user as a second layer +of protection against the previously mentioned XSS vulnerability</li> +</ul> +</div> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update to <a class="reference external" href="https://docs.djangoproject.com/en/2.1/releases/2.1.4/">Django 2.1.4</a></li> +<li>Update to <a class="reference external" href="https://github.com/patternfly/patternfly/releases">Patternfly 3.58.0</a></li> +<li>Make docker container restartable (Maik Opitz, Adam Hall)</li> +<li>Add GitLab issue tracker integration. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/176">Issue #176</a> +(Filipe Arruda, Federal Institute of Pernambuco)</li> +<li>Convert <tt class="docutils literal">Create new TestPlan</tt> page to Patternfly (Anton Sankov)</li> +<li>Upon successful registration show the list of super-users in case new +accounts must be activated manually. This can be the same or expanded +version of the addresses in the <tt class="docutils literal">ADMIN</tt> setting. Include super-users +in email notifications sent via <tt class="docutils literal">tcms.signals.notify_admins()</tt>.</li> +<li>Don't include <tt class="docutils literal"><span class="pre">admin/js/*.js</span></tt> files in templates when not +necessary. Results in faster page load. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/209">Issue #209</a></li> +<li>Enable <tt class="docutils literal">nl2br</tt> Markdown extension which allows newline characters +to be rendered as <tt class="docutils literal">&lt;br&gt;</tt> tags in HTML. Visually the rendered +text will look closer to what you seen in the text editor. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/623">Issue #623</a></li> +<li>Use auto-complete for adding components to TestCase</li> +</ul> +</div> +<div class="section" id="removed-functionality"> +<h3>Removed functionality</h3> +<ul class="simple"> +<li>Bulk-update of Category for selected TestCase(s) inside of +TestPlan</li> +<li>Bulk-update of Components for selected TestCase(s) inside of +TestPlan</li> +<li>Bulk-update of automated status for selected TestCase(s) inside of +TestPlan</li> +<li>Bulk-remove for TestCase Component tab</li> +</ul> +<p>These actions have always been a bit broken and didn't check the +correct permission labels. You can still update items individually!</p> +<ul class="simple"> +<li>Selection of Components when creating new TestCase. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/565">Issue #565</a>. +Everywhere else Kiwi TCMS doesn't allow selection of many-to-many +relationships when creating or editing objects. Tags, Bugs, Components, +TestPlans can be added via dedicated tabs once the object has been saved.</li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Hide <tt class="docutils literal">KiwiUserAdmin.password</tt> field from super-user. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/610">Issue #610</a></li> +<li>Don't show inactive Priority. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/637">Issue #637</a></li> +<li>Don't traceback when adding new users via Admin. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/642">Issue #642</a></li> +<li>Teach <tt class="docutils literal">TestRun.update()</tt> API method to process the <tt class="docutils literal">stop_date</tt> +field. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/554">Issue #554</a> (Anton Sankov)</li> +<li>Previously when reporting issues to Bugzilla, directly from a TestRun, +Kiwi TCMS displayed the error <tt class="docutils literal">Enable reporting to this Issue Tracker by +configuring its base_url</tt> although that has already been configured. +This is now fixed. See +<a class="reference external" href="https://stackoverflow.com/questions/53434949/">Stack Overflow #53434949</a></li> +</ul> +</div> +<div class="section" id="database"> +<h3>Database</h3> +<ul class="simple"> +<li>Remove <tt class="docutils literal">TestPlan.owner</tt> field, duplicates <tt class="docutils literal">TestPlan.author</tt></li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/fr#">French translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +</ul> +</div> +<div class="section" id="refactoring"> +<h3>Refactoring</h3> +<ul class="simple"> +<li>Remove <tt class="docutils literal">fmt_queries()</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/330">Issue #330</a> (Anton Sankov)</li> +<li>Remove unused parameter from <tt class="docutils literal">plan_from_request_or_none()</tt>. Refers to +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/303">Issue #303</a> (Anton Sankov)</li> +<li>Remove <tt class="docutils literal">ComponentActions()</tt> class. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/20">Issue #20</a></li> +<li>Convert lots of AJAX calls to JSON-RPC</li> +<li>Remove lots of unused Python, JavaScript and templates. Both after migration +to JSON RPC and other leftovers</li> +<li>Pylint fixes (Alexander Todorov, Anton Sankov)</li> +</ul> +</div> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p>If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +cd Kiwi/ +git pull +docker-compose down +docker pull kiwitcms/kiwi +docker pull centos/mariadb +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +</pre> +<p>Don't forget to <a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">backup</a> +before upgrade!</p> +<p><strong>WARNING:</strong> <tt class="docutils literal">kiwitcms/kiwi:latest</tt> and <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> 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:</p> +<pre class="literal-block"> +# starting from an older Kiwi TCMS version +docker-compose down +docker pull kiwitcms/kiwi:&lt;next_upgrade_version&gt; +edit docker-compose.yml to use kiwitcms/kiwi:&lt;next_upgrade_version&gt; +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +# repeat until you have reached latest +</pre> +<p>Happy testing!</p> +</div> +Kiwi TCMS 6.2.12018-11-12T14:45:00+02:002018-11-12T14:45:00+02:00Kiwi TCMS Teamtag:None,2018-11-12:/blog/kiwi-tcms-team/2018/11/12/kiwi-tcms-621/<p>We're happy to announce Kiwi TCMS version 6.2.1! This is a small release +that includes some improvements and bug-fixes. You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6 …</pre><p>We're happy to announce Kiwi TCMS version 6.2.1! This is a small release +that includes some improvements and bug-fixes. You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (or newer) +</pre> +<p>Docker images:</p> +<pre class="literal-block"> +kiwitcms/kiwi latest 24338088bf46 956.8 MB +kiwitcms/kiwi 6.2 7870085ad415 957.6 MB +kiwitcms/kiwi 6.1.1 49fa42ddfe4d 955.7 MB +kiwitcms/kiwi 6.1 b559123d25b0 970.2 MB +kiwitcms/kiwi 6.0.1 87b24d94197d 970.1 MB +kiwitcms/kiwi 5.3.1 a420465852be 976.8 MB +</pre> +<div class="section" id="changes-since-kiwi-tcms-6-2"> +<h2>Changes since Kiwi TCMS 6.2</h2> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update to <a class="reference external" href="https://github.com/patternfly/patternfly/releases">Patternfly 3.57.0</a></li> +<li>Update to <a class="reference external" href="http://initd.org/psycopg/articles/tag/release/">psycopg2 2.7.6.1</a></li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Fix InvalidQuery, field <tt class="docutils literal">TestCase.default_tester</tt> cannot be both deferred and +traversed using <tt class="docutils literal">select_related</tt> at the same time. References +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/346">Issue #346</a></li> +</ul> +</div> +<div class="section" id="refactoring"> +<h3>Refactoring</h3> +<ul class="simple"> +<li>Pylint fixes (Ivaylo Ivanov)</li> +<li>Remove JavaScript and Python functions in favor of existing JSON-RPC</li> +<li>Remove vendored-in <tt class="docutils literal">js/lib/jquery.dataTables.js</tt> which is now replaced by +the npm package <tt class="docutils literal">datatables.net</tt> (required by Patternfly)</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>New <a class="reference external" href="https://crowdin.com/project/kiwitcms/fr#">French translation</a> +(Christophe CHAUVET)</li> +</ul> +</div> +<div class="section" id="misc"> +<h3>Misc</h3> +<ul class="simple"> +<li><a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a> is +using a new SSL certificate with serial number +<tt class="docutils literal">46:78:80:EA:80:A4:FC:65:17:E4:59:EC:1D:C2:27:47</tt></li> +<li>Version 6.2.1 has been published to +<a class="reference external" href="https://pypi.org/project/kiwitcms/">PyPI</a> to facilitate people who want +to deploy Kiwi TCMS on Heroku. <strong>Important</strong>: PyPI package will be provided +as a convenience for those who know what they are doing. Valid bugs and +issues will be dealth with accordingly. As we do not deploy from a PyPI +tarball we ask you to provide all the necessary +details when reporting issues! <em>If you have no idea what all of this means +then stick to the official Docker images!</em></li> +</ul> +</div> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p>If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +cd Kiwi/ +git pull +docker-compose down +docker pull kiwitcms/kiwi +docker pull centos/mariadb +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +</pre> +<p>Don't forget to <a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">backup</a> +before upgrade!</p> +<p><strong>WARNING:</strong> <tt class="docutils literal">kiwitcms/kiwi:latest</tt> and <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> 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:</p> +<pre class="literal-block"> +# starting from an older Kiwi TCMS version +docker-compose down +docker pull kiwitcms/kiwi:&lt;next_upgrade_version&gt; +edit docker-compose.yml to use kiwitcms/kiwi:&lt;next_upgrade_version&gt; +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +# repeat until you have reached latest +</pre> +<p>Happy testing!</p> +</div> +Test runner plugin specification2018-11-05T16:05:00+02:002018-11-05T16:05:00+02:00Alexander Todorovtag:None,2018-11-05:/blog/atodorov/2018/11/05/test-runner-plugin-specification/<p>Happy Monday testers! Kiwi TCMS needs your help! We are looking for developers who +wish to create plugins for popular test runners that will record test results +in Kiwi TCMS! Initially we are looking for plugins for Python's unittest, +<a href="https://docs.djangoproject.com/en/2.1/topics/testing/advanced/#using-different-testing-frameworks">Django</a> +and <a href="https://junit.org/junit4/plugins.html">JUnit</a>!</p> +<h2>What is a test runner?</h2> +<p>When working with …</p><p>Happy Monday testers! Kiwi TCMS needs your help! We are looking for developers who +wish to create plugins for popular test runners that will record test results +in Kiwi TCMS! Initially we are looking for plugins for Python's unittest, +<a href="https://docs.djangoproject.com/en/2.1/topics/testing/advanced/#using-different-testing-frameworks">Django</a> +and <a href="https://junit.org/junit4/plugins.html">JUnit</a>!</p> +<h2>What is a test runner?</h2> +<p>When working with automated testing you have several components:</p> +<ul> +<li>A test module (or test script), e.g. <code>test_models.py</code> which contains + tests for your software;</li> +<li>A test framework, e.g. Python nose, which provides the structure + for test classes and methods and assert methods to use;</li> +<li>A test runner, which knows how to discover your test scripts, load them, + execute the testing scenarios inside of them and report the results.</li> +</ul> +<p>Very often all of the components above live together inside the testing framework +but don't need to. For example the standard <code>unittest</code> module in Python +provides a test runner but there are also <code>nose</code> and <code>py.test</code> and Django provides +its own test runner that knows how to work with the database.</p> +<h2>Workflow organization</h2> +<p>Once you agree to writing a plugin we are going to create a separate GitHub +repository where you will be granted write privileges making you an independent +contributor to the Kiwi TCMS project!</p> +<p>Design and architecture of the plugin is up to you, following the practices +established by the testing framework in question. You will also have to create +a test suite for your plugin based on the specification below.</p> +<p>You are expected to use +<a href="https://public.tenant.kiwitcms.org/login/github-app/">public.tenant.kiwitcms.org</a> while working on the +plugin and afterwards. This is known as eating your own dog food!</p> +<p>For Python we provide the <code>tcms-api</code> module which already takes care of the +communications layer. For other languages you will have to create this layer or +depend on other open source libraries that provide a XML-RPC or JSON-RPC +client!</p> +<p>You can use +<a href="https://gist.github.com/atodorov/f5aed028b6f254d97bcaf93453abe8d2">this gist</a> +for inspiration!</p> +<h2>Behavior Specification</h2> +<p><em>Please use the comments section to discuss unclear behavior and missing scenarios!</em></p> +<div class="highlight"><pre><span></span><code> <span class="n">SUMMARY</span><span class="p">:</span> <span class="n">Will</span> <span class="n">use</span> <span class="n">configuration</span> <span class="n">file</span> <span class="k">if</span> <span class="n">it</span> <span class="n">exists</span> + <span class="n">GIVEN</span><span class="p">:</span> <span class="n">the</span> <span class="n">file</span> <span class="o">~/.</span><span class="n">tcms</span><span class="o">.</span><span class="n">conf</span> <span class="n">exists</span> + <span class="n">WHEN</span><span class="p">:</span> <span class="n">plugin</span> <span class="n">initializes</span> + <span class="n">THEN</span><span class="p">:</span> <span class="n">the</span> <span class="n">plugin</span> <span class="n">will</span> <span class="nb">log</span> <span class="n">an</span> <span class="n">info</span> <span class="n">message</span><span class="p">,</span> <span class="n">read</span> <span class="n">the</span> <span class="n">file</span> <span class="ow">and</span> + <span class="n">THEN</span><span class="p">:</span> <span class="n">configure</span> <span class="n">TCMS_API_URL</span><span class="p">,</span> <span class="n">TCMS_USERNAME</span><span class="p">,</span> <span class="n">TCMS_PASSWORD</span> + <span class="n">variables</span> <span class="n">with</span> <span class="n">the</span> <span class="n">respective</span> <span class="n">values</span> + + + <span class="n">SUMMARY</span><span class="p">:</span> <span class="n">Will</span> <span class="n">use</span> <span class="n">ENVIRONMENT</span> <span class="k">if</span> <span class="n">configuration</span> <span class="n">file</span> <span class="n">doesn</span><span class="s1">&#39;t exist</span> + <span class="n">GIVEN</span><span class="p">:</span> <span class="n">the</span> <span class="n">file</span> <span class="o">~/.</span><span class="n">tcms</span><span class="o">.</span><span class="n">conf</span> <span class="n">does</span> <span class="ow">not</span> <span class="n">exists</span> + <span class="n">WHEN</span><span class="p">:</span> <span class="n">plugin</span> <span class="n">initializes</span> + <span class="n">THEN</span><span class="p">:</span> <span class="n">the</span> <span class="n">plugin</span> <span class="n">will</span> <span class="n">read</span> <span class="n">configuration</span> <span class="n">from</span> <span class="n">environment</span> <span class="ow">and</span> <span class="n">configure</span> + <span class="n">the</span> <span class="n">following</span> <span class="n">variables</span><span class="o">/</span><span class="k">class</span> <span class="n">members</span><span class="p">:</span> + <span class="n">TCMS_API_URL</span><span class="p">,</span> <span class="n">TCMS_USERNAME</span> <span class="ow">and</span> <span class="n">TCMS_PASSWORD</span> + + + <span class="n">SUMMARY</span><span class="p">:</span> <span class="n">Will</span> <span class="n">exit</span> <span class="k">if</span> <span class="n">TCMS_API_URL</span> <span class="ow">not</span> <span class="n">configured</span> + <span class="n">GIVEN</span><span class="p">:</span> <span class="n">TCMS_API_URL</span> <span class="n">variable</span> <span class="k">is</span> <span class="n">empty</span> + <span class="n">WHEN</span><span class="p">:</span> <span class="n">plugin</span> <span class="n">initializes</span> + <span class="n">THEN</span><span class="p">:</span> <span class="nb">log</span> <span class="n">a</span> <span class="n">warning</span> <span class="n">message</span> <span class="ow">and</span> <span class="n">exit</span> + <span class="n">AND</span><span class="p">:</span> <span class="n">depending</span> <span class="n">on</span> <span class="n">the</span> <span class="n">test</span> <span class="n">runner</span> <span class="n">framework</span> <span class="n">set</span> <span class="n">exist</span> <span class="n">status</span> <span class="mi">1</span> + + + <span class="n">SUMMARY</span><span class="p">:</span> <span class="n">Will</span> <span class="n">exit</span> <span class="k">if</span> <span class="n">TCMS_USERNAME</span> <span class="ow">not</span> <span class="n">configured</span> + <span class="n">GIVEN</span><span class="p">:</span> <span class="n">TCMS_USERNAME</span> <span class="k">is</span> <span class="n">empty</span> + <span class="n">WHEN</span><span class="p">:</span> <span class="n">plugin</span> <span class="n">initializes</span> + <span class="n">THEN</span><span class="p">:</span> <span class="nb">log</span> <span class="n">a</span> <span class="n">warning</span> <span class="n">message</span> <span class="ow">and</span> <span class="n">exit</span> + <span class="n">AND</span><span class="p">:</span> <span class="n">depending</span> <span class="n">on</span> <span class="n">the</span> <span class="n">test</span> <span class="n">runner</span> <span class="n">framework</span> <span class="n">set</span> <span class="n">exist</span> <span class="n">status</span> <span class="mi">1</span> + + + <span class="n">SUMMARY</span><span class="p">:</span> <span class="n">Will</span> <span class="n">exit</span> <span class="k">if</span> <span class="n">TCMS_PASSWORD</span> <span class="ow">not</span> <span class="n">configured</span> + <span class="n">GIVEN</span><span class="p">:</span> <span class="n">TCMS_PASSWORD</span> <span class="k">is</span> <span class="n">empty</span> + <span class="n">WHEN</span><span class="p">:</span> <span class="n">plugin</span> <span class="n">initializes</span> + <span class="n">THEN</span><span class="p">:</span> <span class="nb">log</span> <span class="n">a</span> <span class="n">warning</span> <span class="n">message</span> <span class="ow">and</span> <span class="n">exit</span> + <span class="n">AND</span><span class="p">:</span> <span class="n">depending</span> <span class="n">on</span> <span class="n">the</span> <span class="n">test</span> <span class="n">runner</span> <span class="n">framework</span> <span class="n">set</span> <span class="n">exist</span> <span class="n">status</span> <span class="mi">1</span> + + + <span class="n">SUMMARY</span><span class="p">:</span> <span class="n">Will</span> <span class="n">re</span><span class="o">-</span><span class="n">use</span> <span class="n">existing</span> <span class="n">TestPlan</span> <span class="k">if</span> <span class="n">configured</span> + <span class="n">GIVEN</span><span class="p">:</span> <span class="n">TCMS_RUN_ID</span> <span class="n">environment</span> <span class="n">variable</span> <span class="k">is</span> <span class="ow">not</span> <span class="n">empty</span> + <span class="n">WHEN</span><span class="p">:</span> <span class="n">plugin</span> <span class="n">initializes</span> + <span class="n">THEN</span><span class="p">:</span> <span class="n">this</span> <span class="n">will</span> <span class="n">be</span> <span class="n">the</span> <span class="n">Current_TestRun</span> <span class="n">record</span> <span class="n">to</span> <span class="n">which</span> <span class="n">the</span> <span class="n">plugin</span> <span class="k">is</span> + <span class="n">going</span> <span class="n">to</span> <span class="n">add</span> <span class="n">test</span> <span class="n">execution</span> <span class="n">results</span> + <span class="n">AND</span><span class="p">:</span> <span class="n">Current_TestPlan</span> <span class="n">document</span> <span class="ow">in</span> <span class="n">which</span> <span class="n">the</span> <span class="n">plugin</span> <span class="n">will</span> + <span class="n">search</span> <span class="k">for</span> <span class="n">test</span> <span class="n">cases</span> <span class="n">becomes</span> <span class="n">Current_TestRun</span><span class="o">.</span><span class="n">plan</span> + + + <span class="n">SUMMARY</span><span class="p">:</span> <span class="n">Will</span> <span class="n">create</span> <span class="n">new</span> <span class="n">TestPlan</span> <span class="o">&amp;</span> <span class="n">TestRun</span> <span class="k">if</span> <span class="n">TCMS_RUN_ID</span> <span class="ow">not</span> <span class="n">configured</span> + <span class="n">GIVEN</span><span class="p">:</span> <span class="n">TCMS_RUN_ID</span> <span class="n">environment</span> <span class="n">variable</span> <span class="k">is</span> <span class="n">empty</span> + <span class="n">THEN</span><span class="p">:</span> <span class="n">plugin</span> <span class="n">will</span> <span class="n">create</span> <span class="n">a</span> <span class="n">new</span> <span class="n">TestPlan</span> <span class="ow">in</span> <span class="n">Kiwi</span> <span class="n">TCMS</span> <span class="n">with</span> <span class="n">attributes</span><span class="p">:</span> + <span class="n">name</span><span class="o">=</span><span class="s1">&#39;Automated test plan for %(product)&#39;</span> + <span class="n">product</span><span class="o">=</span><span class="s1">&#39;%(product)&#39;</span> + <span class="n">product_version</span><span class="o">=</span><span class="s1">&#39;%(version)&#39;</span> + <span class="n">type</span><span class="o">=</span><span class="s1">&#39;Unit&#39;</span> + <span class="n">WHERE</span><span class="p">:</span> <span class="o">%</span><span class="p">(</span><span class="n">product</span><span class="p">)</span> <span class="k">is</span> <span class="n">a</span> <span class="n">placeholder</span> <span class="k">for</span> <span class="n">TCMS_PRODUCT</span><span class="o">==</span><span class="n">TRAVIS_REPO_SLUG</span><span class="o">==</span><span class="n">JOB_NAME</span> + <span class="o">%</span><span class="p">(</span><span class="n">version</span><span class="p">)</span> <span class="k">is</span> <span class="n">a</span> <span class="n">placeholder</span> <span class="k">for</span> <span class="n">TCMS_PRODUCT_VERSION</span><span class="o">==</span><span class="n">TRAVIS_COMMIT</span><span class="o">==</span><span class="n">TRAVIS_PULL_REQUEST_SHA</span><span class="o">==</span><span class="n">GIT_COMMIT</span> + <span class="n">THEN</span><span class="p">:</span> <span class="n">plugin</span> <span class="n">will</span> <span class="n">crate</span> <span class="n">a</span> <span class="n">new</span> <span class="n">TestRun</span> <span class="ow">in</span> <span class="n">Kiwi</span> <span class="n">TCMS</span> <span class="n">with</span> <span class="n">attributes</span><span class="p">:</span> + <span class="n">summary</span><span class="o">=</span><span class="s1">&#39;Automated test run ....&#39;</span> + <span class="n">plan</span><span class="o">=</span><span class="n">Current</span> <span class="n">TestPlan</span> + <span class="n">build</span><span class="o">=</span><span class="s1">&#39;%(build)&#39;</span> + <span class="n">manager</span><span class="o">=</span><span class="n">TCMS_USERNAME</span> + <span class="n">WHERE</span><span class="p">:</span> <span class="o">%</span><span class="p">(</span><span class="n">build</span><span class="p">)</span> <span class="k">is</span> <span class="n">a</span> <span class="n">placeholder</span> <span class="k">for</span> <span class="n">TCMS_BUILD</span><span class="o">==</span><span class="n">TRAVIS_BUILD_NUMBER</span><span class="o">==</span><span class="n">BUILD_NUMBER</span> + <span class="n">Environment</span> <span class="n">variables</span> <span class="n">are</span> <span class="n">specified</span> <span class="ow">in</span><span class="p">:</span> + <span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">docs</span><span class="o">.</span><span class="n">travis</span><span class="o">-</span><span class="n">ci</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">user</span><span class="o">/</span><span class="n">environment</span><span class="o">-</span><span class="n">variables</span><span class="c1">#default-environment-variables</span> + <span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">wiki</span><span class="o">.</span><span class="n">jenkins</span><span class="o">.</span><span class="n">io</span><span class="o">/</span><span class="n">display</span><span class="o">/</span><span class="n">JENKINS</span><span class="o">/</span><span class="n">Building</span><span class="o">+</span><span class="n">a</span><span class="o">+</span><span class="n">software</span><span class="o">+</span><span class="n">project</span><span class="c1">#Buildingasoftwareproject-belowJenkinsSetEnvironmentVariables</span> + + <span class="n">SUMMARY</span><span class="p">:</span> <span class="n">Will</span> <span class="ow">not</span> <span class="n">create</span> <span class="n">duplicate</span> <span class="n">Product</span><span class="p">,</span> <span class="n">Version</span> <span class="o">&amp;</span> <span class="n">Build</span> <span class="k">if</span> <span class="n">they</span> <span class="n">already</span> <span class="n">exist</span> + <span class="n">GIVEN</span><span class="p">:</span> <span class="n">TCMS_RUN_ID</span> <span class="k">is</span> <span class="ow">not</span> <span class="n">configured</span> + <span class="n">AND</span><span class="p">:</span> <span class="o">%</span><span class="p">(</span><span class="n">product</span><span class="p">)</span> <span class="n">exists</span> + <span class="n">AND</span><span class="p">:</span> <span class="o">%</span><span class="p">(</span><span class="n">version</span><span class="p">)</span> <span class="n">exists</span> + <span class="n">AND</span><span class="p">:</span> <span class="o">%</span><span class="p">(</span><span class="n">build</span><span class="p">)</span> <span class="n">exists</span> + <span class="n">WHEN</span><span class="p">:</span> <span class="n">plugin</span> <span class="n">tries</span> <span class="n">to</span> <span class="n">auto</span><span class="o">-</span><span class="n">create</span> <span class="n">TestPlan</span> <span class="ow">and</span> <span class="n">TestRun</span> + <span class="n">THEN</span><span class="p">:</span> <span class="n">plugin</span> <span class="n">will</span> <span class="n">re</span><span class="o">-</span><span class="n">use</span> <span class="o">%</span><span class="p">(</span><span class="n">product</span><span class="p">),</span> <span class="o">%</span><span class="p">(</span><span class="n">version</span><span class="p">)</span> <span class="ow">and</span> <span class="o">%</span><span class="p">(</span><span class="n">build</span><span class="p">)</span> <span class="n">from</span> <span class="n">the</span> <span class="n">database</span> + <span class="n">AND</span><span class="p">:</span> <span class="ow">not</span> <span class="n">try</span> <span class="n">to</span> <span class="n">auto</span><span class="o">-</span><span class="n">create</span> <span class="n">them</span> + + + <span class="n">SUMMARY</span><span class="p">:</span> <span class="n">Will</span> <span class="n">auto</span><span class="o">-</span><span class="n">create</span> <span class="n">Product</span><span class="p">,</span> <span class="n">Version</span> <span class="o">&amp;</span> <span class="n">Build</span> <span class="k">if</span> <span class="n">they</span> <span class="n">don</span><span class="s1">&#39;t exist</span> + <span class="n">GIVEN</span><span class="p">:</span> <span class="n">TCMS_RUN_ID</span> <span class="k">is</span> <span class="ow">not</span> <span class="n">configured</span> + <span class="n">AND</span><span class="p">:</span> <span class="o">%</span><span class="p">(</span><span class="n">product</span><span class="p">)</span> <span class="n">doesn</span><span class="s1">&#39;t exist</span> + <span class="n">AND</span><span class="p">:</span> <span class="o">%</span><span class="p">(</span><span class="n">version</span><span class="p">)</span> <span class="n">doesn</span><span class="s1">&#39;t exist</span> + <span class="n">AND</span><span class="p">:</span> <span class="o">%</span><span class="p">(</span><span class="n">build</span><span class="p">)</span> <span class="n">doesn</span><span class="s1">&#39;t exist</span> + <span class="n">WHEN</span><span class="p">:</span> <span class="n">plugin</span> <span class="n">tries</span> <span class="n">to</span> <span class="n">auto</span><span class="o">-</span><span class="n">create</span> <span class="n">TestPlan</span> <span class="ow">and</span> <span class="n">TestRun</span> + <span class="n">THEN</span><span class="p">:</span> <span class="o">%</span><span class="p">(</span><span class="n">product</span><span class="p">),</span> <span class="o">%</span><span class="p">(</span><span class="n">version</span><span class="p">)</span> <span class="ow">and</span> <span class="o">%</span><span class="p">(</span><span class="n">build</span><span class="p">)</span> <span class="n">be</span> <span class="n">created</span> <span class="n">automatically</span> + + + <span class="n">SUMMARY</span><span class="p">:</span> <span class="n">Unit</span> <span class="n">test</span> <span class="n">names</span> <span class="n">are</span> <span class="n">added</span> <span class="n">to</span> <span class="n">TestPlan</span> + <span class="n">GIVEN</span><span class="p">:</span> <span class="n">we</span> <span class="n">have</span> <span class="n">good</span> <span class="n">plugin</span> <span class="n">configuration</span> + <span class="n">WHEN</span><span class="p">:</span> <span class="n">plugin</span> <span class="n">loops</span> <span class="n">over</span> <span class="n">unit</span> <span class="n">tests</span> <span class="n">emitted</span> <span class="n">by</span> <span class="n">the</span> <span class="n">test</span> <span class="n">runner</span> + <span class="n">THEN</span><span class="p">:</span> <span class="n">plugin</span> <span class="n">will</span> <span class="n">check</span> <span class="n">Current_TestPlan</span> <span class="k">for</span> <span class="n">a</span> <span class="n">TestCase</span> <span class="n">with</span> <span class="n">the</span> <span class="n">same</span> <span class="n">name</span> + <span class="n">AND</span><span class="p">:</span> <span class="k">if</span> <span class="n">test</span> <span class="n">case</span> <span class="n">doesn</span><span class="s1">&#39;t exist in Current_TestPlan</span> + <span class="n">THEN</span><span class="p">:</span> <span class="n">it</span> <span class="n">will</span> <span class="n">be</span> <span class="n">added</span> <span class="n">to</span> <span class="n">Current_TestPlan</span> + <span class="n">hint</span><span class="p">:</span> <span class="n">it</span> <span class="k">is</span> <span class="n">probably</span> <span class="n">best</span> <span class="n">to</span> <span class="n">process</span> <span class="n">all</span> <span class="n">unit</span> <span class="n">test</span> <span class="n">results</span> <span class="n">at</span> <span class="n">the</span> <span class="n">end</span><span class="o">!</span> + + + <span class="n">SUMMARY</span><span class="p">:</span> <span class="n">Unit</span> <span class="n">test</span> <span class="n">names</span> <span class="n">are</span> <span class="n">added</span> <span class="n">to</span> <span class="n">TestRun</span> + <span class="n">GIVEN</span><span class="p">:</span> <span class="n">we</span> <span class="n">have</span> <span class="n">good</span> <span class="n">plugin</span> <span class="n">configuration</span> + <span class="n">WHEN</span><span class="p">:</span> <span class="n">plugin</span> <span class="n">loops</span> <span class="n">over</span> <span class="n">unit</span> <span class="n">tests</span> <span class="n">emitted</span> <span class="n">by</span> <span class="n">the</span> <span class="n">test</span> <span class="n">runner</span> + <span class="n">THEN</span><span class="p">:</span> <span class="n">plugin</span> <span class="n">will</span> <span class="n">check</span> <span class="n">Current_TestRun</span> <span class="k">for</span> <span class="n">a</span> <span class="n">TestCaseRun</span> <span class="n">object</span> <span class="n">which</span> <span class="n">matches</span> + <span class="n">the</span> <span class="n">current</span> <span class="n">unit</span> <span class="n">test</span> <span class="n">name</span> + <span class="n">hint</span><span class="p">:</span> <span class="p">(</span><span class="ow">or</span> <span class="n">Current_TestCase</span> <span class="n">object</span> <span class="n">from</span> <span class="n">previous</span> <span class="n">scenario</span><span class="p">,</span> <span class="n">depending</span> <span class="n">on</span> <span class="n">implementation</span><span class="p">)</span> + <span class="n">AND</span><span class="p">:</span> <span class="k">if</span> <span class="n">such</span> <span class="n">TestCaseRun</span> <span class="n">doesn</span><span class="s1">&#39;t exist in Current_TestRun</span> + <span class="n">THEN</span><span class="p">:</span> <span class="n">it</span> <span class="n">will</span> <span class="n">be</span> <span class="n">added</span> <span class="n">to</span> <span class="n">Current_TestRun</span> + <span class="n">hint</span><span class="p">:</span> <span class="n">it</span> <span class="k">is</span> <span class="n">probably</span> <span class="n">best</span> <span class="n">to</span> <span class="n">process</span> <span class="n">all</span> <span class="n">unit</span> <span class="n">test</span> <span class="n">results</span> <span class="n">at</span> <span class="n">the</span> <span class="n">end</span><span class="o">!</span> + + + <span class="n">SUMMARY</span><span class="p">:</span> <span class="n">Current_TestRun</span> <span class="k">is</span> <span class="n">updated</span> <span class="n">with</span> <span class="n">unit</span> <span class="n">test</span> <span class="n">results</span> + <span class="n">GIVEN</span><span class="p">:</span> <span class="n">we</span> <span class="n">have</span> <span class="n">good</span> <span class="n">plugin</span> <span class="n">configuration</span> + <span class="n">WHEN</span><span class="p">:</span> <span class="n">plugin</span> <span class="n">loops</span> <span class="n">over</span> <span class="n">unit</span> <span class="n">tests</span> <span class="n">emitted</span> <span class="n">by</span> <span class="n">the</span> <span class="n">test</span> <span class="n">runner</span> + <span class="n">THEN</span><span class="p">:</span> <span class="n">plugin</span> <span class="n">will</span> <span class="n">check</span> <span class="n">Current_TestRun</span> <span class="k">for</span> <span class="n">a</span> <span class="n">TestCaseRun</span> <span class="n">object</span> <span class="n">which</span> <span class="n">matches</span> + <span class="n">the</span> <span class="n">current</span> <span class="n">unit</span> <span class="n">test</span> <span class="n">name</span> + <span class="n">hint</span><span class="p">:</span> <span class="p">(</span><span class="ow">or</span> <span class="n">Current_TestCase</span> <span class="n">object</span> <span class="n">from</span> <span class="n">previous</span> <span class="n">scenario</span><span class="p">,</span> <span class="n">depending</span> <span class="n">on</span> <span class="n">implementation</span><span class="p">)</span> + <span class="n">AND</span><span class="p">:</span> <span class="k">if</span> <span class="n">TestCaseRun</span> <span class="n">object</span> <span class="n">exists</span> <span class="ow">in</span> <span class="n">Current_TestRun</span> + <span class="n">THEN</span><span class="p">:</span> <span class="n">its</span> <span class="n">status</span> <span class="n">will</span> <span class="n">be</span> <span class="n">updated</span> <span class="n">with</span> <span class="n">the</span> <span class="n">execution</span> <span class="n">result</span> <span class="n">coming</span> <span class="n">from</span> <span class="n">the</span> <span class="n">test</span> <span class="n">runner</span> + <span class="n">hint</span><span class="p">:</span> <span class="n">it</span> <span class="k">is</span> <span class="n">probably</span> <span class="n">best</span> <span class="n">to</span> <span class="n">process</span> <span class="n">all</span> <span class="n">unit</span> <span class="n">test</span> <span class="n">results</span> <span class="n">at</span> <span class="n">the</span> <span class="n">end</span><span class="o">!</span> +</code></pre></div> + + +<p>Happy testing!</p>Kiwi TCMS 6.22018-11-02T12:15:00+02:002018-11-02T12:15:00+02:00Kiwi TCMS Teamtag:None,2018-11-02:/blog/kiwi-tcms-team/2018/11/02/kiwi-tcms-62/<p>We're happy to announce Kiwi TCMS version 6.2! This is a small release +that removes squashed migrations from previous releases and includes a few +improvements. You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a> or +find our info booth at <a class="reference external" href="http://www.openfest.org">OpenFest</a> in Sofia during +the weekend and do …</p><p>We're happy to announce Kiwi TCMS version 6.2! This is a small release +that removes squashed migrations from previous releases and includes a few +improvements. You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a> or +find our info booth at <a class="reference external" href="http://www.openfest.org">OpenFest</a> in Sofia during +the weekend and do a live demo with the team!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +6.1.1 -&gt; 6.2 (latest) +</pre> +<p>Docker images:</p> +<pre class="literal-block"> +kiwitcms/kiwi latest 7870085ad415 957.6 MB +kiwitcms/kiwi 6.2 7870085ad415 957.6 MB +kiwitcms/kiwi 6.1.1 49fa42ddfe4d 955.7 MB +kiwitcms/kiwi 6.1 b559123d25b0 970.2 MB +kiwitcms/kiwi 6.0.1 87b24d94197d 970.1 MB +kiwitcms/kiwi 5.3.1 a420465852be 976.8 MB +</pre> +<div class="section" id="changes-since-kiwi-tcms-6-1-1"> +<h2>Changes since Kiwi TCMS 6.1.1</h2> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update to <a class="reference external" href="https://docs.djangoproject.com/en/2.1/releases/2.1.3/">Django 2.1.3</a></li> +<li>Update Apache config to print logs on the console. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/549">Issue #549</a></li> +<li><a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a> now +allows email associations when logging via GitHub. If you have an existing +account which shares the same email address with your GitHub profile you +will be redirected to that account upon logging in via GitHub! +This also resolves a problem where existing users trying to login via GitHub +were presented with error message that their email exists in the database! +Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/573">Issue #573</a></li> +</ul> +</div> +<div class="section" id="database"> +<h3>Database</h3> +<ul class="simple"> +<li>Remove old variants of squashed migrations from earlier releases</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/de#">German translation</a></li> +</ul> +</div> +<div class="section" id="refactoring"> +<h3>Refactoring</h3> +<ul class="simple"> +<li>Update <tt class="docutils literal">tcms.tests.factories.BugFactory</tt> (Ivaylo Ivanov)</li> +<li>Add test for <tt class="docutils literal">tcms.testcases.views.group_case_bugs</tt> (Ivaylo Ivanov)</li> +<li>Pylint fixes (Ivaylo Ivanov)</li> +<li>Remove unused JavaScript and re-use the existing JSON RPC methods</li> +</ul> +</div> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p>If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +cd Kiwi/ +git pull +docker-compose down +docker pull kiwitcms/kiwi +docker pull centos/mariadb +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +</pre> +<p>Don't forget to <a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">backup</a> +before upgrade!</p> +<p><strong>WARNING:</strong> <tt class="docutils literal">kiwitcms/kiwi:latest</tt> and <tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> 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:</p> +<pre class="literal-block"> +# starting from an older Kiwi TCMS version +docker-compose down +docker pull kiwitcms/kiwi:&lt;next_upgrade_version&gt; +edit docker-compose.yml to use kiwitcms/kiwi:&lt;next_upgrade_version&gt; +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +# repeat until you have reached latest +</pre> +</div> +<div class="section" id="subscription-based-online-service"> +<h2>Subscription based online service</h2> +<p>We are planning to convert +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a> into +a subscription based service for people who don't want to bother installing +Kiwi TCMS on their own systems and just want to use it for test collaboration +with their team.</p> +<p>The income from this service will go towards covering operating costs and +supporting the +<a class="reference external" href="/team/">development team</a>. Watch this +blog for further announcements about this. Meanwhile you may share your +thoughts via +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/515">Issue #515</a>.</p> +</div> +<div class="section" id="plans-to-remove-deprecated-functionality"> +<h2>Plans to remove deprecated functionality</h2> +<p><tt class="docutils literal">TestRun.product_version</tt> will be removed from the database schema in favor of +<tt class="docutils literal">TestRun.plan.product_version</tt>! With the latest web interface it is not possible +to select a product version different than the one selected in the Test Plan. +Test runs should only be able to select product builds (after +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/246">Issue #246</a> is fixed).</p> +</div> +Kiwi TCMS 6.1.12018-10-29T16:00:00+02:002018-10-29T16:00:00+02:00Kiwi TCMS Teamtag:None,2018-10-29:/blog/kiwi-tcms-team/2018/10/29/kiwi-tcms-611/<p>We're happy to announce Kiwi TCMS version 6.1.1! This release +squashes database migrations and removes +older migrations that have been squashed in previous releases, a few +improvements and bug fixes. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>.</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5 …</pre><p>We're happy to announce Kiwi TCMS version 6.1.1! This release +squashes database migrations and removes +older migrations that have been squashed in previous releases, a few +improvements and bug fixes. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>.</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +6.1 -&gt; 6.1.1 +</pre> +<p>Docker images:</p> +<pre class="literal-block"> +kiwitcms/kiwi latest 49fa42ddfe4d 955.7 MB +kiwitcms/kiwi 6.1.1 49fa42ddfe4d 955.7 MB +kiwitcms/kiwi 6.1 b559123d25b0 970.2 MB +kiwitcms/kiwi 6.0.1 87b24d94197d 970.1 MB +kiwitcms/kiwi 5.3.1 a420465852be 976.8 MB +</pre> +<div class="section" id="changes-since-kiwi-tcms-6-1"> +<h2>Changes since Kiwi TCMS 6.1</h2> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Dashboard will now show TestRuns which have test cases assigned to current +user. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/520">Issue #520</a></li> +<li>API method <tt class="docutils literal">TestRun.add_case()</tt> now returns a serialized TestCaseRun object. +Previously this method returned None</li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Don't show disabled Priority records in UI. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/334">Issue #334</a></li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +</ul> +</div> +<div class="section" id="refactoring"> +<h3>Refactoring</h3> +<ul class="simple"> +<li>Fix some pylint errors (Ivaylo Ivanov)</li> +</ul> +</div> +<div class="section" id="database"> +<h3>Database</h3> +<ul class="simple"> +<li>Remove old squashed migrations for <tt class="docutils literal">management</tt>, <tt class="docutils literal">testplans</tt>, +<tt class="docutils literal">testcases</tt> and <tt class="docutils literal">testruns</tt> apps</li> +<li>Squash the remaining migrations for <tt class="docutils literal">management</tt>, <tt class="docutils literal">testplans</tt>, +<tt class="docutils literal">testcases</tt> and <tt class="docutils literal">testruns</tt> apps</li> +</ul> +</div> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p>If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +cd Kiwi/ +git pull +docker-compose down +docker pull kiwitcms/kiwi +docker pull centos/mariadb +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +</pre> +<p>Don't forget to <a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">backup</a> +before upgrade!</p> +</div> +<div class="section" id="subscription-based-online-service"> +<h2>Subscription based online service</h2> +<p>We are planning to convert +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a> into +a subscription based service for people who don't want to bother installing +Kiwi TCMS on their own systems and just want to use it for test collaboration +with their team.</p> +<p>The income from this service will go towards covering operating costs and +supporting the +<a class="reference external" href="/team/">development team</a>. Watch this +blog for further announcements about this. Meanwhile you may share your +thoughts via +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/515">Issue #515</a>.</p> +</div> +<div class="section" id="plans-to-remove-deprecated-functionality"> +<h2>Plans to remove deprecated functionality</h2> +<p><tt class="docutils literal">TestRun.product_version</tt> will be removed from the database schema in favor of +<tt class="docutils literal">TestRun.plan.product_version</tt>! With the latest web interface it is not possible +to select a product version different than the one selected in the Test Plan. +Test runs should only be able to select product builds (after +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/246">Issue #246</a> is fixed).</p> +</div> +Kiwi TCMS API performance baseline2018-10-26T16:47:00+03:002018-10-26T16:47:00+03:00Alexander Todorovtag:None,2018-10-26:/blog/atodorov/2018/10/26/kiwi-tcms-api-performance-baseline/<p>A friend from Red Hat sent me an email asking about Kiwi TCMS performance so I did +an experiment to establish a baseline. +For API requests I got <strong>7.5 req/sec or 130 msec/req</strong> which is +1.5x <a href="https://blog.github.com/2012-09-05-how-we-keep-github-fast/">slower than GitHub</a>!</p> +<p>I used <code>perf-script</code> +(<a href="https://github.com/kiwitcms/api-scripts/blob/master/perf-script">see here</a>) +to measure …</p><p>A friend from Red Hat sent me an email asking about Kiwi TCMS performance so I did +an experiment to establish a baseline. +For API requests I got <strong>7.5 req/sec or 130 msec/req</strong> which is +1.5x <a href="https://blog.github.com/2012-09-05-how-we-keep-github-fast/">slower than GitHub</a>!</p> +<p>I used <code>perf-script</code> +(<a href="https://github.com/kiwitcms/api-scripts/blob/master/perf-script">see here</a>) +to measure that. The script takes the first 250 test cases from our test suite +and on every execution creates a new TestPlan (1 API request), then creates +new test cases (250 requests), adds cases to test plan (250 requests), +creates new product build (1 API request), creates new TestRun (1 API request), +adds test cases to test run (250 requests) and finally updates the statuses +(250 requests).</p> +<p>A total of 1003 API requests are sent to Kiwi TCMS every time you start this script! +An example is available at <a href="https://public.tenant.kiwitcms.org/run/567/">TR #567</a>!</p> +<p>On localhost, running the development server (<code>./manage.py runserver</code>) with an +SQLite database I got:</p> +<div class="highlight"><pre><span></span><code>$ <span class="nb">time</span> python perf-script + +real 2m6.450s +user 0m1.069s +sys 0m0.331s + +$ <span class="nb">time</span> python perf-script + +real 2m7.472s +user 0m1.057s +sys 0m0.342s + +$ <span class="nb">time</span> python perf-script + +real 2m9.368s +user 0m1.072s +sys 0m0.351s + +$ <span class="nb">time</span> python perf-script + +real 2m9.197s +user 0m1.050s +sys 0m0.353s +</code></pre></div> + + +<p>This measures at 120 msec/req or 7.85 req/sec!</p> +<p><a href="https://public.tenant.kiwitcms.org/login/github-app/">public.tenant.kiwitcms.org</a> is running on an +<a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html#burstable-performance-instances-hardware">AWS t2.micro</a> +instance (via docker-compose) with the default <code>centos/mariadb</code> image! +No extra settings or changes. I used the same computer over a WiFi +connection and a pretty standard home-speed Internet connection. Times are:</p> +<div class="highlight"><pre><span></span><code>$ <span class="nb">time</span> python perf-script + +real 2m18.983s +user 0m1.175s +sys 0m0.095s + +$ <span class="nb">time</span> python perf-script + +real 2m25.937s +user 0m1.156s +sys 0m0.108s + +$ <span class="nb">time</span> python perf-script + +real 2m24.120s +user 0m1.102s +sys 0m0.098s + +$ <span class="nb">time</span> python perf-script + +real 2m21.521s +user 0m1.154s +sys 0m0.091s +</code></pre></div> + + +<p>This measures at 140 sec/req or 7.05 req/sec!</p> +<p>Note: since I am using Python 3.6 I had to modify the file +<code>/opt/rh/rh-python36/root/lib64/python3.6/ssl.py</code> to read:</p> +<div class="highlight"><pre><span></span><code><span class="c1"># Used by http.client if no context is explicitly passed.</span> +<span class="n">_create_default_https_context</span> <span class="o">=</span> <span class="n">_create_unverified_context</span> <span class="c1"># this disables HTTPS cert validation</span> +</code></pre></div> + + +<p>The issue has been reported in +<a href="https://bugzilla.redhat.com/show_bug.cgi?id=1643454">RHBZ #1643454</a></p> +<p>Happy testing!</p>Kiwi TCMS 6.12018-10-20T14:40:00+03:002018-10-20T14:40:00+03:00Kiwi TCMS Teamtag:None,2018-10-20:/blog/kiwi-tcms-team/2018/10/20/kiwi-tcms-61/<p>We're happy to announce Kiwi TCMS version 6.1! This release +introduces new database migrations, +internal updates and bug fixes. It is a small release designed +to minimize the number of database migrations by squashing them together. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>.</p> +<p><strong>NOTE:</strong> there is …</p><p>We're happy to announce Kiwi TCMS version 6.1! This release +introduces new database migrations, +internal updates and bug fixes. It is a small release designed +to minimize the number of database migrations by squashing them together. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>.</p> +<p><strong>NOTE:</strong> there is the 6.0.1 release which resolves an upgrade problem +caused by non-applied migrations which have been later squashed and +released in the same release! It is best to jump through the intermediate +releases to ensure a smooth upgrade!</p> +<p>Supported upgrade paths:</p> +<pre class="literal-block"> +5.3 (or older) -&gt; 5.3.1 +5.3.1 (or newer) -&gt; 6.0.1 +6.0.1 -&gt; 6.1 +</pre> +<p>Docker images:</p> +<pre class="literal-block"> +kiwitcms/kiwi latest b559123d25b0 970.2 MB +kiwitcms/kiwi 6.1 b559123d25b0 970.2 MB +kiwitcms/kiwi 6.0.1 87b24d94197d 970.1 MB +kiwitcms/kiwi 5.3.1 a420465852be 976.8 MB +</pre> +<div class="section" id="changes-since-kiwi-tcms-6-0"> +<h2>Changes since Kiwi TCMS 6.0</h2> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update <a class="reference external" href="https://github.com/pycontribs/jira">Jira from 1.0.10 to 2.0.0</a></li> +<li>Update to <a class="reference external" href="https://github.com/patternfly/patternfly/releases">Patternfly 3.55.0</a></li> +<li>Use button instead of HTML link for deleting test plan (Oleg Kainov)</li> +<li>New middleware that will check missing settings. At the moment will only +check Base URL configuration which often gets forgotten!</li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Hot-fix for error caused by the API method <tt class="docutils literal">TestRun.update</tt>. Error was +initially reported on +<a class="reference external" href="https://stackoverflow.com/questions/52865463/">StackOverflow</a>. +This patch makes it possible to use the API without crashing however the +<tt class="docutils literal">TestRun.update</tt> method doesn't handle the <tt class="docutils literal">stop_date</tt> field at the moment!</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/de#">German translation</a></li> +<li>Updated translation source strings</li> +</ul> +</div> +<div class="section" id="refactoring"> +<h3>Refactoring</h3> +<ul class="simple"> +<li>Fix pylint errors (Ivaylo Ivanov)</li> +<li>Remove unused <tt class="docutils literal">TestRun.list</tt> and <tt class="docutils literal">TestCase.list_confirmed</tt> methods</li> +<li>Remove unused <tt class="docutils literal">plan_by_id_or_name()</tt> and <tt class="docutils literal">is_int()</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/269">Issue #269</a></li> +</ul> +</div> +<div class="section" id="database"> +<h3>Database</h3> +<ul class="simple"> +<li>Rename <tt class="docutils literal">tcms.core.contrib.auth</tt> to <tt class="docutils literal">tcms.kiwi_auth</tt></li> +<li>Remove field <tt class="docutils literal">user</tt> from <tt class="docutils literal">TestCaseTag</tt>, <tt class="docutils literal">TestRunTag</tt> and <tt class="docutils literal">TestPlanTag</tt> +models</li> +<li>Squash migrations for <tt class="docutils literal">management</tt> app</li> +<li>Squash migrations for <tt class="docutils literal">testcases</tt> app</li> +<li>Squash migrations for <tt class="docutils literal">testplans</tt> app</li> +<li>Squash migrations for <tt class="docutils literal">testruns</tt> app</li> +</ul> +</div> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p>If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +cd Kiwi/ +git pull +docker-compose down +docker pull kiwitcms/kiwi +docker pull centos/mariadb +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +</pre> +<p>Don't forget to <a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">backup</a> +before upgrade!</p> +</div> +<div class="section" id="subscription-based-online-service"> +<h2>Subscription based online service</h2> +<p>We are planning to convert +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a> into +a subscription based service for people who don't want to bother installing +Kiwi TCMS on their own systems and just want to use it for test collaboration +with their team.</p> +<p>The income from this service will go towards covering operating costs and +supporting the +<a class="reference external" href="/team/">development team</a>. Watch this +blog for further announcements about this. Meanwhile you may share your +thoughts via +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/515">Issue #515</a>.</p> +</div> +<div class="section" id="plans-to-remove-deprecated-functionality"> +<h2>Plans to remove deprecated functionality</h2> +<p><tt class="docutils literal">TestRun.product_version</tt> will be removed from the database schema in favor of +<tt class="docutils literal">TestRun.plan.product_version</tt>! With the latest web interface it is not possible +to select a product version different than the one selected in the Test Plan. +Test runs should only be able to select product builds (after +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/246">Issue #246</a> is fixed).</p> +</div> +Kiwi TCMS team updates2018-10-12T11:10:00+03:002018-10-12T11:10:00+03:00Alexander Todorovtag:None,2018-10-12:/blog/atodorov/2018/10/12/kiwi-tcms-team-updates/<p>I am happy to announce that <a href="/team/">our team</a> is steadily growing! +As we work through our <a href="/blog/kiwi-tcms-team/2018/01/22/kiwi-tcms-roadmap-for-2018/">roadmap</a>, +<a href="/blog/atodorov/2018/07/25/mid-year-roadmap-status-report/">status update here</a>, and +on-board new team members I start to feel the need for a bit more structure +and organization behind the scenes. I also wish for consistent contributions +to the project …</p><p>I am happy to announce that <a href="/team/">our team</a> is steadily growing! +As we work through our <a href="/blog/kiwi-tcms-team/2018/01/22/kiwi-tcms-roadmap-for-2018/">roadmap</a>, +<a href="/blog/atodorov/2018/07/25/mid-year-roadmap-status-report/">status update here</a>, and +on-board new team members I start to feel the need for a bit more structure +and organization behind the scenes. I also wish for consistent contributions +to the project (commit early, commit often) so I can better estimate the resources +that we have!</p> +<p>I am also actively discussing Kiwi TCMS with lots of people at various conferences +and generate many ideas for the future. The latest SEETEST in Belgrade was particularly +fruitful. Some of these ideas are pulling into different directions and I need help +to keep them under control!</p> +<p>Development-wise sometimes I lose track of what's going on and who's doing what between +working on Kiwi TCMS, preparing for conferences and venues to promote the project, +doing code review of other team members, trying not to forget to check-in on +progress (especially by interns), recruiting fresh blood and thinking about +the overall future of the project. Our user base is growing and there are days +where I feel like everything is happening at once or that something +needs to be implemented ASAP (which is usually true anyway)!</p> +<p><img class="rounded" src="/images/team/rstankova.jpg"></p> +<p>Meet Rayna Stankova in the role of our team coach! +Reny is a director for Women Who Code Sofia, senior QA engineer at VMware, +mentor with CoderDojo Bulgaria and a long-time friend of mine. +Although she is an experienced QA in her own right she will be contributing +to the people side of Kiwi TCMS and less so technically!</p> +<p>Her working areas will be planning and organization:</p> +<ul> +<li>help us (re)define the project vision and goals</li> +<li>work with us on roadmaps and action plans so we can meet + the project goals faster</li> +<li>help us (self) organize so that we are more efficient, + including checking progress and blockers (aka enforcer) and + meet the aforementioned consistency point</li> +<li>serve as our professional coach, motivator and somebody who will + take care of team health (yes I really suck at motivating others)</li> +</ul> +<p>and generally serving as another very experienced member of the team!</p> +<p>We did a quick brainstorming yesterday and started to produce results +(#smileyface)! We do have a team docs space to share information +(non-public for now, will open it gradually as we grow) and came up +with the idea to use Kiwi TCMS as a check-list for our on-boarding/internship +process!</p> +<p>I don't know how it will play out but I do expect from the +team to self-improve, be inspired, become more focused and more productive! +<strong>All of this also applies to myself, even more so!</strong></p> +<h2>Existing team members progress</h2> +<p>Last year we started with 2 existing team members (Tony and myself) and 3 +new interns (Ivo, Kaloyan and Tseko) who built this website!</p> +<p>Tony is the #4 contributor to Kiwi TCMS in +terms of <a href="https://github.com/kiwitcms/Kiwi/graphs/contributors">number of commits</a> +and is on track to surpass one of the original authors (before Kiwi TCMS was forked)! +He's been working mostly on internal refactoring and resolving the thousands +of pylint errors that we had (down to around 500 I think). This summer Tony and I +visited the OSCAL conference in Tirana and hosted an info booth for the project.</p> +<p>Ivo is the #5 contributor in terms of numbers of commits. He did learn very +quickly and is working on getting rid of the remaining pylint errors. His ability +to adapt and learn is quite impressive actually. Last month he co-hosted a +git workshop at HackConf, a 1000+ people IT event in Sofia.</p> +<p>Kaloyan did most of the work on our website initially (IIRC). +Now he is studying in the Netherlands +and not active on the project. We are working to reboot his on-boarding +and I'm hoping he will find the time to contribute to Kiwi TCMS regularly.</p> +<p>From the starting team only Tseko decided to move on to other ventures after +he contributed to the website.</p> +<h2>Internship program</h2> +<p>At Kiwi TCMS we have a set of training +programs that teach all the necessary technical skills before we let anyone +actively work on the project, let alone become a team member.</p> +<p>Our new interns are Denitsa Uzunova and Desislava Koleva. Both of them are +coming from Vratsa Software Community and were mentors at the recently held +CodeWeek hackathon in their home city! I wish them fast learning and good luck!</p> +<p>Happy testing!</p>Kiwi TCMS winter conference presence2018-10-11T11:53:00+03:002018-10-11T11:53:00+03:00Kiwi TCMS Teamtag:None,2018-10-11:/blog/kiwi-tcms-team/2018/10/11/kiwi-tcms-winter-conference-presence/<p>We are happy to announce that <a href="http://www.openfest.org">OpenFest</a> - the biggest +open source conference in Bulgaria has provided an info booth for our project. +This year the event will be held on 3rd and 4th of November at Sofia Tech Park!</p> +<p>Last time the team went to a conference together we had …</p><p>We are happy to announce that <a href="http://www.openfest.org">OpenFest</a> - the biggest +open source conference in Bulgaria has provided an info booth for our project. +This year the event will be held on 3rd and 4th of November at Sofia Tech Park!</p> +<p>Last time the team went to a conference together we had a lot of fun! Join us +at OpenFest to learn more about Kiwi TCMS and have fun with us!</p> +<blockquote class="twitter-tweet" data-lang="en"> +<p lang="en" dir="ltr"> + <a href="https://twitter.com/hashtag/KiwiTCMS?src=hash&amp;ref_src=twsrc%5Etfw">#KiwiTCMS</a> + is at <a href="https://twitter.com/hashtag/hackconf?src=hash&amp;ref_src=twsrc%5Etfw">#hackconf</a> + <a href="https://twitter.com/hashtag/HC18?src=hash&amp;ref_src=twsrc%5Etfw">#HC18</a>. + Find <a href="https://twitter.com/atodorov_?ref_src=twsrc%5Etfw">@atodorov_</a> and + <a href="https://twitter.com/ivo0926?ref_src=twsrc%5Etfw">@ivo0926</a> if you want to talk + <a href="https://twitter.com/hashtag/opensource?src=hash&amp;ref_src=twsrc%5Etfw">#opensource</a> + <a href="https://twitter.com/hashtag/test?src=hash&amp;ref_src=twsrc%5Etfw">#test</a> case management! + <a href="https://t.co/ioRCnds7jY">pic.twitter.com/ioRCnds7jY</a></p>&mdash; Kiwi TCMS (@KiwiTcms) + <a href="https://twitter.com/KiwiTcms/status/1040938917401378816?ref_src=twsrc%5Etfw">September 15, 2018</a> +</p> +</blockquote> + +<blockquote class="twitter-tweet" data-lang="en"> +<p lang="en" dir="ltr"> + <a href="https://twitter.com/KiwiTcms?ref_src=twsrc%5Etfw">@KiwiTcms</a> at + <a href="https://twitter.com/HackConf_?ref_src=twsrc%5Etfw">@HackConf_</a> + day 2. Find me or <a href="https://twitter.com/atodorov_?ref_src=twsrc%5Etfw">@atodorov_</a> + if you want to talk about open source test case management system + <a href="https://twitter.com/hashtag/opensource?src=hash&amp;ref_src=twsrc%5Etfw">#opensource</a> + <a href="https://twitter.com/hashtag/tcms?src=hash&amp;ref_src=twsrc%5Etfw">#tcms</a> + <a href="https://twitter.com/hashtag/kiwitcms?src=hash&amp;ref_src=twsrc%5Etfw">#kiwitcms</a> + <a href="https://t.co/OGsj0Z9Dww">pic.twitter.com/OGsj0Z9Dww</a></p>&mdash; Anton Sankov (@a_sankov) + <a href="https://twitter.com/a_sankov/status/1041260417669124097?ref_src=twsrc%5Etfw">September 16, 2018</a> +</p> +</blockquote> + +<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> + +<p>In case you are unable to visit Sofia, which you totally should, you can catch up with +us in Russia until the end of the year:</p> +<ul> +<li><a href="https://piterpy.com/materials/2440">PiterPy, 2nd-3rd November, St. Petersburg</a> - + where Alex Todorov will talk about pylint plugins and how we use them inside + Kiwi TCMS</li> +<li><a href="https://heisenbug-moscow.ru/2018/msk/talks/3vjkn0micguu6sqgu2kkyu/">Heisenbug, 6th-7th December, Moscow</a> - + where Alex will talk about tools and methods that we use to make Kiwi TCMS more + secure</li> +</ul> +<p>Feel free to ping us at <a href="https://twitter.com/KiwiTCMS">@KiwiTCMS</a> or look for the +kiwi bird logo and come to say hi. Happy testing!</p>Kiwi TCMS 6.02018-10-04T12:45:00+03:002018-10-04T12:45:00+03:00Kiwi TCMS Teamtag:None,2018-10-04:/blog/kiwi-tcms-team/2018/10/04/kiwi-tcms-60/<p>We're happy to announce Kiwi TCMS version 6.0! This release +introduces new database migrations, removal of +environment properties in favor of tags, internal updates and bug fixes. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>.</p> +<p>This release removes squashed migrations. Direct upgrades from versions +&lt; 5.3.1 …</p><p>We're happy to announce Kiwi TCMS version 6.0! This release +introduces new database migrations, removal of +environment properties in favor of tags, internal updates and bug fixes. +You can explore everything at +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>.</p> +<p>This release removes squashed migrations. Direct upgrades from versions +&lt; 5.3.1 to 6.0 will break without an intermediate upgrade to 5.3.1!</p> +<p>Docker images:</p> +<pre class="literal-block"> +kiwitcms/kiwi latest cd087297f349 991.3 MB +</pre> +<div class="section" id="changes-since-kiwi-tcms-5-3-1"> +<h2>Changes since Kiwi TCMS 5.3.1</h2> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update to <a class="reference external" href="https://docs.djangoproject.com/en/2.1/releases/2.1.2/">Django 2.1.2</a> +due to high severity security issue</li> +<li>Update to <a class="reference external" href="https://github.com/patternfly/patternfly/releases">Patternfly 3.54.8</a></li> +<li><tt class="docutils literal">Tag</tt> objects are now shown in Admin panel</li> +<li>Add autocomplete when adding tags to <tt class="docutils literal">TestRun</tt> via UI</li> +</ul> +</div> +<div class="section" id="removed-functionality"> +<h3>Removed functionality</h3> +<ul class="simple"> +<li>TestCase new and edit views no longer allow editing of tags. Tags can be +added/removed from the Tags tab which also makes sure to properly account +for permissions</li> +<li>Remove <tt class="docutils literal">EnvGroup</tt>, <tt class="docutils literal">EnvProperty</tt> and <tt class="docutils literal">EnvValue</tt> models in favor of tags. +Existing values and properties are converted into tags and automatically added +to test runs!</li> +<li>Convert squashed database migrations to regular ones and remove older migrations. +<strong>WARNING:</strong> upgrade from versions &lt;= 5.3.1 to 6.0 will break without an intermediate +upgrade to <tt class="docutils literal">kiwitcms/kiwi:5.3.1 a420465852be</tt>.</li> +<li>Remove deprecated <tt class="docutils literal">TestCase.estimated_time</tt> and <tt class="docutils literal">TestRun.estimated_time</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/514">Issue #514</a></li> +</ul> +</div> +</div> +<div class="section" id="backend-api"> +<h2>Backend API</h2> +<ul class="simple"> +<li>No longer use <tt class="docutils literal">product_version</tt> for <tt class="docutils literal">TestRun.create</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/522">Issue #522</a><ul> +<li>'product' is no longer required</li> +<li>'product_version' is no longer required</li> +<li>'manager' and 'default_tester' can be usernames or IDs</li> +</ul> +</li> +<li><tt class="docutils literal">TestCase.create</tt> no longer accepts 'tag' values</li> +<li><tt class="docutils literal">TestRun.add_tag</tt> and <tt class="docutils literal">TestRun.remove_tag</tt> now return list of tags. +Previously these methods returned <tt class="docutils literal">None</tt>! +This is the list of tags assigned to the TestRun that is being modified!</li> +</ul> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Fix mismatched HTML tag in <tt class="docutils literal">plan/get.html</tt> template (Oleg Kainov)</li> +<li>Don't use <tt class="docutils literal">|slugify</tt> filter in templates which breaks HTML links with non-ASCII +TestPlan names. Fixes +<a class="reference external" href="https://sentry.io/open-technologies-bulgaria-ltd/kiwi-tcms/issues/676626096/">Sentry KIWI-TCMS-38</a></li> +</ul> +</div> +<div class="section" id="refactoring"> +<h3>Refactoring</h3> +<ul class="simple"> +<li>Fix pylint errors (Ivaylo Ivanov, Anton Sankov)</li> +<li>Use existing JSON-RPC methods to add/remove tags via webUI and remove specialized +backend methods that handled these requests. Also make sure to obey respective +permissions</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +</ul> +</div> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p>If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +cd Kiwi/ +git pull +docker-compose down +docker pull kiwitcms/kiwi +docker pull centos/mariadb +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +</pre> +<p>Don't forget to <a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">backup</a> +before upgrade!</p> +</div> +<div class="section" id="subscription-based-online-service"> +<h2>Subscription based online service</h2> +<p>We are planning to convert +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a> into +a subscription based service for people who don't want to bother installing +Kiwi TCMS on their own systems and just want to use it for test collaboration +with their team.</p> +<p>The income from this service will go towards covering operating costs and +supporting the +<a class="reference external" href="https://github.com/orgs/kiwitcms/people">development team</a>. Watch this +blog for further announcements about this. Meanwhile you may share your +thoughts via +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/515">Issue #515</a>.</p> +</div> +<div class="section" id="plans-to-remove-deprecated-functionality"> +<h2>Plans to remove deprecated functionality</h2> +<p><tt class="docutils literal">TestRun.product_version</tt> will be removed from the database schema in favor of +<tt class="docutils literal">TestRun.plan.product_version</tt>! With the latest web interface it is not possible +to select a product version different than the one selected in the Test Plan. +Test runs should only be able to select product builds (after +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/246">Issue #246</a> is fixed).</p> +</div> +Happy birthday Kiwi TCMS2018-09-13T13:50:00+03:002018-09-13T13:50:00+03:00Kiwi TCMS Teamtag:None,2018-09-13:/blog/kiwi-tcms-team/2018/09/13/happy-birthday-kiwi-tcms/<p><img alt="1 year infographic" src="/images/1year_infographic.png" title="1 year infographic"></p>How to add API logging for Kiwi TCMS2018-09-07T22:00:00+03:002018-09-07T22:00:00+03:00Alexander Todorovtag:None,2018-09-07:/blog/atodorov/2018/09/07/how-to-add-api-logging-for-kiwi-tcms/<p>In this blog post I will show more ways to customize Kiwi TCMS by adding +logging capabilities to the API backend. Indeed this is a feature that +our team deemed not required for upstream and was removed in +<a href="https://github.com/kiwitcms/Kiwi/pull/436">PR #436</a>.</p> +<p>Start by creating the following directory structure:</p> +<div class="highlight"><pre><span></span><code> api_logging/ + __init__.py …</code></pre></div><p>In this blog post I will show more ways to customize Kiwi TCMS by adding +logging capabilities to the API backend. Indeed this is a feature that +our team deemed not required for upstream and was removed in +<a href="https://github.com/kiwitcms/Kiwi/pull/436">PR #436</a>.</p> +<p>Start by creating the following directory structure:</p> +<div class="highlight"><pre><span></span><code> api_logging/ + __init__.py + handlers.py + models.py +</code></pre></div> + + +<p>This is a small Django application that will log every call to the API backend. +Each file looks like this:</p> +<div class="highlight"><pre><span></span><code> <span class="c1"># models.py contains DB schema for your new table</span> + <span class="kn">from</span> <span class="nn">django.db</span> <span class="kn">import</span> <span class="n">models</span> + <span class="kn">from</span> <span class="nn">django.conf</span> <span class="kn">import</span> <span class="n">settings</span> + + <span class="k">class</span> <span class="nc">ApiCallLog</span><span class="p">(</span><span class="n">models</span><span class="o">.</span><span class="n">Model</span><span class="p">):</span> + <span class="n">executed_at</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">DateTimeField</span><span class="p">(</span><span class="n">auto_now_add</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + <span class="n">user</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">ForeignKey</span><span class="p">(</span><span class="n">settings</span><span class="o">.</span><span class="n">AUTH_USER_MODEL</span><span class="p">,</span> <span class="n">null</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">blank</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> + <span class="n">on_delete</span><span class="o">=</span><span class="n">models</span><span class="o">.</span><span class="n">CASCADE</span><span class="p">)</span> + <span class="n">method</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">CharField</span><span class="p">(</span><span class="n">max_length</span><span class="o">=</span><span class="mi">255</span><span class="p">)</span> + <span class="n">args</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">TextField</span><span class="p">(</span><span class="n">blank</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + + <span class="k">def</span> <span class="fm">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="k">return</span> <span class="s2">&quot;</span><span class="si">%s</span><span class="s2">: </span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">user</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">method</span><span class="p">)</span> +</code></pre></div> + + +<p>Then</p> +<div class="highlight"><pre><span></span><code> <span class="c1"># handlers.py overrides the RPC handlers coming from django-modernrpc</span> + <span class="kn">from</span> <span class="nn">modernrpc</span> <span class="kn">import</span> <span class="n">handlers</span> + + <span class="kn">from</span> <span class="nn">django.conf</span> <span class="kn">import</span> <span class="n">settings</span> + <span class="kn">from</span> <span class="nn">django.contrib.auth</span> <span class="kn">import</span> <span class="n">get_user_model</span> + + <span class="kn">from</span> <span class="nn">.models</span> <span class="kn">import</span> <span class="n">ApiCallLog</span> + + <span class="k">def</span> <span class="nf">log_call</span><span class="p">(</span><span class="n">request</span><span class="p">,</span> <span class="n">method_name</span><span class="p">,</span> <span class="n">args</span><span class="p">):</span> + <span class="sd">&quot;&quot;&quot; Log an RPC call to the database or stdout in DEBUG mode. &quot;&quot;&quot;</span> + <span class="n">request_user</span> <span class="o">=</span> <span class="n">request</span><span class="o">.</span><span class="n">user</span> + <span class="k">if</span> <span class="ow">not</span> <span class="n">request_user</span><span class="o">.</span><span class="n">is_authenticated</span><span class="p">:</span> + <span class="c1"># create an anonymous user object for logging purposes</span> + <span class="n">request_user</span><span class="p">,</span> <span class="n">_</span> <span class="o">=</span> <span class="n">get_user_model</span><span class="p">()</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">get_or_create</span><span class="p">(</span> + <span class="n">username</span><span class="o">=</span><span class="s1">&#39;Anonymous&#39;</span><span class="p">,</span> + <span class="n">is_active</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> + + <span class="k">if</span> <span class="n">method_name</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> + <span class="n">method_name</span> <span class="o">=</span> <span class="s1">&#39;--- method_name missing ---&#39;</span> + + <span class="k">if</span> <span class="n">settings</span><span class="o">.</span><span class="n">DEBUG</span><span class="p">:</span> + <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;API call:: user: </span><span class="si">{0}</span><span class="s1">, method: </span><span class="si">{1}</span><span class="s1">, args: </span><span class="si">{2}</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span> + <span class="n">request_user</span><span class="p">,</span> + <span class="n">method_name</span><span class="p">,</span> + <span class="n">args</span><span class="p">))</span> + <span class="k">else</span><span class="p">:</span> + <span class="n">ApiCallLog</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">create</span><span class="p">(</span> + <span class="n">user</span><span class="o">=</span><span class="n">request_user</span><span class="p">,</span> + <span class="n">method</span><span class="o">=</span><span class="n">method_name</span><span class="p">,</span> + <span class="n">args</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="n">args</span><span class="p">))</span> + + <span class="k">class</span> <span class="nc">XMLRPCHandler</span><span class="p">(</span><span class="n">handlers</span><span class="o">.</span><span class="n">XMLRPCHandler</span><span class="p">):</span> + <span class="k">def</span> <span class="nf">process_request</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="n">encoding</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">request</span><span class="o">.</span><span class="n">encoding</span> <span class="ow">or</span> <span class="s1">&#39;utf-8&#39;</span> + <span class="n">data</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">request</span><span class="o">.</span><span class="n">body</span><span class="o">.</span><span class="n">decode</span><span class="p">(</span><span class="n">encoding</span><span class="p">)</span> + <span class="n">params</span><span class="p">,</span> <span class="n">method_name</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">loads</span><span class="p">(</span><span class="n">data</span><span class="p">)</span> + + <span class="n">log_call</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">request</span><span class="p">,</span> <span class="n">method_name</span><span class="p">,</span> <span class="n">params</span><span class="p">)</span> + <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">process_request</span><span class="p">()</span> + + <span class="k">class</span> <span class="nc">JSONRPCHandler</span><span class="p">(</span><span class="n">handlers</span><span class="o">.</span><span class="n">JSONRPCHandler</span><span class="p">):</span> + <span class="k">def</span> <span class="nf">process_single_request</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">payload</span><span class="p">):</span> + <span class="n">method_name</span> <span class="o">=</span> <span class="n">payload</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;method&#39;</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span> + <span class="n">params</span> <span class="o">=</span> <span class="n">payload</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;params&#39;</span><span class="p">)</span> + + <span class="n">log_call</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">request</span><span class="p">,</span> <span class="n">method_name</span><span class="p">,</span> <span class="n">params</span><span class="p">)</span> + <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">process_single_request</span><span class="p">(</span><span class="n">payload</span><span class="p">)</span> +</code></pre></div> + + +<p><strong>NOTE:</strong> +You will have to execute <code>./manage.py makemigrations api_logging</code> to create the +initial migration for Django. This could be easier if you place the above directory +into existing Django application or craft the migration file by hand!</p> +<p>The last thing you want to do is create a <code>local_settings.py</code> file which will override +Kiwi TCMS defaults:</p> +<div class="highlight"><pre><span></span><code> <span class="c1"># local_settings.py</span> + <span class="kn">from</span> <span class="nn">django.conf</span> <span class="kn">import</span> <span class="n">settings</span> + + <span class="n">settings</span><span class="o">.</span><span class="n">INSTALLED_APPS</span> <span class="o">+=</span> <span class="p">[</span> + <span class="s1">&#39;api_logging&#39;</span><span class="p">,</span> + <span class="p">]</span> + + <span class="n">MODERNRPC_HANDLERS</span> <span class="o">=</span> <span class="p">[</span><span class="s1">&#39;api_logging.handlers.XMLRPCHandler&#39;</span><span class="p">,</span> + <span class="s1">&#39;api_logging.handlers.JSONRPCHandler&#39;</span><span class="p">]</span> +</code></pre></div> + + +<p>Then place everything in <code>Dockerfile</code> like so:</p> +<div class="highlight"><pre><span></span><code> FROM kiwitcms/kiwi + + COPY ./api_logging/ /venv/lib64/python3.6/site-packages/api_logging/ + COPY local_settings.py /venv/lib64/python3.6/site-packages/tcms/settings/ +</code></pre></div> + + +<p>Kiwi TCMS will import your <code>local_settings.py</code> and enable the logging application. +Now build your customized Docker image and use it for deployment!</p> +<p>Happy testing!</p>Kiwi TCMS 5.3.12018-09-04T23:00:00+03:002018-09-04T23:00:00+03:00Kiwi TCMS Teamtag:None,2018-09-04:/blog/kiwi-tcms-team/2018/09/04/kiwi-tcms-531/<p>We're happy to announce Kiwi TCMS version 5.3.1! This release +brings lots of UI updates and removal of unused +and/or duplicated functionality and source code. Many pages have been redesigned +with the Patternfly library to have a modern look and feel which you can +experience at <a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https …</a></p><p>We're happy to announce Kiwi TCMS version 5.3.1! This release +brings lots of UI updates and removal of unused +and/or duplicated functionality and source code. Many pages have been redesigned +with the Patternfly library to have a modern look and feel which you can +experience at <a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>.</p> +<p>This will be the last release to carry around squashed migrations. In version +6.0 older migrations will be deleted and replaced with their squashed equivalents. +Upgrades from versions &lt; 5.3 to 6.0 will break without an intermediate upgrade to 5.3.1!</p> +<p>Use <tt class="docutils literal">kiwitcms/kiwi:5.3.1</tt> from Docker Hub when upgrading at some point in the future!</p> +<p>Docker images:</p> +<pre class="literal-block"> +kiwitcms/kiwi 5.3.1 a420465852be 976.8 MB +kiwitcms/kiwi latest a420465852be 976.8 MB +</pre> +<div class="section" id="changes-since-kiwi-tcms-5-2"> +<h2>Changes since Kiwi TCMS 5.2</h2> +<div class="section" id="improvements"> +<h3>Improvements</h3> +<ul class="simple"> +<li>Update to <a class="reference external" href="https://docs.djangoproject.com/en/2.1/releases/2.1.1/">Django 2.1.1</a></li> +<li>Update Patternfly version. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/381">Issue #381</a></li> +<li>Replace TinyMCE with SimpleMDE markdown editor. Used for TestPlan text and +TestCase action, setup, breakdown, effect fields</li> +<li>Allow downstream builds to customize the login templates by +providing <tt class="docutils literal">registration/custom_login.html</tt> template. It can either +override the entire login page or provide additional information inside +the <tt class="docutils literal">custom_login</tt> block!</li> +</ul> +</div> +<div class="section" id="known-issues"> +<h3>Known issues</h3> +<ul class="simple"> +<li>You may need to strip existing texts from HTML tags that were generated by +TinyMCE. Either do this manually as you go along and use/edit records or in bulk via +the API and tools like <a class="reference external" href="https://pypi.org/project/html2text/">html2text</a>. +We strongly advise you to <a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">backup</a> +your database before attempting to automatically edit text fields!</li> +</ul> +</div> +<div class="section" id="visual-changes"> +<h3>Visual changes</h3> +<ul class="simple"> +<li>Remove breadcrumbs at the top of pages. Only admin pages still have them</li> +<li>Convert login and registration templates to Patternfly. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/211">Issue #211</a></li> +<li>Convert 404 and 500 templates to Patternfly</li> +<li>Convert dashboard page to Patternfly</li> +<li>Convert TestRun new, edit and clone pages to Patternfly. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/17">Issue #17</a></li> +<li>Convert Search Test Plans page to Patternfly</li> +<li>Convert Search Test Runs page to Patternfly</li> +<li>Convert Search Test Cases page to Patternfly</li> +<li>TestPlan view page, Runs tab now re-uses the search form for test runs +which is built using Patternfly</li> +<li>Added pagination controls to pages with search results</li> +</ul> +</div> +<div class="section" id="removed-functionality"> +<h3>Removed functionality</h3> +<ul class="simple"> +<li>When creating or editing TestRun<ul> +<li>field <tt class="docutils literal">estimated_time</tt> is scheduled for removal and is not shown</li> +<li><tt class="docutils literal">product_version</tt> is scheduled for removal in favor of +<tt class="docutils literal">TR.plan.product_version</tt></li> +<li>Product &amp; Version can't be edited anymore. Must be set on the parent +TestPlan instead. Still allows to specify builds</li> +</ul> +</li> +<li>Remove the ability to clone multiple TestPlans from search results</li> +<li>Remove the ability to upload TestPlan document files in favor of +the existing API</li> +<li>Remove TestCase export to XML in favor of existing API</li> +<li>Remove Advanced Search functionality. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/448">Issue #448</a>, +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/108">Issue #108</a></li> +<li>Remove tech preview feature: Django Report Builder</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/de#">German translation</a></li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +<li>Marked more strings as translatable</li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Don't use <tt class="docutils literal">get_full_url()</tt> where not needed. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/380">Issue #380</a></li> +<li>Remove unused templates. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/114">Issue #114</a></li> +<li>Submit filter form when clicking on tag value. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/426">Issue #426</a></li> +<li>Update <tt class="docutils literal">TestCaseRun.tested_by</tt> when setting status. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/459">Issue #459</a></li> +<li>Add tests for <tt class="docutils literal">KiwiUserAdmin</tt>. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/489">Issue #489</a></li> +</ul> +</div> +<div class="section" id="settings"> +<h3>Settings</h3> +<ul class="simple"> +<li>The following settings have been removed <tt class="docutils literal">MOTD_LOGIN</tt>, <tt class="docutils literal">WELCOME_MESSAGE</tt> +and <tt class="docutils literal">TINYMCE_DEFAULT_CONFIG</tt></li> +</ul> +</div> +<div class="section" id="refactoring"> +<h3>Refactoring</h3> +<ul class="simple"> +<li>Fix pylint errors (Anton Sankov, Ivaylo Ivanov)</li> +<li>Remove lots of unused functions and classes</li> +<li>Remove old or unnecessary templates</li> +<li>Remove <tt class="docutils literal">html2text</tt> dependency</li> +<li>Remove unused CSS and vendored-in JavaScript libraries</li> +<li>Add JavaScript JSON-RPC client which is now used by the front-end to +communicate with the existing JSON-RPC API on the back-end. This +replaces many 'ajax' views which are only used to render the UI and were +duplicating functionality with existing API</li> +<li>Non <tt class="docutils literal">dist/</tt> files are no longer removed from <tt class="docutils literal">node_modules/</tt> when building +a docker image because packages like <tt class="docutils literal">moment.js</tt> and <tt class="docutils literal"><span class="pre">bootstrap-datetimepicker.js</span></tt> +don't ship their files in <tt class="docutils literal">dist/</tt></li> +<li>Convert TestPlans.TreeView to JSON RPC</li> +</ul> +</div> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p>If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +cd Kiwi/ +git pull +docker-compose down +docker pull kiwitcms/kiwi +docker pull centos/mariadb +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +</pre> +<p>Don't forget to <a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">backup</a> +before upgrade!</p> +</div> +<div class="section" id="ask-your-questions-on-stackoverflow"> +<h2>Ask your questions on StackOverflow</h2> +<p>Kiwi TCMS is now using the +<a class="reference external" href="https://stackoverflow.com/questions/tagged/kiwi-tcms">'kiwi-tcms'</a> +tag on StackOverflow to track questions. Please submit your support requests +and general questions to +<a class="reference external" href="https://stackoverflow.com/questions/tagged/kiwi-tcms">StackOverflow</a> tagged +with the 'kiwi-tcms' tag! Support requests via GitHub or email will not be answered +anymore (GitHub issues are for bugs or feature discussions only)!</p> +</div> +<div class="section" id="subscription-based-online-service"> +<h2>Subscription based online service</h2> +<p>We are planning to convert +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a> into +a subscription based service for people who don't want to bother installing +Kiwi TCMS on their own systems and just want to use it for test collaboration +with their team.</p> +<p>The income from this service will go towards covering operating costs and +supporting the +<a class="reference external" href="https://github.com/orgs/kiwitcms/people">development team</a>. Watch this +blog for further announcements about this. Meanwhile you may share your +thoughts via +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/515">Issue #515</a>.</p> +</div> +<div class="section" id="plans-to-remove-deprecated-functionality"> +<h2>Plans to remove deprecated functionality</h2> +<p><tt class="docutils literal">TestRun.product_version</tt> will be removed from the database schema in favor of +<tt class="docutils literal">TestRun.plan.product_version</tt>! With the latest web interface it is not possible +to select a product version different than the one selected in the Test Plan. +Test runs should only be able to select product builds (after +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/246">Issue #246</a> is fixed).</p> +<p><tt class="docutils literal">TestRun.estimated_time</tt> is scheduled for removal if not used. Objections +and use-cases must be shared via +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/514">Issue #514</a>.</p> +<p><tt class="docutils literal">EnvGroup</tt> and <tt class="docutils literal">EnvProperty</tt> models are scheduled for removal in favor +of <tt class="docutils literal">Tag</tt>. Internally tags are referenced in more places inside Kiwi TCMS' +source code and they appear to be more fully developed. On the other hand +while environment appears very similar to tags it is not exactly the same. +Ongoing discussion is happening via +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/484">Issue #484</a>.</p> +</div> +Kiwi TCMS 5.22018-08-07T22:45:00+03:002018-08-07T22:45:00+03:00Kiwi TCMS Teamtag:None,2018-08-07:/blog/kiwi-tcms-team/2018/08/07/kiwi-tcms-52/<p>We're happy to announce Kiwi TCMS version 5.2! This release +introduces new database migrations and converts +the Docker image to a non-root user with uid 1001. You may have to adjust +ownership/permissions on the <tt class="docutils literal">kiwi_uploads</tt> Docker volume!</p> +<p>The new <tt class="docutils literal">kiwitcms/kiwi:latest</tt> docker image has Image ID <tt class="docutils literal">6bc4e3124fd4 …</tt></p><p>We're happy to announce Kiwi TCMS version 5.2! This release +introduces new database migrations and converts +the Docker image to a non-root user with uid 1001. You may have to adjust +ownership/permissions on the <tt class="docutils literal">kiwi_uploads</tt> Docker volume!</p> +<p>The new <tt class="docutils literal">kiwitcms/kiwi:latest</tt> docker image has Image ID <tt class="docutils literal">6bc4e3124fd4</tt>. +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a> +has also been updated!</p> +<div class="section" id="changes-since-kiwi-tcms-5-1"> +<h2>Changes since Kiwi TCMS 5.1</h2> +<div class="section" id="enhancements"> +<h3>Enhancements</h3> +<ul class="simple"> +<li>Upgrade to <a class="reference external" href="https://docs.djangoproject.com/en/2.1/releases/2.1/">Django 2.1</a></li> +<li>Upgrade to <tt class="docutils literal"><span class="pre">django-report-builder</span> 6.2.2</tt>, compatible with Django 2.1</li> +<li>Docker image now executes with uid 1001 instead of root<ul> +<li>image based on <tt class="docutils literal">centos7</tt> image instead of <tt class="docutils literal">centos/httpd</tt></li> +<li>image now exposes ports 8080 and 8443</li> +<li>Apache logs now printed on Docker console</li> +<li>SSL certificates copied to <tt class="docutils literal">/Kiwi/ssl</tt> inside Docker image instead of being bind-mounted</li> +<li>uploads dir changed to <tt class="docutils literal">/Kiwi/uploads</tt></li> +<li>static dir changed to <tt class="docutils literal">/Kiwi/static</tt></li> +<li><tt class="docutils literal">/Kiwi</tt> is now owned by uid 1001</li> +<li><tt class="docutils literal">/venv</tt> is now owned by uid 1001</li> +<li><tt class="docutils literal"><span class="pre">docker-compose.yml</span></tt> is updated to match</li> +</ul> +</li> +<li>Fix pylint errors (Ivaylo Ivanov)</li> +<li>Allow users to see other profiles via Admin</li> +<li>Use password change form from Admin instead of custom one</li> +<li><tt class="docutils literal">product.py</tt> will try to import <tt class="docutils literal">local_settings.py</tt> if available in the +same directory. This can be used to customize settings in downstream +distributions</li> +<li>Updated <a class="reference external" href="https://crowdin.com/project/kiwitcms/sl#">Slovenian translation</a></li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Make password reset views public</li> +<li>Don't crash when adding new users via Admin</li> +</ul> +</div> +<div class="section" id="refactoring"> +<h3>Refactoring</h3> +<ul class="simple"> +<li>Remove <tt class="docutils literal">UserProfile</tt> model. Kiwi TCMS doesn't needs extra information +about users so we remove this part of the application. Custom installations +may choose to define their own profiles if they wish</li> +<li>Remove custom <tt class="docutils literal">DBModelBackend</tt> authentication backend</li> +<li>Remove unused <tt class="docutils literal">tcms.core.context_processors.auth_backend_processor</tt></li> +<li>Remove unused <tt class="docutils literal">get_using_backend()</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/261">Issue #261</a></li> +<li>Remove <tt class="docutils literal">dj_pagination</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/110">Issue #110</a></li> +</ul> +</div> +<div class="section" id="settings"> +<h3>Settings</h3> +<ul class="simple"> +<li><tt class="docutils literal">AUTHENTICATION_BACKENDS</tt> is removed</li> +<li><tt class="docutils literal">PAGINATION_DEFAULT_PAGINATION</tt> is removed</li> +<li>Navigation menu links are now defined in <tt class="docutils literal">MENU_ITEMS</tt> and can be redefined</li> +</ul> +</div> +<div class="section" id="signals"> +<h3>Signals</h3> +<ul class="simple"> +<li><tt class="docutils literal">USER_REGISTERED_SIGNAL</tt> now doesn't receive the <tt class="docutils literal">backend</tt> parameter</li> +</ul> +</div> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p>If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +cd Kiwi/ +git pull +docker-compose down +docker pull kiwitcms/kiwi +docker pull centos/mariadb +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +</pre> +<p>Don't forget to <a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">backup</a> +before upgrade!</p> +</div> +How to override templates for Kiwi TCMS2018-08-06T11:40:00+03:002018-08-06T11:40:00+03:00Alexander Todorovtag:None,2018-08-06:/blog/atodorov/2018/08/06/how-to-override-templates-for-kiwi-tcms/<p>This is the first publication in our customization series. It will show you +how to override any template used by Kiwi TCMS. As an example we will override +the email template that is used when registering new account. By default the +email text looks like this:</p> +<div class="highlight"><pre><span></span><code><span class="x"> Welcome </span><span class="cp">{{</span> <span class="nv">user</span> <span class="cp">}}</span><span class="x">,</span> +<span class="x"> thank you …</span></code></pre></div><p>This is the first publication in our customization series. It will show you +how to override any template used by Kiwi TCMS. As an example we will override +the email template that is used when registering new account. By default the +email text looks like this:</p> +<div class="highlight"><pre><span></span><code><span class="x"> Welcome </span><span class="cp">{{</span> <span class="nv">user</span> <span class="cp">}}</span><span class="x">,</span> +<span class="x"> thank you for signing up for an </span><span class="cp">{{</span> <span class="nv">site_domain</span> <span class="cp">}}</span><span class="x"> account!</span> + +<span class="x"> To activate your account, click this link:</span> +<span class="x"> </span><span class="cp">{{</span> <span class="nv">confirm_url</span> <span class="cp">}}</span><span class="x"></span> +</code></pre></div> + + +<p><a href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a> +runs a custom Docker image based on +<code>kiwitcms/kiwi</code>. For this image the confirmation email looks like this</p> +<div class="highlight"><pre><span></span><code><span class="x"> Welcome </span><span class="cp">{{</span> <span class="nv">user</span> <span class="cp">}}</span><span class="x">,</span> +<span class="x"> thank you for signing up for our Kiwi TCMS demo!</span> + +<span class="x"> To activate your account, click this link:</span> +<span class="x"> </span><span class="cp">{{</span> <span class="nv">confirm_url</span> <span class="cp">}}</span><span class="x"></span> + +<span class="x"> GDPR no longer allows us to automatically subscribe you to</span> +<span class="x"> our newsletter. If you wish to keep in touch and receive emails</span> +<span class="x"> with news and updates around Kiwi TCMS please subscribe at:</span> +<span class="x"> https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581</span> + +<span class="x"> --</span> +<span class="x"> Happy testing!</span> +<span class="x"> The Kiwi TCMS team</span> +<span class="x"> http://kiwitcms.org</span> +</code></pre></div> + + +<p>The file that we want to override is <code>tcms/templates/email/confirm_registration.txt</code>.</p> +<p>Create a local directory (git repository) which will hold customization configuration +and create a file named <code>templates.d/email/confirm_registration.txt</code> with your text!</p> +<p>Next you want to make this file available inside your docker image so your <code>Dockerfile</code> +should look like this:</p> +<div class="highlight"><pre><span></span><code> FROM kiwitcms/kiwi + + COPY ./templates.d/ /venv/lib64/python3.6/site-packages/tcms/overridden_templates/ + COPY local_settings.py /venv/lib64/python3.6/site-packages/tcms/settings/ +</code></pre></div> + + +<p>where <code>local_settings.py</code> contains</p> +<div class="highlight"><pre><span></span><code> <span class="kn">import</span> <span class="nn">os</span> + <span class="kn">from</span> <span class="nn">django.conf</span> <span class="kn">import</span> <span class="n">settings</span> + + <span class="n">settings</span><span class="o">.</span><span class="n">TEMPLATES</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="s1">&#39;DIRS&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">insert</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">settings</span><span class="o">.</span><span class="n">TCMS_ROOT_PATH</span><span class="p">,</span> <span class="s1">&#39;overridden_templates&#39;</span><span class="p">))</span> +</code></pre></div> + + +<p>The following code states <em>instruct Django to look into <code>overridden_templates</code> first and +use any templates it finds there; also make my files available in that specific location +inside the docker image</em>.</p> +<p>This approach can be used for all templates that you wish to override. Take into +account that file names must match (Django searches templates by directory path). +Now build your customized Docker image and use that for deployment!</p> +<p>Happy testing!</p>Kiwi TCMS 5.12018-07-31T12:00:00+03:002018-07-31T12:00:00+03:00Kiwi TCMS Teamtag:None,2018-07-31:/blog/kiwi-tcms-team/2018/07/31/kiwi-tcms-51/<p>We're happy to announce Kiwi TCMS version 5.1! This release +introduces new database migrations, an experimental reporting feature, +deprecated functionality and bug fixes.</p> +<p>The new <tt class="docutils literal">kiwitcms/kiwi:latest</tt> docker image has Image ID <tt class="docutils literal">cc9b55aa664d</tt>. +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a> +has also been updated!</p> +<div class="section" id="changes-since-kiwi-tcms-5-0"> +<h2>Changes since Kiwi TCMS 5.0 …</h2></div><p>We're happy to announce Kiwi TCMS version 5.1! This release +introduces new database migrations, an experimental reporting feature, +deprecated functionality and bug fixes.</p> +<p>The new <tt class="docutils literal">kiwitcms/kiwi:latest</tt> docker image has Image ID <tt class="docutils literal">cc9b55aa664d</tt>. +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a> +has also been updated!</p> +<div class="section" id="changes-since-kiwi-tcms-5-0"> +<h2>Changes since Kiwi TCMS 5.0</h2> +<div class="section" id="enhancements"> +<h3>Enhancements</h3> +<ul class="simple"> +<li>Integrate with Django Report Builder as tech-preview. This makes it possible +for power users and administrators to generate +<a class="reference external" href="http://django-report-builder.readthedocs.io/en/latest/howto/">tabular reports</a>. +You will have to know the existing DB schema if you want to create your own reports. +See <a class="reference external" href="http://kiwitcms.readthedocs.io/en/latest/db.html">http://kiwitcms.readthedocs.io/en/latest/db.html</a>. This feature is in +tech-preview and it may be removed if it doesn't work out. Please comment at: +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/452">Issue #452</a>.</li> +<li>Allow using <tt class="docutils literal">manage.py dumpdata|loaddata|sqlflush|dbshell</tt> for backups, see +<a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">blog post</a></li> +<li>In TestCase view page add a link to delete the current test case</li> +<li>In TestCase Admin page the <tt class="docutils literal">+ Add TestCase</tt> button now allows to create new +test case</li> +<li>The version menu item in the helper menu now links to +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/blob/master/CHANGELOG.rst#change-log">Changelog</a></li> +</ul> +</div> +<div class="section" id="deprecated-functionality"> +<h3>Deprecated functionality</h3> +<ul class="simple"> +<li>Start showing deprecation warning for Advanced search, see +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/448">Issue #448</a></li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Allows Product/Version/Build to be shown in Testing Report. Fixes +<a class="reference external" href="https://sentry.io/open-technologies-bulgaria-ltd/kiwi-tcms/issues/618688608/">Sentry KIWI-TCMS-2C</a></li> +<li>Default to <tt class="docutils literal"><span class="pre">https://</span></tt> links if not running locally. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/450">Issue #450</a></li> +<li>Apply missing CSS class for object history table so it can be displayed nicely</li> +</ul> +</div> +<div class="section" id="refactoring"> +<h3>Refactoring</h3> +<ul class="simple"> +<li>Squash some database migrations</li> +<li>Fix a number of pylint issues</li> +<li>Remove unused <tt class="docutils literal"><span class="pre">testruns.views::view_caseruns()</span></tt>. References +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/316">Issue #316</a></li> +<li>Remove unused template <tt class="docutils literal">report/caserun.html</tt></li> +<li>Handle TestRun deletion via admin not home grown code</li> +</ul> +</div> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p>If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +cd Kiwi/ +git pull +docker-compose down +docker pull kiwitcms/kiwi +docker pull centos/mariadb +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +</pre> +<p>Don't forget to <a class="reference external" href="/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/">backup</a> +before upgrade!</p> +</div> +<div class="section" id="help-us-make-kiwi-tcms-better"> +<h2>Help us make Kiwi TCMS better</h2> +<p>According to <a class="reference external" href="/blog/atodorov/2018/07/25/mid-year-roadmap-status-report/">our 2018 roadmap update</a> +the Kiwi TCMS team is investing a great deal of our time to make the code base more +maintainable! For the past few releases we've been balancing code refactoring +with bug-fixing and enhancements and we have lots of ideas down the line.</p> +<p>We want to hear your voice! Tell us how you use Kiwi TCMS inside your organization. +We want to know what works for you and what doesn't so we can make it better. Feel +free to comment below, file GitHub issues or send us an email.</p> +<p>Happy testing!</p> +</div> +How to backup Docker volumes for Kiwi TCMS2018-07-30T00:25:00+03:002018-07-30T00:25:00+03:00Alexander Todorovtag:None,2018-07-30:/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/<p>When you start Kiwi TCMS by running <code>docker-compose up</code> +(see <a href="http://kiwitcms.readthedocs.io/en/latest/installing_docker.html#start-docker-compose">here</a>) +it will automatically create 2 volumes: <code>kiwi_db_data</code> and <code>kiwi_uploads</code>. +This blog post will outline how to backup these docker volumes.</p> +<p><strong>Note:</strong> in the instructions below <code>kiwi_db</code> is the container name and <code>kiwi</code> is the +database name used inside the …</p><p>When you start Kiwi TCMS by running <code>docker-compose up</code> +(see <a href="http://kiwitcms.readthedocs.io/en/latest/installing_docker.html#start-docker-compose">here</a>) +it will automatically create 2 volumes: <code>kiwi_db_data</code> and <code>kiwi_uploads</code>. +This blog post will outline how to backup these docker volumes.</p> +<p><strong>Note:</strong> in the instructions below <code>kiwi_db</code> is the container name and <code>kiwi</code> is the +database name used inside the <code>docker-compose.yml</code> file!</p> +<h2>MariaDB/MySQL database</h2> +<p>To export all contents from the docker container execute the command:</p> +<div class="highlight"><pre><span></span><code><span class="nv">docker</span> <span class="k">exec</span> <span class="o">-</span><span class="nv">u</span> <span class="mi">0</span> <span class="o">-</span><span class="nv">i</span> <span class="nv">kiwi_db</span> <span class="nv">mysqldump</span> <span class="nv">kiwi</span> <span class="o">&gt;</span> <span class="nv">backup</span>.<span class="nv">sql</span> +</code></pre></div> + + +<p>This will create a file named <code>backup.sql</code> in the current directory, outside of the running container!</p> +<p>You can restore the database contents by using the following command:</p> +<div class="highlight"><pre><span></span><code><span class="nv">cat</span> <span class="nv">backup</span>.<span class="nv">sql</span> <span class="o">|</span> <span class="nv">docker</span> <span class="k">exec</span> <span class="o">-</span><span class="nv">u</span> <span class="mi">0</span> <span class="o">-</span><span class="nv">i</span> <span class="nv">kiwi_db</span> <span class="nv">mysql</span> <span class="o">-</span><span class="nv">v</span> <span class="nv">kiwi</span> +</code></pre></div> + + +<p><strong>Notes:</strong></p> +<ol> +<li>The commands above using <code>-u 0</code> are executed with <code>root</code> privileges inside the + container. In this way you don't need to type-in the database password!</li> +<li>Depending on your scenario you may want to remove the existing volume + (<code>docker-compose down &amp;&amp; docker volume rm kiwi_db_data</code>) before restoring the database!</li> +</ol> +<h2>Postgres database</h2> +<p>To export all contents from the docker container execute the command:</p> +<div class="highlight"><pre><span></span><code><span class="nv">docker</span> <span class="k">exec</span> <span class="o">-</span><span class="nv">i</span> <span class="nv">kiwi_db</span> <span class="nv">pg_dump</span> <span class="o">--</span><span class="nv">dbname</span><span class="o">=</span><span class="nv">kiwi</span> <span class="o">-</span><span class="nv">F</span> <span class="nv">c</span> <span class="o">&gt;</span> <span class="nv">backup</span>.<span class="nv">bak</span> +</code></pre></div> + + +<p>This will create a file named <code>backup.bak</code> in the current directory, outside of the running container. +This is a PostgreSQL custom database dump format which contains all data and schema definitions. +That is a binary file which can be read with the <code>pg_restore</code> command!</p> +<p>To drop and restore the entire database execute:</p> +<div class="highlight"><pre><span></span><code><span class="nv">docker</span> <span class="k">exec</span> <span class="o">-</span><span class="nv">i</span> <span class="nv">kiwi_db</span> <span class="nv">psql</span> <span class="o">-</span><span class="nv">c</span> <span class="s2">&quot;</span><span class="s">DROP DATABASE IF EXISTS kiwi;</span><span class="s2">&quot;</span> +<span class="nv">cat</span> <span class="nv">backup</span>.<span class="nv">bak</span> <span class="o">|</span> <span class="nv">docker</span> <span class="k">exec</span> <span class="o">-</span><span class="nv">i</span> <span class="nv">kiwi_db</span> <span class="nv">pg_restore</span> <span class="o">--</span><span class="nv">dbname</span><span class="o">=</span><span class="nv">template1</span> <span class="o">-</span><span class="nv">vcC</span> +</code></pre></div> + + +<h2>Multi-tenant database</h2> +<p>The <a href="https://github.com/kiwitcms/tenants">kiwitcms-tenant</a> add-on and/or +<a href="https://github.com/kiwitcms/enterprise">Kiwi TCMS Enterprise</a> work only on +Postgres! Each tenant (aka name-space) uses a separate database schema. +The first schema name is <code>public</code>.</p> +<p>The backup and restore instructions shown above operate on all tenants together! +If you want to [drop and] restore an individual tenant then use the commands:</p> +<div class="highlight"><pre><span></span><code><span class="nv">docker</span> <span class="k">exec</span> <span class="o">-</span><span class="nv">it</span> <span class="nv">kiwi_db</span> <span class="nv">psql</span> <span class="o">--</span><span class="nv">dbname</span><span class="o">=</span><span class="nv">kiwi</span> + +<span class="nv">kiwi</span><span class="o">=&gt;</span> <span class="nv">DROP</span> <span class="nv">SCHEMA</span> $<span class="nv">tenant_name</span> <span class="nv">CASCADE</span><span class="c1">;</span> +.... +<span class="nv">DROP</span> <span class="nv">SCHEMA</span> +<span class="nv">kiwi</span><span class="o">=&gt;</span> <span class="nv">CREATE</span> <span class="nv">SCHEMA</span> $<span class="nv">tenant_name</span><span class="c1">;</span> +<span class="nv">CREATE</span> <span class="nv">SCHEMA</span> +<span class="nv">kiwi</span><span class="o">=&gt;</span><span class="nv">Ctrl</span><span class="o">+</span><span class="nv">D</span> + +<span class="nv">cat</span> <span class="nv">backup</span>.<span class="nv">bak</span> <span class="o">|</span> <span class="nv">docker</span> <span class="k">exec</span> <span class="o">-</span><span class="nv">i</span> <span class="nv">kiwi_db</span> <span class="nv">pg_restore</span> <span class="o">--</span><span class="nv">dbname</span><span class="o">=</span><span class="nv">kiwi</span> <span class="o">-</span><span class="nv">v</span> <span class="o">--</span><span class="nv">schema</span> $<span class="nv">tenant_name</span> +</code></pre></div> + + +<h2>Backing up file uploads</h2> +<p>Uploaded files can easily be backed up with:</p> +<div class="highlight"><pre><span></span><code><span class="n">docker</span> <span class="n">exec</span> <span class="o">-</span><span class="n">i</span> <span class="n">kiwi_web</span> <span class="o">/</span><span class="n">bin</span><span class="o">/</span><span class="n">tar</span> <span class="o">-</span><span class="n">cP</span> <span class="o">/</span><span class="n">Kiwi</span><span class="o">/</span><span class="n">uploads</span> <span class="o">&gt;</span> <span class="n">uploads</span><span class="o">.</span><span class="n">tar</span> +</code></pre></div> + + +<p>and then restored with:</p> +<div class="highlight"><pre><span></span><code><span class="n">cat</span> <span class="n">uploads</span><span class="o">.</span><span class="n">tar</span> <span class="o">|</span> <span class="n">docker</span> <span class="n">exec</span> <span class="o">-</span><span class="n">i</span> <span class="n">kiwi_web</span> <span class="o">/</span><span class="n">bin</span><span class="o">/</span><span class="n">tar</span> <span class="o">-</span><span class="n">x</span> +</code></pre></div> + + +<p>You may also try the <code>rsync</code> command but be aware that it is not installed +by default!</p> +<p><strong>Note:</strong> +the same approach may be used to backup <code>/var/lib/mysql/</code> or <code>/var/lib/pgsql/data</code> +from the <code>kiwi_db</code> container.</p> +<h2>Backing up multi-tenant uploads</h2> +<p>By default multi-tenant file uploads are stored under <code>/Kiwi/uploads/tenant/$tenant_name</code>. +You can archive all contents with the same procedure above. If you wish to restore +files per tenant you will have to upload the <code>$tenant_name</code> directory into the +docker volume.</p> +<h2>Alternatives</h2> +<p>By default both docker volumes created for Kiwi TCMS use the <code>local</code> driver +and are available under <code>/var/lib/docker/volumes/&lt;volume_name&gt;</code> on the host +running your containers. You can try backing them up from there as well.</p> +<p>Another alternative is to use the +<a href="https://www.projectatomic.io/blog/2016/05/docker-lvm-plugin/">docker-lvm-plugin</a> +and create these volumes as LVM2 block devices. Then use +<code>lvcreate -s</code> command to create a snapshot volume. For more information see +<a href="https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html-single/logical_volume_manager_administration/index#snapshot_volumes">chapter 2.3.5. Snapshot Volumes</a> +from the LVM Administrator Guide for Red Hat Enterprise Linux 7.</p> +<p>Happy testing!</p>Mid-year roadmap status report2018-07-25T16:30:00+03:002018-07-25T16:30:00+03:00Alexander Todorovtag:None,2018-07-25:/blog/atodorov/2018/07/25/mid-year-roadmap-status-report/<p>Hello everyone, in this article I will outline the progress that the Kiwi TCMS +team has made towards achieving the goals on our +<a href="/blog/kiwi-tcms-team/2018/01/22/kiwi-tcms-roadmap-for-2018/">roadmap</a>.</p> +<h2>Make code easier to maintain</h2> +<p><em>Status: moderate progress</em></p> +<p>Initially <a href="https://codeclimate.com/github/kiwitcms/Kiwi">CodeClimate</a> reported +a "D" rating with a 1 year estimated effort. Now it is still on "D …</p><p>Hello everyone, in this article I will outline the progress that the Kiwi TCMS +team has made towards achieving the goals on our +<a href="/blog/kiwi-tcms-team/2018/01/22/kiwi-tcms-roadmap-for-2018/">roadmap</a>.</p> +<h2>Make code easier to maintain</h2> +<p><em>Status: moderate progress</em></p> +<p>Initially <a href="https://codeclimate.com/github/kiwitcms/Kiwi">CodeClimate</a> reported +a "D" rating with a 1 year estimated effort. Now it is still on "D" rating with +a 7 months estimated effort to bring the project back in shape. +Code smells have dropped from 600+ to 418, duplications have been reduced from 600+ to 359! +At the same time technical debt ratio has been decreased from 32,5% to 21,6% and +little over 10000 lines of code have been removed from the source code. +Checkout +<a href="https://codeclimate.com/github/kiwitcms/Kiwi/trends/technical_debt">the stats</a> +for more info!</p> +<h2>Use pylint and pylint-django</h2> +<p><em>Status: good progress</em></p> +<p>Both pylint and pylint-django have been integrated into our CI workflow. There are even +a few custom built plugins that we use. The number of issues reported is down to around 900 +from 4000+ initially. The cleanup has been lead by <a href="https://github.com/asankov">Anton Sankov</a> +with help from <a href="https://github.com/ivo0126">Ivaylo Ivanov</a> and myself.</p> +<h2>Render HTML, return JSON</h2> +<p><em>Status: no progress</em></p> +<p>Several views were probably modified to return pure JSON in the meantime but we've not +done any targeted work to resolve this issue.</p> +<h2>Submit forms, post JSON, GET clean URLs</h2> +<p><em>Status: no progress</em></p> +<p>Same as above, not much has been done in this area.</p> +<h2>API layer</h2> +<p><em>Status: complete</em></p> +<p>After Kiwi TCMS v4.0 the server side API has been reorganized and updated +to follow the model/method names used internally.</p> +<p>After the recent version 5.0 the client side API library has been stripped +to its most basic form so that you can work directly with the responses from +the server.</p> +<p>There is no more duplication and ambiguity in names because there isn't +a lot of code left!</p> +<h2>Documentation</h2> +<p><em>Status: moderate progress, dropped</em></p> +<p>All RPC methods have been documented! The rest of the internals will be documented +as we go along.</p> +<h2>No vendored JavaScript libraries</h2> +<p><em>Status: moderate progress</em></p> +<p>Several JavaScript libraries have been removed but we still carry around jQuery +and Handlebars.js. No work has been done to convert Kiwi TCMS to use the jQuery +version provided with Django.</p> +<h2>Less HTML templates with better organization</h2> +<p><em>Status: minimal progress</em></p> +<p>There are still over 100 HTML templates in Kiwi TCMS. Some of the HTML templates +have been merged together, some email templates have been refactored and marked +as translatable but the majority of them have not been updated for a long time.</p> +<h2>Modern interface with Patternfly</h2> +<p><em>Status: no progress</em></p> +<h2>JavaScript updates and front-end testing</h2> +<p><em>Status: small progress</em></p> +<p>A number of JavaScript functions have been refactored and removed during the +past few releases but there are still thousands of lines of code left to deal with.</p> +<h2>Community efforts</h2> +<p><em>Status: moderate progress</em></p> +<p>We are seeing a steady stream of new users registered on +<a href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a> and +there are several active contributors (issues, translations).</p> +<p>Kiwi TCMS was represented at OSCAL Tirana, DjangoCon Heidelberg and PyCon Prague! +We're planning to attend HackConf and OpenFest in Sofia by the end of the year.</p> +<p>Happy testing!</p>Kiwi TCMS 5.02018-07-24T16:30:00+03:002018-07-24T16:30:00+03:00Kiwi TCMS Teamtag:None,2018-07-24:/blog/kiwi-tcms-team/2018/07/24/kiwi-tcms-50/<p>We're happy to announce Kiwi TCMS and tcms-api version 5.0! This release +introduces object history tracking, removal of old functionality and unused code, +lots of internal updates and bug fixes.</p> +<p>The new <tt class="docutils literal">kiwitcms/kiwi:latest</tt> docker image has Image ID <tt class="docutils literal">468de0abe8a8</tt>. +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a> has also been …</p><p>We're happy to announce Kiwi TCMS and tcms-api version 5.0! This release +introduces object history tracking, removal of old functionality and unused code, +lots of internal updates and bug fixes.</p> +<p>The new <tt class="docutils literal">kiwitcms/kiwi:latest</tt> docker image has Image ID <tt class="docutils literal">468de0abe8a8</tt>. +<a class="reference external" href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a> has also been updated!</p> +<div class="section" id="changes-since-kiwi-tcms-4-2"> +<h2>Changes since Kiwi TCMS 4.2</h2> +<div class="section" id="settings"> +<h3>Settings</h3> +<ul class="simple"> +<li>Remove <tt class="docutils literal">CACHE</tt> because not used</li> +<li>Remove <tt class="docutils literal">PLAN_EMAIL_TEMPLATE</tt>, <tt class="docutils literal">CASE_EMAIL_TEMPLATE</tt> and +<tt class="docutils literal">CASE_DELETE_EMAIL_TEMPLATE</tt>. Templates can still be overridden if desired</li> +</ul> +</div> +<div class="section" id="enhancements"> +<h3>Enhancements</h3> +<ul class="simple"> +<li>Upgrade to <a class="reference external" href="https://docs.djangoproject.com/en/2.0/releases/2.0.7/">Django 2.0.7</a></li> +<li>Allow to delete TestPlan. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/273">Issue #273</a></li> +<li>Don't include username in dashboard URL</li> +<li>Copy latest TestPlan text when cloning</li> +<li>Always require users to be logged in. Anonymous users will not be allowed +access by default. Read-only access to some views (e.g. get TestPlan or TestRun) +can be enabled by disabling <tt class="docutils literal">GlobalLoginRequiredMiddleware</tt>! Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/230">Issue #230</a></li> +<li>Start tracking change history for TestPlan, TestCase, TestRun and TestCaseRun. +Fixes <a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/294">Issue #294</a></li> +<li>History changes are recorded as unified diff which is a universally recognized format</li> +<li>Show the actual changes in email notifications. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/199">Issue #199</a></li> +</ul> +</div> +<div class="section" id="bug-fixes"> +<h3>Bug fixes</h3> +<ul class="simple"> +<li>Fix <tt class="docutils literal">UnboundLocalError local variable 'message' referenced before assignment</tt>. Fixes +<a class="reference external" href="https://sentry.io/open-technologies-bulgaria-ltd/kiwi-tcms/issues/589209883/">Sentry KIWI-TCMS-1S</a></li> +<li>Make email address unique when adding users via admin panel. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/352">Issue #352</a> and +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/68">Issue #68</a></li> +<li>Fix <tt class="docutils literal">unsupported operand type(s) for +=: 'int' and 'datetime.timedelta'</tt> by +initializing timedelta variable properly. Fixes +<a class="reference external" href="https://sentry.io/open-technologies-bulgaria-ltd/kiwi-tcms/issues/593838484/">Sentry KIWI-TCMS-1Y</a></li> +<li>Remove <tt class="docutils literal">core.models.fields</tt> with MySQL time conversions. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/390">Issue #390</a></li> +<li>Fix bad JavaScript comparison. Fixes Coverity #289956</li> +<li>Remove expression with no effect. Fixes Coverity #289974</li> +<li>Rewrite <tt class="docutils literal">request_host_link()</tt> to fix Coverity #289987</li> +<li>Fix Coverity #289923 - Typo in identifier</li> +<li>Don't send emails for changes performed by myself. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/216">Issue #216</a></li> +</ul> +</div> +<div class="section" id="refactoring"> +<h3>Refactoring</h3> +<ul class="simple"> +<li>Fix pylint issues in several modules (Anton Sankov &amp; Ivaylo Ivanov)</li> +<li>Fix wrong Plan Type template variable in advanced search form</li> +<li>Do not use <tt class="docutils literal">Model.objects.update()</tt> because it doesn't respect history</li> +<li>Use the standard <tt class="docutils literal">ModelChoiceField</tt> instead of custom one</li> +<li>Use <tt class="docutils literal">updateRunStatus()</tt> instead of deprecated <tt class="docutils literal">updateObject()</tt></li> +<li>Simplify JavaScript function <tt class="docutils literal">getInfo()</tt> and use it multiple times</li> +<li>Simplify <tt class="docutils literal">previewPlan()</tt> by removing unused parameters</li> +<li>Unify <tt class="docutils literal">addChildPlan()</tt> and <tt class="docutils literal">removeChildPlan()</tt></li> +<li>Unify <tt class="docutils literal">getInfoAndUpdateObject()</tt> with <tt class="docutils literal">changeCaseRunAssignee()</tt></li> +<li>Unify <tt class="docutils literal">onTestCaseStatusChange()</tt> with <tt class="docutils literal">changeTestCaseStatus()</tt></li> +<li>Convert <tt class="docutils literal">TestCaseEmailSettings.cc_list</tt> to string field</li> +<li>Merge <tt class="docutils literal">report/caseruns_table.html</tt> with <tt class="docutils literal">reports/caseruns.html</tt></li> +<li>Rename model <tt class="docutils literal">UserActivateKey</tt> to <tt class="docutils literal">UserActivationKey</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/276">Issue #276</a></li> +<li>Remove <tt class="docutils literal">cached_entities()</tt>. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/307">Issue #307</a></li> +<li>Remove <tt class="docutils literal">TestPlanText.checksum</tt> field</li> +<li>Remove checksum fields for <tt class="docutils literal">TestCaseText</tt> model</li> +<li>Remove unused and home-grown template tags</li> +<li>Remove unused fields <tt class="docutils literal">auto_blinddown</tt>, <tt class="docutils literal">description</tt>, <tt class="docutils literal">sortkey</tt> from +<tt class="docutils literal">TestCaseRunStatus</tt> model. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/186">Issue #186</a></li> +<li>Remove <tt class="docutils literal">Meta.db_name</tt> effectively renaming all tables. New names will use +Django's default naming scheme</li> +<li>Remove RawSQL queries. We are now 100% ORM based. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/36">Issue #36</a></li> +<li>Remove duplicate <tt class="docutils literal">MultipleEmailField</tt> definition</li> +<li>Remove <tt class="docutils literal">TCMSLog</tt> view, <tt class="docutils literal">TCMSLogManager</tt>, <tt class="docutils literal">TCMSLogModel</tt></li> +<li>Remove <tt class="docutils literal">TestPlanText</tt> model, use <tt class="docutils literal">TestPlan.text</tt> instead</li> +<li>Remove unused JavaScript files +- <tt class="docutils literal">lib/detetmine_type.js</tt> +- <tt class="docutils literal">lib/hole.js</tt> +- <tt class="docutils literal"><span class="pre">lib/scriptaculous-controls.js.patch</span></tt> +- <tt class="docutils literal">lib/validations.js</tt> +- <tt class="docutils literal">static/js/index.js</tt></li> +<li>Remove <tt class="docutils literal">constructPlanParentPreviewDialog()</tt></li> +<li>Remove <tt class="docutils literal">changeCasePriority()</tt></li> +<li>Remove <tt class="docutils literal">changeCaseRunOrder()</tt></li> +<li>Remove <tt class="docutils literal">debug_output()</tt> from JavaScript files</li> +<li>Remove deprecated <tt class="docutils literal">/ajax/update/</tt> end-point</li> +<li>Remove <tt class="docutils literal">taggleSortCaseRun()</tt></li> +<li>Remove <tt class="docutils literal">strip_parameters()</tt></li> +<li>Remove <tt class="docutils literal">_InfoObjects.users()</tt></li> +<li>Remove <tt class="docutils literal">get_value_by_type()</tt></li> +<li>Remove <tt class="docutils literal">testcases.views.get_log()</tt></li> +<li>Remove <tt class="docutils literal">mail_scene()</tt> methods and related templates</li> +</ul> +</div> +<div class="section" id="removed-functionality"> +<h3>Removed functionality</h3> +<ul class="simple"> +<li>TestRun completion status is no longer updated automatically. You can still +update the status manually via the 'Set Finished' or 'Set Running' links! +Fixes <a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/367">Issue #367</a></li> +<li>Remove bookmarks functionality. There are many great bookmark manager apps +and if the user is keen on bookmarks they should use one of them. Closes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/67">Issue #67</a> and +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/210">Issue #210</a></li> +<li>Don't track &amp; display history of changes for <tt class="docutils literal">EnvGroup</tt> model</li> +<li>Remove Disable/Enable buttons from TestPlan page. Enabling and disabling +can still be done via the edit page</li> +<li>Remove <tt class="docutils literal">changeParentPlan()</tt> and the ability to change TestPlan parents +from the 'Tree View' tab. This can be done via the edit page</li> +<li>When viewing a TestPlan the user is no longer able to specify a sorkey for a +particular TestCase. Instead they can use the <tt class="docutils literal"><span class="pre">Re-order</span> cases</tt> button and +move around the entire row of cases to adjust the sort order</li> +<li>When working with test case results, inside a TestRun you will not be allowed +to change the order of execution. Order should be defined inside the TestPlan +instead</li> +<li>Remove <tt class="docutils literal">XmlRpcLog()</tt> model. Kiwi TCMS will no longer log RPC calls to the +database. This leads to a small performance boost and can be overridden on +individual basis if you need to do so.</li> +</ul> +</div> +<div class="section" id="translations"> +<h3>Translations</h3> +<ul class="simple"> +<li>More source strings marked as translatable</li> +<li>New translations for Chinese Simplified, Chinese Traditional, German and Slovenian</li> +<li>Stop keeping compiled translations under git. Fixes +<a class="reference external" href="https://github.com/kiwitcms/Kiwi/issues/387">Issue #387</a></li> +</ul> +</div> +</div> +<div class="section" id="tcms-api-changes-since-4-2"> +<h2>tcms-api changes since 4.2</h2> +<ul class="simple"> +<li>Requires Python 3.6 or newer because it fixes bugs related to Django's +disabling of keep-alive connections. See <a class="reference external" href="https://bugs.python.org/issue26402">https://bugs.python.org/issue26402</a></li> +<li>The rpc client is now accessed via <tt class="docutils literal"><span class="pre">TCMS().exec.&lt;Server-Method&gt;</span></tt></li> +<li>Leave only XML-RPC transport classes! This removes the top-level interface +behind the API client and the consuming side is left to work with Python +dictionaries instead of objects.</li> +<li>Remove the interactive <tt class="docutils literal">tcms</tt> script</li> +<li>Remove <tt class="docutils literal">tcms_api.config</tt> module</li> +<li>Remove logging class</li> +<li>Remove <tt class="docutils literal">script_examples/</tt> directory. These were never tested and maintained</li> +</ul> +</div> +<div class="section" id="how-to-upgrade"> +<h2>How to upgrade</h2> +<p>If you are using Kiwi TCMS as a Docker container then:</p> +<pre class="literal-block"> +cd Kiwi/ +git pull +docker-compose down +docker pull kiwitcms/kiwi +docker pull centos/mariadb +docker-compose up -d +docker exec -it kiwi_web /Kiwi/manage.py migrate +docker exec -it kiwi_web /Kiwi/manage.py populate_history --auto +</pre> +</div> +<div class="section" id="help-us-make-kiwi-tcms-better"> +<h2>Help us make Kiwi TCMS better</h2> +<p>According to <a class="reference external" href="/blog/kiwi-tcms-team/2018/01/22/kiwi-tcms-roadmap-for-2018/">our 2018 roadmap</a> the +Kiwi TCMS team is investing a great deal of our time to make the code base more +maintainable! For the past few releases we've been balancing code refactoring +with bug-fixing and minor enhancements and we have lots of ideas down the line.</p> +<p>We want to hear your voice! Tell us how you use Kiwi TCMS inside your organization. +We want to know what works for you and what doesn't so we can make it better. Feel +free to comment below, file GitHub issues or send us an email.</p> +<p>Happy testing!</p> +</div> +Kiwi TCMS 4.22018-06-24T17:05:00+03:002018-06-24T17:05:00+03:00Kiwi TCMS Teamtag:None,2018-06-24:/blog/kiwi-tcms-team/2018/06/24/kiwi-tcms-42/<p>We're happy to announce Kiwi TCMS and tcms-api version 4.2! +This is a security, bug-fix and enhancement update which upgrades to the latest +Django version under Python 3.6. +We've pushed new <code>kiwitcms/kiwi:latest</code> docker image to Docker Hub and updated the +demo instance at <a href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant …</a></p><p>We're happy to announce Kiwi TCMS and tcms-api version 4.2! +This is a security, bug-fix and enhancement update which upgrades to the latest +Django version under Python 3.6. +We've pushed new <code>kiwitcms/kiwi:latest</code> docker image to Docker Hub and updated the +demo instance at <a href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>!</p> +<p>This version also includes GDPR related changes which affect our project. Read below +for the details.</p> +<h2>Changes since Kiwi TCMS 4.1.4</h2> +<p><strong>IMPORTANT:</strong> this release introduces new database migrations</p> +<h3>Security</h3> +<ul> +<li>Enable testing with Badit. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/237">Issue #237</a></li> +<li>Enable testing with + <a href="https://scan.coverity.com/projects/kiwitcms-kiwi">Coverity Scan</a></li> +<li>Enable testing with + <a href="https://pyup.io/repos/github/kiwitcms/Kiwi/">pyup.io</a></li> +<li>Enable testing with + <a href="https://snyk.io/test/github/kiwitcms/Kiwi">Snyk</a></li> +<li>Use SHA256 instead of MD5 and SHA1</li> +<li>Use the <code>secrets</code> module for activation keys</li> +<li>Remove unnecessary AJAX view that had remote code execution vulnerability</li> +<li>Don't use hard-coded temporary directories</li> +<li>Upgrade to + <a href="https://github.com/patternfly/patternfly/releases/tag/v3.36.0">Patternfly 3.36.0</a> + which fixes the following vulnerabilities:<ul> +<li><a href="https://snyk.io/vuln/npm:moment:20161019">https://snyk.io/vuln/npm:moment:20161019</a></li> +<li><a href="https://snyk.io/vuln/npm:moment:20170905">https://snyk.io/vuln/npm:moment:20170905</a></li> +</ul> +</li> +</ul> +<h3>Settings</h3> +<ul> +<li><code>BUGZILLA_AUTH_CACHE_DIR</code> is a new setting that may be specified to control + where Bugzilla auth cookies are saved! It is not specified by default and + Kiwi TCMS uses a temporary directory each time we try to login into Bugzilla!</li> +</ul> +<h3>Enhancements</h3> +<ul> +<li>Upgrade to Python 3.6. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/91">Issue #91</a></li> +<li>Upgrade to <a href="https://docs.djangoproject.com/en/2.0/releases/2.0.6/">Django 2.0.6</a></li> +<li>Fix around 100 pylint issues (Anton Sankov)</li> +<li>Update email confirmation template for newly registered users and make the + text translatable</li> +<li>Display <code>Last login</code> column in User admin page</li> +<li>Add tests for <code>tcms.management.views</code> (Anton Sankov)</li> +<li>Remove unused CSS selectors</li> +<li>Remove unnecessary <code>templates/comments/comments.html</code></li> +</ul> +<h3>Bug fixes</h3> +<ul> +<li>Remove unused deferred field <code>product_version</code>. Fixes + <a href="https://sentry.io/open-technologies-bulgaria-ltd/kiwi-tcms/issues/523948048/">Sentry KIWI-TCMS-1C</a></li> +<li>Rename left-over <code>get_url()</code> to <code>get_full_url()</code>. Fixes + <a href="https://sentry.io/open-technologies-bulgaria-ltd/kiwi-tcms/issues/523855781/">Sentry KIWI-TCMS-1B</a></li> +<li>Fix empty TestPlan url and Product fields in TestRun email notification. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/353">Issue #353</a> (Matt Porter, Konsulko Group)</li> +</ul> +<h3>Translations</h3> +<ul> +<li>Updated translations for Chinese Simplified</li> +<li>Updated translations for Chinese Traditional</li> +<li>New language and translations for Slovenian</li> +</ul> +<h3>Documentation</h3> +<ul> +<li>Added <code>git clone</code> command to documentation. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/344">Issue #344</a> (Anton Sankov)</li> +</ul> +<h3>Models and database migrations</h3> +<ul> +<li>Increase checksum fields size to hold the new checksum values</li> +<li>Increase <code>activation_key</code> field size to 64 chars</li> +</ul> +<h3>GDPR related</h3> +<ul> +<li>Allow users to delete their accounts. Link is present on <code>My profile</code> page. + This will also delete any related objects using cascade delete</li> +<li>Try not to be so obvious when it comes to displaying email addresses across + the web interface. Instead show username and link to profile</li> +</ul> +<p>In addition the following changes were deployed to our infrastructure:</p> +<ul> +<li>On our website the <code>Subscribe to our newsletter</code> is now a link, instead of + embedded form because embedded forms can't display GDPR compliance fields. + If you wish to receive email from Kiwi TCMS you need to select the <code>Email</code> + checkbox when signing up for the newsletter.</li> +<li>Double opt-in is now enabled when subscribing to our newsletter</li> +<li>All newsletter addresses that have been unsubscribed have been deleted</li> +<li>Upon registration for <a href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a> + you are no longer subscribed + to the newsletter. Now we send a welcome email with a link to the newsletter + so you can subscribe if you want</li> +<li><a href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a> + now runs a cron job which deletes inactive accounts + and all of their related data. The cron job runs weekly</li> +</ul> +<p>We're trying to be respectful to your private data and not expose that to any +3rd parties or use it for means other than making Kiwi TCMS better open source +software. If you spot areas for improvement please +<a href="https://github.com/kiwitcms/Kiwi/issues/new">report an issue</a> so we can take +a look at it!</p> +<h2>tcms-api changes since 4.0.0</h2> +<ul> +<li>Remove coloring. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/185">Issue #185</a></li> +<li>Fix using the API client against <code>https://</code> URLs (Adam Łoszyn, Samsung)</li> +</ul> +<h2>How to upgrade</h2> +<p>If you are using Kiwi TCMS as a Docker container then</p> +<div class="highlight"><pre><span></span><code><span class="nv">cd</span> <span class="nv">Kiwi</span><span class="o">/</span> +<span class="nv">git</span> <span class="nv">pull</span> +<span class="nv">docker</span><span class="o">-</span><span class="nv">compose</span> <span class="nv">down</span> +<span class="nv">docker</span> <span class="nv">pull</span> <span class="nv">kiwitcms</span><span class="o">/</span><span class="nv">kiwi</span> +<span class="nv">docker</span> <span class="nv">pull</span> <span class="nv">centos</span><span class="o">/</span><span class="nv">mariadb</span> +<span class="nv">docker</span><span class="o">-</span><span class="nv">compose</span> <span class="nv">up</span> <span class="o">-</span><span class="nv">d</span> +<span class="nv">docker</span> <span class="k">exec</span> <span class="o">-</span><span class="nv">it</span> <span class="nv">kiwi_web</span> <span class="o">/</span><span class="nv">Kiwi</span><span class="o">/</span><span class="nv">manage</span>.<span class="nv">py</span> <span class="nv">migrate</span> +</code></pre></div> + + +<h2>Help us make Kiwi TCMS better</h2> +<p>According to <a href="/blog/kiwi-tcms-team/2018/01/22/kiwi-tcms-roadmap-for-2018/">our 2018 roadmap</a> the +Kiwi TCMS team is investing a great deal of our time to make the code base more +maintainable! For the past few releases we've been balancing code refactoring +with bug-fixing and minor enhancements and we have lots of ideas down the line.</p> +<p>We want to hear your voice! Tell us how you use Kiwi TCMS inside your organization. +We want to know what works for you and what doesn't so we can make it better. Feel +free to comment below, file GitHub issues or send us an email.</p> +<p>Happy testing!</p>Kiwi TCMS conference presence2018-04-11T15:35:00+03:002018-04-11T15:35:00+03:00Kiwi TCMS Teamtag:None,2018-04-11:/blog/kiwi-tcms-team/2018/04/11/kiwi-tcms-conference-presence/<p>Kiwi TCMS is going on a small conference tour. This is where you can find us +in the next couple of months:</p> +<ul> +<li><a href="http://bulgariawebsummit.com/">Bulgaria Web Summit</a> - 14 April, Sofia</li> +<li><a href="https://oscal.openlabs.cc/">OSCAL</a> - 19 &amp; 20 May, Tirana</li> +<li><a href="https://2018.djangocon.eu/">DjangoCon Europe</a> - 23-27 May, Heidelberg</li> +</ul> +<p>For all of the 3 conferences we're going to have a project …</p><p>Kiwi TCMS is going on a small conference tour. This is where you can find us +in the next couple of months:</p> +<ul> +<li><a href="http://bulgariawebsummit.com/">Bulgaria Web Summit</a> - 14 April, Sofia</li> +<li><a href="https://oscal.openlabs.cc/">OSCAL</a> - 19 &amp; 20 May, Tirana</li> +<li><a href="https://2018.djangocon.eu/">DjangoCon Europe</a> - 23-27 May, Heidelberg</li> +</ul> +<p>For all of the 3 conferences we're going to have a project presence. In addition +to that you can catch-up with Alex Todorov, Kiwi's project lead at: +<a href="https://testconf.ru/">TestCon Moscow</a>(17-19 April, Moscow), +<a href="https://romaniatesting.ro/">Romanian Testing Conference</a>(9-11 May, Cluj-Napoca), +<a href="https://cz.pycon.org/2018/">PyCon CZ</a>(1-3 June, Prague) and +<a href="https://devitconf.org/">DEVit</a>(10-11 June, Thessaloniki).</p> +<p>If you can ping us at <a href="https://twitter.com/KiwiTCMS">@KiwiTCMS</a> or look for the +kiwi bird logo and come to say hi!</p>Kiwi TCMS 4.1.42018-04-10T21:45:00+03:002018-04-10T21:45:00+03:00Kiwi TCMS Teamtag:None,2018-04-10:/blog/kiwi-tcms-team/2018/04/10/kiwi-tcms-414/<p>We're happy to announce Kiwi TCMS version 4.1.4! +This is a bug-fix and enhancement update which upgrades to the latest Django +version, resolves several issues and includes lots of internal code updates.</p> +<p>We've pushed new <code>kiwitcms/kiwi</code> docker image to Docker Hub and updated the +demo instance at …</p><p>We're happy to announce Kiwi TCMS version 4.1.4! +This is a bug-fix and enhancement update which upgrades to the latest Django +version, resolves several issues and includes lots of internal code updates.</p> +<p>We've pushed new <code>kiwitcms/kiwi</code> docker image to Docker Hub and updated the +demo instance at +<a href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>!</p> +<h2>Changes since Kiwi TCMS 4.1.3</h2> +<h3>Enhancements</h3> +<ul> +<li>Upgrade to <a href="https://docs.djangoproject.com/en/2.0/releases/2.0.4/">Django 2.0.4</a></li> +<li>Enable pylint and fix around 700 issues (Anton Sankov)</li> +<li>Add pylint plugin to check docstrings for triple double quotes. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/296">Issue #296</a></li> +<li>Add pylint plugin to check for list comprehensions. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/270">Issue #270</a></li> +<li>Add pylint plugin to check for class attributes enclosed with double underscores. + These are dunders and are reserved for Python!</li> +</ul> +<h3>Signals</h3> +<p><strong>BREAKING CHANGES</strong>:</p> +<ul> +<li>Renamed <code>user_registered</code> to <code>USER_REGISTERED_SIGNAL</code> and + <code>post_update</code> to <code>POST_UPDATE_SIGNAL</code>!</li> +</ul> +<h3>Bug fixes</h3> +<ul> +<li>Change util function to default to https. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/220">Issue #220</a></li> +<li>Fix + <a href="https://sentry.io/open-technologies-bulgaria-ltd/kiwi-tcms/issues/495015101/">Sentry KIWI-TCMS-17</a></li> +<li>Cast iterator to list. Fixes + <a href="https://sentry.io/open-technologies-bulgaria-ltd/kiwi-tcms/issues/501200394/">Sentry KIWI-TCMS-19</a></li> +<li>Don't crash in Custom Report. Fixes + <a href="https://sentry.io/open-technologies-bulgaria-ltd/kiwi-tcms/issues/499389305/">Sentry KIWI-TCMS-18</a></li> +<li>Better handling of TestPlan documents. Fixes + <a href="https://sentry.io/open-technologies-bulgaria-ltd/kiwi-tcms/issues/501695244/">Sentry KIWI-TCMS-1A</a></li> +<li>Fix sorting of entries in TestPlan -&gt; Runs tab. Fixes + <a href="https://sentry.io/open-technologies-bulgaria-ltd/kiwi-tcms/issues/472757670/">Sentry KIWI-TCMS-E</a></li> +</ul> +<h3>Refactoring</h3> +<ul> +<li>Move Bugzilla and Kerberos backends code into their own repositories. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/239">Issue #239</a></li> +<li>Remove cache from TestCaseRunStatus. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/279">Issue #279</a></li> +<li>Rewrite <code>UrlMixin</code>. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/157">Issue #157</a> (Chenxiong Qi)</li> +<li>Remove unused <code>split_as_option</code> template tag</li> +<li>Internal refactoring and more tests in <code>tcms/core/ajax.py</code></li> +<li>Delete unused file <code>tcms/core/forms/widgets.py</code></li> +<li>Merge <code>case/form/filter.html</code> into <code>plan/get_cases.html</code></li> +<li>Remove unused <code>TestCaseStatus.id_to_string()</code></li> +</ul> +<h2>How to upgrade</h2> +<p>If you are using Kiwi TCMS as a Docker container then</p> +<div class="highlight"><pre><span></span><code><span class="nv">cd</span> <span class="nv">Kiwi</span><span class="o">/</span> +<span class="nv">git</span> <span class="nv">pull</span> +<span class="nv">docker</span><span class="o">-</span><span class="nv">compose</span> <span class="nv">down</span> +<span class="nv">docker</span> <span class="nv">pull</span> <span class="nv">kiwitcms</span><span class="o">/</span><span class="nv">kiwi</span> +<span class="nv">docker</span> <span class="nv">pull</span> <span class="nv">centos</span><span class="o">/</span><span class="nv">mariadb</span> +<span class="nv">docker</span><span class="o">-</span><span class="nv">compose</span> <span class="nv">up</span> <span class="o">-</span><span class="nv">d</span> +<span class="nv">docker</span> <span class="k">exec</span> <span class="o">-</span><span class="nv">it</span> <span class="nv">kiwi_web</span> <span class="o">/</span><span class="nv">Kiwi</span><span class="o">/</span><span class="nv">manage</span>.<span class="nv">py</span> <span class="nv">migrate</span> +</code></pre></div> + + +<h2>Help us make Kiwi TCMS better</h2> +<p>According to <a href="/blog/kiwi-tcms-team/2018/01/22/kiwi-tcms-roadmap-for-2018/">our 2018 roadmap</a> the +Kiwi TCMS team is investing a great deal of our time to make the code base more +maintainable! For the past few releases we've been balancing code refactoring +with bug-fixing and minor enhancements and we have lots of ideas down the line.</p> +<p>We want to hear your voice! Tell us how you use Kiwi TCMS inside your organization. +We want to know what works for you and what doesn't so we can make it better. Feel +free to comment below, file GitHub issues or send us an email.</p> +<p>Happy testing!</p>Kiwi TCMS 4.1.32018-03-16T10:45:00+02:002018-03-16T10:45:00+02:00Kiwi TCMS Teamtag:None,2018-03-16:/blog/kiwi-tcms-team/2018/03/16/kiwi-tcms-413/<p>We're happy to announce Kiwi TCMS version 4.1.3! +This is a bug-fix and enhancement update which upgrades to the latest Django +version, provides easier way for Docker administrators to override SSL certificates +and access httpd log files and resolves several issues. This release also includes +lots of internal …</p><p>We're happy to announce Kiwi TCMS version 4.1.3! +This is a bug-fix and enhancement update which upgrades to the latest Django +version, provides easier way for Docker administrators to override SSL certificates +and access httpd log files and resolves several issues. This release also includes +lots of internal code refactoring which removes code duplication and brings down +<a href="https://codeclimate.com/github/kiwitcms/Kiwi">CodeClimate</a> metrics +to 26.9% of technical debt or 10 months to fix.</p> +<p>We've pushed the new <code>kiwitcms/kiwi</code> docker image to Docker Hub and updated the +demo instance at +<a href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a>. +Starting forward the demo will use +the <code>info-at-kiwitcms.org</code> email address for all communication sent. There are real +people behind this address so if you write to us we will reply!</p> +<h2>Changes since Kiwi TCMS 4.1.0</h2> +<h3>Enhancements</h3> +<ul> +<li>Upgrade to <a href="https://docs.djangoproject.com/en/2.0/releases/2.0.3/">Django 2.0.3</a></li> +<li>Show <code>date_joined</code> column for user admin</li> +<li>Expose httpd logs to the host running docker. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/191">Issue #191</a></li> +</ul> +<h3>Bug fixes</h3> +<ul> +<li>Move SSL keys under common directory in the container. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/231">Issue #231</a></li> +<li>Always select active builds for TestRun. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/245">Issue #245</a></li> +<li>Swap <code>escape</code> and <code>escapejs</code> filters. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/234">Issue #234</a></li> +<li>Globally disable <code>delete_selected</code> action in Admin, this removes the + drop down selection widget! Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/221">Issue #221</a></li> +<li>Fix error in TestCase view when <code>from_plan</code> is empty string. Fixes + <a href="https://sentry.io/open-technologies-bulgaria-ltd/kiwi-tcms/issues/474369640/">Sentry KIWI-TCMS-Z</a></li> +<li>Fix sorting issue when None is compared to int. Fixes + <a href="https://sentry.io/open-technologies-bulgaria-ltd/kiwi-tcms/issues/473996504/">Sentry KIWI-TCMS-V</a></li> +<li>Validate form field as integer, not char. Fixes + <a href="https://sentry.io/open-technologies-bulgaria-ltd/kiwi-tcms/issues/474058623/">Sentry KIWI-TCMS-W</a></li> +<li>[docs] Remove information about importing test cases via XML. This functionality + was removed in version 3.49</li> +</ul> +<h3>Refactoring</h3> +<ul> +<li>Refactor inner class <code>CaseActions</code>. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/21">Issue #21</a> (Chenxiong Qi)</li> +<li>Only use <code>get_cases.html</code> template. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/176">Issue #176</a></li> +<li>Unify <code>get_details_review.html</code> and <code>get_details.html</code> templates</li> +<li>Remove internal <code>Prompt.render</code> class and replace with Django messages</li> +<li>Remove <code>mail/delete_plan.txt</code> template</li> +<li>Remove <code>handle_emails_pre_plan_delete</code> signal handler</li> +<li>Remove the <code>Export</code> button from TestPlan view, use Case-&gt;Export sub-menu + item in the Cases tab. Also remove the export buttons from search and advanced + search result templates. If you'd like to export the cases from a given + plan you have to open it in a new browser window and use the menu</li> +<li>Remove the <code>Print</code> button from plan search form</li> +<li>Remove TestRun cloning from search results and plan details, use sub-menu</li> +<li>Remove unnecessary JavaScript handling for <code>EnvGroup</code> edit view</li> +</ul> +<h3>Settings</h3> +<ul> +<li>Remove <code>PLAN_DELELE_EMAIL_TEMPLATE</code> setting (not used)</li> +</ul> +<h3>Models and database migrations</h3> +<ul> +<li>Use Django's own <code>DurationField</code>, instead of custom one. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/183">Issue #183</a></li> +</ul> +<p>API clients must now send values for <code>estimated_time</code> which must be in a +format that <code>parse_duration()</code> understands, for example 'DD HH:MM:SS'! See +<a href="https://docs.djangoproject.com/en/2.0/ref/utils/#django.utils.dateparse.parse_duration">https://docs.djangoproject.com/en/2.0/ref/utils/#django.utils.dateparse.parse_duration</a></p> +<p><strong>IMPORTANT:</strong> this release introduces new database migrations!</p> +<h3>Translations</h3> +<p>There are new translatable strings introduced with this release! At this moment +translating Kiwi TCMS in languages other than English is purely a +community effort. If you'd like to help consult our +<a href="http://kiwitcms.readthedocs.io/en/latest/contribution.html#translation">translations contribution page</a>.</p> +<h2>How to upgrade</h2> +<p>If you are using Kiwi TCMS as a Docker container then</p> +<div class="highlight"><pre><span></span><code><span class="nv">cd</span> <span class="nv">Kiwi</span><span class="o">/</span> +<span class="nv">git</span> <span class="nv">pull</span> +<span class="nv">docker</span><span class="o">-</span><span class="nv">compose</span> <span class="nv">down</span> +<span class="nv">docker</span> <span class="nv">pull</span> <span class="nv">kiwitcms</span><span class="o">/</span><span class="nv">kiwi</span> +<span class="nv">docker</span> <span class="nv">pull</span> <span class="nv">centos</span><span class="o">/</span><span class="nv">mariadb</span> +<span class="nv">docker</span><span class="o">-</span><span class="nv">compose</span> <span class="nv">up</span> <span class="o">-</span><span class="nv">d</span> +<span class="nv">docker</span> <span class="k">exec</span> <span class="o">-</span><span class="nv">it</span> <span class="nv">kiwi_web</span> <span class="o">/</span><span class="nv">Kiwi</span><span class="o">/</span><span class="nv">manage</span>.<span class="nv">py</span> <span class="nv">migrate</span> +</code></pre></div> + + +<h2>Help us make Kiwi TCMS better</h2> +<p>According to <a href="/blog/kiwi-tcms-team/2018/01/22/kiwi-tcms-roadmap-for-2018/">our 2018 roadmap</a> the +Kiwi TCMS team is investing a great deal of our time to make the code base more +maintainable! For the past few releases we've been balancing code refactoring +with bug-fixing and minor enhancements and we have lots of ideas down the line.</p> +<p>We want to hear your voice! Tell us how you use Kiwi TCMS inside your organization. +We want to know what works for you and what doesn't so we can make it better. Feel +free to comment below, file GitHub issues or send us an email.</p> +<p>Happy testing!</p>Kiwi TCMS 4.1.02018-02-21T22:45:00+02:002018-02-21T22:45:00+02:00Kiwi TCMS Teamtag:None,2018-02-21:/blog/kiwi-tcms-team/2018/02/21/kiwi-tcms-410/<p>We're happy to announce Kiwi TCMS version 4.1.0! +This is a bug-fix and enhancement update centered around providing more +flexibility for administrators to configure the user approval process. +Refer to the documentation for more information about +<a href="http://kiwitcms.readthedocs.io/en/latest/modules/tcms.signals.html">signals handling</a> +in Kiwi TCMS.</p> +<h2>Changes since Kiwi TCMS 4.0.0 …</h2><p>We're happy to announce Kiwi TCMS version 4.1.0! +This is a bug-fix and enhancement update centered around providing more +flexibility for administrators to configure the user approval process. +Refer to the documentation for more information about +<a href="http://kiwitcms.readthedocs.io/en/latest/modules/tcms.signals.html">signals handling</a> +in Kiwi TCMS.</p> +<h2>Changes since Kiwi TCMS 4.0.0</h2> +<h3>Enhancements and bug fixes</h3> +<ul> +<li>Add tests for <code>tcms.core.ajax.tag</code> (Anton Sankov)</li> +<li>Remove unused code from <code>tcms.core.ajax.tag</code> (Anton Sankov)</li> +<li>Refactor <code>tcms.core.ajax.tag</code> to work with only one object. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/135">Issue #135</a> (Anton Sankov)</li> +<li>Add test for tcms_api.TestRun. Closes + <a href="https://github.com/kiwitcms/Kiwi/issues/194">Issue #194</a></li> +<li>Send the <code>user_registered</code> signal when new users are registered</li> +<li>Add signal handler to notify admins on new users. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/205">Issue #205</a></li> +<li>Add <code>is_superuser</code> column to User admin. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/206">Issue #206</a></li> +<li>Properly pass variables to blocktrans tag. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/225">Issue #225</a></li> +<li>Minor documentation updates</li> +</ul> +<h3>Refactoring</h3> +<ul> +<li>Remove double thread when sending email on <code>post_save</code> signal</li> +<li>Remove unused <code>EmailBackend</code> authentication backend</li> +<li>Remove unused <code>tcms.core.models.signals</code> module</li> +<li>Consolidate all signals and handlers in <code>tcms.signals</code></li> +<li>Make use of <code>django_messages</code> during account registration</li> +</ul> +<h3>Settings</h3> +<ul> +<li>Remove <code>LISTENING_MODEL_SIGNAL</code> (internal setting)</li> +<li>New setting <code>AUTO_APPROVE_NEW_USERS</code>. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/203">Issue #203</a></li> +</ul> +<h3>Models and database migrations</h3> +<ul> +<li>Remove unused fields from <code>Product</code> model: + <code>disallow_new</code>, <code>max_vote_super_bug</code>, <code>vote_super_user</code>, + <code>field votes_to_confirm</code>, <code>default_milestone</code>, <code>milestone_url</code></li> +<li>Remove unused <code>Milestone</code> model</li> +</ul> +<p><strong>IMPORTANT:</strong> this release introduces new database migrations!</p> +<h3>Translations</h3> +<p>There are new translatable strings introduced with this release, +including translations of a few email templates! At this moment +translating Kiwi TCMS in languages other than English is purely a +community effort. If you'd like to help consult our +<a href="http://kiwitcms.readthedocs.io/en/latest/contribution.html#translation">translations contribution page</a>.</p> +<h2>How to upgrade</h2> +<p>If you are using Kiwi TCMS as a Docker container then</p> +<div class="highlight"><pre><span></span><code><span class="nv">cd</span> <span class="nv">Kiwi</span><span class="o">/</span> +<span class="nv">docker</span><span class="o">-</span><span class="nv">compose</span> <span class="nv">down</span> +<span class="nv">docker</span> <span class="nv">pull</span> <span class="nv">kiwitcms</span><span class="o">/</span><span class="nv">kiwi</span> +<span class="nv">docker</span><span class="o">-</span><span class="nv">compose</span> <span class="nv">up</span> <span class="o">-</span><span class="nv">d</span> +<span class="nv">docker</span> <span class="k">exec</span> <span class="o">-</span><span class="nv">it</span> <span class="nv">kiwi_web</span> <span class="o">/</span><span class="nv">Kiwi</span><span class="o">/</span><span class="nv">manage</span>.<span class="nv">py</span> <span class="nv">migrate</span> +</code></pre></div> + + +<p>Happy testing!</p>Kiwi TCMS & tcms-api version 4.0.02018-02-10T15:30:00+02:002018-02-10T15:30:00+02:00Kiwi TCMS Teamtag:None,2018-02-10:/blog/kiwi-tcms-team/2018/02/10/kiwi-tcms-tcms-api-version-400/<p>We're happy to announce Kiwi TCMS version 4.0.0 +and the corresponding tcms-api version 4.0.0! This is a very big release +which introduces tons of backwards incompatible changes to the RPC layer +as well as several bug-fixes and enhancements!</p> +<p>With this release Kiwi TCMS meets one of …</p><p>We're happy to announce Kiwi TCMS version 4.0.0 +and the corresponding tcms-api version 4.0.0! This is a very big release +which introduces tons of backwards incompatible changes to the RPC layer +as well as several bug-fixes and enhancements!</p> +<p>With this release Kiwi TCMS meets one of our +<a href="/blog/kiwi-tcms-team/2018/01/22/kiwi-tcms-roadmap-for-2018/">milestones for 2018</a>! All XML-RPC +namespaces now match DB model names and the API client class names. Lots of +similar and duplicate methods were removed and existing ones were simplified. +We've also reduced code duplication and technical debth by 1 month +according to stats by <a href="https://codeclimate.com/github/kiwitcms/Kiwi">CodeClimate</a>.</p> +<p><strong>IMPORTANT:</strong> this is also the first release to officially publish the +<code>kiwitcms/kiwi</code> image on Docker Hub!</p> +<p><strong>WARNING:</strong> upgrading to Kiwi TCMS 4.0.0 means you will have to upgrade +the tcms-api client as well. None of the 4.x releases is compatible with +older releases due to the massive ammount of changes in the RPC layer.</p> +<h2>Changes since Kiwi TCMS 3.50</h2> +<h3>Enhancements and bug fixes</h3> +<ul> +<li>Upgrade to Django 2.0.2 which patches a security issue</li> +<li>Pin JIRA client version to 1.0.10. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/195">Issue #195</a></li> +<li>Generate api-docs for model classes</li> +<li>Updated documentation for all RPC methods</li> +<li>Use Grappelli jQuery initialization, fixes popup windows</li> +<li>Unify RPC namespaces, API client class names and server-side model names. + Fixes <a href="https://github.com/kiwitcms/Kiwi/issues/153">Issue #153</a></li> +</ul> +<h3>Settings</h3> +<ul> +<li>Remove <code>ADMIN_PREFIX</code> setting</li> +</ul> +<h3>RPC methods refactoring</h3> +<ul> +<li>Remove <code>Build.check_build</code>, use <code>Build.filter</code></li> +<li>Remove <code>Build.get</code>, use <code>Build.filter</code></li> +<li>Remove <code>Build.get_caseruns</code>, use <code>TestCaseRun.filter</code></li> +<li> +<p>Remove <code>Build.get_runs</code>, use <code>TestRun.filter</code></p> +</li> +<li> +<p>Rename <code>Env.filter_groups</code>, use <code>Env.Group.filter</code></p> +</li> +<li>Rename <code>Env.filter_properties</code>, use <code>Env.Property.filter</code></li> +<li> +<p>Rename <code>Env.filter_values</code>, use <code>Env.Value.filter</code></p> +</li> +<li> +<p>Remove <code>Product.add_component</code>, use <code>Component.create</code></p> +</li> +<li>Remove <code>Product.add_version</code>, use <code>Version.create</code></li> +<li>Remove <code>Product.check_category</code>, use <code>Category.filter</code></li> +<li>Remove <code>Product.check_component</code>, use <code>Component.filter</code></li> +<li>Remove <code>Product.check_product</code>, use <code>Product.filter</code></li> +<li>Remove <code>Product.filter_categories</code>, use <code>Category.filter</code></li> +<li>Remove <code>Product.filter_components</code>, use <code>Component.filter</code></li> +<li>Remove <code>Product.filter_versions</code>, use <code>Version.filter</code></li> +<li>Remove <code>Product.get</code>, use <code>Product.filter</code></li> +<li>Remove <code>Product.get_builds</code>, use <code>Build.filter</code></li> +<li>Remove <code>Product.get_cases</code>, use <code>TestCase.filter</code></li> +<li>Remove <code>Product.get_categories</code>, use <code>Category.filter</code></li> +<li>Remove <code>Product.get_category</code>, use <code>Category.filter</code></li> +<li>Remove <code>Product.get_component</code>, use <code>Component.filter</code></li> +<li> +<p>Remove <code>Product.update_component</code>, use <code>Component.update</code></p> +</li> +<li> +<p>Rename <code>Tag.get_tags</code> to <code>Tag.filter</code></p> +</li> +<li> +<p>Remove <code>TestCase.add_comment</code></p> +</li> +<li>Update signature for <code>TestCase.add_component</code></li> +<li>Update signature for <code>TestCase.add_tag</code></li> +<li>Remove <code>TestCase.add_to_run</code>, use <code>TestRun.add_case</code></li> +<li>Remove <code>TestCase.attach_bug</code>, use <code>Bug.create</code></li> +<li>Remove <code>TestCase.calculate_average_estimated_time</code></li> +<li>Remove <code>TestCase.calculate_total_estimated_time</code></li> +<li>Remove <code>TestCase.check_case_status</code>, use <code>TestCaseStatus.filter</code></li> +<li>Remove <code>TestCase.check_priority</code>, use <code>Priority.filter</code></li> +<li>Update signature for <code>TestCase.create</code>, no longer accepts <code>plan</code>, + <code>component</code> and <code>bug</code> dict attributes. Instead use + <code>TestPlan.add_case</code>, <code>TestCase.add_component</code> and <code>Bug.create</code></li> +<li>Remove <code>TestCase.detach_bug</code>, use <code>Bug.remove</code></li> +<li>Remove <code>TestCase.filter_count</code></li> +<li>Remove <code>TestCase.get</code>, use <code>TestCase.filter</code></li> +<li>Remove <code>TestCase.get_bugs</code>, use <code>Bug.filter({'case': ?})</code></li> +<li>Remove <code>TestCase.get_bug_systems</code></li> +<li>Remove <code>TestCase.get_case_status</code>, use <code>TestCaseStatus.filter</code></li> +<li>Update signature for <code>TestCase.get_components</code></li> +<li>Remove <code>TestCase.get_plans</code>, use <code>TestPlan.filter({'case': ?})</code></li> +<li>Remove <code>TestCase.get_priority</code>, use <code>Priority.filter</code></li> +<li>Remove <code>TestCase.get_tags</code>, use <code>Tag.filter({'case': ?})</code></li> +<li>Remove <code>TestCase.get_text</code>, use <code>TestCase.filter</code></li> +<li>Remove <code>TestCase.link_plan</code>, use <code>TestPlan.add_case</code></li> +<li>Rename <code>TestCase.notification_add_cc</code> to <code>TestCase.add_notification_cc</code> + and update signature</li> +<li>Rename <code>TestCase.notification_get_cc_list</code> to <code>TestCase.get_notification_cc</code> + and update signature</li> +<li>Rename <code>TestCase.notification_remove_cc</code> to <code>TestCase.remove_notification_cc</code> + and update signature</li> +<li>Update signature for <code>TestCase.remove_component</code></li> +<li>Update signature for <code>TestCase.remove_tag</code></li> +<li>Remove <code>TestCase.store_text</code>, use <code>TestCase.update</code> with + <code>setup</code>, <code>breakdown</code>, <code>action</code> and <code>effect</code> attributes in the parameter dict</li> +<li> +<p>Remove <code>TestCase.unlink_plan</code>, use <code>TestPlan.remove_case</code></p> +</li> +<li> +<p>Remove <code>TestCasePlan.get</code></p> +</li> +<li> +<p>Remove <code>TestCasePlan.update</code></p> +</li> +<li> +<p>Update <code>TestCaseRun.add_comment</code> to accept a single ID as first parameter</p> +</li> +<li>Remove <code>TestCaseRun.attach_bug</code>, use <code>Bug.create</code></li> +<li>Rename <code>TestCaseRun.attach_log</code> to <code>TestCaseRun.add_log</code></li> +<li>Remove <code>TestCaseRun.detach_bug</code>, use <code>Bug.remove</code></li> +<li>Rename <code>TestCaseRun.detach_log</code> to <code>TestCaseRun.remove_log</code></li> +<li>Remove <code>TestCaseRun.get</code>, use <code>TestCaseRun.filter</code></li> +<li>Remove <code>TestCaseRun.get_bugs</code>, use <code>Bug.filter({'case_run': ?})</code></li> +<li>Remove <code>TestCaseRun.get_case_run_status_by_name</code></li> +<li> +<p>Update signature for <code>TestCaseRun.update</code></p> +</li> +<li> +<p>Remove <code>TestPlan.add_component</code></p> +</li> +<li>Update signature for <code>TestPlan.add_tag</code></li> +<li>Remove <code>TestPlan.check_plan_type</code>, use <code>PlanType.filter</code></li> +<li>Remove <code>TestPlan.filter_count</code></li> +<li>Remove <code>TestPlan.get</code>, use <code>TestPlan.filter</code></li> +<li>Remove <code>TestPlan.get_all_cases_tags</code></li> +<li>Remove <code>TestPlan.get_components</code></li> +<li>Remove <code>TestPlan.get_env_groups</code>, use <code>Env.Group.filter({'testplan': ?})</code></li> +<li>Remove <code>TestPlan.get_plan_type</code>, use <code>PlanType.filter</code></li> +<li>Remove <code>TestPlan.get_product</code>, use <code>Product.filter({'plan': ?})</code></li> +<li>Remove <code>TestPlan.get_tags</code>, use <code>Tag.filter({'plan': ?})</code></li> +<li>Remove <code>TestPlan.get_test_cases</code>, use <code>TestCase.filter({'plan': ?})</code></li> +<li>Remove <code>TestPlan.get_test_runs</code>, use <code>TestRun.filter({'plan': ?})</code></li> +<li>Remove <code>TestPlan.get_text</code>, use <code>TestPlan.filter</code></li> +<li>Rename <code>TestPlan.link_env_value</code> to <code>TestPlan.add_env_value</code> + and update signature</li> +<li>Remove <code>TestPlan.remove_component</code></li> +<li>Update signature for <code>TestPlan.remove_tag</code></li> +<li>Remove <code>TestPlan.store_text</code>, use <code>TestPlan.update</code> with + a <code>text</code> attribute in the parameter values</li> +<li> +<p>Rename <code>TestPlan.unlink_env_value</code> to <code>TestPlan.remove_env_value</code> + and update signature</p> +</li> +<li> +<p>Rename <code>TestRun.add_cases</code> to <code>TestRun.add_case</code> and update signature</p> +</li> +<li>Update signature for <code>TestRun.add_tag</code></li> +<li>Update signature for <code>TestRun.create</code>, no longer accepts <code>case</code> + dict attribute. Instead use <code>TestRun.add_case</code></li> +<li>Remove <code>TestRun.filter_count</code></li> +<li>Remove <code>TestRun.get</code>, use <code>TestRun.filter</code></li> +<li>Remove <code>TestRun.get_bugs</code></li> +<li>Remove <code>TestRun.get_env_values</code>, use <code>Env.Value.filter({'testrun': ?})</code></li> +<li>Remove <code>TestRun.get_tags</code>, use <code>Tag.filter({'run': ?})</code></li> +<li>Rename <code>TestRun.get_test_cases</code> to <code>TestRun.get_cases</code></li> +<li>Remove <code>TestRun.get_test_case_runs</code>, use <code>TestCaseRun.filter({'run': ?})</code></li> +<li>Remove <code>TestRun.get_test_plan</code>, use <code>TestPlan.filter({'run': ?})[0]</code></li> +<li>Rename <code>TestRun.remove_cases</code> to <code>TestRun.remove_case</code> and update signature</li> +<li>Update signature for <code>TestRun.remove_tag</code></li> +<li> +<p>Update signature for <code>TestRun.update</code></p> +</li> +<li> +<p>Rename <code>User.get</code> to <code>User.filter</code></p> +</li> +<li>Rename <code>User.join</code> to <code>User.join_group</code></li> +<li>Update signature for <code>User.update</code></li> +</ul> +<h3>Models and database migrations</h3> +<ul> +<li>Remove model <code>TestEnvironment</code></li> +<li>Remove model <code>TestEnvironmentCategory</code></li> +<li>Remove model <code>TestEnvironmentElement</code></li> +<li>Remove model <code>TestEnvironmentMap</code></li> +<li>Remove model <code>TestEnvironmentProperty</code></li> +<li>Remove model <code>TestPlanComponent</code></li> +<li>Remove <code>TestPlan.get_text_with_version()</code></li> +<li>Remove <code>TestRun.get_previous_or_next()</code></li> +</ul> +<p><strong>IMPORTANT:</strong> this release introduces new database migrations!</p> +<h2>tcms-api changes since 1.5.1</h2> +<ul> +<li><strong>Make the code compatible with Kiwi TCMS XML-RPC v4.0.0</strong></li> +<li>Rename <code>Status</code> to <code>TestCaseRunStatus</code></li> +<li>Rename <code>CaseRun</code> to <code>TestCaseRun</code></li> +<li>Remove <code>PlanStatus</code>, use <code>TestPlan.is_active</code></li> +<li>Remove <code>RunStatus</code>, use <code>TestRun.finished</code></li> +<li>Remove <code>TestPlan.components</code> container</li> +<li>Update signature for <code>TestPlan</code>. Now accept <code>text</code> kwarg in constructor + instead of <code>document</code>.</li> +</ul> +<h2>How to upgrade</h2> +<p>If you are using Kiwi TCMS as a Docker container then</p> +<div class="highlight"><pre><span></span><code><span class="nv">cd</span> <span class="nv">Kiwi</span><span class="o">/</span> +<span class="nv">docker</span><span class="o">-</span><span class="nv">compose</span> <span class="nv">down</span> +<span class="nv">docker</span> <span class="nv">pull</span> <span class="nv">kiwitcms</span><span class="o">/</span><span class="nv">kiwi</span> +<span class="nv">docker</span><span class="o">-</span><span class="nv">compose</span> <span class="nv">up</span> <span class="o">-</span><span class="nv">d</span> +<span class="nv">docker</span> <span class="k">exec</span> <span class="o">-</span><span class="nv">it</span> <span class="nv">kiwi_web</span> <span class="o">/</span><span class="nv">Kiwi</span><span class="o">/</span><span class="nv">manage</span>.<span class="nv">py</span> <span class="nv">migrate</span> +</code></pre></div> + + +<p>Happy testing!</p>Kiwi TCMS version 3.502018-01-25T11:30:00+02:002018-01-25T11:30:00+02:00Kiwi TCMS Teamtag:None,2018-01-25:/blog/kiwi-tcms-team/2018/01/25/kiwi-tcms-version-350/<p>We're happy to announce Kiwi TCMS version 3.50 +and the corresponding tcms-api version 1.5.1! This is a bug-fix and +enhancement release and we advise you to upgrade as soon as possible!</p> +<h2>Changes since Kiwi TCMS 3.49</h2> +<h3>Enhancements and bug fixes</h3> +<ul> +<li>Update documentation for XML-RPC and positional …</li></ul><p>We're happy to announce Kiwi TCMS version 3.50 +and the corresponding tcms-api version 1.5.1! This is a bug-fix and +enhancement release and we advise you to upgrade as soon as possible!</p> +<h2>Changes since Kiwi TCMS 3.49</h2> +<h3>Enhancements and bug fixes</h3> +<ul> +<li>Update documentation for XML-RPC and positional arguments, translations, + environment groups</li> +<li>Enable translations. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/129">Issue #129</a></li> +<li>Register models for DB translations. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/182">Issue #182</a></li> +<li>New German translations (@xbln)</li> +<li>Require django-attachments&gt;=1.3 and restore attachments count in tabs</li> +<li>Fix missing tag names in TestPlan page</li> +<li>Hide admin forms for some models not supposed to be edited by users. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/174">Issue #174</a></li> +<li>Use django-grappelli for the admin templates: modern look and feel and + less template files overridden by Kiwi TCMS</li> +<li>Load values for default property in TestRun 'Add Property' dialog. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/142">Issue #142</a></li> +<li>Correctly find property ID when renaming environment properties. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/167">Issue #167</a></li> +<li>Convert request body to string. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/177">Issue #177</a></li> +</ul> +<h3>Refactoring</h3> +<ul> +<li>Remove batch tag Add/Remove sub-menu in TestPlan view (Anton Sankov)</li> +<li>Remove Edit tag button in Tag tab (Anton Sankov)</li> +<li>Remove template functions. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/107">Issue #107</a></li> +<li>Remove custom HttpJSONResponse classes</li> +<li>Remove unused and duplicate code</li> +</ul> +<h2>tcms-api changes since 1.5.0</h2> +<ul> +<li>Fix order of TestCaseRun statuses. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/184">Issue #184</a></li> +</ul> +<p><strong>IMPORTANT:</strong> this release introduces new database migrations!</p> +<h2>How to upgrade</h2> +<p>If you are using Kiwi TCMS as a Docker container then</p> +<div class="highlight"><pre><span></span><code><span class="nv">cd</span> <span class="nv">Kiwi</span><span class="o">/</span> +<span class="nv">docker</span><span class="o">-</span><span class="nv">compose</span> <span class="nv">down</span> +<span class="nv">make</span> <span class="nv">docker</span><span class="o">-</span><span class="nv">image</span> +<span class="nv">docker</span><span class="o">-</span><span class="nv">compose</span> <span class="nv">up</span> <span class="o">-</span><span class="nv">d</span> +<span class="nv">docker</span> <span class="k">exec</span> <span class="o">-</span><span class="nv">it</span> <span class="nv">kiwi_web</span> <span class="o">/</span><span class="nv">Kiwi</span><span class="o">/</span><span class="nv">manage</span>.<span class="nv">py</span> <span class="nv">migrate</span> +</code></pre></div> + + +<p>Happy testing!</p>Kiwi TCMS roadmap for 20182018-01-22T12:10:00+02:002018-01-22T12:10:00+02:00Kiwi TCMS Teamtag:None,2018-01-22:/blog/kiwi-tcms-team/2018/01/22/kiwi-tcms-roadmap-for-2018/<p>Hello everyone. As you know Kiwi TCMS has been around for a while and it has +gone through some big changes in the last year! It started as an abandoned +Django 1.6 project with broken test suite and is now currently running on the +latest Django 2.0.1 …</p><p>Hello everyone. As you know Kiwi TCMS has been around for a while and it has +gone through some big changes in the last year! It started as an abandoned +Django 1.6 project with broken test suite and is now currently running on the +latest Django 2.0.1 with Python 3.5! It is clearly a legacy code base!</p> +<p>We, the Kiwi TCMS team, have learned a lot more about the project and this +blog post describes our roadmap for 2018 in terms of technical work and community +engagement. The general technical direction is cleaner/simpler code, +improved UI/UX and more tests!</p> +<h2>Make code easier to maintain</h2> +<p>The current code is a bunch of very large modules and functions and classes +bundled together. It is also old and sometimes looks like spaghetti code. +<a href="https://codeclimate.com/github/kiwitcms/Kiwi">CodeClimate</a> gives us a "D" rating +for maintainability with a 1 year estimated effort to fix that. There are 600+ +code smells and 600+ duplications detected by CodeClimate. Our goal is to get this +number down to zero!</p> +<h2>Use pylint and pylint-django</h2> +<p>pylint is the standard static analyzer for Python and currently it reports over +4000 errors and warnings when executed against Kiwi TCMS. This is a huge number and +it needs to become zero! We've also identified interesting patterns that will +make it into pylint and pylint-django plugins!</p> +<h2>Render HTML, return JSON</h2> +<p>The current state of affairs is a mix and match of everything. There are views that +render HTML, others which return pure JSON, other which return HTML encoded as JSON string +and probably everything in between. Views that render pages need to do just that +and views that are used with AJAX calls from the UI need to return pure JSON! +A lot of these are hiding in plain sight and will come to light when we start +overhauling the user interface.</p> +<h2>Submit forms, post JSON, GET clean URLs</h2> +<p>There are lots of forms in Kiwi TCMS. Sometimes they are submitted by the user and +other times they are serialized and POSTed by some JavaScript code. This isn't +very easy to understand plus this entire home-grown utility code doesn't bring +anything useful to the project. All of these need to be identified and cleaned up. +JavaScript code needs to send or consume JSON, nothing else!</p> +<p>There are also lots of places where Kiwi issues GET requests with a number of +query parameters. Our goal is to minimize these and where possible have the +parameters as part of the Django urls scheme, not as query strings.</p> +<h2>API layer</h2> +<p>The current API module is a bit disorganized. API namespaces don't match the +names of the underlying DB models and the API client classes don't match any +of the other two! The way we pass parameters and what these parameters are +named should match between the client, the RPC method and the underlying model!</p> +<p>In earlier releases we've removed duplicate or similar RPC methods and we +think there are more of these that need our love.</p> +<h2>Documentation</h2> +<p>We've started producing documentation from doc-strings and most of the RPC +methods have such. However it is unformatted and barely readable, sometimes +even inaccurate. Previous releases made progress on this but there's a lot +more to cover.</p> +<p>All RPC methods should be documented first and then the rest of Kiwi's +internals to make development easier!</p> +<h2>No vendored JavaScript libraries</h2> +<p>There are 11 vendored-in JavaScript files that we carry around in Kiwi TCMS. +Most notable are jQuery plus a few addons and Handlebars.js. To the extent possible +our goal is to use jQuery provided by Django or installed via NPM dependencies!</p> +<h2>Less HTML templates with better organization</h2> +<p>There are over 100 HTML templates in Kiwi TCMS. There are also email and even +JavaScript templates. For example there are <code>get_cases.html</code> and <code>get_review_cases.html</code> +which are essentially the same. This is kind of also true for templates used in +new and edit views! Such templates should be unified!</p> +<p>Those JavaScript templates need to be totally gone!</p> +<p>All templates are stuffed together in a single directory and their names +are not very predictable. They need to be split per application and follow +some kind of naming convention.</p> +<h2>Modern interface with Patternfly</h2> +<p>The UI already uses the Patternfly library for some of its widgets. Most notably +the main navigation header. Our goal is for the entire UI to be ported to Patternfly +by updating widgets HTML and CSS where needed. +This will also help clean things up a lot. At the same time we'll be rethinking how +information is organized on screen and how the person interacts with it! Usability +suggestions are very welcome!</p> +<p>This move will also help us get rid of the Handlebars dependency which is now +used for pop-up dialogs.</p> +<h2>JavaScript updates and front-end testing</h2> +<p>There's lots of JavaScript code on the front-end and honestly we don't quite know +what it does or how it is organized. There are also no tests on the front-end +whatsoever!</p> +<p>It is our goal for this to change with the intention to not overdo the JavaScript +part and keep things very minimal. At the moment we're thinking about vanilla jQuery +that will act as a proxy between the browser and the back-end!</p> +<h2>Community efforts</h2> +<p>A year ago hardly anybody knew what Kiwi TCMS was, the project didn't even have +this name, there was 1 active contributor and hardly any users! Now the community +has started to slowly revitalize, we're seeing some contributions from our +junior team members (more on this in another blog post) and also seeing +folks installing and using Kiwi TCMS and reporting interesting bugs and feature +requests around it!</p> +<p>For the upcoming year our goal is to seek active engagement with other open source +projects that could make use of Kiwi TCMS and work with them. Kudos to +openSUSE for being the first +<a href="https://github.com/openSUSE/mentoring/issues/95">to propose such integration</a>! +We're also planning couple of appearances at a few conferences but there's +nothing confirmed yet.</p> +<p>Every other contribution in terms of bug reports, new users and feature requests +is of course welcome but we're very conscious of the fact that there's tons +of work to be done and the team is still very small!</p> +<p>Team wise we'd like to get the existing team members up to speed and tackle +the above tasks with priority. This will also help us introduce bug fixes +and new features more quickly!</p> +<p>Happy testing!</p>Kiwi TCMS version 3.492018-01-02T15:30:00+02:002018-01-02T15:30:00+02:00Kiwi TCMS Teamtag:None,2018-01-02:/blog/kiwi-tcms-team/2018/01/02/kiwi-tcms-version-349/<p>Happy New Year to everyone. We're happy to announce Kiwi TCMS version 3.49 +and the corresponding tcms-api version 1.5.0! This release includes a fair +amount of bug fixes and many changes related to Kiwi's RPC layer!</p> +<p>Most importantly Kiwi is updated to Django 2.0.1, the …</p><p>Happy New Year to everyone. We're happy to announce Kiwi TCMS version 3.49 +and the corresponding tcms-api version 1.5.0! This release includes a fair +amount of bug fixes and many changes related to Kiwi's RPC layer!</p> +<p>Most importantly Kiwi is updated to Django 2.0.1, the API client no longer +supports Python 2 and many RPC methods have been removed or updated. +<a href="https://public.tenant.kiwitcms.org/login/github-app/">https://public.tenant.kiwitcms.org</a> +has also been updated so you can explore the new version.</p> +<h2>Changes since Kiwi TCMS 3.48</h2> +<h3>Enhancements and bug fixes</h3> +<ul> +<li>Upgrade to Django 2.0.1</li> +<li>Don't log passwords sent via RPC</li> +<li>Log XML-RPC requests from anonymous users. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/126">Issue #126</a></li> +<li>Order <code>TCMSEnvValue</code> records by property name and value. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/155">Issue #155</a></li> +<li>flake8 fixes (Anton Sankov)</li> +<li>Start building source code documentation from Python doc strings</li> +<li>Properly urlencode emails in personal menu links</li> +<li>Remove test case import via XML files</li> +<li>Use django-attachments for user uploaded files. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/160">Issue #160</a> + As part of this change we no longer copy Plan and Case attachments when + cloning these objects.</li> +</ul> +<p>NOTE: Since django-attachments introduces new permission objects + you will have to adjust default permissions for existing users! + In order for them to be able to upload/delete their own files they + need to have <code>attachments.add_attachment</code> and <code>atachments.delete_attachment</code> + permissions.</p> +<p>These same permissions are added by default to the 'Tester' group. + If you are running an existing installation registering a new user + with Kiwi TCMS will update the default permissions for this group!</p> +<h3>Refactoring</h3> +<ul> +<li>Remove unused class EditCaseNotifyThread (Chenxiong Qi)</li> +<li>Remove model TestPlanActivity (Chenxiong Qi)</li> +<li>Remove many unused models and classes</li> +<li>Execute tests via <code>manage.py test</code> and drop py.test dependency</li> +<li>Remove useless <code>TestTag.string_to_list</code> method. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/106">Issue #106</a></li> +<li>Use <code>settings.AUTH_USER_MODEL</code> in ForeignKey definitions. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/143">Issue #143</a></li> +</ul> +<h4>Settings</h4> +<ul> +<li>Rename <code>EMAIL_FROM</code> to <code>DEFAULT_FROM_EMAIL</code>. Fixes + <a href="https://github.com/kiwitcms/Kiwi/issues/128">Issue #128</a></li> +<li>Rename <code>FILE_UPLOAD_DIR</code> to <code>MEDIA_ROOT</code></li> +<li>Rename <code>MAX_UPLOAD_SIZE</code> to <code>FILE_UPLOAD_MAX_SIZE</code></li> +<li>New setting <code>DELETE_ATTACHMENTS_FROM_DISK</code></li> +<li>Remove unused <code>XMLRPC_TEMPLATE</code> and <code>TESTOPIA_XML_VERSION</code></li> +</ul> +<h3>Server side API</h3> +<ul> +<li>Migrate to <code>django-modern-rpc</code> and remove home-grown XML-RPC handling code. + As part of this change the XML-RPC endpoint has been changed to <code>/xml-rpc/</code>. + There's also a new JSON-RPC endpoint at <code>/json-rpc/</code>!</li> +<li><code>Auth.login</code> method now accepts positional parameters <code>username, password</code> + instead of dict</li> +<li><code>TestCaseRun.get</code> method now accepts a query dict as parameter</li> +<li><code>TestCaseRun.get_bugs</code> method now accepts a query dict as parameter</li> +<li>Remove <code>Build.lookup_id_by_name</code>, <code>Build.lookup_name_by_id</code> RPC methods</li> +<li>Remove <code>Product.lookup_name_by_id</code>, <code>Product.lookup_id_by_name</code> RPC methods</li> +<li>Remove <code>Product.get_components</code>, use <code>Product.filter_components</code> instead</li> +<li>Remove <code>Product.get_plans</code>, use <code>TestPlan.filter</code> instead</li> +<li>Remove <code>Product.get_runs</code>, use <code>TestRun.filter</code> instead</li> +<li>Remove <code>Product.get_tag</code>, use <code>Tag.get_tags</code> instead</li> +<li>Remove <code>Product.get_versions</code>, use <code>Product.filter_versions</code> instead</li> +<li>Remove <code>TestCaseRun.filter_count</code>, use <code>TestCaseRun.filter</code> instead</li> +<li>Remove <code>TestCaseRun.get_s</code>, use <code>TestCaseRun.get</code> instead</li> +<li>Remove <code>TestCaseRun.get_bugs_s</code>, use <code>TestCaseRun.get_bugs</code> instead</li> +<li>Remove <code>TestCaseRun.get_case_run_status</code>, use + <code>TestCaseRun.get_case_run_status_by_name</code> instead</li> +<li>Remove <code>TestCaseRun.get_completion_time</code>, <code>TestCaseRun.get_completion_time_s</code> + RPC methods. Instead calculate them on the client side</li> +<li>Rename <code>TestCaseRun.check_case_run_status</code> to <code>TestCaseRun.get_case_run_status_by_name</code></li> +<li><code>TestCaseRun.detach_log</code> will not raise exceptions when deleting logs from + non-existing TestCaseRun objects.</li> +<li>Remove <code>User.get_me</code>, instead use <code>User.get</code> without parameters</li> +<li>Remove <code>Version.</code> and <code>Testopia.</code> RPC modules</li> +<li>Update documentation for RPC methods in <code>Auth</code>, <code>Build</code> and <code>Env</code> namespaces. + Unformatted documentation is also available for the rest of the RPC methods</li> +</ul> +<h2>tcms-api changes since 1.4.0</h2> +<ul> +<li>Update endpoint configuration, compatible with Kiwi TCMS 3.49</li> +<li>Drop support for Python 2</li> +<li>Remove the internal <code>do_command</code> method which eliminates use of <code>eval()</code></li> +<li>Remove <code>TCMSXmlrpc.get_me()</code> and <code>TCMSXmlrpc.build_get()</code> methods</li> +</ul> +<p><strong>IMPORTANT:</strong> this release introduces new database migrations!</p> +<h2>How to upgrade</h2> +<p>If you are using Kiwi TCMS as a Docker container then</p> +<div class="highlight"><pre><span></span><code><span class="nv">cd</span> <span class="nv">Kiwi</span><span class="o">/</span> +<span class="nv">docker</span><span class="o">-</span><span class="nv">compose</span> <span class="nv">down</span> +<span class="nv">make</span> <span class="nv">docker</span><span class="o">-</span><span class="nv">image</span> +<span class="nv">docker</span><span class="o">-</span><span class="nv">compose</span> <span class="nv">up</span> <span class="o">-</span><span class="nv">d</span> +<span class="nv">docker</span> <span class="k">exec</span> <span class="o">-</span><span class="nv">it</span> <span class="nv">kiwi_web</span> <span class="o">/</span><span class="nv">Kiwi</span><span class="o">/</span><span class="nv">manage</span>.<span class="nv">py</span> <span class="nv">migrate</span> +</code></pre></div> + + +<p>Happy testing!</p>Kiwi TCMS Python API client2017-12-08T15:20:00+02:002017-12-08T15:20:00+02:00Kiwi TCMS Teamtag:None,2017-12-08:/blog/kiwi-tcms-team/2017/12/08/kiwi-tcms-python-api-client/<p>We are happy to announce the first official release of the +<a href="https://pypi.org/project/tcms-api/">tcms-api</a> package! +This is a Python client for Kiwi TCMS.</p> +<p>There are couple of main distinctions in this module:</p> +<ul> +<li>mutable vs. immutable types of objects</li> +<li>high-level class interface vs. low-level XML-RPC interface</li> +</ul> +<p>For more information you should check-out the …</p><p>We are happy to announce the first official release of the +<a href="https://pypi.org/project/tcms-api/">tcms-api</a> package! +This is a Python client for Kiwi TCMS.</p> +<p>There are couple of main distinctions in this module:</p> +<ul> +<li>mutable vs. immutable types of objects</li> +<li>high-level class interface vs. low-level XML-RPC interface</li> +</ul> +<p>For more information you should check-out the documentation +and the <code>script_examples/</code> directory.</p> +<p>At the moment the API client is both Python2 and Python3 compatible, +however it is tested only under Python3!</p> +<h2>A bit of history</h2> +<p>The original API client, like Kiwi TCMS itself began its origin under a +different name and was created primarily by Petr Splichal. Since then +Kiwi TCMS has evolved and we've decided that the API module needs to evolve +as well. At the moment the tcms-api module is a bit rough around the edges, +its documentation is not really the best one and it's currently advisable +to spend some time reading the code to figure out how everything works.</p> +<p>We're going to improve on all of these areas and we need help from the community +to do so! Please download the <code>tcms-api</code> module, check it out, write and contribute +example scripts (you can use the demo site for this), send us bug reports, suggestions +and pull requests!</p> +<p>Happy testing!</p>Kiwi TCMS version 3.482017-11-28T22:00:00+02:002017-11-28T22:00:00+02:00Kiwi TCMS Teamtag:None,2017-11-28:/blog/kiwi-tcms-team/2017/11/28/kiwi-tcms-version-348/<p>We're proud to announce Kiwi TCMS version 3.48! +This is the first release to be announced on our blog and it is also an +important one!</p> +<p>Kiwi TCMS 3.48 introduces new versions of Django and Patternfly, +a Python API client library, many bug-fixes and updated documentation.</p> +<h2>Changes since …</h2><p>We're proud to announce Kiwi TCMS version 3.48! +This is the first release to be announced on our blog and it is also an +important one!</p> +<p>Kiwi TCMS 3.48 introduces new versions of Django and Patternfly, +a Python API client library, many bug-fixes and updated documentation.</p> +<h2>Changes since KiwiTCMS 3.44</h2> +<ul> +<li>Update to Django 1.11.7 (Mr. Senko)</li> +<li>Update documentation including high level information + about how data is organized within Kiwi TCMS and how to work + with the system. (Mr. Senko)</li> +<li>Stop caching report views. (Mr. Senko)</li> +<li>Make test execution comments optional. Fixes + <a href="https://github.com/MrSenko/Kiwi/issues/77">Issue #77</a>. (Mr. Senko)</li> +<li>Escape special symbols when exporting JSON. + Fixes <a href="https://github.com/MrSenko/Kiwi/issues/78">Issue #78</a>. (Mr. Senko)</li> +<li>Remove Test Run export to XML functionality in favor of API. + Fixes <a href="https://github.com/MrSenko/Kiwi/issues/79">Issue #79</a>. (Mr. Senko)</li> +<li>Make it possible to search Test Runs via Env properties. + Fixes <a href="https://github.com/MrSenko/Kiwi/issues/82">Issue #82</a>. (Mr. Senko)</li> +<li>Display Environment properties in Test Run search results. (Mr. Senko)</li> +<li>Allow bulk update TestCase.default_tester via email. + Fixes <a href="https://github.com/MrSenko/Kiwi/issues/85">Issue #85</a>. (Mr. Senko)</li> +<li>Don't crash reports when there are untested TestCaseRuns. + Fixes <a href="https://github.com/MrSenko/Kiwi/issues/88">Issue #88</a>. (Mr. Senko)</li> +<li>Bind localhost:80 to container:80. + Fixes <a href="https://github.com/MrSenko/Kiwi/issues/99">Issue #99</a>. (Mr. Senko)</li> +<li>Enable testing with Python 3.6 in preparation for migration. (Mr. Senko)</li> +<li>If JIRA isn't fully configured then don't connect. Fixes + Fixes <a href="https://github.com/MrSenko/Kiwi/issues/100">Issue #100</a>. (Mr. Senko)</li> +<li>Pin patternfly version to 3.30 and update templates. + Fixes <a href="https://github.com/MrSenko/Kiwi/issues/120">Issue #120</a>. (Mr. Senko)</li> +<li>Show status name rather than status id in TestCaseRun change log. (Chenxiong Qi)</li> +<li>[api] Adds a Python API client with changes that make it possible to + execute on both Python 2 and Python 3. For now take a look at + <code>tcms_api/script_examples/</code> for examples how to use it.</li> +<li>[api] Remove experimental support for Teiid. (Mr. Senko)</li> +<li>[api] Cache level defaults to <code>CACHE_NONE</code> if not set. (Mr. Senko)</li> +<li>[api] Remove persistent cache, in-memory caching is still available. (Mr. Senko)</li> +<li>[api] Remove multicall support. (Mr. Senko)</li> +</ul> +<p><strong>IMPORTANT:</strong> this release introduces new database migrations!</p> +<p><em>NOTE:</em> the API client has been initially developed as the <em>python-nitrate</em> +project by Petr Splichal and other contributors! We've decided to fork their +code base into Kiwi's repository and continue further development in a central +place. This makes it easier testing the API server and client together and +allows us to move more rapidly! </p> +<p>As of now there isn't a lot of documentation +and examples on how to use the API client but we are looking to improve this. +Additional documentation and examples will be published in the project's +repository or on this blog!</p> +<h2>How to upgrade</h2> +<p>If you are using Kiwi TCMS as a Docker container then</p> +<div class="highlight"><pre><span></span><code><span class="nv">cd</span> <span class="nv">Kiwi</span><span class="o">/</span> +<span class="nv">docker</span><span class="o">-</span><span class="nv">compose</span> <span class="nv">down</span> +<span class="nv">make</span> <span class="nv">docker</span><span class="o">-</span><span class="nv">image</span> +<span class="nv">docker</span><span class="o">-</span><span class="nv">compose</span> <span class="nv">up</span> <span class="o">-</span><span class="nv">d</span> +<span class="nv">docker</span> <span class="k">exec</span> <span class="o">-</span><span class="nv">it</span> <span class="nv">kiwi_web</span> <span class="o">/</span><span class="nv">Kiwi</span><span class="o">/</span><span class="nv">manage</span>.<span class="nv">py</span> <span class="nv">migrate</span> +</code></pre></div> + + +<p>Happy testing!</p>Testing, testing. It works!2017-11-03T11:15:00+02:002017-11-03T11:15:00+02:00Kiwi TCMS Teamtag:None,2017-11-03:/blog/kiwi-tcms-team/2017/11/03/testing-testing-it-works/<p>Welcome to the official website and blog of Kiwi TCMS. +We are happy to finally be online!</p> +<p>This website was built with the help of +<a href="https://github.com/koksyncho">Kaloyan Krastev</a>, +<a href="https://github.com/FreshyMc">Tsvetoslav Garkov</a> and +<a href="https://github.com/ivo0126">Ivaylo Ivanov</a> +who will be joining the project a bit later as well.</p> +<p>In this blog you can expect various …</p><p>Welcome to the official website and blog of Kiwi TCMS. +We are happy to finally be online!</p> +<p>This website was built with the help of +<a href="https://github.com/koksyncho">Kaloyan Krastev</a>, +<a href="https://github.com/FreshyMc">Tsvetoslav Garkov</a> and +<a href="https://github.com/ivo0126">Ivaylo Ivanov</a> +who will be joining the project a bit later as well.</p> +<p>In this blog you can expect various news and progress reports around the project, +announcement of new releases and future plans. We would love to hear your +feedback so please use the comments form below.</p> +<p>Happy testing!</p> \ No newline at end of file diff --git a/google8b349b847d57319a.html b/google8b349b847d57319a.html index 2f874144..06669584 100644 --- a/google8b349b847d57319a.html +++ b/google8b349b847d57319a.html @@ -1 +1 @@ -google-site-verification: google8b349b847d57319a.html \ No newline at end of file +google-site-verification: google8b349b847d57319a.html diff --git a/images/1year_infographic.png b/images/1year_infographic.png new file mode 100644 index 00000000..abea7eac Binary files /dev/null and b/images/1year_infographic.png differ diff --git a/images/200K/banner.png b/images/200K/banner.png new file mode 100644 index 00000000..3f9920ce Binary files /dev/null and b/images/200K/banner.png differ diff --git a/images/200K/banner.svg b/images/200K/banner.svg new file mode 100644 index 00000000..deae4746 --- /dev/null +++ b/images/200K/banner.svg @@ -0,0 +1,13670 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 200000 pulls via Docker Hub + 200KOFF https://kiwitcms.org/#subscriptions coupon code for10 months x 20% off Private Tenant & Enterprise subscriptions diff --git a/images/500K/banner.png b/images/500K/banner.png new file mode 100644 index 00000000..c4f675f2 Binary files /dev/null and b/images/500K/banner.png differ diff --git a/images/500K/banner.svg b/images/500K/banner.svg new file mode 100644 index 00000000..b7be9032 --- /dev/null +++ b/images/500K/banner.svg @@ -0,0 +1,13648 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 500000 times + + Thank you for downloading + + + + + + + + + + + + + + + + + + Kiwi TCMS + + + diff --git a/images/award.png b/images/award.png new file mode 100644 index 00000000..61aee6aa Binary files /dev/null and b/images/award.png differ diff --git a/images/backup.png b/images/backup.png new file mode 100644 index 00000000..d80539e4 Binary files /dev/null and b/images/backup.png differ diff --git a/images/banners/excellence_in_innovation_2020.png b/images/banners/excellence_in_innovation_2020.png new file mode 100644 index 00000000..39ccf626 Binary files /dev/null and b/images/banners/excellence_in_innovation_2020.png differ diff --git a/images/banners/hackconf2021.png b/images/banners/hackconf2021.png new file mode 100644 index 00000000..225b03c3 Binary files /dev/null and b/images/banners/hackconf2021.png differ diff --git a/images/banners/hackconf2021.svg b/images/banners/hackconf2021.svg new file mode 100644 index 00000000..4c40dfaf --- /dev/null +++ b/images/banners/hackconf2021.svg @@ -0,0 +1,13669 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 6 SUPERFAN tickets + + is giving away + + + + + + + + + + + + + + + + + + Kiwi TCMS + + + for HackConf 2021 + diff --git a/images/black-boxes/peltzman_effect.png b/images/black-boxes/peltzman_effect.png new file mode 100644 index 00000000..8fe00c94 Binary files /dev/null and b/images/black-boxes/peltzman_effect.png differ diff --git a/images/black-boxes/salience_bias.png b/images/black-boxes/salience_bias.png new file mode 100644 index 00000000..29b533e3 Binary files /dev/null and b/images/black-boxes/salience_bias.png differ diff --git a/images/black-boxes/wason_246.png b/images/black-boxes/wason_246.png new file mode 100644 index 00000000..8597c8f1 Binary files /dev/null and b/images/black-boxes/wason_246.png differ diff --git a/images/bounty_program.png b/images/bounty_program.png new file mode 100644 index 00000000..5f0a2e19 Binary files /dev/null and b/images/bounty_program.png differ diff --git a/images/bounty_program.svg b/images/bounty_program.svg new file mode 100644 index 00000000..820da83c --- /dev/null +++ b/images/bounty_program.svg @@ -0,0 +1,5688 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/bugtrackers/bugzilla.png b/images/bugtrackers/bugzilla.png new file mode 100644 index 00000000..babe4606 Binary files /dev/null and b/images/bugtrackers/bugzilla.png differ diff --git a/images/bugtrackers/github.png b/images/bugtrackers/github.png new file mode 100644 index 00000000..60031c33 Binary files /dev/null and b/images/bugtrackers/github.png differ diff --git a/images/bugtrackers/gitlab.png b/images/bugtrackers/gitlab.png new file mode 100644 index 00000000..1ccc1c8d Binary files /dev/null and b/images/bugtrackers/gitlab.png differ diff --git a/images/bugtrackers/jira.png b/images/bugtrackers/jira.png new file mode 100644 index 00000000..84a1e54a Binary files /dev/null and b/images/bugtrackers/jira.png differ diff --git a/images/codeclimate_jan_2019.png b/images/codeclimate_jan_2019.png new file mode 100644 index 00000000..1bffb912 Binary files /dev/null and b/images/codeclimate_jan_2019.png differ diff --git a/images/conf/StartupGrind22.png b/images/conf/StartupGrind22.png new file mode 100644 index 00000000..6ba46810 Binary files /dev/null and b/images/conf/StartupGrind22.png differ diff --git a/images/conf/bws.png b/images/conf/bws.png new file mode 100644 index 00000000..9deba2af Binary files /dev/null and b/images/conf/bws.png differ diff --git a/images/conf/collision/badge_2022.png b/images/conf/collision/badge_2022.png new file mode 100644 index 00000000..b50a113b Binary files /dev/null and b/images/conf/collision/badge_2022.png differ diff --git a/images/conf/collision/stand2022.png b/images/conf/collision/stand2022.png new file mode 100644 index 00000000..0579c6f5 Binary files /dev/null and b/images/conf/collision/stand2022.png differ diff --git a/images/conf/dev.bg.png b/images/conf/dev.bg.png new file mode 100644 index 00000000..1662ad7c Binary files /dev/null and b/images/conf/dev.bg.png differ diff --git a/images/conf/een.png b/images/conf/een.png new file mode 100644 index 00000000..c135ee0b Binary files /dev/null and b/images/conf/een.png differ diff --git a/images/conf/eu_web_awards_2020_finalist.png b/images/conf/eu_web_awards_2020_finalist.png new file mode 100644 index 00000000..cb738e85 Binary files /dev/null and b/images/conf/eu_web_awards_2020_finalist.png differ diff --git a/images/conf/excellence_innovation_2020_bw.png b/images/conf/excellence_innovation_2020_bw.png new file mode 100644 index 00000000..977b7d4a Binary files /dev/null and b/images/conf/excellence_innovation_2020_bw.png differ diff --git a/images/conf/fosdem.png b/images/conf/fosdem.png new file mode 100644 index 00000000..5475be9f Binary files /dev/null and b/images/conf/fosdem.png differ diff --git a/images/conf/fossasia.png b/images/conf/fossasia.png new file mode 100644 index 00000000..6cc39f45 Binary files /dev/null and b/images/conf/fossasia.png differ diff --git a/images/conf/github.png b/images/conf/github.png new file mode 100644 index 00000000..59e1d398 Binary files /dev/null and b/images/conf/github.png differ diff --git a/images/conf/github_stars.png b/images/conf/github_stars.png new file mode 100644 index 00000000..443eccc4 Binary files /dev/null and b/images/conf/github_stars.png differ diff --git a/images/conf/hackconf.png b/images/conf/hackconf.png new file mode 100644 index 00000000..59ff5a8f Binary files /dev/null and b/images/conf/hackconf.png differ diff --git a/images/conf/hackconf19.png b/images/conf/hackconf19.png new file mode 100644 index 00000000..255e3eeb Binary files /dev/null and b/images/conf/hackconf19.png differ diff --git a/images/conf/mozilla_award.png b/images/conf/mozilla_award.png new file mode 100644 index 00000000..7414fb3e Binary files /dev/null and b/images/conf/mozilla_award.png differ diff --git a/images/conf/openawards19.png b/images/conf/openawards19.png new file mode 100644 index 00000000..27a90ece Binary files /dev/null and b/images/conf/openawards19.png differ diff --git a/images/conf/openexpo.png b/images/conf/openexpo.png new file mode 100644 index 00000000..6cbf6e30 Binary files /dev/null and b/images/conf/openexpo.png differ diff --git a/images/conf/openfest.png b/images/conf/openfest.png new file mode 100644 index 00000000..3437161f Binary files /dev/null and b/images/conf/openfest.png differ diff --git a/images/conf/oscal.png b/images/conf/oscal.png new file mode 100644 index 00000000..84818194 Binary files /dev/null and b/images/conf/oscal.png differ diff --git a/images/conf/piterpy.png b/images/conf/piterpy.png new file mode 100644 index 00000000..c8630a7e Binary files /dev/null and b/images/conf/piterpy.png differ diff --git a/images/conf/pyconblkn19.png b/images/conf/pyconblkn19.png new file mode 100644 index 00000000..afa44d0f Binary files /dev/null and b/images/conf/pyconblkn19.png differ diff --git a/images/conf/pyconcz.png b/images/conf/pyconcz.png new file mode 100644 index 00000000..4404b8c0 Binary files /dev/null and b/images/conf/pyconcz.png differ diff --git a/images/conf/qachallenge.png b/images/conf/qachallenge.png new file mode 100644 index 00000000..a8ee797e Binary files /dev/null and b/images/conf/qachallenge.png differ diff --git a/images/conf/reviewbox-award-2022.png b/images/conf/reviewbox-award-2022.png new file mode 100644 index 00000000..06b86f7b Binary files /dev/null and b/images/conf/reviewbox-award-2022.png differ diff --git a/images/conf/reviewbox-award-big.png b/images/conf/reviewbox-award-big.png new file mode 100644 index 00000000..481dba39 Binary files /dev/null and b/images/conf/reviewbox-award-big.png differ diff --git a/images/conf/testcon.png b/images/conf/testcon.png new file mode 100644 index 00000000..0833040a Binary files /dev/null and b/images/conf/testcon.png differ diff --git a/images/conf/testinguy.png b/images/conf/testinguy.png new file mode 100644 index 00000000..8850b55c Binary files /dev/null and b/images/conf/testinguy.png differ diff --git a/images/conf/testwarez19.png b/images/conf/testwarez19.png new file mode 100644 index 00000000..131c4cc0 Binary files /dev/null and b/images/conf/testwarez19.png differ diff --git a/images/conf/websummit/2021_venue_map.png b/images/conf/websummit/2021_venue_map.png new file mode 100644 index 00000000..901fcef8 Binary files /dev/null and b/images/conf/websummit/2021_venue_map.png differ diff --git a/images/conf/websummit/WS21_landscapeStartup.jpg b/images/conf/websummit/WS21_landscapeStartup.jpg new file mode 100644 index 00000000..20bc4789 Binary files /dev/null and b/images/conf/websummit/WS21_landscapeStartup.jpg differ diff --git a/images/conf/websummit/alpha_startup_badge.png b/images/conf/websummit/alpha_startup_badge.png new file mode 100644 index 00000000..98e77001 Binary files /dev/null and b/images/conf/websummit/alpha_startup_badge.png differ diff --git a/images/conf/websummit/alpha_startup_badge_bw.png b/images/conf/websummit/alpha_startup_badge_bw.png new file mode 100644 index 00000000..38596400 Binary files /dev/null and b/images/conf/websummit/alpha_startup_badge_bw.png differ diff --git a/images/conf/websummit/black_boxes.png b/images/conf/websummit/black_boxes.png new file mode 100644 index 00000000..4a960ae4 Binary files /dev/null and b/images/conf/websummit/black_boxes.png differ diff --git a/images/conf/websummit/stand2022.png b/images/conf/websummit/stand2022.png new file mode 100644 index 00000000..5793b079 Binary files /dev/null and b/images/conf/websummit/stand2022.png differ diff --git a/images/conf/wetest_athens.png b/images/conf/wetest_athens.png new file mode 100644 index 00000000..b92d08ef Binary files /dev/null and b/images/conf/wetest_athens.png differ diff --git a/images/contributors/aneta.jpg b/images/contributors/aneta.jpg new file mode 100644 index 00000000..0c5d99d8 Binary files /dev/null and b/images/contributors/aneta.jpg differ diff --git a/images/contributors/primoz.jpg b/images/contributors/primoz.jpg new file mode 100644 index 00000000..3105cdf1 Binary files /dev/null and b/images/contributors/primoz.jpg differ diff --git a/images/customers/better.png b/images/customers/better.png new file mode 100644 index 00000000..bc3ce892 Binary files /dev/null and b/images/customers/better.png differ diff --git a/images/customers/bookinglive.png b/images/customers/bookinglive.png new file mode 100644 index 00000000..8ec6740a Binary files /dev/null and b/images/customers/bookinglive.png differ diff --git a/images/customers/e_foundation.png b/images/customers/e_foundation.png new file mode 100644 index 00000000..5c5bd7f1 Binary files /dev/null and b/images/customers/e_foundation.png differ diff --git a/images/customers/minds.png b/images/customers/minds.png new file mode 100644 index 00000000..0f2951ef Binary files /dev/null and b/images/customers/minds.png differ diff --git a/images/customers/musala.png b/images/customers/musala.png new file mode 100644 index 00000000..5d8a6904 Binary files /dev/null and b/images/customers/musala.png differ diff --git a/images/customers/phplist.png b/images/customers/phplist.png new file mode 100644 index 00000000..08e8b0aa Binary files /dev/null and b/images/customers/phplist.png differ diff --git a/images/customers/qgis+kiwitcms.png b/images/customers/qgis+kiwitcms.png new file mode 100644 index 00000000..a4abe6ba Binary files /dev/null and b/images/customers/qgis+kiwitcms.png differ diff --git a/images/customers/qgis+kiwitcms.svg b/images/customers/qgis+kiwitcms.svg new file mode 100644 index 00000000..7be8e107 --- /dev/null +++ b/images/customers/qgis+kiwitcms.svg @@ -0,0 +1,4959 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Quality Assurance methodology & infrastructure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/customers/qgis-color.png b/images/customers/qgis-color.png new file mode 100644 index 00000000..a05d0c44 Binary files /dev/null and b/images/customers/qgis-color.png differ diff --git a/images/customers/qgis.png b/images/customers/qgis.png new file mode 100644 index 00000000..93a13eba Binary files /dev/null and b/images/customers/qgis.png differ diff --git a/images/customers/sedc.png b/images/customers/sedc.png new file mode 100644 index 00000000..c766a1a3 Binary files /dev/null and b/images/customers/sedc.png differ diff --git a/images/customers/sequoia.png b/images/customers/sequoia.png new file mode 100644 index 00000000..25d5a052 Binary files /dev/null and b/images/customers/sequoia.png differ diff --git a/images/customers/zamphyr.png b/images/customers/zamphyr.png new file mode 100644 index 00000000..dc75bb26 Binary files /dev/null and b/images/customers/zamphyr.png differ diff --git a/images/customization.png b/images/customization.png new file mode 100644 index 00000000..c3300704 Binary files /dev/null and b/images/customization.png differ diff --git a/images/django_meetup.jpg b/images/django_meetup.jpg new file mode 100644 index 00000000..4488efec Binary files /dev/null and b/images/django_meetup.jpg differ diff --git a/images/eu_web_awards_2020_finalist.png b/images/eu_web_awards_2020_finalist.png new file mode 100644 index 00000000..570be6c4 Binary files /dev/null and b/images/eu_web_awards_2020_finalist.png differ diff --git a/images/eu_web_awards_horizontal.png b/images/eu_web_awards_horizontal.png new file mode 100644 index 00000000..bb837429 Binary files /dev/null and b/images/eu_web_awards_horizontal.png differ diff --git a/images/eu_web_awards_vote.png b/images/eu_web_awards_vote.png new file mode 100644 index 00000000..ec416f1f Binary files /dev/null and b/images/eu_web_awards_vote.png differ diff --git a/images/features/props-and-envs/banner.png b/images/features/props-and-envs/banner.png new file mode 100644 index 00000000..1c6d53a8 Binary files /dev/null and b/images/features/props-and-envs/banner.png differ diff --git a/images/features/props-and-envs/banner.svg b/images/features/props-and-envs/banner.svg new file mode 100644 index 00000000..9927a4df --- /dev/null +++ b/images/features/props-and-envs/banner.svg @@ -0,0 +1,13587 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Kiwi TCMS + + + + + + + + diff --git a/images/features/props-and-envs/env-fedora-variants.png b/images/features/props-and-envs/env-fedora-variants.png new file mode 100644 index 00000000..13ebf49d Binary files /dev/null and b/images/features/props-and-envs/env-fedora-variants.png differ diff --git a/images/features/props-and-envs/env_from_1344.png b/images/features/props-and-envs/env_from_1344.png new file mode 100644 index 00000000..85667323 Binary files /dev/null and b/images/features/props-and-envs/env_from_1344.png differ diff --git a/images/features/props-and-envs/new-tr-with-env.png b/images/features/props-and-envs/new-tr-with-env.png new file mode 100644 index 00000000..f8dea783 Binary files /dev/null and b/images/features/props-and-envs/new-tr-with-env.png differ diff --git a/images/features/props-and-envs/raid-tc-with-params.png b/images/features/props-and-envs/raid-tc-with-params.png new file mode 100644 index 00000000..8aa3bed4 Binary files /dev/null and b/images/features/props-and-envs/raid-tc-with-params.png differ diff --git a/images/features/props-and-envs/tr-env-and-te-props.png b/images/features/props-and-envs/tr-env-and-te-props.png new file mode 100644 index 00000000..e2aa66ee Binary files /dev/null and b/images/features/props-and-envs/tr-env-and-te-props.png differ diff --git a/images/finalists_innovationbg.png b/images/finalists_innovationbg.png new file mode 100644 index 00000000..85f5127c Binary files /dev/null and b/images/finalists_innovationbg.png differ diff --git a/images/fosdem/2021/banner.png b/images/fosdem/2021/banner.png new file mode 100644 index 00000000..9b9b5936 Binary files /dev/null and b/images/fosdem/2021/banner.png differ diff --git a/images/fosdem/2021/banner.svg b/images/fosdem/2021/banner.svg new file mode 100644 index 00000000..398fae53 --- /dev/null +++ b/images/fosdem/2021/banner.svg @@ -0,0 +1,13611 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + FOSDEM'21 Testing and Automation + + + + + + + call for participation devroom organized byKiwi TCMS, Linaro & SUSE diff --git a/images/fosdem/2022/banner.png b/images/fosdem/2022/banner.png new file mode 100644 index 00000000..f2b88927 Binary files /dev/null and b/images/fosdem/2022/banner.png differ diff --git a/images/fosdem/2022/banner.svg b/images/fosdem/2022/banner.svg new file mode 100644 index 00000000..2442829c --- /dev/null +++ b/images/fosdem/2022/banner.svg @@ -0,0 +1,13617 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + FOSDEM'22 + Testing and Automation + + + + + + + + call for participation + devroom organized byKiwi TCMS, Linaro & SUSE + diff --git a/images/fosdem/2023/banner.png b/images/fosdem/2023/banner.png new file mode 100644 index 00000000..30a29174 Binary files /dev/null and b/images/fosdem/2023/banner.png differ diff --git a/images/fosdem/2023/banner.svg b/images/fosdem/2023/banner.svg new file mode 100644 index 00000000..a8173958 --- /dev/null +++ b/images/fosdem/2023/banner.svg @@ -0,0 +1,13617 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + FOSDEM'23 + Testing and Automation + + + + + + + + call for participation + devroom organized byKiwi TCMS, Linaro & SUSE + diff --git a/images/fosdem/oss_test_management_19.jpg b/images/fosdem/oss_test_management_19.jpg new file mode 100644 index 00000000..d59d4ec2 Binary files /dev/null and b/images/fosdem/oss_test_management_19.jpg differ diff --git a/images/fosdem/oss_tm_19_card.jpg b/images/fosdem/oss_tm_19_card.jpg new file mode 100644 index 00000000..b4f77800 Binary files /dev/null and b/images/fosdem/oss_tm_19_card.jpg differ diff --git a/images/github-star-nomination.png b/images/github-star-nomination.png new file mode 100644 index 00000000..3405e430 Binary files /dev/null and b/images/github-star-nomination.png differ diff --git a/images/github/app_installation.png b/images/github/app_installation.png new file mode 100644 index 00000000..40dac7db Binary files /dev/null and b/images/github/app_installation.png differ diff --git a/images/github/app_login.png b/images/github/app_login.png new file mode 100644 index 00000000..3c3afe62 Binary files /dev/null and b/images/github/app_login.png differ diff --git a/images/github/oauth_login.png b/images/github/oauth_login.png new file mode 100644 index 00000000..8490df22 Binary files /dev/null and b/images/github/oauth_login.png differ diff --git a/images/github_helpwanted.png b/images/github_helpwanted.png new file mode 100644 index 00000000..9d4574f9 Binary files /dev/null and b/images/github_helpwanted.png differ diff --git a/images/github_kiwitcms_pr_status.png b/images/github_kiwitcms_pr_status.png new file mode 100644 index 00000000..597f2f17 Binary files /dev/null and b/images/github_kiwitcms_pr_status.png differ diff --git a/images/github_plus_one.png b/images/github_plus_one.png new file mode 100644 index 00000000..7412280d Binary files /dev/null and b/images/github_plus_one.png differ diff --git a/images/gitlab-call-to-action.png b/images/gitlab-call-to-action.png new file mode 100644 index 00000000..22910367 Binary files /dev/null and b/images/gitlab-call-to-action.png differ diff --git a/images/gsoc/2021/banner.png b/images/gsoc/2021/banner.png new file mode 100644 index 00000000..2dce0bed Binary files /dev/null and b/images/gsoc/2021/banner.png differ diff --git a/images/gsoc/2021/banner.svg b/images/gsoc/2021/banner.svg new file mode 100644 index 00000000..f0ef5981 --- /dev/null +++ b/images/gsoc/2021/banner.svg @@ -0,0 +1,13613 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Kiwi TCMS has applied toGoogle Summer of Code 2021 diff --git a/images/high-res/Excellence in Innovation 2020_ENG-2.pdf b/images/high-res/Excellence in Innovation 2020_ENG-2.pdf new file mode 100644 index 00000000..e7138d3a Binary files /dev/null and b/images/high-res/Excellence in Innovation 2020_ENG-2.pdf differ diff --git a/images/high-res/sello-open-awards-ganador-best-tech-community.png b/images/high-res/sello-open-awards-ganador-best-tech-community.png new file mode 100644 index 00000000..8dd9a70e Binary files /dev/null and b/images/high-res/sello-open-awards-ganador-best-tech-community.png differ diff --git a/images/kiwi_logo_h50.png b/images/kiwi_logo_h50.png deleted file mode 100644 index 233b84c0..00000000 Binary files a/images/kiwi_logo_h50.png and /dev/null differ diff --git a/images/kiwi_socks.jpg b/images/kiwi_socks.jpg new file mode 100644 index 00000000..bd20d4b7 Binary files /dev/null and b/images/kiwi_socks.jpg differ diff --git a/images/kiwi_sticker.jpg b/images/kiwi_sticker.jpg new file mode 100644 index 00000000..b6ab27d1 Binary files /dev/null and b/images/kiwi_sticker.jpg differ diff --git a/images/kiwi_v400.jpg b/images/kiwi_v400.jpg new file mode 100644 index 00000000..13118fdb Binary files /dev/null and b/images/kiwi_v400.jpg differ diff --git a/images/kiwitcms-bot-gh-issue-reporter.png b/images/kiwitcms-bot-gh-issue-reporter.png new file mode 100644 index 00000000..4dd5d0f9 Binary files /dev/null and b/images/kiwitcms-bot-gh-issue-reporter.png differ diff --git a/images/mlh/opensource_awards_banner.png b/images/mlh/opensource_awards_banner.png new file mode 100644 index 00000000..bbc9aa67 Binary files /dev/null and b/images/mlh/opensource_awards_banner.png differ diff --git a/images/mlh/opensource_awards_banner.svg b/images/mlh/opensource_awards_banner.svg new file mode 100644 index 00000000..b7c284b0 --- /dev/null +++ b/images/mlh/opensource_awards_banner.svg @@ -0,0 +1,13638 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Kiwi TCMS + + + Please nominate us at MLH Open Source Awardsat MLH Open Source Awar + diff --git a/images/mlh/partnership_banner.png b/images/mlh/partnership_banner.png new file mode 100644 index 00000000..09de3c1d Binary files /dev/null and b/images/mlh/partnership_banner.png differ diff --git a/images/mlh/partnership_banner.svg b/images/mlh/partnership_banner.svg new file mode 100644 index 00000000..933457c6 --- /dev/null +++ b/images/mlh/partnership_banner.svg @@ -0,0 +1,7761 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Мajor League Hackingwith Kiwi TCMS & + diff --git a/images/mozilla_award_winner.jpg b/images/mozilla_award_winner.jpg new file mode 100644 index 00000000..2893956d Binary files /dev/null and b/images/mozilla_award_winner.jpg differ diff --git a/images/mrsenko-icon.png b/images/mrsenko-icon.png deleted file mode 100644 index e6fb8611..00000000 Binary files a/images/mrsenko-icon.png and /dev/null differ diff --git a/images/openexpo/award.jpg b/images/openexpo/award.jpg new file mode 100644 index 00000000..c6889333 Binary files /dev/null and b/images/openexpo/award.jpg differ diff --git a/images/openexpo/openawards2019.jpg b/images/openexpo/openawards2019.jpg new file mode 100644 index 00000000..06ce2106 Binary files /dev/null and b/images/openexpo/openawards2019.jpg differ diff --git a/images/openexpo/vote_openexpo19.jpg b/images/openexpo/vote_openexpo19.jpg new file mode 100644 index 00000000..af8d9579 Binary files /dev/null and b/images/openexpo/vote_openexpo19.jpg differ diff --git a/images/openfest2018_banner.png b/images/openfest2018_banner.png new file mode 100644 index 00000000..5ab6cc40 Binary files /dev/null and b/images/openfest2018_banner.png differ diff --git a/images/pc_with_test_run.png b/images/pc_with_test_run.png deleted file mode 100644 index 0630677c..00000000 Binary files a/images/pc_with_test_run.png and /dev/null differ diff --git a/images/pc_with_test_run_small.png b/images/pc_with_test_run_small.png deleted file mode 100644 index cbc7bd59..00000000 Binary files a/images/pc_with_test_run_small.png and /dev/null differ diff --git a/images/pionir_students.jpg b/images/pionir_students.jpg new file mode 100644 index 00000000..975b53c7 Binary files /dev/null and b/images/pionir_students.jpg differ diff --git a/images/plugins.png b/images/plugins.png new file mode 100644 index 00000000..8bded03c Binary files /dev/null and b/images/plugins.png differ diff --git a/images/private_docker_credentials.png b/images/private_docker_credentials.png new file mode 100644 index 00000000..f210d192 Binary files /dev/null and b/images/private_docker_credentials.png differ diff --git a/images/roadmap.jpg b/images/roadmap.jpg new file mode 100644 index 00000000..f0a214a5 Binary files /dev/null and b/images/roadmap.jpg differ diff --git a/images/roadmap2020.png b/images/roadmap2020.png new file mode 100644 index 00000000..cf378acf Binary files /dev/null and b/images/roadmap2020.png differ diff --git a/images/roadmap2021.png b/images/roadmap2021.png new file mode 100644 index 00000000..a9a23070 Binary files /dev/null and b/images/roadmap2021.png differ diff --git a/images/roadtrip.png b/images/roadtrip.png new file mode 100644 index 00000000..a91c78f8 Binary files /dev/null and b/images/roadtrip.png differ diff --git a/images/screenshots/001_central_dashboard.png b/images/screenshots/001_central_dashboard.png new file mode 100644 index 00000000..4ec3289a Binary files /dev/null and b/images/screenshots/001_central_dashboard.png differ diff --git a/images/screenshots/001_create_test_plan.png b/images/screenshots/001_create_test_plan.png deleted file mode 100644 index 8dcdcd5f..00000000 Binary files a/images/screenshots/001_create_test_plan.png and /dev/null differ diff --git a/images/screenshots/002_create_test_case.png b/images/screenshots/002_create_test_case.png deleted file mode 100644 index 3360f292..00000000 Binary files a/images/screenshots/002_create_test_case.png and /dev/null differ diff --git a/images/screenshots/002_testplan_00.png b/images/screenshots/002_testplan_00.png new file mode 100644 index 00000000..a33e55b6 Binary files /dev/null and b/images/screenshots/002_testplan_00.png differ diff --git a/images/screenshots/002_testplan_01.png b/images/screenshots/002_testplan_01.png new file mode 100644 index 00000000..40511bf2 Binary files /dev/null and b/images/screenshots/002_testplan_01.png differ diff --git a/images/screenshots/003_create_test_case.png b/images/screenshots/003_create_test_case.png new file mode 100644 index 00000000..cafd949b Binary files /dev/null and b/images/screenshots/003_create_test_case.png differ diff --git a/images/screenshots/003_execute_tests_for_build.png b/images/screenshots/003_execute_tests_for_build.png deleted file mode 100644 index 7769cadf..00000000 Binary files a/images/screenshots/003_execute_tests_for_build.png and /dev/null differ diff --git a/images/screenshots/004_mark_individual_test_results.png b/images/screenshots/004_mark_individual_test_results.png deleted file mode 100644 index e69c452d..00000000 Binary files a/images/screenshots/004_mark_individual_test_results.png and /dev/null differ diff --git a/images/screenshots/004_view_existing_test_cases.png b/images/screenshots/004_view_existing_test_cases.png new file mode 100644 index 00000000..1913572f Binary files /dev/null and b/images/screenshots/004_view_existing_test_cases.png differ diff --git a/images/screenshots/005_execute_tests_for_build.png b/images/screenshots/005_execute_tests_for_build.png new file mode 100644 index 00000000..9af626ff Binary files /dev/null and b/images/screenshots/005_execute_tests_for_build.png differ diff --git a/images/screenshots/005_product_builds_report.png b/images/screenshots/005_product_builds_report.png deleted file mode 100644 index f32b2e34..00000000 Binary files a/images/screenshots/005_product_builds_report.png and /dev/null differ diff --git a/images/screenshots/006_report_per_plan_and_build.png b/images/screenshots/006_report_per_plan_and_build.png deleted file mode 100644 index 89eaf174..00000000 Binary files a/images/screenshots/006_report_per_plan_and_build.png and /dev/null differ diff --git a/images/screenshots/006_testing_breakdown_telemetry.png b/images/screenshots/006_testing_breakdown_telemetry.png new file mode 100644 index 00000000..7794f3b5 Binary files /dev/null and b/images/screenshots/006_testing_breakdown_telemetry.png differ diff --git a/images/screenshots/007_bugtracker_github.png b/images/screenshots/007_bugtracker_github.png new file mode 100644 index 00000000..edf485cb Binary files /dev/null and b/images/screenshots/007_bugtracker_github.png differ diff --git a/images/screenshots/007_bugtracker_jira.png b/images/screenshots/007_bugtracker_jira.png new file mode 100644 index 00000000..61aabfba Binary files /dev/null and b/images/screenshots/007_bugtracker_jira.png differ diff --git a/images/screenshots/007_status_matrix_telemetry.png b/images/screenshots/007_status_matrix_telemetry.png new file mode 100644 index 00000000..dbb0f5d6 Binary files /dev/null and b/images/screenshots/007_status_matrix_telemetry.png differ diff --git a/images/screenshots/008_execution_trends_telemetry.png b/images/screenshots/008_execution_trends_telemetry.png new file mode 100644 index 00000000..76198454 Binary files /dev/null and b/images/screenshots/008_execution_trends_telemetry.png differ diff --git a/images/screenshots/009_test_case_health_telemetry.png b/images/screenshots/009_test_case_health_telemetry.png new file mode 100644 index 00000000..e172ea60 Binary files /dev/null and b/images/screenshots/009_test_case_health_telemetry.png differ diff --git a/images/sedc/partnership_banner.png b/images/sedc/partnership_banner.png new file mode 100644 index 00000000..fdcec38f Binary files /dev/null and b/images/sedc/partnership_banner.png differ diff --git a/images/sedc/partnership_banner.svg b/images/sedc/partnership_banner.svg new file mode 100644 index 00000000..99933645 --- /dev/null +++ b/images/sedc/partnership_banner.svg @@ -0,0 +1,10594 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + new skills andopen source toolsfor future testers + + + + + + + + + + + + + + + + + & + + + diff --git a/images/stock/Laptop-Coffee-remix.svg b/images/stock/Laptop-Coffee-remix.svg index af16c740..866de154 100644 --- a/images/stock/Laptop-Coffee-remix.svg +++ b/images/stock/Laptop-Coffee-remix.svg @@ -303,4 +303,4 @@ Pixabay (https://pixabay.com/) \ No newline at end of file + id="path14-9" /> diff --git a/images/team/asankov.jpg b/images/team/asankov.jpg new file mode 100644 index 00000000..54c0ae4b Binary files /dev/null and b/images/team/asankov.jpg differ diff --git a/images/team/atodorov.jpg b/images/team/atodorov.jpg new file mode 100644 index 00000000..55ab28a0 Binary files /dev/null and b/images/team/atodorov.jpg differ diff --git a/images/team/banner.png b/images/team/banner.png new file mode 100644 index 00000000..e9d0de0e Binary files /dev/null and b/images/team/banner.png differ diff --git a/images/team/banner.svg b/images/team/banner.svg new file mode 100644 index 00000000..e42fb958 --- /dev/null +++ b/images/team/banner.svg @@ -0,0 +1,13809 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/team/hiring.png b/images/team/hiring.png new file mode 100644 index 00000000..0a4ad161 Binary files /dev/null and b/images/team/hiring.png differ diff --git a/images/team/hiring_banner.png b/images/team/hiring_banner.png new file mode 100644 index 00000000..763e0ac2 Binary files /dev/null and b/images/team/hiring_banner.png differ diff --git a/images/team/rady.jpg b/images/team/rady.jpg new file mode 100644 index 00000000..fda15956 Binary files /dev/null and b/images/team/rady.jpg differ diff --git a/images/team/rstankova.jpg b/images/team/rstankova.jpg new file mode 100644 index 00000000..c6e5064c Binary files /dev/null and b/images/team/rstankova.jpg differ diff --git a/images/team/zstojnev.jpg b/images/team/zstojnev.jpg new file mode 100644 index 00000000..5f9ca91c Binary files /dev/null and b/images/team/zstojnev.jpg differ diff --git a/images/telemetry/build_status.png b/images/telemetry/build_status.png new file mode 100644 index 00000000..c272273d Binary files /dev/null and b/images/telemetry/build_status.png differ diff --git a/images/telemetry/compare_testruns.png b/images/telemetry/compare_testruns.png new file mode 100644 index 00000000..515eae5a Binary files /dev/null and b/images/telemetry/compare_testruns.png differ diff --git a/images/telemetry/flaky_tests.png b/images/telemetry/flaky_tests.png new file mode 100644 index 00000000..9e8eadfb Binary files /dev/null and b/images/telemetry/flaky_tests.png differ diff --git a/images/telemetry/performance_indicator.png b/images/telemetry/performance_indicator.png new file mode 100644 index 00000000..48382504 Binary files /dev/null and b/images/telemetry/performance_indicator.png differ diff --git a/images/telemetry/social_image.png b/images/telemetry/social_image.png new file mode 100644 index 00000000..8df17c23 Binary files /dev/null and b/images/telemetry/social_image.png differ diff --git a/images/telemetry/tc_breakdown.png b/images/telemetry/tc_breakdown.png new file mode 100644 index 00000000..aed32a54 Binary files /dev/null and b/images/telemetry/tc_breakdown.png differ diff --git a/images/telemetry/tc_executions_card.png b/images/telemetry/tc_executions_card.png new file mode 100644 index 00000000..3a941bc5 Binary files /dev/null and b/images/telemetry/tc_executions_card.png differ diff --git a/images/telemetry/tr_progress_bar.png b/images/telemetry/tr_progress_bar.png new file mode 100644 index 00000000..42dd73ae Binary files /dev/null and b/images/telemetry/tr_progress_bar.png differ diff --git a/images/testcase_shows_bug_details.png b/images/testcase_shows_bug_details.png new file mode 100644 index 00000000..c21100d3 Binary files /dev/null and b/images/testcase_shows_bug_details.png differ diff --git a/images/testcase_shows_bug_details_cache.png b/images/testcase_shows_bug_details_cache.png new file mode 100644 index 00000000..d8c928ba Binary files /dev/null and b/images/testcase_shows_bug_details_cache.png differ diff --git a/images/testcase_shows_bug_details_extended.png b/images/testcase_shows_bug_details_extended.png new file mode 100644 index 00000000..7031e9aa Binary files /dev/null and b/images/testcase_shows_bug_details_extended.png differ diff --git a/images/vola_software/partnership_banner.png b/images/vola_software/partnership_banner.png new file mode 100644 index 00000000..bded98ea Binary files /dev/null and b/images/vola_software/partnership_banner.png differ diff --git a/images/vola_software/partnership_banner.svg b/images/vola_software/partnership_banner.svg new file mode 100644 index 00000000..872e6eb9 --- /dev/null +++ b/images/vola_software/partnership_banner.svg @@ -0,0 +1,6766 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + creating opportunitiesfor Vratsa's youth + & diff --git a/index.html b/index.html index 1290a626..994fbebb 100644 --- a/index.html +++ b/index.html @@ -2,263 +2,748 @@ - Kiwi TCMS - the leading open source test case management system + Kiwi TCMS - the leading open source test management system - - - - - - - + + + + + + + + - - -