Reducing the amount of "items" in the root of the repo

by moving documents into a own docs directory.
This commit is contained in:
meeh
2018-04-24 00:48:08 +00:00
parent 75d681a93c
commit 18b11d2a32
4 changed files with 4 additions and 4 deletions

38
docs/DIRECTORIES.md Normal file
View File

@ -0,0 +1,38 @@
# Short directory explaination
This list should give any new developer a kickstart in where to find code that they wish to modify.
Also nice for old developers with weak memory :)
Directory | Description
------- | ---------
`apps` | This directory contains applications and clients that ships with i2p.
`apps/addressbook` | Some headless code for addressbook management.
`apps/apparmor` | Ruleset for AppArmor.
`apps/BOB` | Code for the BOB service.
`apps/i2psnark` | Code for i2psnark, the torrent client component in webconsole.
`apps/i2ptunnel` | Code for the Hidden Service Manager, and it's GUI in webconsole.
`apps/jetty` | Jetty webserver code.
`apps/routerconsole` | The router console code.
`apps/sam` | SAM service.
`apps/streaming` | The streaming part.
`apps/susidns` | Code for the addressbook component in the webconsole.
`apps/susimail` | Code for the mail client component in the webconsole.
`installer` | This directory contains the code for the installer.
`installer/resources` | Used for static files that's packed with i2p.
`core/java` | Common core code used both by the rotuer and apps.
`core/java/src/net/i2p/app` | Code for app interface.
`core/java/src/net/i2p/crypto` | This directory contain most of the crypto code.
`core/java/src/net/i2p/client` | Client interface code (I2PClient, I2PSession etc.).
`core/java/src/net/i2p/socks` | SOCKS implementation.
`core/java/src/net/i2p/update` | Parts of the update code.
`core/java/src/net/i2p/util` | Utillity code like Log, FileUtil, EepGet, HexDump, and so on.
`router/java` | This directory contains the I2P router code.
`router/java/src/net/i2p/data/i2np` | I2NP code, the inner protocol for I2P.
`router/java/src/net/i2p/router/startup` | Code related to the startup sequence.
`router/java/src/net/i2p/router/networkdb/kademlia` | The DHT (kademlia) code.
`router/java/src/net/i2p/router/networkdb/reseed` | The reseed code.
`router/java/src/net/i2p/router/transport` | Transport implementation code (NTCP, SSU).
`router/java/src/net/i2p/router/tunnel` | Tunnel implementation code.

37
docs/HACKING.md Normal file
View File

@ -0,0 +1,37 @@
# 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](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](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.

View File

@ -0,0 +1,30 @@
# Monotone cheatsheet
**Slogan:** *Saving you hours reading old manuals*
For most of us developers using git, one of the columns will have an example of
how certain things are done in git, to easier know what to do in monotone.
## Commands
Command | Git cmd (which give same info) | Description
------ | ----------------------------- | ------------
`mtn ls unknown` | `git status` | List untracked files.
`mtn status` | `git status` | List untracked files. (Please note that `mtn status` do NOT list unknown files.)
`mtn mv [src] [dest]` | `git mv [src] [dest]` | Move a traced directory or file.
`mtn add -R [files..]` | `git add [files..]` | Adds a file to the workspace. Please use -R when it's directories.
`mtn ci [-k devkey] [files..]` | `git commit -s [files...]` | Sign and commit a patch.
`mtn -d [mtndb] pull [-k devkey] [server]` | `git pull [servername] [branchname]` | Pulls new patches from a remote server.
`mtn -d [mtndb] push [-k devkey] [server]` | `git push [servername] [branchname]` | Pushes your patches to a remote server.
`mtn update -r t:TAGNAME` | `git checkout TAGNAME` | Check out an tag in current working directory.
`mtn list tag` | `git tag -l` | List tags in the repo.
`mtn di -r t:TAGNAME` | `git diff TAGNAME` | Show you the diff between the choosen tag and current head.
TBA...
Contributions are welcome!