Updating README.md making contribution/hacking guide/docs more available,
this is specially important for our GitHub impression which I suspect most coders will have their first meeting with I2P on. The documentation is far from done but it should make value for any new developer by this time so I've decided to push them. It losly describes our build systems, and has a monotone cheat sheet which always has an "git equalent" so it's easier to handle for people used to git.
This commit is contained in:
32
README.HACKING.md
Normal file
32
README.HACKING.md
Normal file
@ -0,0 +1,32 @@
|
||||
# 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 [README.DIRECTORIES.md](README.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 [README.MONOTONECHEATSHEET.md](README.MONOTONECHEATSHEET.md) file.
|
||||
|
30
README.MONOTONECHEATSHEET.md
Normal file
30
README.MONOTONECHEATSHEET.md
Normal 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!
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -17,6 +17,10 @@ FAQ: https://geti2p.net/faq
|
||||
API: http://docs.i2p-projekt.de/javadoc/
|
||||
or run 'ant javadoc' then start at build/javadoc/index.html
|
||||
|
||||
## How to contribute / Hack on I2P
|
||||
|
||||
Please check out [README.HACKING.md](README.HACKING.md)
|
||||
|
||||
## Building packages from source
|
||||
|
||||
To get development branch from source control: https://geti2p.net/newdevelopers
|
||||
|
Reference in New Issue
Block a user