-
Notifications
You must be signed in to change notification settings - Fork 12
/
contribute.html
294 lines (294 loc) · 15.6 KB
/
contribute.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
<html>
<head>
<meta charset="utf-8">
<title>Forge | Contribute or Get Involved</title>
<meta content="width=device-width, initial-scale=1.0" name="viewport">
<style>
body {
padding-top: 60px;
}
</style>
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
<link href="/images/favicon.ico" rel="icon">
<link href="/stylesheets/styles.css" rel="stylesheet" type="text/css">
<link href="/stylesheets/bootstrap-responsive.min.css" rel="stylesheet" type="text/css">
<link href="/stylesheets/prettify.css" rel="stylesheet" type="text/css">
<!--[if lt IE 9]>
<script src="//html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
<script src="/javascripts/bootstrap.min.js" type="text/javascript"></script>
<script src="/javascripts/bootstrap-collapse.js" type="text/javascript"></script>
<script src="/javascripts/prettify.js" type="text/javascript"></script>
<script src="/javascripts/videoscale.js" type="text/javascript"></script>
<script>
$(document).ready(function() {
$("pre.prettyprint code").removeClass("prettyprint").removeClass("linenums");
prettyPrint();
});
</script>
<script>
$(document).ready(function() {
var pathname = window.location.pathname;
console.log(pathname);
$("body > .navbar a[href='" + pathname + "']").closest("li").addClass("active");
$("body > #content ul.nav a[href='" + pathname + "#content']").closest("li").addClass("active");
});
</script>
</head>
<body>
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<div class="github-banner hidden-phone hidden-tablet">
<a href="https://github.com/forge/core">
<img alt="Fork me on GitHub" src="https://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png" style="position:absolute;top:0;right:0;border:0;">
</a>
</div>
<a class="btn btn-navbar" data-target=".nav-collapse" data-toggle="collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</a>
<a class="brand" href="/index.html">
<img alt="JBoss Forge" class="forge-logo" src="/images/jbossforge_icon_256px.png">
</a>
<div class="nav-collapse">
<ul class="nav">
<li>
<a href="/index.html">Home</a>
</li>
<li>
<a href="https://github.com/forge/core#jboss-forge-20">Forge 2</a>
</li>
<li>
<a href="/docs/index.html">Documentation</a>
</li>
<li>
<a href="/team.html">Team</a>
</li>
<li>
<a href="https://community.jboss.org/en/forge">Forums</a>
</li>
<li>
<a href="https://github.com/forge/core">Source</a>
</li>
<li>
<a href="/plugins.html">Plugins</a>
</li>
<li>
<a href="https://issues.jboss.org/browse/FORGE" target="issue tracker">Issue Tracker</a>
</li>
<li>
<a href="https://issues.jboss.org/browse/FORGE#selectedTab=com.atlassian.jira.plugin.system.project%3Aroadmap-panel" target="roadmap">Roadmap</a>
</li>
<li>
<a href="/events.html">Events</a>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="container" id="content">
<div class="container">
<div class="row">
<div class="span3">
<ul class="nav nav-list">
<li class="nav-header">Using Forge</li>
<li>
<a href="/docs/using/#content">Installation</a>
</li>
<li>
<a href="/docs/using/installing-new-plugins.html#content">Installing new Plugins</a>
</li>
<li>
<a href="/docs/using/basic-javaee-app.html#content">Writing Basic Java EE App</a>
</li>
<li>
<a href="/docs/using/samples.html#content">Samples</a>
</li>
<li>
<a href="/docs/using/configure-proxy.html#content">Configure HTTP Proxy</a>
</li>
<li>
<a href="/docs/using/profiling-forge.html#content">Profiling Forge</a>
</li>
<li>
<a href="/docs/using/debugging-forge.html#content">Debugging Forge</a>
</li>
<li>
<a href="/docs/using/faq.html#content">FAQ</a>
</li>
<li>
<a href="/docs/using/affiliation.html#content">Affiliation</a>
</li>
<li class="nav-header">Get involved</li>
<li>
<a href="/docs/get_involved/contribute.html#content">Contribute or Get Involved</a>
</li>
<li>
<a href="/docs/get_involved/release-guide.html#content">Release Guide</a>
</li>
<li>
<a href="/docs/get_involved/write-docs.html#content">Improve our documentation</a>
</li>
<li class="nav-header">Important plugins</li>
<li>
<a href="/docs/important_plugins/arquillian-testing.html#content">Arquillian Testing</a>
</li>
<li>
<a href="/docs/important_plugins/ui-scaffolding.html#content">UI Scaffolding</a>
</li>
<li class="nav-header">Developing plugins</li>
<li>
<a href="/docs/plugin_development/#content">Developing a plugin</a>
</li>
<li>
<a href="/docs/plugin_development/reference-forge-api.html#content">Reference Forge API</a>
</li>
<li>
<a href="/docs/plugin_development/implement-plugin-interface.html#content">Implement the Plugin interface</a>
</li>
<li>
<a href="/docs/plugin_development/give-your-plugin-name.html#content">Give your Plugin a name</a>
</li>
<li>
<a href="/docs/plugin_development/add-commands-to-plugin.html#content">Add Commands to your Plugin</a>
</li>
<li>
<a href="/docs/plugin_development/add-options-to-command.html#content">Add Options to your Commands</a>
</li>
<li>
<a href="/docs/plugin_development/enable-piping.html#content">Enable Piping between Commands</a>
</li>
<li>
<a href="/docs/plugin_development/facets.html#content">Enable modular functionality with Facets</a>
</li>
<li>
<a href="/docs/plugin_development/test-plugins.html#content">Test your Plugin</a>
</li>
<li>
<a href="/docs/plugin_development/reference-libraries.html#content">Reference Libraries</a>
</li>
<li>
<a href="/docs/plugin_development/make-plugin-available.html#content">Make your Plugin available to Forge</a>
</li>
<li>
<a href="/docs/plugin_development/add-plugin-cpi.html#content">Add your Plugin to the Central Plugin Index</a>
</li>
<li>
<a href="/docs/plugin_development/important-apis.html#content">Important APIs</a>
</li>
<li>
<a href="/docs/plugin_development/configure-plugin-repo.html#content">Configure a plugin repository for Forge</a>
</li>
</ul>
</div>
<div class="span9">
<h1>Contribute or Get Involved</h1>
<h2>Build Forge from source</h2>
<p>Got an idea? Want to get your feet wet? Do some <a href="https://issues.jboss.org/secure/IssueNavigator.jspa?reset=true&jqlQuery=project+%3D+FORGE+AND+status+in+%28Open%2C+%22Coding+In+Progress%22%2C+Reopened%2C+Resolved%2C+%22Pull+Request+Sent%22%29+ORDER+BY+priority+DESC">ForgeStorming</a></p>
<blockquote>
<p>def: forgestorm (v.) [for-ge-st-orm] – The act of brainstorming when applied to Forge; create or grab an <a href="https://issues.jboss.org/secure/IssueNavigator.jspa?reset=true&jqlQuery=project+%3D+FORGE+AND+status+in+%28Open%2C+%22Coding+In+Progress%22%2C+Reopened%2C+Resolved%2C+%22Pull+Request+Sent%22%29+ORDER+BY+priority+DESC">existing issue</a>, and see what can be done!</p>
</blockquote>
<p>1. Check out the code:</p>
<pre class="command"><code class="command">git clone git://github.com/forge/core.git forge</code></pre>
<p>2. ‘cd’ into the project directory:</p>
<pre class="command"><code class="command">cd forge</code></pre>
<p>3. Build the code (requires maven, or run from within an existing Forge installation):</p>
<pre class="command"><code class="command">mvn clean install</code></pre>
<p>4. <a href="../using/index.html">Install</a> the resulting zip file, or use the provided convenience script for installing a distribution (<strong>power users only</strong>):</p>
<pre class="command"><code class="command">chmod a+x forge-install.bsh
./forge-install.bsh dist/target/forge-distribution-1.0.0-SNAPSHOT.zip</code></pre>
<p>5. Execute Forge:</p>
<pre class="command"><code class="command">forge</code></pre>
<h2>Share your work (send a pull request)</h2>
<div class="alert alert-info">Before you begin, we recommend that you configure Git to <a href="http://www.viget.com/extend/only-you-can-prevent-git-merge-commits/">automatically rebase merge-commits</a>, otherwise you may have to deal with noise in the commit logs.</div>
<p>1. Fork the repository on GitHub: [http://github.com/forge/core|http://github.com/forge/core] and clone it to your local PC</p>
<pre class="command"><code class="command">git clone git@github.com:{your user}/{your forge repo}.git</code></pre>
<p>2. If you haven’t done so already, sign the JBoss <span class="caps">CLA</span>: <a href="https://cla.jboss.org/">https://cla.jboss.org/</a></p>
<p>3. Create an issue in the <a href="https://issues.jboss.org/browse/FORGE">issue tracker</a></p>
<p>4. Create a branch for your issue, where XX is the issue number:</p>
<pre class="command"><code class="command">git branch FORGE-XX
git checkout FORGE-XX</code></pre>
<p>5. Make your changes and <strong>write unit tests</strong> for them.</p>
<p>6. Commit your changes</p>
<pre class="command"><code class="command">git add -A
git commit -m "Implemented FORGE-XX"</code></pre>
<p>7. Add the forge/core repository as a remote repository (this only needs to happen once.)</p>
<pre class="command"><code class="command">git remote add upstream git://github.com/forge/core.git</code></pre>
<p>8. Pull from upstream and fix any merge conflicts you may have locally:</p>
<pre class="command"><code class="command">git pull upstream master</code></pre>
<p>9. If you made multiple commits, or if there were any merge commits created when you pulled from upstream, use rebase to squash them into a single commit, where 5 is the number of commits to rebase:</p>
<pre class="command"><code class="command">git rebase -i HEAD~5</code></pre>
<p>Change ‘pick’ to ‘f’ for each commit you wish to fixup upwards. (If you do not change a line, it will not be modified.)</p>
<pre> 1 pick ade2b1a Implemented FORGE-XX
 2 f c3ae0a2 almost done
 3 f c863bfb did more work
 4 f af793ae Started working on FORGE-XX
 5 pick 368bbb9 Previous commit written by someone else</pre>
<p>Once you are done, your commits should look like this:</p>
<pre> 1 ade2b1a Implemented FORGE-XX
 2 368bbb9 Previous commit written by someone else</pre>
<p>You can view your commits by typing ‘git log’.</p>
<p>10. Push to your branch:</p>
<pre class="command"><code class="command">git push origin FORGE-XX</code></pre>
<p>11. Submit a pull request from your branch. The pull request should include one single commit changing all of your changes. If you have more than one commit, then you did not rebase correctly.</p>
<pre class="command"><code class="command">http://github.com/{your user}/{your forge repo}/tree/{FORGE-XX}</code></pre>
<p>12. Link the pull request to the <span class="caps">JIRA</span> via Workflow → Link Pull Request</p>
</div>
</div>
</div>
<hr>
<footer>
<p>© JBoss 2014</p>
</footer>
</div>
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount','UA-34467975-1']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
<script src="http://www.redhat.com/j/elqNow/elqCfg.js" type="text/javascript"></script>
<script src="http://www.redhat.com/j/elqNow/elqImg.js" type="text/javascript"></script>
<div id="oTags">
<script src="http://www.redhat.com/j/s_code.js" type="text/javascript"></script>
<script>
var coreUrl = encodeURI(document.URL.split("?")[0]);
var urlSplit = coreUrl.toLowerCase().split(/\//);
var urlLast = urlSplit[urlSplit.length-1];
var pageNameString = "";
var siteName = "";
var minorSectionIndex = 3
if (urlLast == "") {
urlSplit.splice(-1,1);
}
if (urlLast.search(/\./) >= 0) {
if (urlLast == "index.html") {
urlSplit.splice(-1,1);
}
else {
urlSplit[urlSplit.length-1] = urlLast.split(".").splice(0,1);
}
}
siteName = urlSplit[2].split(".")[1];
s.prop14 = s.eVar27 = siteName || "";
s.prop15 = s.eVar28 = urlSplit[minorSectionIndex] || "";
s.prop16 = s.eVar29 = urlSplit[minorSectionIndex+1] || "";
pageNameString = urlSplit.splice(3).join(" | ");
s.pageName = "jboss | community | " + siteName + " | " + pageNameString;
s.channel = "jboss | community";
s.prop4 = s.eVar23 = encodeURI(document.URL);
s.prop21 = s.eVar18 = coreUrl;
s.prop2 = s.eVar22 = "en";
s.prop3 = s.eVar19 = "us";
</script>
<script src="http://www.redhat.com/j/rh_omni_footer.js" type="text/javascript"></script>
<script language="JavaScript" type="text/javascript">
if(navigator.appVersion.indexOf('MSIE')>=0)document.write(unescape('%3C')+'\!-'+'-')
</script>
<noscript>
<a href="http://www.omniture.com" title="Web Analytics">
<img alt="" border="0" height="1" src="https://smtrcs.redhat.com/b/ss/redhatcom,redhatglobal/1/H.25.4--NS/0?[AQB]&cdp=3&[AQE]" width="1">
</a>
</noscript>
</div>
</body>
</html>