Questions Frequently Asked by New Users

Q: What’s the difference between “Metronome” and the “NMI Build and Test Lab”?
A: Metronome is the software run by the Lab. The same people here at the University of Wisconsin run the Lab and develop the software, so it’s easy to get confused! Other organizations maintain different Metronome installations.

Q: I have an account on your website. What else do I need to get started?
A: For security reasons, accounts on this website are not linked the Lab’s log-in accounts. You’ll have to request a Lab account before you can build or test your software.

Q: We want to use the NMI Build and Test Lab to test our software. How do we send the code to you?
A: We — the Lab staff — don’t act in the building or testing your software; in fact, the process can be completely automated and even run every night, regardless of where you keep the source, provided it can be accessed from our servers. We certainly recommend using a version control system, and support CVS and Subversion, but you can access your source via ftp, http, or scp as well. Please see our tutorials for more information about getting started.

Initally, because many organizations don’t allow outside access to their CVS or Subversion repositories, it will probably be easiest to log into a Lab machine and use a command-line tool (perhaps one requiring you to type a password) to copy the source of some specific version of your software to one of our machines. The build and test system — Metronome — can than be directed to use the local copy. Once you’ve finished automating your build or test (we can help), you can look into automating access to your source. (Our advice comes down to “use SSH keys”, but the specifics really depend on the particulars of your project and the administration of the machines hosting your source.)

Q: Is there a way for me to specify a prereq of ‘any java 1.4.2’ rather than explicitly matching up platforms with 1.4.2_08, _05, whatever and submitting separately?
A: No, but this is a feature, not a bug. ;)

In order to ensure reproducibility of a build or test, Metronome requires that there be no “variables” in the specification file. If a test could match with more than one java version, then it might work today and fail tomorrow for no apparent reason. (For instance, on ppc_macos_10.4 there are java-1.4.2_07 and java-1.4.2_09 prereqs, because there are some differences in results between them.)

That being said, we know it can be tedious to provide a greater degree of specificity than you really care about, and have some tools to help. The first is ‘nmi_list_prereqs’, which is installed on all of our submit nodes (and ships with the Metronome distribution). You can use this tool to discover the specific versions of java available on different platforms. (For example, ‘nmi_list_prereqs —platform=macos java’.)

There’s also a script in our contrib area, ‘add_prereq_version_to_all_platforms’, that takes a prereq name and a prefix to a version (‘java’ and ’1.4.2’ in our example) and generates a set of lines you can add to your submit file which specify, per-platform, which specific ‘java’ prereq is version ’1.4.2’.

In general, you don’t have to submit separately to make your prereqs platform-specific; see prereqs. Be sure to remove the prereq from your general requirements line, since Metronome takes the union of the two.