Ctrl K
ComunidadGuías…

CONTRIBUTING.md

Rama master · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
<!-- SPDX-License-Identifier: FSL-1.1-Apache-2.0 -->

# Contributing to AppRafter

Thanks for considering a contribution.

## Getting started

1. Read [`docs/contributing/setup.md`](docs/contributing/setup.md)
   and pick an install path (Nix flake, Dev Container, or manual).
2. Run `just bootstrap` to install the local Git hooks (lefthook).
3. Find an issue to work on, or open one before starting
   significant work — design discussion is welcome and reduces
   wasted effort.

## Conventions

- Commits follow [Conventional Commits]. The PR title is
  validated by CI and your local commit messages by lefthook.
- Source files declare an `SPDX-License-Identifier` header
  (see [`docs/contributing/license-headers.md`](docs/contributing/license-headers.md)).
- CUE schemas pass `./scripts/lint-cue.sh`.
- Documentation under `docs/` is gated: `just lint` resolves every
  `apprafter` invocation and every schema field path a page writes
  against what the tree actually ships. If you meet a finding, see
  [`docs/contributing/documentation-gate.md`](docs/contributing/documentation-gate.md)
  — it covers the marker grammar, the front-matter exemption
  channel, the typed reasons and the 180-day expiry.
- Architectural decisions are recorded as ADRs under
  [`docs/adr/`](docs/adr/README.md).
- The `plan.md` in the repository root is updated when a phase is
  closed — flip the checkboxes and append a row to the history
  table.
- **CLI version bump on every release.** Each release commit that
  bumps the patch version (`v0.1.N → v0.1.N+1`) also updates
  `cli/Cargo.toml`'s `workspace.package.version` to match. This
  keeps `apprafter --version` honest about what's installed.
  The convention starts at `v0.1.77`; earlier tags between
  `v0.1.3` and `v0.1.76` ship binaries that print `0.1.2`
  because the field drifted (one-off historical issue, not a
  bug worth retroactively patching).

## Pull requests

- Use the PR template; fill in **Summary**, **Spec / ADR
  references**, and **Test plan**.
- Keep PRs small enough to review in one sitting. Split large
  changes into a stack.
- All checks (`lint`, `test`, `license-check`,
  `conventional-commits`) must pass.

## License

By contributing, you agree your contribution is licensed under the
same terms as the project:

- **FSL-1.1-Apache-2.0** — for the platform core (`cli/`, `operator/`,
  `schemas/`, `manifests/`, and platform-internal services).
- **MIT** — for plugins (`providers/`, `backstage-plugins/`, and
  community SDKs).

See [`LICENSE`](LICENSE), [`LICENSE-APACHE`](LICENSE-APACHE),
[`LICENSE-MIT`](LICENSE-MIT), and [`NOTICE`](NOTICE) for the full
text and rationale.

## Code of Conduct

This project follows the [Contributor Covenant
Code of Conduct](CODE_OF_CONDUCT.md). By participating, you agree
to abide by its terms.

[Conventional Commits]: https://www.conventionalcommits.org/en/v1.0.0/