Thank you for your interest in contributing to Taubyte/Tau, our open source distributed Platform as a Service (PaaS). Every contribution helps us build a better, more open cloud for everyone!
For contributors who don't want to read the full guide:
- Open an issue first (after checking the existing ones ) → discuss your idea (see issues: https://github.com/taubyte/tau/issues)
- Fork & clone → git clone https://github.com//tau.git cd tau
- Create a branch → name it after your issue ( same suggested name of the issue )
- Make changes → follow existing conventions
- Run tests →
- Go: go test -p 1 ./...
- JS/TS: npm run test (from the correct client folder)
- Commit & push → use issue-style commit messages ([bug] ..., [feature] ...)
- Open a Pull Request → link to your issue
For full details, read below.
Before you start contributing, make sure you have the following prerequisites installed:
Required:
- Go 1.21 or later (install guide)
- Git for version control
- Node.js 18+ and npm (for JavaScript/TypeScript components)
- Docker (needed for dream testing)
For detailed setup instructions, see our README or visit tau.how for comprehensive documentation.
- Bug fixes - Help us squash issues and improve stability
- New features - Add functionality that benefits the community
- Ideas & discussions - Share feedback, suggestions, or architectural insights
Before starting work, please open an issue to discuss your proposed change. This helps us avoid duplicate work and ensure your contribution aligns with the project's goals.
How to do this:
- Check for similar issues first - Search existing issues to avoid duplicates
- Click New Issue and name it specifically using our format:
[dream] Brief description of the bug[tau-cli] Brief description of the new feature[cicd] Brief description of your idea[auth] Brief description of your idea[seer] Brief description of your idea[tns] Brief description of your idea[spore-drive] Brief description of your idea[feature] Brief description of your idea
- Describe your proposal clearly
- Wait for feedback from maintainers before starting work
Click the Fork button at the top right of the taubyte/tau repository to create your own copy.
On your local machine, clone your forked repository:
git clone https://github.com/<your-username>/tau.git
cd tauGitHub will suggest a branch name when you start working on an issue. Use the suggested branch name or create one following the same format as your issue.
Implement your feature or bugfix following existing code conventions.
If you are contributing to Go or JavaScript/TypeScript components, please run automated tests before pushing your changes:
Go Tests:
- From the root or any Go package directory:
go test -p 1 ./...-p 1runs tests serially (one package at a time)../...runs all tests recursively in the current directory and subdirectories.
JavaScript/TypeScript Tests:
- From the relevant client directory (e.g.,
pkg/spore-drive/clients/jsorpkg/taucorder/clients/js):npm run test- Make sure you are in the directory containing the
package.jsonfile for the client you want to test.
- Make sure you are in the directory containing the
Use the same format as issue naming:
git commit -m "[bug] fix memory leak in request handler"
git commit -m "[feature] add OAuth2 integration"
git commit -m "[dream] add new testing scenarios"You can test your changes using dream, our local cloud environment. See the dream documentation for setup and usage details.
Push your branch to your forked repository:
git push origin <your-branch-name>Go to the original taubyte/tau repository, click New Pull Request and select your branch. Fill in the template describing your changes and reference related issues (e.g., Closes #123).
Expect initial review within 2-3 business days. Be responsive to feedback and make requested changes by pushing to your branch.
- Keep pull requests focused: One feature or fix per PR
- Write tests for new functionality and bug fixes
- Be kind and inclusive: We value respectful collaboration
Need Help?
- Discord: Join our community at discord.gg/zCHbgKcB
- Documentation: Visit tau.how for comprehensive guides
By contributing, you agree that your work will be licensed under the BSD-3-Clause license.
Thank you for helping make Taubyte/Tau better!