Skip to content

Init#1

Open
MasonEgger wants to merge 4 commits intomainfrom
init
Open

Init#1
MasonEgger wants to merge 4 commits intomainfrom
init

Conversation

@MasonEgger
Copy link
Copy Markdown
Collaborator

No description provided.

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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant