Contributing to Vincent
Contributions are welcome. This page covers the public contributor workflow; the repository’s canonical CONTRIBUTING guide remains the detailed source of truth.
Before you start
For a substantial change, open an issue first and describe the user problem, expected outcome and alternatives. Small fixes and documentation improvements can go straight to a pull request when the intent is obvious.
- Work on a dedicated branch and open a pull request against
master. - Use Conventional Commits for commit messages:
type(scope?): summary. - Keep user-facing documentation in sync with behavior changes.
- CI must pass on Linux, macOS and Windows before merge.
Development
Vincent is written in Go. Build and verification tasks are exposed through Mage and require no separate Mage installation:
go run mage.go build
go run mage.go test
go run mage.go testrace
go run mage.go lint
go run mage.go vuln
To install the current checkout as your local vincent binary:
./scripts/install-local.sh
./scripts/install-local.sh --user
./scripts/install-local.sh --dry-run
Start with Concepts for the architecture, then use the feature overview, workflow guide and reference documentation for the area you are changing.
Pull request checklist
- Commits follow Conventional Commits.
- Tests cover behavior changes.
- User-visible behavior is documented in the relevant guide or reference page.
- Release-impacting changes are represented in the changelog/release notes.
- CI is green on all supported platforms.
Licensing
Vincent is released under the MIT License.
By submitting a contribution, you agree that it may be distributed under the MIT License. You retain copyright in your contribution unless otherwise agreed.
For the complete contributor policy and maintainer details, read CONTRIBUTING.md on GitHub.