Contributing to ArchMAP¶
Thanks for contributing! Please read our Code of Conduct first.
Prerequisites¶
- Python >= 3.11
- pip >= 23
- Git
Setup¶
Running the tool locally¶
# Analyze a project
archmap analyze <path>
# Start the interactive Web UI
archmap serve <path>
# Compare two git refs
archmap diff HEAD~5 HEAD
Running tests¶
pytest # all tests with coverage
pytest tests/test_cli.py # single module
pytest -k "parser" # filter by name
Running lint¶
Building the Windows executable (PyInstaller)¶
Branching model¶
main: stable branch onlydev: integration branch for upcoming releasefeat/*: one feature per branchfeature/*: legacy alias supportedfix/*: bugfix branchesdocs/*: documentation-only changesrelease/*: stabilization and release prep
Flow: feat/* -> dev -> release/* -> main
Development checklist before opening a PR¶
- Branch from
dev(ormainonly for urgent production fixes). - Implement changes with tests.
- Run quality gates:
ruff check .
pytest
archmap analyze . --format both --out .codeatlas/local-graph.json --out-mermaid .codeatlas/local-graph.mmd --include-cytoscape
python -m archmap.cli.main analyze . --fail-on-risks
- Update
CHANGELOG.md,README.md, orROADMAP.mdif behavior changes. - Open a PR using the repository template.
Coding guidelines¶
- Keep modules focused and composable.
- Prefer explicit data contracts for analyzer outputs (typed dicts).
- Add tests for any parser/analyzer/exporter behavior changes.
- Preserve CLI compatibility unless a major release justifies breaking changes.
Original distribution attribution¶
ArchMAP is originally distributed by Kaua Gabriel (Kaua-KGzin).
When redistributing source code or binaries, preserve:
- LICENSE
- NOTICE.md