0%

Chapter 12 · practice

A Project Someone Else Can Run

Decide What Travels

A runnable project is not a snapshot of one machine. Share the decisions another person needs to rebuild it: source, documentation, dependency recipes, and tests. Do not share the derived environment, caches, secrets, logs, or response JSON the command happened to produce.

Create README.md and begin with the project title, API Catalog, plus a Project files section. Name the final authored tree:

API_CONTRACT.md
README.md
api_catalog.py
requirements-dev.txt
requirements.txt
tests/test_api_catalog.py

At this point only the Chapter 11 source, API note, runtime recipe, and new README need exist. Do not add .gitignore: Python Land workspaces deliberately reject dot-paths. Clean source acceptance checks that derived/private/output files are absent instead of grading an ignore rule.

The downloaded ZIP will later add a generated PYTHONLAND_README.md; that guide is not your project README and is not part of the saved workspace tree. Source grading cannot prove that a signed-in download click occurred.

Which file belongs in the handoff?

Unsure whether a file belongs in the handoff? Ask Monty: “Is this something I wrote, or something my tools made?” Almost every case in this chapter falls out of that one question.

Task

Create README.md with the API Catalog title and a Project files section naming the exact six authored files. Keep generated JSON, environments, caches, secrets, archives, logs, databases, coverage/build output, and .gitignore out.