Apache Kylin is always looking for contributions of not only code, but also usage document, performance report, Q&A etc. All kinds of contributions pave the way towards a Kylin Committer. There is opportunity for everyone, especially for those come from analysis and solution background, due to the lacking of content from user and solution perspective.
Both code and document are under Git source control. Note the purpose of different branches.
master: Main development branch for new features2.[n].x: Maintenance branch for a certain major release for v2.x3.[n].x: Maintenance branch for a certain major release for v3.xdocument: Document branchApache Kylin has several sub-components. To better help the community's growth, we arrange one or multiple component owners for each component.
Component owners are volunteers who are expert in their component domain. The owner needs to be an Apache Kylin committer or PMC at this moment.
Owners will try and review patches that land within their component’s scope.
Owners can rotate, based on his aspiration and community need.
When nominate or vote a new committer, the nominator needs to state which component the candidate can be the owner.
If you're already an Apache Kylin committer or PMC memeber and would like to be a volunteer as a component owner, just write to the dev list and we’ll sign you up.
All the project plan, decisions are still managed by Apache Kylin PMC.
If you think the component list need be updated (add, remove, rename, etc), write to the dev list and we’ll review that.
Component owners is listed in the description field on this Apache Kylin JIRA components page. The owners are listed in the ‘Description’ field rather than in the ‘Component Lead’ field because the latter only allows us to list one individual whereas it is encouraged that components have multiple owners.
There are open tasks waiting to be done, tracked by JIRA. To make it easier to search, there are a few JIRA filters.
Do not forget to discuss in mailing list before working on a big task.
If create a new JIRA for bug or feature, remember to provide enough information for the community:
submit-patch.py (recommended) to create patches, upload to jira and optionally create/update reviews on Review Board. Patch name is automatically formatted as (JIRA).(branch name).(patch number).patch to follow Yetus' naming rules.$ ./dev-support/submit-patch.py -jid KYLIN-xxxxx -b master -srb
Use -h flag for this script to know detailed usage information. Most useful options are:
By default, it'll also create/update review board. To skip that action, use -srb option. It uses ‘Issue Links’ in the jira to figure out if a review request already exists. If no review request is present, then creates a new one and populates all required fields using jira summary, patch description, etc. Also adds this review’s link to the jira.
To install required python dependencies, execute pip install -r dev-support/python-requirements.txt from the master branch.
Alternatively, you can also manually generate a patch. Please use git rebase -i first, to combine (squash) smaller commits into a single larger one. Then use git format-patch command to generate the patch, for a detail guide you can refer to How to create and apply a patch with Git
The reviewer need to review the patch from the following perspectives:
A patch which doesn't comply with the above rules may not get merged.
Patches that fit within the scope of a single component require, at least, a +1 by one of the component’s owners before commit. If owners are absent — busy or otherwise — two +1s by non-owners but committers will suffice.
Patches that span components need at least two +1s before they can be committed, preferably +1s by owners of components touched by the x-component patch.
Any -1 on a patch by anyone vetoes a patch; it cannot be committed until the justification for the -1 is addressed.
git rebase to ensure the merged result is a streamline of commits.Check out How to Write Document.