| title | Contributing |
|---|---|
| description | How to contribute to the Nexus-Stack project |
| order | 6 |
We use Conventional Commits to automate versioning and changelog generation.
<type>(<scope>): <description>
[optional body]
[optional footer]
| Type | Description | Version Bump |
|---|---|---|
feat |
New feature | Minor (0.1.0 → 0.2.0) |
fix |
Bug fix | Patch (0.1.0 → 0.1.1) |
refactor |
Code change (no new feature, no bug fix) | Patch |
perf |
Performance improvement | Patch |
docs |
Documentation only | Patch |
style |
Formatting, missing semicolons, etc. | Patch |
test |
Adding tests | Patch |
chore |
Maintenance tasks | Patch |
ci |
CI/CD changes | Patch |
build |
Build system changes | Patch |
For breaking changes, add ! after the type or include BREAKING CHANGE: in the footer:
# Option 1: With !
feat!: Remove deprecated API endpoints
# Option 2: In footer
feat: Restructure configuration format
BREAKING CHANGE: The nexus.tfvars format has changed.Breaking changes trigger a Major version bump (0.1.0 → 1.0.0).
# Feature (Minor bump)
feat: Add Airflow stack
# Feature with scope
feat(stacks): Add Apache Spark integration
# Bug fix (Patch bump)
fix: Correct Grafana port mapping
# Documentation
docs: Update installation instructions
# Refactoring
refactor: Simplify deploy script
# Breaking change (Major bump)
feat!: Change secret management to Vault-only| Scope | Use for |
|---|---|
stacks |
Docker stack changes |
tofu |
OpenTofu/Infrastructure changes |
docs |
Documentation |
ci |
GitHub Actions / CI |
scripts |
Shell scripts |
Releases are created automatically when commits are pushed to main:
- GitHub Action analyzes commits since last tag
- Determines version bump based on commit types
- Generates changelog
- Creates GitHub Release with tag
No manual tagging required!
- Create a feature branch from
main - Make changes with conventional commits
- Open PR to
main - After merge → Release is created automatically
# Example workflow
git checkout -b feat/add-airflow
# ... make changes ...
git commit -m "feat(stacks): Add Apache Airflow orchestrator"
git push origin feat/add-airflow
# Open PR, get review, merge
# → v0.X.0 release created automaticallySample Kestra flows, notebooks, dbt models, and other starter material that ships with Nexus-Stack lives under examples/workspace-seeds/ and gets auto-seeded into every student's Forgejo workspace repo on spin-up. Conventions, the path-mapping rules, and the no-schedule-triggers in seeded flows rule are documented in examples/README.md. Read that before adding a new sample.