Releases are versioned as $major.$minor$quality,
where $major indicates a substantial functional change,
$minor indicates bugfixes and small improvements, and
$quality values of a,b,rc indicate whether
a release is alpha quality (substantial changes still in progress,
liable to break, for geeks only), beta quality (unstable, but
changes are primarily bugfixes, for geeky testers),
release candidate quality (final testing before release),
respectively. Releases without a,b,rc are stable, production quality
releases.
Development discussions for Syndie go on within the
I2P development team, on their
development list,
forum,
weekly meetings, and
IRC channel. Announcements
are made on the
syndie-announce
mailing list, with source code changes posted to the
syndie-commit
mailing list (though the primary resource for source code changes is of
course the monotone repository
at mtn.i2p.net, as described on the
download page).
Installation packages for download are built with various ant targets:
syndie-$version.bin.$platform.exeant -Dizpackdir=/home/jrandom/IzPack_install/ -Dlaunch4jdir=/home/jrandom/launch4j-3.0.0-pre1-linux/ installer-exesyndie-$version.bin.zipant -Dlaunch4jdir=/home/jrandom/launch4j-3.0.0-pre1-linux/ installer-exesyndie-$version.src.nodeps.tar.bz2syndie-$version.src.tar.bz2All of the packages can be built into doc/web/dist/ with
"ant dist", though you need to include the settings required for
-Dlaunch4jdir and -Dizpackdir. Note that it bundles
the swt.jar from several platforms - to run "ant dist", you will need to
download those files and set the
swt.linux32, swt.win32, swt.osx properties
to point at the correct swt.jar files. Additional targets will likely be added.
With a modern GCC/GCJ (releases prior to 4.0 will fail when they try to
write to the database), you can build native Syndie executables. On *nix/osx,
"make -f Makefile.nix syndie" creates ./syndie, and
"make -f Makefile.nix package" creates a
syndie-$version.nix.tar.bz2, which is just like
syndie-$version.bin.zip, except bin/syndie is the native executable instead
of a shell script launching java. Work is ongoing for GCJ/MinGW support, but
the Makefile.mingw should work with a viable MinGW install of GCJ 4.x
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:
_private static final String T_$name
void foo() {
} not void foo()
{
}
private int getFoo() { return _foo; }