Changelog¶
All notable changes are listed here. The project follows Semantic Versioning.
[1.0.1] - 2026-10-23¶
Fixed¶
- The documentation site serves the demo recording itself; the previous source only played on github.com.
[1.0.0] - 2026-10-23¶
The first stable release. The scenario format is now a commitment: a change that breaks existing scenario files bumps the major version.
What 1.0 contains, for someone arriving fresh: a simulated four-node DGX H100 cluster managed by Base Command Manager with emulated nvidia-smi, DCGM, Slurm, Kubernetes with the GPU Operator, cmsh, InfiniBand tools, NCCL tests, Docker and NGC; 48 scenarios with reference solutions covering every topic of the NCP-AIO blueprint, from a six-lab on-ramp to cross-system incidents, most with variants; a grader that reads the cluster's end state, the evidence gathered and the safety of the work; guided and incident modes; a study path (next, plan), a mock exam in the current format with a report card, and reflection notes; installation from PyPI or as a Docker image; a documentation site.
Added¶
- A demo recording on the README and the documentation home page.
[0.9.3] - 2026-10-22¶
Changed¶
- After every objective is met, the lab offers the debrief and then the reflection instead of printing both at once, so the result stays on screen. Enter accepts,
nskips. - Documentation reviewed against the current behaviour: updating instructions, the menu, the offered debrief, safe practice and variants in the README and the architecture page.
[0.9.2] - 2026-10-22¶
Fixed¶
- A lab started without
--variantshowed the unfilled briefing, objectives and hints ({node}) while grading a concrete variant. The lab now shows the variant it grades, andretryshows the next one. - Scenario titles no longer carry placeholders, so
greenray listandgreenray nextread correctly. - The test-suite drives every variant of every scenario through the lab interface, in guided and incident mode, exactly as a learner types it, and fails on any placeholder that reaches the screen.
[0.9.1] - 2026-10-22¶
Fixed¶
- The interactive menu answers unknown input instead of silently reprinting itself, accepts
help, the entry names and commands pasted from the docs (greenray next,lab <id>), and tells a first-time user where to start.
[0.9.0] - 2026-10-22¶
Where to look, not only what to fix.
Added¶
- Three cross-system incidents, each with three variants and in the mock-exam pool: a DGX node without a driver after a reboot because its BCM category changed; a two-node training run eight times slower because the updated software image lost the GPUDirect RDMA module and one InfiniBand link trained at 100G; a Deployment replica Pending because a pool node was switched to MIG.
- Reflection after a passed lab: three ungraded questions (the evidence, the choice of fix, the verification) whose answers are kept in
~/.greenray/notes/<scenario-id>.md.greenray progresscounts them.
Changed¶
- Reseating a cable restores a link that trained at reduced speed, as a replaced cable does.
[0.8.0] - 2026-10-22¶
Tests judgment, not memory.
Added¶
- Scenario variants: a scenario can list variants that change the node, GPU, job or user. A lab picks one at random,
greenray lab <id> --variant Nchooses,retrymoves to the next, andgreenray validatereplays every variant. Ten scenarios have three variants each. - Safe-practice grading: the simulator records destructive operations that cost users work (a reboot or power-off with jobs on the node, a node set DOWN with jobs, another user's job cancelled, a running pod deleted, a container runtime restarted with containers up). Checks read that log with
audit()and require order of work withran_before(). Checks carry a kind (outcome, evidence or safety) that results display. Seven scenarios use them. - A strictness table in the test-suite: invocations the real tools reject must fail in the simulator with the same wording.
Fixed¶
scontrol update partitionname=... maxtime=rejects malformed time limits;sacct -jrejects non-numeric job ids.nvidia-smi -pmrejects values other than 0/1 and-lgcrejects clocks outside the supported range.modprobefails for modules the DGX image does not ship;rmfails for a missing file unless-fis given.docker pull,docker runandenroot importfail for Docker Hub repositories that do not exist.
[0.7.0] - 2026-10-22¶
Ready for a public audience.
Added¶
- A documentation site built with MkDocs and published to GitHub Pages: getting started, using the lab, the study path, the simulated cluster, exam coverage, the scenario format, architecture, contributing, security and this changelog.
- CI builds the site on every push; Dependabot groups GitHub Actions updates into one pull request.
Changed¶
- The README is a front page: what the tool is, how to install it, how it teaches, and links into the documentation. The manual moved to the site.
docs/COVERAGE.mdanddocs/SCENARIO_FORMAT.mdare nowdocs/coverage.mdanddocs/scenario-format.md.
Removed¶
- Compatibility with the project's former name: the
AIOLAB_*environment variables, the~/.aiolabprogress migration and the old solutions-directory names. - Bundled solutions for real-hardware labs that are not part of this repository.
- The code of conduct file; its content rule lives in CONTRIBUTING.
[0.6.0] - 2026-10-21¶
Teaches better.
Added¶
- Six on-ramp scenarios for the first week: reading Slurm accounting and node logs, editing slurm.conf and reconfiguring, a first GPU batch job, a Pending pod with a wrong node selector, a read-only cmsh inventory, and mapping a GPU's bus id to its index, UUID and serial.
greenray nextrecommends what to practise from your progress;greenray planprints a four-week schedule covering every scenario, with passed labs ticked.greenray mock --labs-only: the three labs alone in 40 minutes. Every mock now ends with a report card: per-domain bars over questions and labs, and a practise-next list.- A code of conduct and Dependabot configuration.
Changed¶
- Hints name the tool and the setting instead of quoting the fix command;
greenray validateand the test-suite reject a hint that quotes a state-changing solution step. - On-ramp scenarios are never picked as mock-exam labs.
- An external solutions directory overrides the bundled solutions file by file.
nvidia-smi -qprints the PCI block (bus id) and the minor number.
[0.5.1] - 2026-10-21¶
Fixed¶
- The release workflow pushed the Docker image under a mixed-case name, which GHCR rejects.
[0.5.0] - 2026-10-21¶
Installs anywhere and ships complete.
Added¶
- Reference solutions and exam answer keys ship with the package; an external solutions directory still overrides them.
- Apache-2.0 licence and a NOTICE with the NVIDIA non-affiliation statement.
- PyPI publishing through trusted publishing, and a multi-arch Docker image on GHCR, both built by the release workflow.
greenray doctorprints the version, environment, editor and solutions source.
[0.4.0] - 2026-10-21¶
Feels like a real terminal.
Added¶
- Line editing on every OS (prompt_toolkit): persistent history, Ctrl-R search, and tab completion of commands, hosts and the simulated node's paths relative to the working directory.
- A simulated clock:
uptime,dmesg -Tand the login banner show the current date and time, and time passes as you work. watch -n N <command>refreshes on a terminal,clear, andnvidia-smi dmon/dcgmi dmonprint samples live with real delays.--no-colorflag; the mock exam shows time left, questions answered and the current lab in the prompt.ARCHITECTURE.md.
Changed¶
commands/slurm.pyandcommands/kubectl.pyare now packages split by concern; their public names are unchanged.- Exam answers are kept out of the persistent history.
[0.3.0] - 2026-10-21¶
Renamed to GreenRay AIO (formerly aiolab). Adds editors, realistic help, terminal realism and CI.
Added¶
greenraycommand and package (theAIOLAB_*environment variables and~/.aiolabprogress still work).- Text editors
nano,viandvim: your real editor opens on a terminal, with a line editor as fallback. - Realistic
--help,help <sub>andmanpages for 94 commands, respecting each tool's own meaning of-h. - Working
cd/pwdwith relative paths, an Ubuntu-style coloured prompt and a DGX-style login banner. - Real-tool colours on the terminal (
systemctl,grep,ls,ip -br,dmesg). - Polished screens: banner, menu, incident ticket card, results table, progress bars, debrief panels.
- CI on Linux and Windows (Python 3.10 and 3.13) with lint, type checks, tests, coverage and a build.
[0.2.0]¶
Added¶
- Incident mode,
explain <command>, guided vs independent progress, the full mock exam, and the reliability fixes (command rollback, realistic errors, Ctrl-C handling). - 39 scenarios covering every NCP-AIO blueprint topic, and a 166-question bank.
[0.1.0]¶
Added¶
- First simulator core (as
aiolab): cluster state model, bash-like shell,nvidia-smiwith MIG, scenario engine with grading, timed question drills and progress tracking.