Improved new developers guide somewhat.
This commit is contained in:
@@ -1,90 +1,163 @@
|
||||
{% extends "_layout.html" %}
|
||||
{% block title %}New Developer's Guide{% endblock %}
|
||||
{% block content %}
|
||||
Here's a very quick guide to getting started
|
||||
on contributing to the website or the software, including translations.
|
||||
<ul>
|
||||
<li>
|
||||
Not quite ready for coding?
|
||||
Try <a href="getinvolved.html">getting involved</a> first.
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
<p>
|
||||
Not quite ready for coding?
|
||||
Try <a href="getinvolved.html">getting involved</a> first.
|
||||
</p>
|
||||
|
||||
<li>
|
||||
For development on the i2p router or the embedded applications,
|
||||
learn Java, love Java :)
|
||||
<div id="TOC">
|
||||
<ol>
|
||||
<li><a href="#basic-study">Basic study</a></li>
|
||||
<li><a href="#getting-the-i2p-code">Getting the I2P code</a></li>
|
||||
<li><a href="#building-i2p">Building I2P</a></li>
|
||||
<li><a href="#development-ideas">Development ideas</a></li>
|
||||
<li><a href="#making-the-results-available">Making the results available</a></li>
|
||||
<li><a href="#get-to-know-us">Get to know us!</a></li>
|
||||
<li><a href="#translations">Translations</a></li>
|
||||
</ol>
|
||||
</div>
|
||||
|
||||
<li>
|
||||
Study the <a href="how_intro.html">how intro</a>,
|
||||
the <a href="how.html">other "how" documents</a>,
|
||||
the <a href="techintro.html">tech intro</a>,
|
||||
and associated documents.
|
||||
|
||||
<li>
|
||||
For development on the i2p router or the embedded applications,
|
||||
get the monotone source repository installed - short instructions:
|
||||
<ul>
|
||||
<li>Install <a href="http://www.monotone.ca/">monotone</a>
|
||||
<li>Skim over the <a href="http://monotone.ca/docs/Tutorial.html">monotone tutorial</a>
|
||||
<li>Enable the <a href="i2ptunnel.html">i2ptunnel</a> client tunnel on port 8998 pointing to mtn.i2p2.i2p (if you are having nonce issues, see <a href="http://trac.i2p2.de/ticket/64">ticket #64</a> for a workaround)
|
||||
<li>mtn -d i2p.mtn db init
|
||||
<li>mtn -d i2p.mtn pull 127.0.0.1:8998 i2p.i2p
|
||||
<li>mtn -d i2p.mtn co --branch=i2p.i2p
|
||||
</ul>
|
||||
Non-anonymous access: mtn.i2p2.de:4691 or mtn.i2p-projekt.de:4691
|
||||
<br>
|
||||
Website branch: use i2p.www instead of i2p.i2p.
|
||||
<br>
|
||||
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.
|
||||
<br>
|
||||
Full list of branches: see <a href="http://stats.i2p/cgi-bin/viewmtn/">viewmtn</a>.
|
||||
<br>
|
||||
Long version: see the <a href="monotone.html">monotone page</a>.
|
||||
|
||||
<li>
|
||||
To compile the code, you need the Sun Java Development Kit 6 or higher, or equivalent JDK
|
||||
(<a href="http://java.sun.com/javase/downloads/index.jsp">Sun JDK 6</a> strongly recommended) and
|
||||
<a href="http://ant.apache.org/">Apache ant</a>
|
||||
version 1.7.0 or higher.
|
||||
|
||||
<li>
|
||||
To build or work on console translations, you need
|
||||
the xgettext, msgfmt, and msgmerge tools from the
|
||||
<a href="http://www.gnu.org/software/gettext/">GNU gettext package</a>.
|
||||
|
||||
<li>
|
||||
For development on new applications,
|
||||
see the <a href="applications">application development guide</a>.
|
||||
|
||||
<li>
|
||||
See <a href="http://zzz.i2p/forums/3">zzz's TODO lists</a>,
|
||||
<a href="todo.html">this website's TODO list</a> or
|
||||
<a href="http://trac.i2p2.de/report/2">Trac</a>
|
||||
for ideas.
|
||||
|
||||
<li>
|
||||
Say hi to the developers on #i2p
|
||||
|
||||
<li>
|
||||
See the bottom of <a href="licenses.html">licenses.html</a> for
|
||||
commit privilege requirements. (Not required for website)
|
||||
|
||||
<li>
|
||||
Short version of how to generate and use keys if you plan to commit:
|
||||
<ul>
|
||||
<li>mtn genkey yourname-transport@mail.i2p <i>(use an empty passphrase)</i>
|
||||
<li>mtn genkey yourname@mail.i2p <i>(enter a passphrase)</i>
|
||||
<li>mtn pubkey yourname-transport@mail.i2p <i>(<a href="mailto:mtn@welterde.de">send</a> this to a mtn repo operator to get push privileges)</i>
|
||||
<li>mtn pubkey yourname@mail.i2p <i>(send this to <a href="mailto:zzz@mail.i2p">a release manager</a> to get commit privileges - not required for website)</i>
|
||||
<li>mtn ci -k yourname@mail.i2p <i>(check in with this key)</i>
|
||||
<li>mtn sync -k yourname-transport@mail.i2p <i>(push with this key)</i>
|
||||
</ul>
|
||||
Long version: see the <a href="monotone.html">monotone page</a>.
|
||||
|
||||
</ul>
|
||||
<h2 id="basic-study">Basic 'study'</h2>
|
||||
|
||||
<p>
|
||||
Website and router console translators: See the <a href="newtranslators.html">New Translators Page</a>
|
||||
for next steps.
|
||||
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 <a href="http://www.mindview.net/Books/TIJ/">Thinking in Java</a>.
|
||||
</p>
|
||||
<p>
|
||||
Study the <a href="how_intro.html">how intro</a>,
|
||||
the <a href="how.html">other "how" documents</a>,
|
||||
the <a href="techintro.html">tech intro</a>,
|
||||
and associated documents.
|
||||
These will give you a good overview of how I2P is structured and what different things it does.
|
||||
</p>
|
||||
|
||||
<h2 id="getting-the-i2p-code">Getting the I2P code</h2>
|
||||
|
||||
<p>
|
||||
For development on the i2p router or the embedded applications,
|
||||
get the monotone source repository installed - short instructions:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
Install <a href="http://www.monotone.ca/">monotone</a>.
|
||||
Monotone is a version control system.
|
||||
We use it because it allows us to keep track of who does what changes to the source code (and for a lot of complicated things, but 'keeping track of changes' is the basic idea).
|
||||
</li>
|
||||
<li>Skim over the <a href="http://monotone.ca/docs/Tutorial.html">monotone tutorial</a>, to make sure you understand the concepts.</li>
|
||||
<li>
|
||||
<p>
|
||||
If you want to remain anonymous, you need to do an additional step, to set up a connection to a monotone server over I2P:
|
||||
</p>
|
||||
<p>
|
||||
Enable the <a href="i2ptunnel.html">i2ptunnel</a> client tunnel on port 8998 pointing to mtn.i2p2.i2p (if you are having nonce issues, see <a href="http://trac.i2p2.de/ticket/64">ticket #64</a> for a workaround)
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
Pick a directory where you want to put all your I2P files, and create a monotone database: <b>mtn -d i2p.mtn db init</b>
|
||||
</li>
|
||||
<li>
|
||||
Pull the I2P sources to your machine. This may take a long time, especially if you are doing this over I2P!
|
||||
<ul>
|
||||
<li>Anonymously: <b>mtn -d i2p.mtn pull 127.0.0.1:8998 i2p.i2p</b></li>
|
||||
<li>
|
||||
<p>
|
||||
Non-anonymously: <b>mtn -d i2p.mtn pull mtn.i2p2.de i2p.i2p</b>
|
||||
</p>
|
||||
<p>
|
||||
Alternatively, instead of 'mtn.i2p2.de', you can also download from mtn.i2p-projekt.de.
|
||||
</p>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<p>
|
||||
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: <b>mtn -d i2p.mtn co --branch=i2p.i2p</b>
|
||||
</p>
|
||||
<p>
|
||||
The above command creates a directory i2p.i2p, which contains all of the I2P sources.
|
||||
</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h3>Remarks</h3>
|
||||
<p>
|
||||
To download the website files instead of the I2P source files, use 'i2p.www' instead of 'i2p.i2p'.
|
||||
</p>
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
<p>
|
||||
A full list of branches, including i2p.i2p and i2p.www can be found on <a href="http://stats.i2p/cgi-bin/viewmtn/">viewmtn</a>.
|
||||
</p>
|
||||
<p>
|
||||
A long explanation about using monotone is available on the <a href="monotone.html">monotone page</a>.
|
||||
</p>
|
||||
|
||||
<h2 id="building-i2p">Building I2P</h2>
|
||||
|
||||
<p>
|
||||
To compile the code, you need the Sun Java Development Kit 6 or higher, or equivalent JDK
|
||||
(<a href="http://java.sun.com/javase/downloads/index.jsp">Sun JDK 6</a> strongly recommended) and
|
||||
<a href="http://ant.apache.org/">Apache ant</a>
|
||||
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.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
To build or work on console translations, you need
|
||||
the xgettext, msgfmt, and msgmerge tools from the
|
||||
<a href="http://www.gnu.org/software/gettext/">GNU gettext package</a>.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
For development on new applications,
|
||||
see the <a href="applications">application development guide</a>.
|
||||
</p>
|
||||
|
||||
<h2 id="development-ideas">Development ideas</h2>
|
||||
<p>
|
||||
See <a href="http://zzz.i2p/forums/3">zzz's TODO lists</a>,
|
||||
<a href="todo.html">this website's TODO list</a> or
|
||||
<a href="http://trac.i2p2.de/report/2">Trac</a>
|
||||
for ideas.
|
||||
</p>
|
||||
|
||||
<h2 id="making-the-results-available">Making the results available</h2>
|
||||
|
||||
<p>
|
||||
See the bottom of <a href="licenses.html">licenses.html</a> for
|
||||
commit privilege requirements. You need these to put code into i2p.i2p (not required for the website!).
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Short version of how to generate and use keys if you plan to commit:
|
||||
<ul>
|
||||
<li>mtn genkey yourname-transport@mail.i2p <i>(use an empty passphrase)</i>
|
||||
<li>mtn genkey yourname@mail.i2p <i>(enter a passphrase)</i>
|
||||
<li>mtn pubkey yourname-transport@mail.i2p <i>(<a href="mailto:mtn@welterde.de">send</a> this to a mtn repo operator to get push privileges)</i>
|
||||
<li>mtn pubkey yourname@mail.i2p <i>(send this to <a href="mailto:zzz@mail.i2p">a release manager</a> to get commit privileges - not required for website)</i>
|
||||
<li>mtn ci -k yourname@mail.i2p <i>(check in with this key)</i>
|
||||
<li>mtn sync -k yourname-transport@mail.i2p <i>(push with this key)</i>
|
||||
</ul>
|
||||
Long version: see the <a href="monotone.html">monotone page</a>.
|
||||
</p>
|
||||
|
||||
<h2 id="get-to-know-us">Get to know us!</h2>
|
||||
<p>
|
||||
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!
|
||||
</p>
|
||||
|
||||
<h2 id="translations">Translations</h2>
|
||||
<p>
|
||||
Website and router console translators: See the <a href="newtranslators.html">New Translators Page</a>
|
||||
for next steps.
|
||||
</p>
|
||||
|
||||
{% endblock %}
|
||||
|
Reference in New Issue
Block a user