|
1 | 1 | # Contributing |
2 | 2 |
|
3 | | -## How To Report Bugs |
4 | | -Open a GitHub issue with a clear summary, the environment you were using, reproduction steps, expected behavior, and the actual behavior you observed. If logs or screenshots help clarify the problem, include them with any secrets removed. Use the bug-report template when possible so maintainers get the minimum triage context up front. |
| 3 | +## Before You Start |
5 | 4 |
|
6 | | -## How To Request Features |
7 | | -Open a GitHub issue describing the problem you are trying to solve, why existing behavior is not enough, and what a successful outcome would look like. Feature requests with operational context are easier to prioritize than solution-only requests. |
| 5 | +Viaduct's public-facing materials are part of the product surface. If your change affects operator behavior, update the relevant docs, examples, and release-facing assets in the same change. |
| 6 | + |
| 7 | +## Reporting Bugs |
| 8 | + |
| 9 | +Open a GitHub issue with: |
| 10 | +- a clear summary |
| 11 | +- your environment |
| 12 | +- reproduction steps |
| 13 | +- expected behavior |
| 14 | +- actual behavior |
| 15 | + |
| 16 | +If logs or screenshots help, include them with secrets removed. |
| 17 | + |
| 18 | +## Requesting Features |
| 19 | + |
| 20 | +Open a GitHub issue that explains the operator or contributor problem first. Narrow, workflow-grounded requests are easier to evaluate than solution-only requests. |
8 | 21 |
|
9 | 22 | ## Development Setup |
| 23 | + |
10 | 24 | - Go 1.24 or newer |
11 | | -- Node.js 20 or newer for the dashboard |
12 | | -- `make` (preferred, optional on Windows if you run the underlying commands directly) |
| 25 | +- Node.js 20.19 or newer for the dashboard |
| 26 | +- `make` for the standard workflow |
13 | 27 | - `golangci-lint` |
14 | 28 |
|
15 | | -Clone the repository, install dependencies with `go mod tidy`, and use the Make targets for the standard workflow. The quickest release-candidate validation path is: |
| 29 | +Typical setup: |
16 | 30 |
|
17 | 31 | ```bash |
18 | 32 | go mod tidy |
| 33 | +make build |
| 34 | +``` |
| 35 | + |
| 36 | +For a fuller local check: |
| 37 | + |
| 38 | +```bash |
19 | 39 | make release-gate |
20 | 40 | ``` |
21 | 41 |
|
22 | | -If you use Codex for repo tasks, the bootstrap script in `.codex/setup.sh` installs the expected linter version in supported environments. |
| 42 | +## Workflow Expectations |
23 | 43 |
|
24 | | -## Workflow |
25 | 44 | 1. Fork the repository. |
26 | | -2. Create a feature branch for your work. |
27 | | -3. Make your changes with focused commits and update docs, examples, and sample configs when public behavior changes. |
28 | | -4. Run `go test ./... -v -race`, `go vet ./...`, `make build`, and `cd web && npm run build` for the surfaces you touched. |
29 | | -5. Run `make release-gate` before asking for review when your change affects release, packaging, dashboard, migrations, tenant behavior, plugins, or docs. |
30 | | -6. Submit a pull request with context about the problem, solution, compatibility impact, and verification. |
| 45 | +2. Create a focused branch. |
| 46 | +3. Make the smallest coherent set of changes. |
| 47 | +4. Update docs, examples, sample configs, and public assets when operator-visible behavior changes. |
| 48 | +5. Run the verification commands for the surfaces you touched. |
| 49 | +6. Submit a pull request with scope, rationale, compatibility impact, and validation notes. |
| 50 | + |
| 51 | +## Verification Expectations |
| 52 | + |
| 53 | +- Run `go test ./... -v -race`, `go vet ./...`, `make build`, and `cd web && npm run build` for the relevant surfaces. |
| 54 | +- Run `make release-gate` before asking for review when the change affects release, packaging, dashboard, migrations, tenants, plugins, docs, or public assets. |
| 55 | +- Add regression coverage for bug fixes. |
| 56 | + |
| 57 | +## Compatibility And Scope |
31 | 58 |
|
32 | | -## Compatibility Expectations |
33 | 59 | - Preserve API, state-store, and plugin compatibility where possible. |
34 | | -- Document any migration requirement or operator-facing behavior change in the PR and relevant docs. |
35 | | -- Keep tenant boundaries strict and explicit in tests and implementation. |
36 | | -- Add regression coverage for every bug fix. |
37 | | - |
38 | | -## Documentation And Examples |
39 | | -- Top-level docs such as `README.md`, `INSTALL.md`, `QUICKSTART.md`, `UPGRADE.md`, `RELEASE.md`, `SUPPORT.md`, and `SECURITY.md` are part of the public product surface. |
40 | | -- Keep detailed docs under `docs/` aligned with the public entrypoint docs at the repo root. |
41 | | -- Historical phase documents under `docs/roadmaps/` are archives. Update them only to clarify shipped outcomes, not to describe current active work. |
42 | | -- Example configs and lab assets should remain runnable and parseable. Prefer realistic examples over pseudo-configuration. |
43 | | - |
44 | | -## Testing Expectations |
45 | | -- Table-driven Go tests are the default. |
46 | | -- Integration tests live under `tests/integration/`. |
47 | | -- Release and packaging changes should include validation for examples, install flows, or generated artifacts where practical. |
48 | | -- If you touch dashboard code, run `cd web && npm run build`. |
49 | | - |
50 | | -## Codebase Orientation |
| 60 | +- Keep tenant boundaries strict and explicit. |
| 61 | +- Prefer extending existing packages over introducing parallel abstractions. |
| 62 | +- Keep the public maturity language honest. Use evaluation-ready or more cautious wording unless stronger proof exists. |
| 63 | + |
| 64 | +## Helpful References |
| 65 | + |
51 | 66 | - Architecture overview: [docs/architecture.md](docs/architecture.md) |
52 | 67 | - Codebase map: [docs/reference/codebase-map.md](docs/reference/codebase-map.md) |
53 | 68 | - Configuration guide: [docs/reference/configuration.md](docs/reference/configuration.md) |
54 | 69 | - Plugin author guide: [docs/reference/plugin-author-guide.md](docs/reference/plugin-author-guide.md) |
55 | | - |
56 | | -## Support |
57 | | -For usage questions, evaluation help, or contribution process questions, start with [SUPPORT.md](SUPPORT.md). |
58 | | - |
59 | | -## Security |
60 | | -If you believe you have found a security issue, follow the process in [SECURITY.md](SECURITY.md) instead of opening a public bug report. |
| 70 | +- Support and contributor help: [SUPPORT.md](SUPPORT.md) |
| 71 | +- Security process: [SECURITY.md](SECURITY.md) |
0 commit comments