This document explains the end-to-end lifecycle of contributions to Zyra, from research and idea exploration through code, documentation, and pull requests. It integrates details from the official CONTRIBUTING guide.
1. Research & Discoveryο
Where: Papers, datasets, GitHub Discussions, Zyra Wiki.
Purpose: Identify gaps, validate ethical/educational impact, and survey existing CLI commands.
Tools:
zyra_capabilities.json
β check if commands exist.Issues β see if bugs or enhancements are already reported.
Discussions β explore community design threads.
2. Idea & Proposalο
Where:
Discussions β for philosophy/design.
Issues β for bugs, features, or workflow gaps.
Templates:
Bug Report β label:
bug
.Feature Request β label:
enhancement
.Workflow Gap β labels:
workflow-gap
,enhancement
.
3. Branching Modelο
main
****: Stable, production-ready branch. Always passes CI/CD.staging
****: Integration branch for feature testing before promotion tomain
.Feature branches:
Create a branch from
staging
, e.g.feature/my-feature
.Merge into
staging
once complete, tested, and reviewed.Maintainers later promote
staging
βmain
for release.
4. Code Developmentο
Pipeline Alignment: Follow Zyraβs modular stages (acquisition β processing β rendering β dissemination).
CLI Manifest: Update
zyra_capabilities.json
if introducing a new command.Tests: Add unit + integration tests (
pytest
).Examples: Provide runnable workflows demonstrating new functionality.
Commit Quality:
Clear commit messages, linked to issue/discussion.
Must include a Signed-off-by line (Developer Certificate of Origin).
Example:Signed-off-by: Jane Doe <jane.doe@example.com>
Optional AI Assistance: Code contributions may optionally be developed using generative AI tools such as OpenAI Codex, Claude Code, or GitHub Copilot. Any AI-assisted code must still meet Zyraβs standards for clarity, reproducibility, and documentation.
5. Documentationο
Two Categories:ο
Docstrings (auto-generated):
Required for all functions, classes, and CLI commands.
Auto-generated into reference docs via Sphinx/pdoc.
Wiki Content (conceptual, educational):
Update directly in the Zyra GitHub Wiki.
Examples: tutorials, best practices, roadmap.
β οΈ The
docs/source/wiki/
folder in the repo is a read-only mirror of the Wiki. Do not edit it directly in PRs.
6. Pull Request (PR)ο
Where: GitHub β from contributor branch into
staging
.Requirements:
Link to related issue/discussion.
Passing CI (tests, linting, docs build).
Updated docstrings and/or Wiki entry.
Clear changelog entry.
Signed-off-by line in each commit.
7. Review & Mergeο
Reviewers: Community + maintainers.
Checklist:
Alignment with Zyra values (reproducible, modular, educational).
Tests + docs included.
No direct edits to
/docs/source/wiki
.Commits include Signed-off-by lines.
Outcome: PR merged into
staging
β promoted tomain
in release cycle.
Example End-to-End Flowο
Researcher notices a gap in comparing datasets.
Posts idea in Discussion β refined into a Feature Request issue.
Contributor codes new
zyra compare
command, updates docstrings, adds tests + examples.Wiki entry added with tutorial.
PR submitted into
staging
, CI passes, reviewers approve.PR merged β later promoted to
main
for release.