Skip to content

Development Testing Release

Peter Bieringer edited this page Jan 9, 2025 · 12 revisions

Development

(TODO)

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