Files
i2p.syndie/doc/web/dev.html

99 lines
5.2 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<title>Syndie - code</title>
<link rel="stylesheet" href="style.css" type="text/css" title="normal" media="screen" />
</head>
<body>
<div style="display: none"><a href="#Content" title="Skip navigation" accesskey="2">Skip navigation</a></div>
<div id="Header">
<a href="index.html" title="Syndie">Syndie</a><i> - distributed forums</i>
</div>
<div id="Menu">
<a href="index.html" title="Home">Home</a><br />
<a href="download.html" title="Download Syndie">Download</a><br />
<a href="features.html" title="Syndie Features">Features</a><br />
<a href="usecases.html" title="Use cases">Use cases</a><br />
<a href="faq.html" title="Frequently Asked Questions">Faq</a><br />
<a href="roadmap.html" title="Roadmap">Roadmap</a><br />
<a href="dev.html" title="Developers">Developers</a><br />
<a href="manual.html" title="">Manual</a><br />
<a href="donate.html" title="Help Syndie">Donate</a><br />
<a href="related.html" title="Related projects">Related projects</a><br />
<a href="about.html" title="About Syndie">About</a><br />
<hr />
<a href="https://trac.i2p2.de/">Bugtracker</a>
<a href="http://trac.i2p2.i2p">(via I2P)</a><br />
<a href="http://forum.i2p/viewforum.php?f=29">Forum</a><br />
<hr />
<a href="dev.html" title="Code">Code</a><br />
<a href="spec.html" title="Specs">Specs</a><br />
<a href="archive.html" title="Archives">Archives</a><br />
<a href="db.html" title="Database">Database</a><br />
</div>
<div id="Content">
<h1>Syndie development</h1>
<p>Releases are versioned as <code>$major</code>.<code>$minor</code><code>$quality</code>,
where <code>$major</code> indicates a substantial functional change,
<code>$minor</code> indicates bugfixes and small improvements, and
<code>$quality</code> values of <code>a,b,rc</code> indicate whether
a release is <b>a</b>lpha quality (substantial changes still in progress,
liable to break, for geeks only), <b>b</b>eta quality (unstable, but
changes are primarily bugfixes, for geeky testers),
<b>r</b>elease <b>c</b>andidate quality (final testing before release),
respectively. Releases without <code>a,b,rc</code> are stable, production quality
releases.</p>
<p>The primary resource for source code changes is
the <a href="http://www.monotone.ca">Monotone</a> repository
at <code>mtn.i2p-projekt.de</code>, as described on the
<a href="download.html">download</a> page).</p>
<p>Installation packages for <a href="download.html">download</a> are
built with various ant targets:<ul>
<li><b><code>syndie-installer-$version.bin.win$bits.exe</code></b><br />
<i>(java installer, includes bin/syndie.exe, bin/syndie-desktop.exe, and bin/syndie-cli.jar java launchers)</i><br />
built with the "installer-windows" target but requires "-Di2p.src.dir=/path/to/i2p-source" (e.g.
<code>ant -Di2p.src.dir=../i2p.i2p installer-windows</code>)</li>
<li><b><code>syndie-installer-$version.bin.linux$bits.jar</code></b><br />
<i>(java installer, includes bin/syndie.jar, bin/syndie-desktop.jar, and bin/syndie-cli.jar java launchers)</i><br />
built with the "installer-linux" target but requires "-Di2p.src.dir=/path/to/i2p-source" (e.g.
<code>ant -Di2p.src.dir=../i2p.i2p installer-windows</code>)</li>
<li><b><code>syndie-installer-$version.bin.osx$bits.jar</code></b><br />
<i>(java installer, includes bin/syndie.command, bin/syndie-desktop.command, and bin/syndie-cli.jar java launchers)</i><br />
built with the "installer-osx" target but requires "-Di2p.src.dir=/path/to/i2p-source" (e.g.
<code>ant -Di2p.src.dir=../i2p.i2p installer-windows</code>)</li>
<li><b><code>syndie-$version.bin.osx$bits.tar.bz2</code></b><br />
<i>(OSX Application Bundle)</i><br />
built with the "pkg-osx" target</li>
<li><b><code>syndie-cli-$version.bin.tar.bz2</code></b><br />
<i>(cli only, needs <code>i2p.jar</code>)</i><br />
built with the "pkg-cli" target</li>
<li><b><code>syndie-$version.src.tar.bz2</code></b><br />
<i>(source package with hsqldb)</i><br />
built with the "source-tarball" target</li>
</ul>
<p>Coding conventions are fairly standard for java projects, though the guideline
is to follow whatever standards are in use within the particular file you are
working in. Wider guidelines across the whole codebase for new code:<ul>
<li>Prefix class level variables with <code>_</code></li>
<li>Translation constants should be
<code>private static final String T_<i>$name</i></code></li>
<li>standardJavaCamelCase should be used. long words are better thnShrt1sUCntUndrstnd. </li>
<li>Variable names/comments/etc, should be in English, unless the comments relate
to internationalization/translation issues, of course.</li>
<li>Put your braces on the same line as the method:<pre>
void foo() {
}</pre> not <pre>void foo()
{
}</pre></li>
<li>If a method is short enough, fit it in one line: <pre>
private int getFoo() { return _foo; }</pre></li>
<li>No tabs, ever - we do not all use the same IDE/editor, and the code should be
readable to all of the coders. Indent with 4 spaces.</li>
</ul>
</div>
</body>
</html>