4.10

Feb 11, 2021 除夕

I’m pleased to announce a new release 4.10 is available now.

Happy Chinese New Year! 牛年大吉!🎆

Highlights

Bugfixes

  • The export from a test run is fixed. User is able to export selected case runs (PR#860).

  • Fix incorrect URL encode during exporting test case runs to a CSV file (#868).

  • Fix wrong Python version in WSGIScriptAlias path (#872)

  • Add csrf_token to delete confirmation form (#892)

  • Fix removing a case with its email settings together (PR#893)

JavaScript codebase cleanup

  • No frontend feature depends on handlebars.js library now, it is removed from static/js/lib/.

  • JavaScript files hole.js, validations.js, detetmine_type.js and scriptaculous-controls.js.patch are not used anymore. They are deleted from the codebase.

  • Use HTMLOrForeignElement.dataset to refactor and simplify the code that access data-* data in a test run page. Meanwhile, the data-param and data-params attributes are also renamed to more meaningful word accordingly. For example to set a direct URL to change a test run’s status, the data attribute name is data-action-url.

Dependencies

  • Django 2.1 is dropped. (#884)

  • django-tinymce is upgraded to version 3.2.0.

Infrastructure improvements

  • The latest image built based on the latest develop branch and the release image shares a same Dockerfile to be built. Hence, when you pull the latest image and run locally, you could have a same environment to try Nitrate. Please note that, the latest image does not aim to be used in production.

  • The image size is reduced at least 30%.

  • SECRET_KEY must be set explicitly now during deployment to your own environment. For the reason why this is required, please refer to Django’s documentation about the SECRET_KEY.

  • A new entrypoint is added to the released container image. It is responsbile for initializing the instance on-demand by defining specific environment variables, for example, setting NITRATE_MIGRATE_DB to run database migration. For full detailed information, please refer to the image registry. These variables are useful for the first run particularly, or make it easy to initialize to run in a non-production environment. Be careful of setting these variables, use them when you really know what you want to do and what will happen.

  • Nitrate is able to be fully customized by mounting a container’s volume and provide a custom settings Python module.

  • New CI workflow is added to build RPM from latest develop branch, and then build and push latest image to Quay.io registry. (PR#883)

Get and install

From PyPI:

pip install nitrate-tcms

From image registry:

docker pull quay.io/nitrate/nitrate:4.10

Refer to Deployment for details of installation.

Database Migration

No database migration.

Change Log

  • Fix script make-release

  • Prevent Fedora rawhide from impacting CI

  • Fix removing a case with its email settings together

  • Add csrf_token to delete confirmation form (#892)

  • Reduce image size

  • Quote empty value for vendor label properly

  • Upgrade celery to 5.0.5

  • Drop Django 2.1 (#884)

  • Apply tag latest to latest image by default

  • Add more metadata to image (#881)

  • Fetch all history in order to run git-describe

  • Add missed CONTAINER=docker to make latest-image

  • Give dev-release workflow a meaningful name

  • Use f33 to schedule latest RPM build

  • Fix coveralls 422 Client Error

  • Use single Dockerfile to build latest and release image

  • Test building Fedora rawhide package

  • Massiv update image README

  • Add entrypoint to release image (#459)

  • SECRET_KEY must be set explicitly

  • Add Fedora Copr badge

  • Make it easier to customize the settings (#815)

  • Fix wrong Python version in WSGIScriptAlias path (#872)

  • Cleanup settings

  • Remove one for-loop through case runs for generating a test run report

  • Reuse CaseRunStatusGroupByResult to generate test run report

  • Simplify the code of exporting case runs

  • Fix incorrect log link url encode (#868)

  • JS: use dataset to replace data-params

  • Remove unused templates

  • Add custom template linter and fix detected issues (#859)

  • Fix docstrings using sphnix Python domain syntax

  • Remove unused src/templates/run/common/run_filtered.html

  • Set first request argument properly for test_filter_plans

  • Keep the order by pk during serializing m2m field for XMLRPC

  • JS: use dataset in case, plan, run, environment features

  • JS: use dataset in test plan features

  • Fix test on run statistics

  • Remove duplicate template of tag list in a test run

  • JS: use dataset to refactor setting case run sortkey

  • JS: use dataset to refactor adding and removing cc

  • JS: use dataset to refactor the environment values management

  • JS: use dataset to refactor adding and removing tags to and from a test run

  • JS: use dataset to refactor filtering case runs from run statistics

  • JS: remove duplicate event handlers based on selected case runs

  • JS: use dataset for editing a test run

  • JS: use dataset for exporting case runs

  • JS: use dataset for deleting a test run

  • JS: use dataset for setting a test run status

  • JS: use dataset for deleting issue from a case run

  • Replace 2 spaces with one tab

  • Merge branch ‘release-4.9.x’ into develop

  • JS: remove detetmine_type.js (#852)

  • JS: remove validations.js (#853)

  • JS: remove hole.js (#854)

  • JS: remove scriptaculous-controls.js.patch (#855)

  • Rewrite add tag dialog (#848)

  • Merge branch ‘release-4.9’ into develop

  • Release 4.9.1

  • Declare HTML5 in base template