Contributing¶
Contributions are welcome, and they are greatly appreciated! Every little bit helps, and credit will always be given.
You can contribute in many ways:
- Report Bugs
- Fix Bugs
- Implement Features
- Write Documentation
- Submit Feedback
Get Started¶
Ready to contribute? Here's how to set up gotpm for local development.
-
Fork the
gotpmrepo on GitHub. -
Clone your fork locally:
git clone git@github.com:<YOUR_GH_USER>/gotpm.git -
Create a branch for local development:
git checkout -b name-of-your-bugfix-or-featureNow you can make your changes locally.
-
When you're done making changes, check that your changes are formatted correctly and the tests are passing.
Tip
Install the
go-taskTaskrunner.# format the code task format # run the tests task test -
Commit your changes and push your branch to GitHub.
-
Submit a pull request through the GitHub website.
Documentation¶
The site is built with zensical from zensical.toml and the
Markdown in docs/. Install it with the markdown-callouts extension, which
is what renders GitHub alerts (> [!TIP]) as admonitions on the site:
# once
uv tool install zensical --with markdown-callouts
# serve the site locally at http://localhost:8000
task docs:serve
# build it into site/
task docs:build
The command reference embeds the binary's own help text. The snippets under
docs/includes/cli/ are build output, not source: both docs tasks above
regenerate them before running zensical, and the directory is gitignored, so
there is nothing to keep in sync and nothing to commit. To write them without
building the site:
task docs:cli
Prose follows the vocabulary in CONTEXT.md - it is the glossary
the docs and the CLI strings are both written against. The decision records in
docs/adr/ explain why the
non-obvious parts are the way they are; they are for people working on gotpm and
are deliberately not published to the site.