This guide documents the best way to make various types of contribution to Apache Eagle (incubating), including what is required before submitting a code change.
...
Before contributing, you should know that Apache Eagle (incubating) is using
- Mailing list for General Discussion
- User: user@eagle.incubator.apache.org
- Development: dev@eagle.incubator.apache.org
- Issues: issues@eagle.incubator.apache.org
- User: user@eagle.incubator.apache.org
- Github for Code Collaboration: https://github.com/apache/incubator-eagle
- JIRA for Issue and Bug Tracking: https://issues.apache.org/jira/browse/EAGLE
- Website and Wiki for Documentation:
- Website: https://eagle.incubator.apache.org/
- Wiki: https://cwiki.apache.org/confluence/display/EAG/Eagle
...
A great way to contribute to Eagle is to help answer user questions on the user@eagle.incubator.apache.org mailing list. There are always many new Eagle users; taking a few minutes to help answer a question is a very valuable community service.
...
Changes to Eagle source code are proposed, reviewed and committed via Github (described later) at https://github.com/apache/incubator-eagle/pulls. Anyone can view and comment on active changes here. Reviewing others' changes is a good way to learn how the change process works and gain exposure to activity in various parts of the code. You can help by reviewing the changes and asking questions or pointing out issues -- as simple as typos or small issues of style.
...
Apache Eagle documentations are mainly host on:
- Site: https://eagle.incubator.apache.org/
- Wiki: https://cwiki.apache.org/confluence/display/EAG/Eagle
...
- To modify the built-in documentation, edit the Markdown source files in Eagle's repository under https://github.com/eaglemonitoring/eaglemonitoring.github.io
- To modify or comment eagle wiki at https://cwiki.apache.org/confluence/display/EAG/Eagle
- To modify eagle site at https://eagle.incubator.apache.org/
- Eagle site source files are hosted in apache SVN repo. https://svn.apache.org/repos/asf/incubator/eagle/site/
- To view site content in local, use "jekyll serve"
- Edit file and commit using SVN commands
- To have us add a link to an external tutorial you wrote, simply email the developer mailing list.
...
- File a bug ticket at JIRA system: https://issues.apache.org/jira/browse/EAGLE
- Or send bug report to user mailling list: user@eagle.incubator.apache.org
Contributing Code Changes
...
For who is new to eagle project, we have a label "new" to start with. Jira server ASF JIRA jqlQuery project = 12319222 AND labels = new serverId 5aa69414-a9e9-3523-82ec-879b028fb15b
- Search the user@eagle.incubator.apache.org and dev@eagle.incubator.apache.org mailing list archives for related discussions
- Search JIRA for existing issues: https://issues.apache.org/jira/browse/EAGLE
- Proposing a JIRA and pull request is appropriate only when a clear problem or change has been identified.
...
- Find the existing Eagle JIRA that the change pertains to. If confirmed the change is new, create a new JIRA ticket if required with required fields
- Issue Type
- Priority
- Affects Version
- Issue Type
- Fork one's own feature branch from eagle official github (https://github.com/apache/incubator-eagle/)
- Fix bug / Develop feature in the feature branch. One might have multiple
- After development is done, send a github pull request. Like https://github.com/apache/incubator-eagle/pull/19. NOTE: Please make sure the pull request title is in format of EAGLE-${ticket_number} ${ticket_title}, so that ASF bot could help sync the pull request comments to JIRA automatically.
...
Review: Committers should review the pull request changes, leave comments and sigh off about whether accept the code change. (Reject/Recall/Pass)
Merge: merge the patch of the pull request and push the merged code to apache/incubbator-eagle (following process is temporary solution for manual merging, the automatic tool is under development EAGLE-84)
Info title Pre-requisite Committer(reviewer) should have already cloned repo from apache github
git clone https://git-wip-us.apache.org/repos/asf/incubator-eagle.git
git-apply
Code Block > git pull https://git-wip-us.apache.org/repos/asf/incubator-eagle.git master # get latest > wget https://patch-diff.githubusercontent.com/raw/apache/incubator-eagle/pull/19.patch && git apply 19.patch # anyway you like to get the patch and apply > # review the code; run the test; > git commit # Commit with the commit MSG described below if everything looks good > git push https://git-wip-us.apache.org/repos/asf/incubator-eagle.git master # push to upstream
git-rebase when necessary
Code Block > git pull https://git-wip-us.apache.org/repos/asf/incubator-eagle.git master # get latest > git pull https://github.com/<contributor>/incubator-eagle.git EAGLE-ID > git rebase -i # squash and modify the final committed message > git commit > git push https://git-wip-us.apache.org/repos/asf/incubator-eagle.git master
Or git-reset
Code Block language bash > git pull https://git-wip-us.apache.org/repos/asf/incubator-eagle.git master # get latest > git pull https://github.com/<contributor>/incubator-eagle.git EAGLE-ID > # review the code; run the test; > git reset origin/master > git add . > git commit -a # Commit with the commit MSG described below if everything looks good > git push https://git-wip-us.apache.org/repos/asf/incubator-eagle.git master # push to upstream
Committers should follow an convention format to add appropriate commit message. The format should be:Anchor Commit Msg Format Commit Msg Format Code Block EAGLE-${jira_id} ${title} ${description} ${jira_url} Author: @${committer_github_id} <author_email> Reviewer: @${reviewer_github_id} <reviewer_email> Closes #${pull_request_id}
- Author/Reviewer could be optional when the committer is the single reviewer.
- For example: https://github.com/apache/incubator-eagle/commit/52b8e58b1af53273782454f52e61b4f4700626c9
- Close: Committer to close the JIRA ticket. (Pull request will be close automatically)
...