-
Notifications
You must be signed in to change notification settings - Fork 0
Description
Parent issue: #24
Problem
Multiple instructors rely on postCreateCommand / postStartCommand for last-mile setup: installing assignment-specific dependencies, configuring git, running setup scripts. Without guidance, tutorial authors reinvent this each time.
Supporting evidence from UCSD study (Valstar et al., ITiCSE 2020)
The paper highlights that "the DevContainer allows for easy sharing of programming assignments between instructors as the tooling infrastructure is shipped with the assignment." This validates the pattern of assignment repos that extend the base image. The paper also notes the DevContainer config can be reused as an autograder config (see #35).
Current state
The project already uses postStartCommand to run hide-codespaces-badge.sh. But there's no documentation on how tutorial authors should extend this for their own assignments.
Proposed changes
- Document the devcontainer lifecycle hooks (
postCreateCommand,postStartCommand,postAttachCommand) and when to use each - Provide example patterns for tutorial authors:
- Installing extra opam packages for a specific exercise
- Running
dune buildto pre-compile assignment code - Setting up git configuration for the classroom
- Add an example in
examples/showing a tutorial-specific devcontainer that extends the base image viapostCreateCommand