1
0
Fork 0
mirror of https://github.com/Kozea/Radicale.git synced 2025-06-26 16:45:52 +00:00
14 Development Testing Release
Peter Bieringer edited this page 2025-04-23 18:12:11 +02:00

Development

(TODO)

Github Workflows

Issue with "Coveralls.io"

Error running coveralls: Could not submit coverage: 405 Client Error: Method Not Allowed for url: https://coveralls.io/api/v1/jobs

Check for announced downtime: https://coveralls.io/ -> restart workflow after external service is up again.

Testing

Preparation

Installation of test frameworks

  • Fedora / Enterprise Linux
dnf install python3-pytest python-tox python-typeguard python-flake8

(TODO: other OS/distributions)

Execution

Run in main source directory

Directory Cleanup (optional)

Note: will remove everything untracked, even ignored

git clean -fdx

Syntax check

flake8

Run tests

All defined tests

pytest

Particular defined test

Option -k can be used to select specific sub-tests

Example:

pytest radicale/tests/test_base.py [-k test_overwrite_collection]

Complete test suite

Note: in case of strange errors add option -r for recreation of environment

tox

(more coming next)

Release

Verifications

  • All last actions successfully executed
  • CHANGELOG.md is up-to-date
  • No important issues still pending
  • Local repository is up-to-date: git pull

Preparation

File Action
CHANGELOG.md replace 3.*.dev with $VERSION
setup.py.legacy replace 3.*.dev with $VERSION
pyproject.toml replace 3.*.dev with $VERSION

Commit changes

git commit -a 

Create release tag

git tag v$VERSION

Push

git push
git push --tags

Release

Draft new release

  • Release title: VERSION (depending on changes)
  • Description: (copy part from CHANGELOG.md and sort by section)
  • Set it as pre-release until EL/Fedora RPMs are built

Note: in case something needs to be corrected, create a new tag v$VERSION-SEQ and change tag of release

Latest release

After RPMs are successfully built, mark it as latest release

Rebase major version

  • Rebase major version branch (currently "v3") with "master"
git checkout v3
git rebase v$VERSION
git push
git checkout master

Turn back master to devel

File Action
CHANGELOG.md add new section with $VERSIONnext.dev
setup.py.legacy replace $VERSION with $VERSIONnext.dev
pyproject.toml replace $VERSION with $VERSIONnext.dev

Commit changes

git commit -a 

Push

git push