We highly value and encourage contributions from the community!
Ignite is Apache 2.0 licensed and accepts contributions via GitHub Pull Requests.This document outlines some of the conventions on development workflow, commit message formatting, contact points and other resources to make it easier to get your contribution accepted.
We gratefully welcome improvements to documentation as well as to code.
Community and Access
We also hope to see you at our developer meetings.
If you have a feature suggestion or found a bug, head over to GitHub issues and see if there's an open issue matching your description. If not feel free to open a new issue and add short description:
- In case of a bug, be sure to include the steps you performed and what Ignite responded so it's easy for others to reproduce
- If you have a feature suggestion, describe it in moderate detail and include some potential uses you see for the feature. We prioritize the features to be implemented based on their usefulness/popularity. Of course if you want to start contributing yourself, go ahead! We'll be more than happy to review your pull requests.
The maintainers will add the correct labels/milestones to the issue for you.
Contributing your code
The process to contribute code to Ignite is very straight forward.
- Go to the project on GitHub and click the
Forkbutton in the top-right corner. This will create your own copy of the repository in your personal account.
- Using standard
cloneyour fork, make your changes and then
pushthem to your repository.
make autogen tidy, then
pushthe changes. Just put
make autogen tidyas the commit message. This (re)generates any new/changed autogenerated content and cleans up the code's formatting.
- Go back to GitHub, select
Pull requestsfrom the top bar and click
New pull requestto the right. Select the
compare across forkslink. This will show repositories in addition to branches.
- From the
head repositorydropdown, select your forked repository. If you made a new branch, select it in the
comparedropdown. You should always target
masteras the base repository and branch.
- With your changes visible, click
Create pull request. Give it a short, descriptive title and write a comment describing your changes. Click
Create pull request.
That's it! Maintainers follow pull requests closely and will add the correct labels and milestones.
After a maintainer's review small changes/improvements could be requested, don't worry, feedback can
be easily addressed by performing the requested changes and doing a
push. Your new
changes will automatically be added to the pull request. (Don't forget to add a new
make autogen tidy
commit if needed.)
We also have Continuous Integration (CI) set up (powered by CircleCI) that will build the code
and verify it compiles and passes all tests successfully. If your changes didn't pass CI, you can click
Details to go and check why it happened. To integrate your changes, we require CI to pass.
To compile the
ignite-spawn binaries, run
ignite-spawn are also Make targets if you only need to build specific ones.
ignite-spawn binary using either way also automatically packages it in its Docker container,
and tags it as
weaveworks/ignite:dev for development.
To (re)generate autogenerated content in case your changes require it:
Before submitting a PR:
make autogen tidy
This will clean up the code (run e.g.
gofmt) in addition
to making sure all autogenerated content is up to date.
- Install the
- Generate dependency graph:
- Depends on
sfdp(usually found in the
- Depends on
- Push the