Development
Setup and checks
The aggregate target runs Ruff linting and format validation, strict mypy,
actionlint, pytest (including property-based tests), and a strict documentation
build. Individual targets are make lint, make format-check, make typecheck,
make workflow-lint, make test, and make docs.
Preview documentation with make docs-serve.
Continuous integration
The CI workflow runs quality checks on Python 3.13, tests supported Python versions
across Linux, macOS, and Windows, and installs built wheels into clean Python
3.10–3.13 environments for smoke testing. Documentation pull requests must build
strictly; pushes to main deploy the generated site through GitHub Pages.
Releases
Package-affecting pushes to main run the full validation suite and compare the
declared version with PyPI. A version not already present is built and published
through PyPI Trusted Publishing and the protected pypi GitHub environment. An
existing version passes validation but skips the immutable PyPI upload.
Configure the PyPI Trusted Publisher with owner ryan-wolbeck, repository
agentlogsafe, workflow filename publish.yml, and environment pypi. No API token
or repository secret is required.
Before tagging:
- Update the version in
pyproject.tomlandagentlogsafe/__init__.py. - Update
CHANGELOG.mdand the documentation. - Run
make checkfrom a clean checkout. - Merge the version change to
main; the publishing workflow handles the release.
The workflow verifies that pyproject.toml and agentlogsafe.__version__ agree. A
manual workflow dispatch publishes only when it is run from main and the version is
new.
GitHub Pages setup
In repository settings, set Pages → Build and deployment → Source to GitHub
Actions. Update site_url, repo_url, and repo_name in mkdocs.yml after the
final GitHub organization or account is known.
Contribution expectations
Keep runtime code standard-library-only, add tests for behavior changes, avoid logging new sensitive fields by default, and document user-visible changes.