π€ Contributing to Runink
Welcome, and thank you for your interest in contributing to Runink β the data platform that makes pipelines safe, expressive, and composable. Whether you’re fixing bugs, improving documentation, writing tests, or building new features, your help makes Runink better for everyone.
Weβre excited to have you here! π
π§ Quick Start
- Fork the repository
- Clone your fork
git clone https://github.com/your-username/runink.git
cd runink
- Install Go (1.21+) and required tools
- Set up your environment
make install-tools
make setup
- Start hacking π§
Use the CLI or REPL to run tests and iterate locally:
runink init test-pipeline
runink compile
runink test
π Project Structure
Here’s where to plug in:
Folder | Purpose |
---|---|
internal/ |
Core Go logic β CLI, pipeline engine, agents |
features/ |
DSL scenarios (.dsl files) |
contracts/ |
Data contracts & golden files |
docs/ |
Documentation and guides |
deploy/ |
Generated orchestration artifacts |
.github/ |
CI configs, issue templates, actions |
π οΈ How to Contribute
π Report Bugs
- Use GitHub Issues
- Please include:
- Steps to reproduce
- Expected vs. actual behavior
- Runink version (
runink version
) - OS / system info
π Suggest Features
We love ideas! Start a discussion or open a feature request issue. Try to include:
- A clear problem statement
- Example DSL or contract (if relevant)
- Why this helps the community
π§βπ» Submit Code
1. Create a new branch
git checkout -b feat/my-awesome-change
2. Make your changes
Follow existing conventions. Run tests (make test
) before committing.
3. Format and lint
make fmt
make lint
4. Commit and push
git commit -m "feat(dsl): add support for new step type"
git push origin feat/my-awesome-change
5. Open a Pull Request
- Keep PRs focused and well-scoped
- Include tests and docs if relevant
- Use conventional commit messages (
feat:
,fix:
,chore:
, etc.)
π§ͺ Testing & Validation
- Use golden files (
contracts/testdata/
) for regression testing - Run
runink test
to validate scenarios - Use the REPL for quick exploration and debugging
- Ensure your PR passes CI
π Security
If you discover a security vulnerability, please do not open a public issue.
Instead, email us at paes@dashie.ink.
β€οΈ Code of Conduct
Weβre a community of data builders. We expect contributors to be respectful, inclusive, and constructive.
Please read our Code of Conduct before contributing.
π§΅ Join the Community
- GitHub Discussions (coming soon)
- Discord server (invite coming soon)
- Follow our roadmap in
docs/roadmap.md
Thanks for helping us build the future of safe, expressive, and reliable data pipelines. We canβt wait to see what you contribute! π
β The Runink Team