Templates and checklists#
Structured forms and checklists so contributors are never lost between the project and GitHub. Four touchpoints guide every contribution:
Auto tier classification: every PR is risk-scored on opening from the diff; no manual tier labels. See CI automation and contribution tiers.
CODEOWNERS routing: the right SME is auto-assigned from the files touched.
Issue and PR templates: structured forms for every issue type and pull request (below).
PR guidance comment: CI posts a sticky summary with tier, job status, and reviewers needed.
This page also lists help resources, learning links, and pre-submission checklists.
Table of Contents#
Getting Help
Templates
Resources
Checklist for Contributors
Recognition
Getting Help#
For complete information about communication channels and meetings, see the Communication page.
Quick reference#
Where |
What for |
|---|---|
Actionable items only: bug reports, feature requests, algorithm proposals, documentation issues, security reports. Use the matching template. |
|
Open ended questions, brainstorming, scientific discussions, governance, community. |
|
Office Hours |
Planned weekly open session for contributor questions (not scheduled yet). |
Community Meetings |
Planned regular community meetings (not scheduled yet). |
The recommended place to ask a question is GitHub Discussions. The Q&A category is monitored by maintainers and contributors.
Before asking for help#
Check the documentation.
Search Discussions.
Review similar PRs.
Opening an issue#
Every issue must be filed through one of the five templates. The template
chooser at
/issues/new/choose
walks you through the options.
Templates#
Issue templates#
Five issue templates are available at
/issues/new/choose.
Pick the one that matches what you want to report. Each template asks for
exactly the information the maintainers need to triage and route the issue
to the right reviewer.
Template |
When to use |
|---|---|
01 Bug report |
A defect in a processor, the CI/CD pipeline, or the documentation. |
02 Feature or enhancement request |
A non-scientific feature, an enhancement to an existing component, or a tooling improvement. |
03 Algorithm proposal |
A new scientific algorithm, a methodological change, or any modification with a scientific impact on the processing chain. Scientific justification is required. |
04 Documentation issue |
An error, a gap, an outdated section, a broken link, or a request for clarification in the documentation. |
05 Security report |
A non-sensitive security concern, hardening recommendation, or supply-chain issue. Sensitive vulnerabilities go through a private security advisory instead. |
Discussions categories#
Six categories on GitHub Discussions host the conversations that are not yet actionable issues.
Category |
When to use |
|---|---|
Project announcements, releases, governance decisions. Posts restricted to maintainers. |
|
Ask anything about usage, installation, API, processing chain, data formats. Mark the helpful reply as the answer. |
|
Brainstorm a feature or a change before opening a tracking issue. |
|
Algorithms, validation, methodology, ATBD interpretations, references. |
|
Project governance, maintainer paths, policy questions, open source strategy. |
|
Introductions, usage stories, downstream projects, papers, conference talks. |
Pull Request template#
Every PR uses the standard template that ships with the repository. It is auto-filled when you open a PR from the GitHub UI. The template covers:
The linked issue and its approval label (
status:approved,good-first-issue, orhelp-wanted).A short description of what the PR changes (not the problem, that lives in the issue).
Notes for reviewers.
User-facing change flag and release-note sentence.
Documentation update flag.
Expected tier (computed automatically by CI, your declaration just helps reviewers spot a mismatch).
AI assistance disclosure.
A short checklist of items the CI cannot verify on its own (scope match, single issue, breaking change flagged, reviewer competence).
Licensing PR Description Template#
When adding external libraries or dependencies to your PR, include the following information in your PR description:
## Dependencies Added
- **library-name** (v1.2.3)
- License: MIT
- Purpose: [Brief description]
- Compatibility: Compatible with Apache 2.0
- License URL: [Link to license]
For complete licensing requirements, see the Licensing section.
Resources#
Documentation#
Getting Started - Introduction and getting started guide
Code of Conduct - Community standards and expectations
Contributing overview - Journey-based contribution workflow
Governance - Roles, responsibilities, and decision-making
Processor leads - Scientific and technical contacts per module
Architecture - Monorepo layout,
bps-*modules, and processor structureCode standards - Coding conventions and best practices
Documentation standards - Documentation writing standards and best practices
CI automation and contribution tiers - Pipeline reference, tier detection, branch protection
Release process - How to prepare and publish a release
Communication - Communication channels and meeting schedules
Licensing - Apache 2.0 license requirements and legal obligations
Learning Resources#
Git and Version Control:
Pro Git Book (free online)
Python Development:
Real Python - Python tutorials and guides
Testing:
Scientific Python:
xarray Documentation - Similar project structure
Code Quality:
External Resources#
FAIR Principles: https://www.go-fair.org/fair-principles/
ESA Open Science: https://www.esa.int/Science_Exploration/Space_Science/Open_Science
Open Source Guides: https://opensource.guide/
Workshops and Training#
Onboarding Workshops: Monthly sessions for new contributors (2h)
Technical Training: Quarterly sessions on tools and processes
Hackathons: Annual community events
Intercomparison Exercises: Regular scientific validation activities
Checklist for Contributors#
Before Submitting a PR#
Issue and scope:
A tracking issue exists for this change.
The issue is labelled
status:approved,good-first-issue, orhelp-wanted.The PR closes exactly one issue, and the scope matches what was approved.
Code Quality:
Pre-commit hooks installed and passing (
pre-commit run --all-files).Code formatted with
ruff format src/ test/.Linting clean:
ruff check --fix src/ test/.Type hints present where appropriate;
mypypasses.All code follows the Code standards.
No secrets or sensitive data in code.
DCO and Licensing:
All commits carry a
Signed-off-by:trailer (git commit -s).New files include SPDX headers (
SPDX-FileCopyrightText+SPDX-License-Identifier: Apache-2.0).reuse lintpasses locally (or the pre-commit reuse hook passes).
Testing:
Tests added or modified and passing (
pytest -m baselineontest/baseline/).Baseline reference outputs updated if the behaviour intentionally changed.
If targeting
release, you understand that theCI gatewill be red until a maintainer triggers the workflow withrun_heavy=true.
Documentation:
Docstrings added or updated.
Documentation site updated if the change is user facing.
Pull Request:
PR template completed fully.
Clear description of what changes (not the problem, that lives in the issue).
Commit messages are clear and descriptive.
Scientific validation completed or summary included for Tier 1 and Tier 2 changes.
Branch up to date with
develop, no merge conflicts.All CI checks passing (
CI gategreen).
During Review#
Respond to comments promptly (< 3 days)
Address all points raised by reviewers
Update PR with corrections
Communicate clearly about changes
Re-run tests after changes
Update documentation if requested
Recognition#
Contributors are recognized in:
Release notes
Project documentation
Community communications
Annual contributor acknowledgments
Thank you for contributing to BIOMASS BPS! Your efforts help advance open science and Earth observation capabilities.
Questions? Ask on GitHub Discussions. The Q&A category is the recommended place for usage questions, and Scientific discussions for algorithm and methodology topics. Open issues are reserved for actionable items that match one of the five templates.
Last Updated: 2026
Previous: Practical workflow | Next: Becoming a maintainer