Contributions are welcome. Tensaku is not able to evolve without relying on its contributors and their contributions.
This documents tries to reduce friction when it comes to contributions by defining some guidelines, some of which may follow a rationale while others are arbitrary determinations.
Please use cargo fmt to apply formatting and cargo clippy to fix all suggestions pertinent to your changes. You can use make fix for both. Please note that this may apply changes unrelated to your code:
- formatting if previous commits have not used
cargo fmt - hints if previous commits have not used
cargo clippyOR clippy is newer than the last commit and has learned new hints in the meantime
Missing formatting/hints that precede your PR should be addressed via a separate issue/PR in main branch first. If in doubt how to resolve such a situation, ask.
If a PR changes Tensaku's behaviour and where appropriate, please adjust README.md as well. make update-readme adds the command line help (output of tensaku --help) automatically which is relevant whenever command line arguments change. While it can be tempting to add other fixes to the README while you're at it, unrelated changes to it which precede your PR should be addressed in a separate issue/PR first. If in doubt how to resolve such a situation, ask.
AI coding tools are welcome here. Plenty of good contributions are written with the help of LLMs and agentic coding tools — what matters is the quality of the result, not how it was produced.
The flip side is that you own what you submit. Whether a line was typed by hand or generated by an agent, the same bar applies, and the same person — you — is accountable for it. When using AI assistance, please make sure that
- the code can be licensed under Tensaku's license, i.e. it doesn't reproduce copyrighted or otherwise restricted code
- the code actually does what it claims, and is covered by tests where that's reasonable
- you've reviewed the change and understand it well enough to stand behind it and engage with review feedback
Unreviewed, untested output won't be merged, but that's a bar on the result, not on the tool you used to get there.