How to contribute
Version 27 (Daniil Osokin, 2014-07-14 06:01 pm)
1 | 13 | Daniil Osokin | {{>toc}} |
---|---|---|---|
2 | 13 | Daniil Osokin | |
3 | 1 | h1. How to contribute |
|
4 | 1 | ||
5 | 16 | Daniil Osokin | We suppose that you've seen the http://opencv.org/contribute.html page, and now, as an enthusiastic coder, want to contribute some code. For that purpose OpenCV project now has a mirror on the GitHub, to simplify everybody's life! All the bug fixes, new functionality, new tutorials etc. should be submitted via the GitHub's mechanism of pull requests. |
6 | 1 | ||
7 | 16 | Daniil Osokin | If you are not familiar with the mechanism - do not worry, it's very simple. Keep reading. |
8 | 1 | ||
9 | 24 | Daniil Osokin | h2. "Fork & Pull Request model" for code contribution |
10 | 13 | Daniil Osokin | |
11 | 16 | Daniil Osokin | # Install [[Git]]. |
12 | 16 | Daniil Osokin | # Register at GitHub. Create your fork of OpenCV repository https://github.com/Itseez/opencv (see https://help.github.com/articles/fork-a-repo for details). |
13 | 16 | Daniil Osokin | # Make a branch (with a meaningful name) of one of the OpenCV "base branches", to which you will submit the pull request. As of today (Feb 2013), OpenCV has two main branches for development: |
14 | 26 | Daniil Osokin | ## "2.4" - used for the next minor releases of OpenCV (e.g. 2.4.3, 2.4.4, etc). This branch is good for contributing performance optimizations and bugfixes. New functionality usually goes to the "master" branch. Please note, "2.4" can contain only "binary compatible code":http://upstream-tracker.org/versions/opencv.html relative to the current major version 2.4.x |
15 | 27 | Daniil Osokin | ## "master" - used for the future major releases of OpenCV (2.5). It can contain binary incompatible with current major version changes. By default all the new code goes here. Note that the fixes in 2.4 branch are merged into master, but not vice versa. |
16 | 16 | Daniil Osokin | # Modify/add the code following our [[Coding Style Guide]]. |
17 | 13 | Daniil Osokin | # When you are done, create a pull request with your commits (see https://help.github.com/articles/using-pull-requests for details). |
18 | 4 | Daniil Osokin | |
19 | 16 | Daniil Osokin | h2. Testing and merging of pull requests |
20 | 4 | Daniil Osokin | |
21 | 16 | Daniil Osokin | # Your pull request will be automatically tested by OpenCV's buildbot (testing status can be checked here: http://pullrequest.opencv.org). If any builders are failed, you should fix the issue. As you fix the code and push changes to your branch at github, buildbot reruns automatically. _No need to close pull request and open a new one!_ |
22 | 16 | Daniil Osokin | # Once all the builders are "green", one of OpenCV developers will review your code. Reviewer could ask you to modify your pull request. Please provide timely response for reviewers (within weeks, not months), otherwise you submission could be postponed or even rejected. |
23 | 9 | Daniil Osokin | |
24 | 18 | Daniil Osokin | h3. Here is the flow-chart of the process: |
25 | 19 | Daniil Osokin | |
26 | 4 | Daniil Osokin | !https://docs.google.com/drawings/pub?id=1_m7oVQ4CvoMxZn63N1_TyhhazmLLWY5uLEGUyPCERLo&w=960&h=720! |
27 | 4 | Daniil Osokin | |
28 | 16 | Daniil Osokin | h2. Happy End |
29 | 1 | ||
30 | 23 | Daniil Osokin | # As soon as the reviewer is fine with the pull request and BuildBot likes your code, the special comment ":+1:" or ":shipit:" is put, which signals OpenCV maintainers that they can merge your pull request. |
31 | 25 | Daniil Osokin | # The last, but not least. Make sure you got credits. We try to memorize all the contributions and list major ones in the [[ChangeLog]] and release announcements, but we may forget to do that, unintentionally. Please, do not hesitate to remind us, and we will update opencv.org and the ChangeLog accordingly. |