aboutsummaryrefslogtreecommitdiff
path: root/DEVELOPER_GUIDE.txt
diff options
context:
space:
mode:
authorJan Christopher Vogt <oss.nsp@cvogt.org>2016-04-28 15:42:03 -0400
committerJan Christopher Vogt <oss.nsp@cvogt.org>2016-04-28 15:42:03 -0400
commita6150a65d4638e737a8e70b9fea768a0745cec60 (patch)
tree81b8224c3539f2db3796520547bce647004a11a2 /DEVELOPER_GUIDE.txt
parent43bfdc4bf1c46fbb6abae97643aa13da557b9610 (diff)
parent6e9faddfb0db0e7b78501cb61c46bb33887ccdcd (diff)
downloadcbt-a6150a65d4638e737a8e70b9fea768a0745cec60.tar.gz
cbt-a6150a65d4638e737a8e70b9fea768a0745cec60.tar.bz2
cbt-a6150a65d4638e737a8e70b9fea768a0745cec60.zip
Merge pull request #111 from cvogt/reproducible-builds
Reproducible builds
Diffstat (limited to 'DEVELOPER_GUIDE.txt')
-rw-r--r--DEVELOPER_GUIDE.txt15
1 files changed, 13 insertions, 2 deletions
diff --git a/DEVELOPER_GUIDE.txt b/DEVELOPER_GUIDE.txt
index 0e20339..a26d760 100644
--- a/DEVELOPER_GUIDE.txt
+++ b/DEVELOPER_GUIDE.txt
@@ -1,17 +1,28 @@
Welcome developer.
-CBT has a very easy code base that you can fully master it in an afternoon.
+CBT has a very easy code base that's easy to master.
Don't shy away from submiting PRs :). And because CBT bootstraps from source
you already have the code there.
+The only tricky parts are class loading and cache invalidation. Most changes
+will not need to interfere with this though.
+
The ./cbt bash script starts the process.
You currently need javac, nailgun, gpg and realpath or gcc installed.
+If you have any troubles with class not found, method not found,
+abstract method error, NullPointerException, etc.
+Try `killall -KILL java`. To restart nailgun.
+Or try `cbt direct <taskname>` to circumvent nailgun.
+It can also help to delete all target folders `find .|grep target\$|xargs rm -rf`
+inside of CBT. Or (almost never) the `cache/` directory.
+
CBT's directory structure
cbt Shell script launching cbt. Can be symlinked.
-bootstrap_scala/ Self-contained downloader for the core Scala jars. Allows bootstrapping from Java into Scala.
+compatibility/ Java interfaces that all CBT versions are source compatible to. For communication
+ between composed builds of different versions.
nailgun_launcher/ Self-contained helper that allows using Nailgun with minimal permanent classpath. (Is this actually needed?)
realpath/ Self-contained realpath source code to correctly figure our CBTs home directory. (Open for replacement ideas.)
stage1/ CBT's code that only relies only on Scala/Java built-ins. Contains a Maven resolver to download libs for stage2.