forked from ALF-QMC/ALF
-
Notifications
You must be signed in to change notification settings - Fork 0
Developer Guide
Johannes Hofmann edited this page Apr 18, 2026
·
2 revisions
Information for contributors and maintainers of the ALF codebase.
See CONTRIBUTING.md for the full community guidelines. Key points:
- ALF is released under GPL v3 with an attribution clause.
- Bug fixes and portability patches are welcome from everyone via pull requests.
- New features should be discussed in a GitHub issue first.
| Level | Who | How to get access |
|---|---|---|
| User | Anyone | Clone the public repo |
| Contributor | Anyone | Submit a pull request |
| Developer (write access) | By application | Open a public issue + non-interference declaration |
| Core developer (owner) | By vote | Open a public issue + unanimous vote of existing owners |
- Create a feature branch from
master - Build with the
develflag for extra runtime checks:source configure.sh GNU nompi devel - Run the test suite (see Test Suite)
- Update
CHANGELOG.mdwith your changes - Submit a pull request — CI runs automatically
The devel flag in configure.sh enables:
- Array bounds checking
- Floating-point exception traps (NaN, overflow)
- Additional compiler warnings
source configure.sh GNU nompi devel
make cleanlib cleanprog
make -j5 program- Fortran 2008 with submodule support
- Modules use
_modsuffix, submodules use_smodsuffix - Hamiltonians are submodules of
Hamiltonian_main - Use
Kind=Kind(0.d0)for double precision - MPI/OpenMP code is guarded by preprocessor macros (
#ifdef MPI,#ifdef TEMPERING)
- Test Suite — Running and writing tests
- Code Architecture — Module structure and data flow
- Release Process — Versioning and release cycle