{% extends "_layout.html" %} {% block title %}New Developer's Guide{% endblock %} {% block content %}
So you want to start work on I2P? Great! Here's a quick guide to getting started on contributing to the website or the software, doing development or creating translations.
Not quite ready for coding? Try getting involved first.
Basic development on the I2P router or the embedded applications uses Java as the main development language. If you don't have experience with Java, you can always have a look at Thinking in Java.
Study the how intro, the other "how" documents, the tech intro, and associated documents. These will give you a good overview of how I2P is structured and what different things it does.
For development on the i2p router or the embedded applications, get the monotone source repository installed - short instructions:
If you want to remain anonymous, you need to do an additional step, to set up a connection to a monotone server over I2P:
Enable the i2ptunnel client tunnel on port 8998 pointing to mtn.i2p2.i2p (if you are having nonce issues, see ticket #64 for a workaround)
Non-anonymously: mtn -d i2p.mtn pull mtn.i2p2.de i2p.i2p
Alternatively, instead of 'mtn.i2p2.de', you can also download from mtn.i2p-projekt.de.
All the sources are now present on your machine, in the database file. To make them available in a directory, you need to check them out: mtn -d i2p.mtn co --branch=i2p.i2p
The above command creates a directory i2p.i2p, which contains all of the I2P sources.
To download the website files instead of the I2P source files, use 'i2p.www' instead of 'i2p.i2p'.
The initial pull may take several hours using the tunnel. If it fails after a partial pull, simply rerun it, it will start where it left off. If you are in a hurry, use the non-anonymous access.
A full list of branches, including i2p.i2p and i2p.www can be found on viewmtn.
A long explanation about using monotone is available on the monotone page.
To compile the code, you need the Sun Java Development Kit 6 or higher, or equivalent JDK (Sun JDK 6 strongly recommended) and Apache ant version 1.7.0 or higher. If you go are working on the main I2P code, you can go into the i2p.i2p directory and run 'ant' to see the build options.
To build or work on console translations, you need the xgettext, msgfmt, and msgmerge tools from the GNU gettext package.
For development on new applications, see the application development guide.
See zzz's TODO lists, this website's TODO list or Trac for ideas.
See the bottom of licenses.html for commit privilege requirements. You need these to put code into i2p.i2p (not required for the website!).
Short version of how to generate and use keys if you plan to commit:
The developers hang around on IRC. They can be reached on the Freenode network, and on the I2P internal networks. The usual place to look is #i2p. Join the channel and say hi!
Website and router console translators: See the New Translators Page for next steps.
{% endblock %}