First off, thank you for considering contributing to coldkey! It's people like you that make open-source software such a great community to learn, inspire, and create.
We welcome all contributions, from bug reports and feature requests to code contributions and documentation improvements.
To work on coldkey, you will need:
- Go: The project is written in Go. You'll need a recent version installed.
- Make/Just: We use
just(a modernmakealternative) to manage build tasks.
To get started:
- Fork the repository on GitHub.
- Clone your fork locally:
git clone https://github.com/YOUR_USERNAME/coldkey.git cd coldkey - Run the CI pipeline locally to ensure everything works:
just ci
To build the coldkey binary locally, run:
just buildThis will produce the coldkey binary in the root directory.
Testing is a crucial part of the development process. To run the test suite, use:
just testWe follow standard Go formatting conventions and use linters to maintain code quality. Before submitting your code, please ensure it complies with our standards:
- Formatting: Run
just fmtto format your code usinggofumpt. - Linting: Run
just lintto catch common issues usinggolangci-lint. - Vetting: Run
just vetfor standard Go static analysis.
When you're ready to submit your changes:
- Fork and Branch: Create a new branch for your feature or bug fix (
git checkout -b my-new-feature). - Commit Messages: Write clear, concise, and descriptive commit messages.
- Push: Push your branch to your fork (
git push origin my-new-feature). - Open a PR: Open a Pull Request against the
mainbranch of this repository. Provide a detailed description of your changes and reference any related issues.
- Bug Reports & Feature Requests: Please use the GitHub Issues tracker to report bugs or request features. Search existing issues first to avoid duplicates.
- Security Vulnerabilities: If you discover a security vulnerability, please do NOT open a public issue. Instead, responsibly disclose it by contacting the project maintainers privately (e.g., via a GitHub security advisory or email if provided).
Thank you again for your time and contributions!