ops-class.org Repositories

Below we describe various ops-class.org source code repositories. This serves primarily as a reference for course staff, but may also be useful for students that want to contribute to ops-class.org by submitting pull requests.


The sources used to build this website are published on GitHub and maintained by Geoffrey Challen. Continuous integration is done using Travis CI. Pull requests that pass integration tests are welcome.

Private OS/161 Sources and Solution Sets

In addition to our public OS/161 sources we also maintain private OS/161 repositories. We use these for testing changes to the base system before pushing to GitHub, and for maintaining solution sets. If you are course staff for a class using ops-class.org, please contact your instruction to gain access to these repositories.

Solution Maintenance Scripts

Changes to the base system and any solution set must be migrated to downstream sources. For example, all changes to the base system must be pushed to the ASST1, ASST2, and ASST3 solution set repositories; any changes to the ASST2 solution set should be migrated to ASST3; etc. We have a set of tools available for doing this correctly. If you are a course staff member, contact us to get a copy of these tools.


The test161 client and server that control sys161 to perform testing are described here on the setup page.

The web interface is built using Meteor and ReactJS. Sources are available here. This entire project is in need of a complete overhaul.


The Vagrantfile we use to create a headless OS/161 development environment is hosted on GitHub. It uses base ops-class boxes hosted by HashiCorp. Those are built using scripts that live in a separate GitHub repository.

OS/161 Toolchain

The rest of the OS/161 toolchain—​including sys161 and the cross compilers— is described on the setup page.


Below we describe a few miscellaneous bits and pieces that we maintain in private repositories.

test161 Overlays

To perform trusted server-side testing, test161 uses a set of overlays. These contain assignment-specific files that are copied over the submitted code to ensure that the build and testing environment is secure. Because some overlays including partial solutions or extra tests that are not released to students, we maintain these in a private repository.

test161 Packaging

We maintain a private repository for the purpose of packaging test161 for our PPA. Our approach to crafting LaunchPad source packages that can build Go binaries involves including sources for all of the required libraries. So while this repository contains all publicly-available code, it also contains a lot of code that we do not maintain. As a result, we keep in private.

Created 2/17/2017
Updated 9/18/2020
Commit 4eceaab // History // View
Built 9/18/2020 @ 11:03 EDT