Development

Calendar-Smith is open source and welcomes contributions!

GitHub Repository

The source code is hosted on GitHub: https://github.com/yeiichi/calendar-smith

Development setup

The project uses uv for dependency management.

git clone https://github.com/yeiichi/calendar-smith.git
cd calendar-smith
pip install -e ".[dev]"

Running tests

To run the full test suite:

pytest

To check code coverage:

pytest --cov=calendar_smith

Building documentation

To build the documentation locally:

cd docs
make html

The output will be in docs/build/html.

Style and quality

We aim for high quality and minimal dependencies:

  • Zero External Dependencies: Only the Python Standard Library (3.10+) should be used in the core code.

  • Type Annotations: All public APIs should have type hints.

  • Testing: New features must include tests.

  • Documentation: New features should be documented in the relevant files.

Releasing

The project uses python-semantic-release for automated versioning and changelog generation.

When a pull request is merged to the main branch, the version is automatically bumped based on the commit messages (following Conventional Commits).

Notes

  • Follow the existing code style.

  • Use meaningful commit messages.

  • Ensure all tests pass before submitting a pull request.