Implementation#

Stage 2 of the contribution workflow. Once your issue carries an approval label, fork the repository, implement the change, run local checks, sign your commits, and open a pull request.

For step-by-step commands, see Practical workflow.


Contribution Process Contribution Process

Five steps from approved issue to live PR#

You start with an approved issue in hand and end with a pull request live on GitHub that the CI has begun classifying. Each step is small; together they keep the diff focused and the CI stable.

01

Fork and branch

Fork the repository on GitHub and create a feature branch from an up-to-date develop. Branch prefix: feature/, bugfix/, or docs/.

02

Implement and test

Code the change inside the approved scope. Add or update tests so the behaviour is exercised at the right tier (unit, baseline, extended).

03

Local checks

Run ruff, mypy, and pytest -m unit locally. Add baseline if you expect the marker output to move. Save the CI a round-trip.

04

Commit, signed off

Every commit needs a Signed-off-by: trailer for the DCO. Group related changes into atomic commits with clear messages.

05

Open the pull request

Push the branch and open a PR against develop that links the issue with Closes #N. The CI starts and the tier is computed from the diff.

Tip

Local mirror of the CI gate. Running ruff check . && mypy . && pytest -m unit before pushing catches more than 90 % of CI failures.

Workflow conventions#

  • Start from develop: always create feature branches from an up-to-date develop.

  • One feature per branch: keep changes focused and atomic.

  • Stay in sync: rebase or merge develop regularly to avoid surprise conflicts.

  • Commit small and often: small, logical commits make review and bisect much easier.

  • Mirror the CI locally: run pre-commit, ruff, mypy, and the unit suite before pushing.

DCO: Developer Certificate of Origin#

Every commit (excluding merge commits) must carry a Signed-off-by: trailer. This is a legal statement that you wrote the code and have the right to contribute it under the project’s license.

# Sign a commit
git commit -s -m "feat: my contribution"

# Enable automatic signing for all commits
git config format.signoff true

Remediation if you forgot:

git commit --amend --signoff
git push --force-with-lease

The baseline-dco CI job blocks any PR containing an unsigned commit.


Previous: Proposal and approval | Next: Review and integration