docs + devcontainer: fix scaffolding step, Azure AD rename, and Codespaces launch speedup#48
Open
keith-oak wants to merge 3 commits into
Open
docs + devcontainer: fix scaffolding step, Azure AD rename, and Codespaces launch speedup#48keith-oak wants to merge 3 commits into
keith-oak wants to merge 3 commits into
Conversation
Microsoft rebranded Azure AD to Microsoft Entra ID. The workshop introduction referenced the legacy name in both English and Japanese docs; update all occurrences so attendees see the current product name. Fixes microsoft#47
The Create C# Scaffolding step instructed attendees to edit '.github/instructions/instructions.md' — but that path is used for glob-scoped instruction files (which already exist and are populated), not for the repository-wide Copilot Instructions file. The actual target is '.github/copilot-instructions.md' at the repo root, which ships pre-populated with Python-focused guidance. Attendees need to replace its contents, not fill in an empty file. Changes in both English and Japanese versions: - Point to the correct path: '.github/copilot-instructions.md' - Clarify that the contents must be replaced, not appended - Add an inline note explaining the difference between '.github/copilot-instructions.md' (single repo-wide file) and '.github/instructions/' (glob-scoped applyTo files) Fixes microsoft#46
Workshop attendees frequently launch the Codespace for the first time on conference or venue wifi, where cold-start download cost is the dominant factor in how quickly they can start the hands-on exercises. This change reduces that cost without altering any workshop content or flow. Changes - Install .NET via devcontainer feature (ghcr.io/devcontainers/features/dotnet:2) instead of 'wget + dotnet-install.sh' in the Dockerfile. Features are cached by Codespaces across rebuilds and are baked into prebuild images, so the ~200 MB .NET SDK download no longer happens on every cold build. - Drop 'wget', 'curl', and 'build-essential' from the Dockerfile apt layer. They were only required to bootstrap dotnet-install.sh; the pinned Python dependencies (FastAPI, uvicorn, httpx, requests, pytest) build from wheels and do not need a C toolchain. - Add 'onCreateCommand' that runs 'dotnet restore' against 'src/csharp-app-complete' during container creation, so the NuGet cache is warm before attendees reach the first 'dotnet run'. - Add '.github/workflows/codespaces-prebuilds.yml' as a trigger/marker workflow. It runs on push to main and whenever devcontainer config or Python requirements change — signalling when a prebuild refresh is appropriate. The actual prebuild runs on GitHub's Codespaces infrastructure and must also be enabled in Settings -> Codespaces -> Set up prebuild. No changes to attendee-facing files, workshop docs, or the reference implementations in 'src/csharp-app-complete' or 'src/python-app'.
Author
|
Tagging folks who look like the right reviewers based on recent merge history and issue authorship — apologies for the mention noise, feel free to re-route:
Suggested labels if a maintainer can apply them: I couldn't self-assign reviewers or labels (fork PR from an external contributor), so happy for anyone with maintainer perms to route this as they see fit. 🙏 |
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.
Summary
Three independent, low-risk improvements that showed up while I was preparing to deliver this workshop. Each is in its own commit so they can be reviewed, split, or dropped individually.
7c9b2a57ec45fb.github/copilot-instructions.md(and explains the.github/instructions/folder is a different mechanism)e407772.NETinstall fromwget + dotnet-install.shto the devcontainer feature, drop unused apt packages, pre-warm NuGet viaonCreateCommand, and add a prebuild trigger workflowDetails
1. Azure AD → Microsoft Entra ID (#47)
Microsoft rebranded Azure AD to Microsoft Entra ID. Four occurrences updated across
docs/en/workshop-introduction.mdanddocs/ja/workshop-introduction.md. Pure docs change, no behaviour impact.2. Clarify Copilot Instructions step (#46)
The Create C# Scaffolding step currently tells attendees to edit
.github/instructions/instructions.md, describing it as an empty pre-created file. In practice:.github/instructions/already ships with three populated files (csharp-migration.instructions.md,python-analysis.instructions.md,testing.instructions.md) — these are glob-scoped viaapplyTofrontmatter and shouldn't be edited for this step..github/copilot-instructions.mdat the repo root. It ships pre-populated with Python-focused guidance that attendees need to replace, not append to.The English and Japanese versions of
create-csharp-scaffolding.mdare updated to:.github/copilot-instructions.md).github/copilot-instructions.md(single repo-wide) and.github/instructions/(glob-scopedapplyTofiles)3. Codespaces launch speedup
Workshop attendees typically launch the Codespace for the first time on conference or venue wifi, where cold-start download cost is what determines whether they spend their first 10 minutes waiting or exercising. This commit reduces that cost without touching any workshop content:
.NETvia devcontainer feature (ghcr.io/devcontainers/features/dotnet:2) instead ofwget + dotnet-install.sh. Features are cached by Codespaces across rebuilds and are baked into prebuild images — the ~200 MB SDK download stops happening on every cold build.wget,curl,build-essentialfrom the apt layer. They were there to bootstrapdotnet-install.sh; with the feature move they're unused, and the pinned Python deps (FastAPI, uvicorn, httpx, requests, pytest) install from wheels.onCreateCommand: dotnet restoreagainstsrc/csharp-app-completeso NuGet is warm before the attendee's firstdotnet run..github/workflows/codespaces-prebuilds.ymlas a trigger/marker workflow — fires on push tomainand on devcontainer/requirements changes. The actual prebuild runs on GitHub's Codespaces infrastructure and must also be enabled in Settings → Codespaces → Set up prebuild. Once that's enabled, attendees should see cold-start drop from several minutes to well under a minute.No changes to attendee-facing files, workshop flow, or reference implementations.
Out of scope (deliberately)
src/csharp-app-complete/andsrc/python-app/is untouched.Test plan
create-csharp-scaffolding.mdin both languages end-to-end and confirm the wording still makes senseAzure ADoccurrences in bothworkshop-introduction.mdfiles are nowMicrosoft Entra IDmaindotnet --versionreturns 10.0.x inside the Codespacemkdocs buildagainstdocs/mkdocs.ymlto catch any markdown rendering issues from the new admonitionThanks to the workshop team for the care that's gone into this repo — it's a genuinely useful piece of material. Happy to split this PR, rework the wording, or drop any commit on request. 🙌