RudderVirt

#The Module Library

The library is where modules live before they reach a classroom. From here you create new modules, edit the ones you own, share them with other organizations, and watch their builds promote into the deployment zones where students will run them.

#Anatomy of a module

A module is the combination of a few things, authored together but conceptually separate.

PartWhat it isWhere it is documented
ManifestThe YAML that describes the VMs, their base images, ISOs, provisioners, and networking.Building VM images
BriefingThe HTML prompt students read when they open the module.Briefings
Teacher briefingAn optional second prompt only teachers see, for solution notes or proctor hints.Briefings
RubricThe autograder spec: which commands run on the VM and how output becomes points.Writing a rubric
TagsCategorized labels (e.g. topic, difficulty) used to find and filter modules.This page.
Time limitOptional minutes-allowed cap surfaced to students.Timers

You will find all of these on the module's page in the library.

#Creating a module

From your organization's library, click Create New Module. The creation form takes a name, a short description, the briefing and teacher briefing, an optional rubric, an optional time limit, and the manifest YAML. Tags are added after the module is created; the create form itself does not have a tag picker.

Once you save, the platform queues a build in your organization's zone: it runs the manifest, captures the resulting disks, and stores them as the cloneable image set students will run. See Building VM images for what the manifest contains. Builds happen per zone, so the same module can have separate builds in separate zones.

Until a build succeeds and is promoted to stable, students cannot start the module. The library shows each module's current build status.

#Editing and updating

Open a module from the library to edit it. The manifest, briefing, teacher briefing, rubric, tags, and metadata can all be changed. Saving a manifest change kicks off a new build; saving a briefing or rubric change does not.

Released modules are pinned to a specific build. Updating the module after it has been released does not change the version your current students are running. To ship an update to an active classroom, create a new release after the new build is stable. See Classrooms.

#Tags

Tags are categorized labels that drive the library's search and filter UI. The platform ships with a curated set of categories (for example, topic and difficulty). When you tag a module, you pick a category and either choose one of its predefined values or enter a custom value. Multiple categories can apply to the same module.

Tags are visual metadata only; they do not affect grading or VM provisioning. Use them to make modules findable for the teachers in your organization and the organizations you share with.

#Sharing with other organizations

A module can be shared from your organization to another at one of two levels:

  • Consumer. The other organization can release the module to its classrooms, but cannot edit it.
  • Maintainer. The other organization can edit the module as well as release it. Use this when you genuinely want a co-author elsewhere; otherwise prefer consumer.

Sharing is per-organization, not per-module-version. The shared organization always sees the latest stable build. To revoke, change the share back from the same UI.

#Promoting builds across zones

Each deployment zone maintains its own build of a module, because the binary disk images are produced inside the zone where they will run. When you have multiple zones, the workflow is:

  1. Build the module in the source zone (where you authored it).
  2. From the module's page, promote that build to another zone. The platform replays the manifest in the target zone to produce a fresh build there.
  3. Wait for the target build to succeed and become stable.
  4. Release in the target zone's organizations.

Promotion is per-zone and idempotent: re-promoting produces a new build in the target zone without disturbing the others.