Pre-commit: ruff check and ruff format. Same version pinned as CI. Trailing whitespace, end of file, YAML validation, large file check.
Three CI workflows:
tests.yml (every push and PR): Python 3.10-3.13 on Ubuntu, ruff check + format, pytest (core unit tests, no server), Codecov upload.
integration.yml (manual trigger or tags): Radicale embedded for CalDAV adapter tests, Cyrus Docker for JMAP adapter tests (requires calendaring-jmap installed).
release.yml (version tags): full test suite, PyPI via trusted publishing, GitHub release with generated notes.
See pycalendar/icalendar-anonymizer#10 and pycalendar/icalendar-anonymizer#20.
Pre-commit: ruff check and ruff format. Same version pinned as CI. Trailing whitespace, end of file, YAML validation, large file check.
Three CI workflows:
tests.yml (every push and PR): Python 3.10-3.13 on Ubuntu, ruff check + format, pytest (core unit tests, no server), Codecov upload.
integration.yml (manual trigger or tags): Radicale embedded for CalDAV adapter tests, Cyrus Docker for JMAP adapter tests (requires calendaring-jmap installed).
release.yml (version tags): full test suite, PyPI via trusted publishing, GitHub release with generated notes.
See pycalendar/icalendar-anonymizer#10 and pycalendar/icalendar-anonymizer#20.