Init#1
Open
MasonEgger wants to merge 4 commits intomainfrom
Open
Conversation
Stand up the full lab harness for the seven Java exercises in
temporalio/replay26-workshop-java-code so attendees can run them in
Instruqt without local prerequisites.
- docker/Dockerfile: eclipse-temurin:21-jdk-jammy base with Maven 3.9,
Temporal CLI 1.3.0, the workshop source baked at /opt/workshop, and a
pre-warmed Maven cache (resolves and compiles every pom under
exercises/, including durable-execution's microservice/ submodule) so
the first compile in the lab is fast.
- .github/workflows/build-image.yml: builds and pushes to
ghcr.io/temporalio/replay26-workshop-java-sandbox on push to main/init,
on repository_dispatch from the code repo, or via workflow_dispatch.
Tags :latest (on main), :<branch> (otherwise), and :<sha> always.
- instruqt/track.yml + config.yml: track manifest with slug
replay26-java-workshop, sandbox container pinned at
ghcr.io/temporalio/replay26-workshop-java-sandbox:latest, modern-dark
theme, 4096 MB. id: left empty for Instruqt to assign on first push.
- instruqt/track_scripts/{setup,cleanup}-workshop: once-per-session
bootstrap that stages /opt/workshop into /root/workshop, starts
temporal server start-dev in the background, waits for gRPC, and
tears down workers and the dev server at session end.
- instruqt/01..07-<chapter>/: seven challenge directories
(farewell-workflow, durable-execution, sending-signals-client,
sending-signals-external, querying-workflows,
non-retryable-error-types, rollback-with-saga). Each has
assignment.md (frontmatter with chapter-appropriate tabs --
Microservice/Worker(s)/Starter/Signal/Query, Code Editor on practice/,
Solution on solution/, Temporal UI on port 8233 -- plus the upstream
README body verbatim with bash,run / bash,nocopy fence tags and
[button label="..."](tab-N) references where the README points at
another terminal), a setup-workshop that sparse-stages just that
chapter into /root/workshop/exercises/, and a cleanup-workshop that
pkills mvn / exec.mainClass processes. No solve-workshop scripts.
- justfile: instruqt push/pull/validate/diff/init helpers, plus
docker-build/docker-run recipes for local sandbox smoke-testing
against a sibling ../replay26-workshop-java-code checkout.
- README.md: replace the three-line stub with a two-surface architecture
overview, common commands, and chapter table.
- CLAUDE.md: project guidance mirroring the nexus workshop's structure
(two surfaces, sparse-stage pattern, frontmatter canonicality, and
the verbatim-README convention with the small set of mechanical
edits).
- .gitignore: ignore commit-msg.md, .ai-sessions/, OS junk, and the
local Docker build context produced by `just docker-build`.
Two fixes, found while pushing the first build of the sandbox image: - .github/workflows/build-image.yml: default the code-repo checkout ref to `main` instead of mirroring this repo's branch name. The prior expression resolved to `init` when this repo was on the `init` branch, but the `temporalio/replay26-workshop-java-code` repo only carries `main`, so the workflow's checkout step failed with `couldn't find remote ref refs/heads/init`. CI on the `init` branch now correctly checks out `main` of the code repo. - instruqt/config.yml: temporarily pin the sandbox container to the `:init` image tag while we are working on the `init` branch. The CI tag-computation step only publishes `:latest` on `main`, so a `:latest` pin here would point at an image that does not exist until the first merge. A short comment in the file explains the flip back to `:latest` after merging to main.
The first successful `instruqt track push` registered the track on Instruqt and wrote the assigned ids back to local YAML. Capturing those ids in git so subsequent pushes update the same track, chapters, and tabs instead of creating duplicates. - instruqt/track.yml: track id `0zbfxindocpr`, plus the `loadingMessages: true` and `checksum:` fields the Instruqt CLI injects on round-trip. - instruqt/01..07-<chapter>/assignment.md: assigned chapter id and per-tab ids for all seven challenges. The CLI also normalised single-quoted titles and reflowed a few teaser lines; left as-is so future `instruqt track pull` runs do not show drift. - .gitignore: ignore `*.remote` files. The Instruqt CLI drops per-file `<name>.remote` snapshots of the previous remote state next to track.yml / config.yml on `pull`/`push`; they are local backups, not source-of-truth.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.