Thank you for contributing!
This project is maintained with a focus on consistency across multiple related repositories.
mainanddevelopbranches are managed directly by maintainers- Contributors should NOT push directly to
mainordevelop - All changes must be submitted via Pull Request
- Releases are managed via Git tags
- No separate release branches are used
- All changes must go through Pull Request
- Keep PRs small and focused (one logical change per PR)
- Avoid mixing unrelated changes
- What was changed
- Why it was changed
- How it was tested (or verified)
Use the following prefixes:
feat- for new features or enhancementsfix- for bug fixeschore- for maintenance tasks (e.g., updating dependencies, formatting)test- for adding or updating testsbuild- for build-related changes (e.g., CI configuration)refactor- for code restructuring without changing functionality
- Messages must be written in sentence form
featmessages must start with an imperative verb
feat: Add terrain sampling option
fix: Resolve bounding box overflow issue
refactor: Simplify voxel processing logic
chore: Update dependency versions
mago-common is a shared module used across multiple projects such as:
- mago-3d-tiler
- mago-3d-terrainer
- Only implement general-purpose and reusable logic
- Avoid project-specific code inside
mago-common - Keep the structure simple and broadly applicable
- All modifications must be carefully reviewed before merging
- Changes in common logic may affect multiple projects
This repository uses git subtree for synchronization.
- Do NOT run
git subtree push - Use
git subtree pullonly when syncing - Shared logic must be updated at the source before syncing
Pull Requests will be reviewed based on:
- Reusability (no project-specific logic in common modules)
- Code clarity and simplicity
- Avoidance of duplicated logic
- Minimal and focused changes
- Add tests when applicable
- If tests are not included, clearly describe how the change was verified
If your change affects shared logic or has wide impact,
please discuss it before implementation.
When unsure, open an issue first.