README.pullrequests revision 298770
1See README.hackers for notes on coding styles.
2
3The NTP project's github repository is at https://github.com/ntp-project/ntp.
4
5There are two branches, master and stable.
6
7The stable branch is the current supported production code branch, the
8ntp-stable code (even 2nd number).
9
10The master branch is for new development, also known as ntp-dev (which
11has an odd 2nd number).
12
13If you have some work you'd like to add, then if there is any interest
14in seeing that work in the current production release then base your work
15on the stable branch, and pull your work into a master copy to allow for
16publishing your changes in the ntp-dev or master branch.
17
18If there is no expectation that your work will be included in the
19current stable release (the ntp-stable code) then it's better to do your
20work on a copy of the master branch.
21
22Make sure that any changes you make to stable pull cleanly into master.
23
24It's possible that after pulling your changes from stable to master that
25some additional cleanup will be required in master.  Please do this.
26
27If you follow this method, then if you submit a pull request for either
28master or for master+stable, it will be easy for us to evaluate and
29incorporate your work.
30
31Please also note that your submissions will be able to be evaluated and
32handled sooner if the repo that contains your pull requests also includes
33test cases.
34
35The general workflow is as follows:
36
371) If you haven't, create a fork of ntp-project/ntp with your github account.
38   i) Log on to github.com with your github account.
39       - If you don't have one, create one first. (read: https://help.github.com/articles/signing-up-for-a-new-github-account)
40       - Make sure you also have a SSH key associated with your github account.
41         (read: https://help.github.com/articles/generating-ssh-keys/)
42   ii) Go to https://github.com/ntp-project/ntp
43   iii) On the top right corner, right below the header bar, there is
44        a button labeled "Fork".  Click on it.  This will fork the current
45	ntp master to your own account. Once done, it will go to your account's
46	version of the ntp repository. (Your fork of ntp source)
47   iv) Clone a local version of your fork. 
48        - git clone git@github.com:<your_username>/ntp
49
502) Look through the bugs listed in the bug tracker: http://bugs.ntp.org/
51
523) Once you've found a bug to work on:
53
54   i) Create a branch off your own master branch of your local fork.
55      (the <branchname> can be any valid short string that will tell you
56       what you're working on)
57      - git checkout -b <branchname>
58        
59   ii) Start working on the bug.
60   iii) When you create changes in the source, it would help you to 
61        keep track of your changes by committing to your local repo.
62	(This way, every small change is tracked and when you've
63	 made a mistake, you can always go back.)
64	 - git commit -a -m "description of change"
65   iv) Once you are satisfied, you can push to your github account's
66       repository.
67         - git push origin <branchname>
68    v) (go to step iii).
69
704) Once you feel you've fixed the bug (and tested it), you need to 
71   create a pull request on your branch on github.  (Read up on
72   pull requests @ https://help.github.com/articles/using-pull-requests)
73
74    i) Create your pullrequest by following the instructions @
75       https://help.github.com/articles/creating-a-pull-request/
76
775) Your pull request will be reviewed by committers and when it
78   passes review, it will be merged by the reviewer/allowed committer.
79
806) You have fixed a bug.  Goto step #2.
81
82If these patches are for a bugzilla issue, mark the issue as Resolved/READY
83with a comment of "Please pick up the patches from XXX" where XXX is
84something like:
85
86 hostname:~user/path	if it's a machine the reviewers have access to, or
87 github-pull-request-URI
88
89---
90
91