BoilerWorks

boilerworks / docs / contributing.md
Source Blame History 54 lines
6f83112… anonymous 1 # Contributing
6f83112… anonymous 2
6f83112… anonymous 3 ## Ways to contribute
6f83112… anonymous 4
6f83112… anonymous 5 - **Add a template** — build a new stack using the [boilerworks conventions](https://github.com/ConflictHQ/boilerworks/blob/main/primers/PROCESS.md) and open a PR to add it to the catalogue
6f83112… anonymous 6 - **Improve docs** — fix errors, improve clarity, add examples
6f83112… anonymous 7 - **Report bugs** — open an issue with steps to reproduce
6f83112… anonymous 8 - **Request a template** — open an issue describing the stack
6f83112… anonymous 9
6f83112… anonymous 10 ## Template conventions
6f83112… anonymous 11
6f83112… anonymous 12 All templates must:
6f83112… anonymous 13
6f83112… anonymous 14 - Boot with `docker compose up -d` from scratch (no local installs required)
6f83112… anonymous 15 - Use standard ports (app: 3000/8000, postgres: 5432, redis: 6379)
6f83112… anonymous 16 - Use `boilerworks` as the placeholder name throughout (the renderer replaces it)
6f83112… anonymous 17 - Include: Items, Categories, FormDefinitions, FormSubmissions, WorkflowDefinitions (Full only)
6f83112… anonymous 18 - Have health check at `/up` or `/health/`
6f83112… anonymous 19 - Include a `CLAUDE.md` pointing to `bootstrap.md`
6f83112… anonymous 20 - Pass `make test` and `make lint`
6f83112… anonymous 21
6f83112… anonymous 22 ## CLI development
6f83112… anonymous 23
6f83112… anonymous 24 ```bash
6f83112… anonymous 25 git clone https://github.com/ConflictHQ/boilerworks.git
6f83112… anonymous 26 cd boilerworks
6f83112… anonymous 27 uv sync
6f83112… anonymous 28 uv run boilerworks --help
6f83112… anonymous 29
6f83112… anonymous 30 make lint # ruff check + format --check
6f83112… anonymous 31 make test # pytest with coverage
6f83112… anonymous 32 make format # ruff fix + format
6f83112… anonymous 33 ```
6f83112… anonymous 34
6f83112… anonymous 35 Coverage must stay at ≥ 80%.
6f83112… anonymous 36
6f83112… anonymous 37 ## Adding a template to the catalogue
6f83112… anonymous 38
6f83112… anonymous 39 1. Build and test the template repo (must live at `ConflictHQ/boilerworks-{name}`)
6f83112… anonymous 40 2. Edit `data/templates.yaml` — add an entry with `name`, `repo`, `size`, `language`, `status`, `description`, `topologies`
6f83112… anonymous 41 3. Run `make test` — `test_registry.py` will catch count or schema mismatches
6f83112… anonymous 42 4. Open a PR
6f83112… anonymous 43
6f83112… anonymous 44 ## Code standards
6f83112… anonymous 45
6f83112… anonymous 46 - Python 3.12+, fully typed
6f83112… anonymous 47 - Line length: 120 (ruff config in `pyproject.toml`)
6f83112… anonymous 48 - `ruff check . && ruff format .` before every commit
6f83112… anonymous 49 - No TODOs, no stubs
6f83112… anonymous 50 - No co-authorship messages in commits
6f83112… anonymous 51
6f83112… anonymous 52 ## Issues and PRs
6f83112… anonymous 53
6f83112… anonymous 54 [github.com/ConflictHQ/boilerworks/issues](https://github.com/ConflictHQ/boilerworks/issues)

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button