Skip to content

Classroom: document postCreateCommand patterns for tutorial authors #32

@cuihtlauac

Description

@cuihtlauac

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 build to 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 via postCreateCommand

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions