-
Notifications
You must be signed in to change notification settings - Fork 32
MoreAboutDart
Felix S. Klock II edited this page Jul 28, 2013
·
1 revision
Dart is a repository for storing the results of software build-and-test cycles.
- Here is one website for Dart: http://public.kitware.com/Dart/
- (but Felix will be honest here and admit that he is not sure that the aforementioned website is actually where he got the jarfiles and documentation that drove the development of the scripts that drove Larceny autobuilds).
- Another website that is more likely to match the version of Dart that Larceny actually uses: http://www.na-mic.org/Wiki/index.php/Dart2Summary
- There is a mailing list for Dart/Dart2 that does seem active: http://public.kitware.com/pipermail/dart/
The Dart server is a Java program acting as a daemon process that Felix starts on one of the CCIS machines.
- Felix starts the Dart server on
uighur.ccs.neu.edu
.- This address needs to be kept in sync with the scripts that submit the builds (or we need to set up a forwarding proxy, like how
larceny.ccs.neu.edu/trac
andlarceny.ccs.neu.edu/dart
forwards on to other machines that are CCIS maintained.
- This address needs to be kept in sync with the scripts that submit the builds (or we need to set up a forwarding proxy, like how
- The script itself can be found in
/home/pnkfelix/bin/run-dart
; its really short though, all it does is:
cd /home/pnkfelix/Dart
java -jar /home/pnkfelix/jars/DartServer.jar -r -R TestServer dart
- To run the script, Felix invokes
% nohup ~/bin/run-dart
He is not 100% certain that the `nohup` part is necessary. Do not be surprised if attempts to disconnect from `uighur` after starting the script do not seem to work (Felix just kills the xterm window when it looks like the attempt to logout has blocked.)
(Here are the instructions for setting up the initial database: HowToSetupDart )
There are also a set of machines that perform the nightly builds.
- Each nightly build uses the anonymous svn web service to checkout a copy of the source code.
- The web service is moving from something PnkFelix hosts to something that CCIS Systems hosts.
- If you are adding a new machine to the cast, you need to check whether the machine can checkout a copy of the source normally
- Right now if the machine has not accepted the CCIS certificate then the
svn co
will prompt the user for input, causing the script to block.
- The cast (and directory where you can find the nightly builds)
- Artichoke:
/home/henchman/larcenytest/
; look at the henchman user's crontab. - Rasputin:
C:\Henchman\larcenytest\
(aka/cygdrive/c/Henchman/larcenytest/
under Cygwin).- TODO: find out from Jesse what the analogous service to
cron
is on Windows (or at least on Rasputin).
- TODO: find out from Jesse what the analogous service to
- Zulu:
/proj/will/pnkfelix/larcenytest/
; look at the pnkfelix user's crontab while logged into Zulu- (each CCIS machine gets a separate crontab, which we could use to set up parallel nightly builds on distinct machines...).
- FYI:
crontab -l
lists the current user's crontab, andcrontab -e
edits a copy of the current user's crontab file and installs the copy as their crontab when editing is complete. (Also the only way to remove all lines from a crontab iscrontab -r
, according to thecrontab
man page.)
- Poblano:
/home/henchman/larcenytest/
; look at the henchman user's crontab. - Hercules:
/home/pnkfelix/larcenytest/
; look at the pnkfelix user's crontab. (but this is Felix's private machine, not CCIS owned)
- Artichoke:
- Each autobuild machine has a copy of a script that drives the autobuild process each night.
- The script: [source:trunk/larceny_src/test/Scripts/checkout-svn-dart checkout-svn-dart]
- Actually, the usual way that it works is that each autobuild host has several symbolic links to that same script, but with specially chosen names for the link's name.
- (Yes, this is a strange way to do things. But it does make the purpose of each link self-evident, once they are set up accordingly.)
- The parameters for the build (whether it should use Larceny or MzScheme as the host, whether it is a Native or Petit build, etc) are encoded in the link.
- Then, each autobuild host has a single script (which Felix usually names
checkout-svn-mail
) that is run every night, which:- Runs each of the linked scripts, submitting the resulting dart log file to the Dart server
- Emails Felix with a very brief message saying that the nightly build occurred
- Felix is a bit hestitant to put
checkout-svn-mail
under source control because it sends email to him every night, and because it refers to the above machine (uighur.ccs.neu.edu
), and he does not want to encourage other people to submit random stuff to these addresses. This reasoning, if you can call it that, is a little bit irrational (but so is referring to yourself in the third person.)