Contributing to OSWatcher

August 21, 2026 ยท View on GitHub

Thanks for looking. OSWatcher is a multi-repository project, so the first question is usually which repository.

Where does my change go?

ChangeRepository
Snapshot, diff or object-storage behaviourneogit
A new analysis or capture pluginoswatcher-plugins
Neo4j-side query proceduresoswatcher-procedures
Image building, update chains, capture pipelineosw-builder
Compose stack, deployment, backup scriptsoswatcher-deploy
API schema or resolversgraphql-api
Web interfacefrontend
Anything cross-cutting, or you are not sureoswatcher

Writing a plugin is the lowest-friction way in: oswatcher-plugins consumes an already-captured graph, so you do not need KVM, Packer or installation media to work on it.

Before you start

Open an issue first for anything beyond a small fix. This is a solo-maintained project and it is much better to find out early that something is already in flight or heading a different direction.

Pull requests

  • Branch from the repository's default branch, and keep one logical change per PR.
  • CI must be green. Each repository documents its own setup, generally Poetry for the Python repositories and npm for the TypeScript ones.
  • Match the existing style. The Python repositories run black, flake8 and mypy.
  • Add a test when you fix a bug or add behaviour.
  • Write commit messages that explain why, not just what.

Licensing

The active stack is Apache 2.0. By contributing you agree that your contribution is licensed under the same terms as the repository you are contributing to.

Security

Do not report vulnerabilities in issues or pull requests. See SECURITY.md.