Contributor Guide
Welcome to the development side of LatticeQM. This guide outlines how to contribute code, documentation, and examples while keeping the project maintainable.
Development setup
- Fork/clone the repository and develop the package locally:
julia using Pkg Pkg.develop(path="/path/to/LatticeQM") - Install optional tooling:
Revise,Documenter,Plots,IJulia. - Run the test suite (
julia --project -e 'using Pkg; Pkg.test()') before opening a merge request.
Coding standards
- Prefer explicit imports (
import .Module: function) and keep docstrings up to date with argument/keyword descriptions. - Use ASCII unless physics notation requires otherwise.
- Add concise comments ahead of non-trivial code blocks explaining the intent.
Documentation workflow
- Update or create doc pages in
extra/docs/src/. - When adding notebooks or examples, include a short README summarising usage and runtime expectations.
- Run
julia --project=extra/docs/ make.jlto preview the docs locally.
Branching and commits
- Work on topic branches (
docs/tutorial-structure,feat/meanfield-update). - Keep commits focused; describe both intent and scope.
- Reference related issues in commit messages when relevant.
Review checklist
- Tests pass and new functionality has coverage (unit tests or runnable examples).
- Documentation reflects API changes and links to newly created artefacts.
- Examples run end-to-end or include notes about outstanding validation steps.
Release coordination
- Before tagging a release, ensure the docs build cleanly and all relevant hyperlinks resolve.
Getting help
- Open a discussion or issue with context (Julia version, environment, stack trace).
- Tag module maintainers when code touches their area.