Project

General

Profile

Contribute » History » Version 24

Maria Nita, 03/23/2014 09:31 PM
Fix typo

1 1 Ohad Levy
h1. Contribute
2 1 Ohad Levy
3 4 Ohad Levy
{{toc}}
4 1 Ohad Levy
5 1 Ohad Levy
Foreman is built and maintained by community volunteers. If you enjoy using it and would like give back to the community, there are several ways to contribute back to the project.
6 1 Ohad Levy
7 1 Ohad Levy
h2. Code Related
8 1 Ohad Levy
9 1 Ohad Levy
These require a familiarity with Ruby on Rails development. If you are still new to Rails, Community members can help you if you get stuck with something or have any other questions.
10 1 Ohad Levy
11 9 Ohad Levy
You will need to download a copy of the current development-code. The official code repository is located in Github and can be downloaded by following the [[Installing latest code]].
12 1 Ohad Levy
13 1 Ohad Levy
Please note that there are two important branches:
14 1 Ohad Levy
15 2 Ohad Levy
*Master* - latest stable release code
16 2 Ohad Levy
*Develop*   - new features and bug fixes
17 1 Ohad Levy
18 2 Ohad Levy
Master is frozen between major releases.
19 1 Ohad Levy
20 6 Romain Vrignaud
h3. [[test environment|Setup test environment for unit/functional test]]
21 6 Romain Vrignaud
22 1 Ohad Levy
h3. Development
23 1 Ohad Levy
24 3 Ohad Levy
First, make sure you are a member of the "Foreman Developers mailing list":https://groups.google.com/group/foreman-dev
25 3 Ohad Levy
26 1 Ohad Levy
Patches to fix bugs or add new features are always appreciated. If you are going to work on a specific issue, make a note in the issue details so the developers will know what you're working on.
27 1 Ohad Levy
28 1 Ohad Levy
We try to keep a one commit per bug/feature policy, please try to create an issue which is specific for your patch details.
29 1 Ohad Levy
30 4 Ohad Levy
h3. Submit Patches
31 4 Ohad Levy
32 10 Jacob McCann
h4. New Way - github
33 10 Jacob McCann
34 18 Brian Gupta
# Please make sure there is a Redmine "issue":http://theforeman.org/projects/foreman/issues open for the change you are going to submit, as you will want to reference it in your commit message. (This is very helpful when generating release notes.)
35 18 Brian Gupta
# Fork theforeman/foreman (https://github.com/theforeman/foreman) to a personal github account
36 10 Jacob McCann
#* https://help.github.com/articles/fork-a-repo
37 10 Jacob McCann
#* Should end up with a repo of <username>/foreman
38 10 Jacob McCann
# Clone personal foreman fork to local system
39 20 Jacob McCann
#* <pre>git clone https://github.com/<username>/foreman.git</pre>
40 13 Jacob McCann
# Reference theforeman/foreman as upstream
41 21 Jacob McCann
#* <pre>cd </path/to/local/foreman/git/repo>
42 21 Jacob McCann
git remote add upstream https://github.com/theforeman/foreman.git
43 13 Jacob McCann
git fetch</pre>
44 10 Jacob McCann
# Create a feature/topic branch
45 13 Jacob McCann
#* <pre>git checkout -b <branchName></pre>
46 1 Ohad Levy
#* Example: git checkout -b 1656-add_TB_support
47 1 Ohad Levy
# Make changes and commit
48 1 Ohad Levy
#* <pre>git add <modifiedFile(s)>; git commit -m 'fixes #<bug> <message>'</pre>
49 19 Brian Gupta
#* Please reference the Redmine issue this commit addresses via "refs" or "fixes" #issueid in the commit message
50 1 Ohad Levy
# Push topic branch to your fork
51 13 Jacob McCann
#* <pre>git push origin <branchName></pre>
52 13 Jacob McCann
#* Example: git push origin 1656-add_TB_support
53 13 Jacob McCann
# Issue a pull request
54 13 Jacob McCann
#* https://help.github.com/articles/using-pull-requests
55 13 Jacob McCann
# Add a thread to foreman-dev
56 13 Jacob McCann
#* https://groups.google.com/forum/?fromgroups#!forum/foreman-dev
57 24 Maria Nita
#* Subject could be maybe in format of '[PATCH] <git commit msg>' 
58 13 Jacob McCann
#* Add patch diff and any notes to body
59 13 Jacob McCann
60 13 Jacob McCann
Once you have followed this process once, it becomes much simpler to add future patches!
61 13 Jacob McCann
62 13 Jacob McCann
# Merge upstream develop to local develop
63 13 Jacob McCann
#* <pre>git fetch upstream
64 13 Jacob McCann
git checkout develop
65 23 Corey Osman
git rebase upstream/develop develop
66 13 Jacob McCann
git push origin develop
67 13 Jacob McCann
</pre>
68 22 Jacob McCann
# Now follow step 5 to the end from above.
69 10 Jacob McCann
70 15 Corey Osman
71 15 Corey Osman
72 15 Corey Osman
73 10 Jacob McCann
h4. Old Way - mail_patches
74 10 Jacob McCann
75 1 Ohad Levy
Patches are normally reviewed before they are merged into the develop branch, in orderer to send them to the developers mailing list, please commit the code as normal and then execute the following rake task
76 4 Ohad Levy
77 3 Ohad Levy
<pre>
78 3 Ohad Levy
rake mail_patches
79 3 Ohad Levy
</pre>
80 3 Ohad Levy
81 5 Lukas Zapletal
which would send your patches to review, once accepted they will merged upstream. Please note you need both git and git-email packages installed.
82 1 Ohad Levy
83 1 Ohad Levy
h2. Non Code Related
84 1 Ohad Levy
85 1 Ohad Levy
These don't require any software development experience, just some time and the desire to help.
86 1 Ohad Levy
87 1 Ohad Levy
h3. User support
88 1 Ohad Levy
89 1 Ohad Levy
Helping out other users in the "Forums" is always useful. Frequent problems or questions should be brought up so the wiki can be updated to help future users.
90 1 Ohad Levy
91 1 Ohad Levy
Testing is also very welcomed, for any issue encountered, please open a bug / feature request.
92 1 Ohad Levy
93 1 Ohad Levy
h3. Issue triage
94 1 Ohad Levy
95 1 Ohad Levy
Sometimes issues are reported without all the information needed by a developer. Getting the details of the bug or feature from the reporter and the community will help everyone understand what is needed.
96 1 Ohad Levy
97 1 Ohad Levy
h3. Design and User interface
98 1 Ohad Levy
99 1 Ohad Levy
Foreman uses a very basic design and user interface. Any improvements to it including new themes, skinning, or interface adjustments could help every user.