5.4 KiB
Contributing
Thank you for your interest in contributing to MokoCassiopeia!
This repository is governed by MokoStandards — the authoritative source of coding standards, workflows, and policies for all Moko Consulting repositories.
Branch Strategy
| Branch | Purpose | Deploys To |
|---|---|---|
main |
Bleeding edge — all development merges here | CI only |
dev/XX.YY.ZZ |
Feature development | Dev server (version: "development") |
version/XX.YY.ZZ |
Stable frozen snapshot | Demo + RS servers |
Development Workflow
1. Create branch: git checkout -b dev/XX.YY.ZZ/my-feature
2. Develop + test (dev server auto-deploys on push)
3. Open PR → main (squash merge only)
4. Auto-release (version branch + tag + GitHub Release created automatically)
Branch Naming
| Prefix | Use |
|---|---|
dev/XX.YY.ZZ |
Feature development (e.g., dev/02.00.00/add-extrafields) |
version/XX.YY.ZZ |
Stable release (auto-created, never manually pushed) |
chore/ |
Automated sync branches (managed by MokoStandards) |
Never use
feature/,hotfix/, orrelease/prefixes — they are not part of the MokoStandards branch strategy.
Commit Conventions
Use conventional commits:
feat(scope): add new extrafield for invoice tracking
fix(sql): correct column type in llx_mytable
docs(readme): update installation instructions
chore(deps): bump enterprise library to 04.02.30
Valid types: feat | fix | docs | chore | ci | refactor | style | test | perf | revert | build
Pull Request Workflow
- Branch from
mainusingdev/XX.YY.ZZ/descriptionformat - Bump the patch version in
README.mdbefore opening the PR - Title must be a valid conventional commit subject line
- Target
main— squash merge only (merge commits are disabled) - CI checks must pass before merge
What Happens on Merge
When your PR is merged to main, these workflows run automatically:
- sync-version-on-merge — auto-bumps patch version, propagates to all file headers
- auto-release — creates
version/XX.YY.ZZbranch, git tag, and GitHub Release - deploy-demo / deploy-rs — deploys to demo and RS servers (if
src/**changed)
Coding Standards
All contributions must follow MokoStandards:
| Standard | Reference |
|---|---|
| Coding Style | coding-style-guide.md |
| File Headers | file-header-standards.md |
| Branching | branch-release-strategy.md |
| Merge Strategy | merge-strategy.md |
| Scripting | scripting-standards.md |
| Build & Release | build-release.md |
PR Checklist
- Branch named
dev/XX.YY.ZZ/description - Patch version bumped in
README.md - Conventional commit format for PR title
- All new files have FILE INFORMATION headers
declare(strict_types=1)in all PHP files- PHPDoc on all public methods
- Tests pass
- CHANGELOG.md updated
- No secrets, tokens, or credentials committed
Custom Workflows
Place repo-specific workflows in .github/workflows/custom/ — they are never overwritten or deleted by MokoStandards sync:
.github/workflows/
├── deploy-dev.yml ← Synced from MokoStandards
├── auto-release.yml ← Synced from MokoStandards
└── custom/ ← Your custom workflows (safe)
└── my-custom-ci.yml
License
By contributing, you agree that your contributions will be licensed under the GPL-3.0-or-later license.
This file is synced from MokoStandards. Do not edit directly — changes will be overwritten on the next sync.