Here are some guidelines to follow when contributing to this repository.
We use just to run quality checks on this repo. Whenever you open a PR with some changes, CI will run them automatically. To run them locally, simply run just and look at the available commands.
Our CI adheres to these guiding principles:
- simplicity: our workflows strive to minimize the amount of moving parts (external actions and tooling);
- stability: our workflows should be tested (e.g., statically and manually on
o11y-tester) and versioned, to avoid breaking us and other users; - repeatability: when possible, workflows should be composed of commands that are also executable locally, in order to ease testing;
- decoupling from GitHub CI: minimize the amount of GitHub-specific features (e.g., actions), relying on Bash where possible.
The workflow files follow a naming convention:
- workflows starting with
_are “private”, meaning they are used by other workflows and shouldn't be called from outside this repository; - the name should loosely follow a
{scope}-{function}.yamlschema, to make the folder easily searchable.
The workflows are versioned via GitHub tags. When making a change, please follow this process:
- open a PR to
mainand usejustto lint your workflows; - test your changes manually on
o11y-testerby pointing its workflows to your dev branch; - once you're confident everything works and your PR is approved by a CODEOWNER and merged, determine if your changes are breaking or not:
- for breaking changes, create a new version tag (if the latest is
v1, createv2) - for non-breaking changes, update the latest version tag to point to
main
Helper scripts live in the scripts folder. When contributing a new one, remember to:
- add an entrypoint for your script in
scripts/pyproject.toml; - add a brief description of your script in the
README.md.