🀝 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

  1. Fork the repository
  2. Clone your fork
git clone https://github.com/your-username/runink.git
cd runink
  1. Install Go (1.21+) and required tools
  2. Set up your environment
make install-tools
make setup
  1. 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