Contributing

tryck is developed at github.com/Pinta365/tryck and released under the MIT licence. Issues and pull requests are welcome.

Reporting a bug

Open an issue at github.com/Pinta365/tryck/issues. A report that can be reproduced quickly is far easier to fix. Include:

  • the output of tryck version,
  • your operating system and architecture,
  • the exact command you ran,
  • the full diagnostic output, not just the last line,
  • a minimal site that reproduces the problem, if you can make one. tryck init in an empty directory is a good starting point; add the smallest file that shows the bug.

For a problem in the built-in theme, note the theme settings and whether you have a layouts/ or theme folder overriding anything. See Diagnostics for what the messages mean.

Feature requests

Open an issue that describes the problem you want to solve, not only the change you have in mind. Many additions can also be a plugin or a layout override. See Writing plugins.

Security issues

Report security problems privately with the Report a vulnerability button on the repository's Security tab. Do not open a public issue for them.

Development

Building and testing needs Go 1.26 or later.

1go test -race ./...                      # all tests
2gofmt -l .                               # formatting; must print nothing
3go vet ./...                             # static checks
4CGO_ENABLED=0 go build ./cmd/tryck       # the binary

The build tests compare output against golden files under testdata/sites/*/expected. After an intentional change, accept the new output with:

1TRYCK_UPDATE=1 go test ./internal/build

There is a benchmark for the build pipeline:

1go test -run '^$' -bench . ./internal/build

These are the same checks the CI workflow runs. Run them before opening a pull request.

Building these docs

The documentation site in docs/ is built with tryck itself:

1go run ./cmd/tryck dev --config docs/tryck.config.yaml

Open http://127.0.0.1:8080/. The build must be clean, with no warnings or errors:

1go run ./cmd/tryck build --config docs/tryck.config.yaml