CCL | Software | Download | Manuals | Forum | Papers
CCL Home


Software Community Operations

Technical Paper Requirements

Each paper should be stored in a git repository with all of the information necessary to recreate that paper from scratch. While this requires some work to get going, it enables the reproducibility of the work, and you will find that it greatly eases the process of revising the paper. If anyone ever asks “How did you generate Figure 5”, then you will be able to quickly and easily answer that question.

Use the template paper in gihtub as a starting point for all new papers.

The repository for each paper must contain:

  • The repository urls and commit ids of any code used by the paper.
  • The scripts used to run experiments described in the paper.
  • The raw data generated by the experiments
  • The gnuplot files used to turn the raw data into plots.
  • The figures used in the paper.
  • The latex source files.
  • A Makefile that automatically plots the data, constructs the figures, and builds the final paper pdf with a single “make” command.
  • If everything is working correctly, then any member of the lab must be able to do a “git clone” of the repository into a fresh directory, then simply type “make” and get a complete version of the final submitted paper. All the external tools (latex, gnuplot, etc) should be made available via cclimport so that everything builds consistently.

    Hint: Avoid the temptation to add lots of optional packages and features in your latex document. This makes it difficult to get the paper to compile on other machines. Stick to basic text, graphics, and tables, and your latex code will be much easier to build on any available machine. Focus on the quality of your writing, not the cleverness of the latex code.

    On ND or CRC machines, you can import a complete TeX Live installation with cclimport texlive current. This environment should be similar to that provided by online LaTeX editors. You need to import TeX Live before running make so that everything is available for the various phases of compiling the final document.