Proposal and approval#
Stage 1 of the contribution workflow. No code is written before the issue has been approved. This gate protects contributors from wasted effort and protects the project from scope creep.
For open-ended questions or ideas that are not yet actionable, use GitHub Discussions. Use issues only for work that needs triage and tracking.
Path A or Path B?#
The contributor arrives with an interest in BIOMASS BPS. The first decision is whether an issue already exists in the backlog or whether one needs to be opened.
flowchart TD
Contributor([Contributor with an idea or a problem])
Backlog[(The backlog<br/>ready-to-pick issues)]
Contributor -->|existing issue| Backlog
Contributor -->|new idea| PathB1
Backlog --> PathA
subgraph PathA[Path A · Pick an existing issue]
direction TB
Cat1[good-first-issue]
Cat2[help-wanted]
Cat3[Bug fix]
Cat4[Scientific feature]
end
PathA --> Gate
subgraph PathBflow[Path B · Propose a new issue]
direction TB
PathB1[01 · Open the issue<br/>processor, case, expected impact]
PathB2[02 · SME assignment<br/>auto-routed to the right expert]
PathB3[03 · Scientific review<br/>paper, data, prior results]
PathB4{04 · Go or no-go<br/>maintainer + SME<br/>ESA if required}
PathB1 --> PathB2 --> PathB3 --> PathB4
end
PathB4 -->|iterate, more evidence| PathB3
PathB4 -->|rejected| Closed[Issue closed]
PathB4 -->|approved| Gate
Gate{{"Approval gate<br/>status:approved · good-first-issue · help-wanted"}}
Gate -->|approved, feeds backlog| Backlog
Gate -->|picked up| Code[Stage 2 · Implementation]
classDef gate fill:#FFE082,stroke:#FFB300,color:#000
class Gate gate
Path A: pick an existing issue#
Browse the Issues tab and look only at issues that already carry one of the three approval labels:
status:approved: triaged, scoped, ready to be picked up.good-first-issue: approved and explicitly suitable for newcomers.help-wanted: approved and the project actively welcomes external contributions.
An open issue without one of these labels is still under triage or discussion. Comment on it to express interest; do not start coding yet.
Path B: propose a new issue#
If no approved issue matches what you want to work on, open a new one using the appropriate issue template. The proposal then walks through four steps:
State the processor concerned, the scientific or operational case, and the expected impact.
The issue is automatically routed to the right Scientific Module Expert based on CODEOWNERS rules.
The SME evaluates the evidence: peer-reviewed references, data, prior results, comparison with alternatives.
The maintainer and SME decide. Significant changes escalate to ESA. The issue may iterate for more evidence, be rejected, or be approved.
Triage usually completes within five working days. Once scope is
settled, the issue receives status:approved, good-first-issue, or
help-wanted and joins the backlog ready for someone to pick.
Scientific proposals may require SME review and, for significant changes, escalation to ESA. See Governance for roles and decision authority.
Choose your issue type#
flowchart TD
Q([What are you reporting?]) --> Bug[Bug in processor / CI / docs]
Q --> Feature[Non-scientific feature or tooling]
Q --> Algo[Scientific algorithm or methodology change]
Q --> Docs[Documentation error or gap]
Q --> Sec[Security concern]
Bug --> T1[01 Bug report template]
Feature --> T2[02 Feature or enhancement template]
Algo --> T3[03 Algorithm proposal template]
Docs --> T4[04 Documentation issue template]
Sec --> T5[05 Security report template]
Template |
When to use |
Open |
|---|---|---|
Bug report |
A defect in a processor, the CI, or the documentation |
|
Feature or enhancement |
A non-scientific feature or tooling improvement |
|
Algorithm proposal |
A new scientific algorithm or methodological change (justification required) |
|
Documentation issue |
An error, gap, or improvement in the documentation |
|
Security report |
A non-sensitive security concern (sensitive issues → private advisory) |
Bug reports and enhancement requests#
Bug reports are an important part of making BIOMASS BPS more stable. A complete bug report allows others to reproduce the bug and provides insight into fixing it.
Trying out the bug-producing code on the main branch is often a
worthwhile exercise to confirm that the bug still exists. It is also
worth searching existing bug reports and pull requests to see if the
issue has already been reported and fixed.
Submitting a bug report#
Open an issue using the Bug report template. The template guides you through the structured fields the maintainers need. For feature requests, algorithm proposals, documentation issues, and security reports, use the matching template instead.
If you are reporting a bug, please use the provided template which includes the following:
Include a short, self-contained code snippet reproducing the problem. You can format the code nicely by using GitHub Flavored Markdown:
from bps_common import ...
# Your code that reproduces the bug
Include the full version string of BPS and its dependencies. The global version is tracked in the
VERSIONfile at the root of the repository.Explain why the current behavior is wrong/not desired and what you expect instead.
The issue will then be open to comments/ideas from the team.
See this Stack Overflow article for tips on writing a good bug report.
Previous: Contributing overview | Next: Implementation