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.
Join weaveworks-ignite@googlegroups.com for calendar invites to calls and edit access to community documents. You can ask questions and discuss features on the #ignite slack channel.
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.
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
gitworkflow,cloneyour fork, make your changes and thencommitandpushthem to your repository. - Run
make autogen tidy, thencommitandpushthe changes. Just putmake 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 clickNew pull requestto the right. Select thecompare 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 thecomparedropdown. You should always targetweaveworks/igniteandmainas 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. ClickCreate 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 commit and 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.
If you have any questions or need help, don't hesitate to ask on our mailing list or the #ignite slack channel. Have fun contributing!
To compile the ignite, ignited and ignite-spawn binaries, run
make build-all-amd64ignite, ignited and ignite-spawn are also Make targets if you only need to build specific ones.
Building 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:
make autogenBefore submitting a PR:
make autogen tidyThis will clean up the code (run e.g. gofmt) in addition
to making sure all autogenerated content is up to date.
Other targets:
- Install the
igniteandignitedbinaries:make install - Generate dependency graph:
make graph- Depends on
sfdp(usually found in thegraphvizpackage)
- Depends on
- Push the
weaveworks/igniteDocker image:make image-push