Contributing to rmorie-bricklayer
Source:CONTRIBUTING.md
Thanks for considering a contribution. This kit lives or dies by being boring and reliable — academic reviewers should never wonder why something is the way it is.
Scope
In scope: - Cross-platform fixes (Linux/Windows quirks, OS-detection edge cases) - New data-source resolvers (Dataverse, Zenodo, plain HTTPS) — see docs/data_sources.md - New synthetic-column types in lib_synthetic.R - Improved error messages, especially “first-run” failures - Documentation, FAQs, examples
Out of scope (politely declined): - Replacing R with another language - Adding Docker / containerization as a required step - Required cloud services or sign-ins - Telemetry / analytics - Anything that breaks the “R-only” floor
Code style
- R: tidyverse style guide is fine, but prefer base R where it doesn’t hurt readability — the framework should run on a fresh R install with minimal packages.
- bash:
set -euo pipefail, double-quote variable expansions, prefer[[ ]]over[ ]. - JSON: 2-space indent, trailing comma-free (JSON spec).
- All scripts: shebang, header comment explaining purpose, AGPL-3.0-or-later licence note.
Tests before pull request
This must pass before opening a PR. If your change touches lib_synthetic.R or the synthesis recipe schema, also run:
(End-to-end with real data, to confirm 28/36 PASS from the public CSV.)
Submitting
- Fork the repo.
- Branch from
mainnamedtopic/<short-description>. - Commit with
Conventional Commitsstyle:feat:,fix:,docs:,refactor:,test:. - Open a PR; describe what changed and why, and include the test output.
Security issues
Email vsruhela@proton.me directly rather than opening a public issue. The framework runs other people’s code on reviewers’ machines — security bugs are taken seriously.
Code of conduct
This project is released with a Contributor Code of Conduct; by participating you agree to abide by its terms. In short: be kind. This is academic infrastructure. The audience is grad students and reviewers, not seasoned ops engineers. If an error message is unclear, fix the error message.