feat: scaffold Week 5 assignment — Containerize and Ship#1
Open
lassebenni wants to merge 6 commits into
Open
Conversation
Replace the stub test.sh (always-pass, score 0) with a 7-level static analysis grader. Scaffold code has NotImplementedError stubs and TODO placeholders that score 27/100 (fail); a complete solution scores 100/100. Grader levels: 1 (15 pts) - required files present 2 (15 pts) - Dockerfile layer order and base image 3 (15 pts) - pinned dependencies 4 (20 pts) - CI triggers, ruff, pytest, docker build 5 (15 pts) - env-var config, no NotImplementedError 6 (10 pts) - ACR screenshot present and non-trivial 7 (10 pts) - AI_ASSIST.md filled in, no TODO placeholders Also adds: student README, devcontainer.json (Docker + Azure CLI), src/pipeline.py starter, tests/test_pipeline.py, Dockerfile stub, requirements.txt stub, ci.yml stub, AI_ASSIST.md template.
f731f85 to
0fa017b
Compare
Adds warn() helper to the autograder and a zero-point .gitignore check that flags missing __pycache__/, *.pyc, and .env entries with a clear message explaining why each matters. Also adds Python-specific entries to the scaffold .gitignore (the inherited template was Node.js only).
Replaces the inline pass/fail/warn helpers with a source of grader_lib.sh. Adds check_no_print_statements and check_gitignore_python from the lib. Scoring ladder and output unchanged (27/100 scaffold, 100/100 solution).
Task 3 (Write Tests) is now an assignment task, so the autograder checks it: at least 2 test functions in tests/test_pipeline.py, no NotImplementedError stubs. Level breakdown (total 100 pts, passing 60): L1 required files 15 pts (unchanged) L2 Dockerfile 15 pts (unchanged) L3 unit tests 10 pts (new) L4 pinned deps 10 pts (was 15) L5 CI workflow 20 pts (unchanged) L6 env-var config 15 pts (unchanged) L7 ACR screenshot 10 pts (unchanged) L8 AI report 5 pts (was 10) Also fix error message in L7: "Task 6 deliverable" → "Task 7 deliverable" Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
This PR scaffolds the Week 5 “Containerize and Ship” assignment by adding a starter Python pipeline, tests, container/CI templates, and an autograder script to evaluate student submissions.
Changes:
- Added starter pipeline (
src/pipeline.py) + pytest suite (tests/test_pipeline.py) for students to implement. - Added assignment scaffolding files: Dockerfile template, CI workflow template, pinned-deps template, and AI usage report template.
- Added/updated HYF autograder scripts and repo ergonomics (.gitignore, devcontainer, README).
Reviewed changes
Copilot reviewed 9 out of 14 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
src/pipeline.py |
Pipeline skeleton with TODO stubs for students (env-var config + IO). |
tests/test_pipeline.py |
Starter unit tests defining required behavior for the pipeline functions. |
Dockerfile |
Cache-friendly Dockerfile template with TODO placeholders. |
.github/workflows/ci.yml |
CI workflow template with TODO steps for ruff/pytest/docker build. |
requirements.txt |
Pinned dependency template (students fill in). |
README.md |
Updated assignment instructions and run steps. |
AI_ASSIST.md |
Template for students’ AI usage report. |
.hyf/test.sh |
Autograder scoring script for scaffold/solution verification. |
.hyf/grader_lib.sh |
Shared autograder helper functions for static checks and scoring output. |
.gitignore |
Added Python ignores (venv, caches, output dir) for student projects. |
.devcontainer/devcontainer.json |
Codespaces/devcontainer setup with Docker-in-Docker + Azure CLI. |
assets/.gitkeep |
Keeps assets/ tracked for screenshot deliverable. |
src/__init__.py |
Marks src as a package for imports. |
tests/__init__.py |
Marks tests as a package (import/test discovery consistency). |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
… task label in grader
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
Scoring ladder
Passing threshold: 60/100.
Test plan
ruff,pytest,docker buildin ci.yml;==in requirements.txt;python:3.11-slim+CMDin Dockerfile🤖 Generated with Claude Code