This is the org-wide default. GitHub serves it for any optimal2050 repository that carries no
CONTRIBUTING.mdof its own; repositories that do have one add their specifics on top of what is written here.
Thanks for your interest. optimal2050 is a stack of R packages for energy
system modeling — the time and space dimensions (timescales, geoscales),
the model hubs (energyRt, multimod), applied models (IDEEA), and
supporting packages (energypal).
CONVENTIONS.md is the authoritative reference for the whole stack: naming, code style, API design principles, testing, documentation, git policy, and the terms on which AI assistance is used. Whatever you are about to change, the rule for it is most likely already written there.
Each package then adds a CONTRIBUTING.md of its own covering what only that
repository knows: its layout, build and test commands, default branch, and
license.
- Open an issue before starting anything large. The packages are pre-1.0 and APIs still move; a five-minute conversation can save a rewrite.
- Fork, branch, and open the PR against the repository's default branch —
it is not
maineverywhere (energyRtusesdev,multimodusesR6S7). The package's ownCONTRIBUTING.mdnames it. - Conventional Commits (
feat:,fix:,docs:, ...) are encouraged, not enforced. - CI must pass.
- When a change spans two packages, open both PRs and cross-reference them. The dependency direction is one-way and load-bearing — see CONVENTIONS.md.
timescales, geoscales and energypal are Apache-2.0; multimod is MIT;
energyRt and IDEEA are AGPL-3. Do not copy code or data across that
boundary without an explicit maintainer decision. By contributing you agree
your contribution is licensed under the license of the repository you are
contributing to.
Using an LLM to write code, tests, or documentation is encouraged. Disclose
it with a Co-authored-by: / Assisted-by: trailer, review what it produced —
you are responsible for it — and read the repository's .claude/CLAUDE.md
first, which records the traps that fail silently in that codebase. AI tools are
never listed as package authors. Full terms in
CONVENTIONS.md.
Please note that this project is released with a Contributor Code of Conduct. By participating in it you agree to abide by its terms.
Maintainer: Oleg Lugovoy (@olugovoy)