Skip to content

Latest commit

 

History

History
37 lines (25 loc) · 1.43 KB

HACKING.md

File metadata and controls

37 lines (25 loc) · 1.43 KB

Readme for hacking on the source

Build systems

The build system of I2P today is a bit mixed. In the old days, and at least for relasing we actually use the old ant tool. For the new Browser Bundle launcher, as well as the Mac OSX launcher the sbt tool from the Scala world was used cause it gives some increadibly effictive plugins and logic to build them while keeping a relation to the old build system.

We also have Gradle partly implemented, much work, but not all. Meeh which is writing this readme is guessing we'll end up with a combination of Gradle and SBT in the end when we know what kind of structure we want.

Browsing around the source code

If you're new at this, which we all was at one point, I'll have some tips.

  • Check out our DIRECTORIES.md to learn ore about where you'll find I2P's different parts in the codebase.

  • For me (Meeh), it worked well to run find . -type f -name '*Runner.java' from the source tree root, and take a look at the files that get listed. A lot of hints of how this is peaced together lies there.

The .. Monotone part

Check out MONOTONECHEATSHEET.md file.

SBT Behind proxy

Seems it's a hassle behind SOCKSv5. But for use of HTTP proxy to fetch dependencies and such, please edit export SBT_OPTS="$SBT_OPTS -Dhttp.proxyHost=myproxy-Dhttp.proxyPort=myport" to have correct values for your system, then execute it before you start SBT.