Contributing to Rocketship
Thank you for your interest in contributing to Rocketship! We're excited to have you join our community. This document provides guidelines and instructions for contributing to the project.
Getting Started
- Fork the repository on GitHub
- Clone your fork locally:
- Set up your development environment:
Development Workflow
- Create a new branch for your feature/fix:
- Make your changes and ensure tests pass:
- Build and install your local changes:
- Test your changes:
rocketship start server --local # Start required services
# in another session, run the test
rocketship run --file <path/to/rocketship.yaml> --engine localhost:7700
- Test Server for Development: Inside for-contributors/, you'll find a test server that you can run with:
This will help you test your changes with an in-memory store that can preserve resources.
Creating Plugins
Rocketship's plugin system allows you to add support for new APIs and protocols. To create a new plugin:
- Add your plugin in
internal/plugins/
- Implement the required plugin interface
- Register your plugin in the plugin registry
- Add tests for your plugin
- Document your plugin's usage
Documentation
If you're updating features or adding new ones, please update the documentation:
- Documentation is written in Markdown under
docs/src/
- Run the documentation server locally:
- View your changes at
http://localhost:8000
Code Style
- Follow Go best practices and conventions
- Use
gofmt
to format your code - Add comments for non-obvious code sections
- Write meaningful commit messages
Development Tips
- Set the
ROCKETSHIP_LOG
env var toDEBUG
to see more verbose logging - Pre-commit hooks will automatically run linting and tests
- Always test your changes locally before submitting a PR
Release Process
- Update Default Version
Before creating a release, update the default version in internal/embedded/binaries.go
:
# Example: For releasing v1.2.3
sed -i '' 's/defaultVersion *= *".*"/defaultVersion = "v1.2.3"/' internal/embedded/binaries.go
git add internal/embedded/binaries.go
git commit -m "chore: update default version to v1.2.3"
git push
- Create a Release
Once changes are merged to main, a maintainer can create a new release:
- Go to GitHub Releases: https://github.com/rocketship-ai/rocketship/releases
- Click "Draft a new release"
- Create a new tag (e.g.,
v1.2.3
) following semantic versioning - Write release notes
- Publish release
This will automatically:
- Create and push a Git tag
- Trigger the release workflow
- Build platform-specific binaries
-
Attach binaries to the release
-
Test Installation
# Install released version
go install github.com/rocketship-ai/rocketship/cmd/rocketship@v1.2.3
# Test basic functionality
rocketship version
Release Artifacts
Each release includes platform-specific binaries for:
- CLI (rocketship)
- Worker
- Engine
Supported platforms:
- Linux (amd64, arm64)
- macOS (amd64, arm64)
- Windows (amd64)
Getting Help
- Open an issue on GitHub
- Reach out to me on LinkedIn
License
By contributing to Rocketship, you agree that your contributions will be licensed under the MIT License.