GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing github.com — python/Makefile at master · flypythoncom/python Expand file tree/ Copy pathMakefileMore file actions 111 lines (90 loc) · 3.99 KB / Copy pathMakefileFile metadata and controls111 lines (90 loc) · 3.99 KB 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 # Recipes use repository-relative paths. Like Magpie's Makefile, fail closed # when invoked with `make -f path/to/Makefile` from an unrelated directory. ifeq ($(and $(wildcard pyproject.toml),$(wildcard tools/validate_catalog.py),$(wildcard catalog/catalog.yml)),) $(error run make in the Python repository (make -C path/to/python)) endif .DEFAULT_GOAL := help .PHONY: help setup check generated-check generate export render manifest registry solutions test verify courses paths lint lock lock-check all PYTHON ?= python3 UV ?= uv # Lock files are resolved once for every supported Python and platform # (--universal from the 3.11 floor). The dev lock is constrained to the # runtime lock so both always agree on shared packages. UV_COMPILE = $(UV) pip compile pyproject.toml --universal --python-version 3.11 \ --custom-compile-command "make lock" --quiet define compile_locks $(UV_COMPILE) -o requirements.lock.txt $(UV_COMPILE) --extra dev -c requirements.lock.txt -o requirements-dev.lock.txt endef help: @echo "FlyPython Development Workflow:" @echo " make setup - Create .venv using .python-version and install locked dev dependencies (requires uv)" @echo " make check - Run CI checks (use PYTHON=.venv/bin/python after setup)" @echo " make generated-check - Check catalog, exports, READMEs, manifest, and solution hashes without rewriting" @echo " make generate - Regenerate all derived content in dependency order" @echo " make export - Regenerate catalog.json and radar.json" @echo " make render - Regenerate root and catalog README indexes plus the Radar table" @echo " make manifest - Regenerate content-manifest.json" @echo " make registry - Regenerate public course metadata and claim contracts" @echo " make solutions - Regenerate course-solutions.json" @echo " make lint - Run ruff" @echo " make test - Run pytest test suite" @echo " make verify - Verify all runnable examples" @echo " make courses - Verify all course folders" @echo " make paths - Verify all learning-path contracts" @echo " make lock - Re-resolve requirements*.lock.txt from pyproject.toml (keeps existing pins where valid)" @echo " make lock-check - Fail if the lock files no longer match pyproject.toml" @echo " make all - Regenerate all exports and run all checks and tests" setup: $(UV) venv --python "$$(cat .python-version)" .venv $(UV) pip sync --python .venv/bin/python requirements-dev.lock.txt check: lint test generated-check $(PYTHON) tools/verify_examples.py $(PYTHON) tools/verify_courses.py $(PYTHON) tools/verify_paths.py generated-check: $(PYTHON) tools/validate_catalog.py $(PYTHON) tools/export_catalog.py --check --target both $(PYTHON) tools/render_readmes.py --check $(PYTHON) tools/build_content_manifest.py --check $(PYTHON) tools/build_solution_hashes.py --check $(PYTHON) -m tools.build_course_registry --check # Keep writers sequential even under make -j: README/manifest checks must not # race against a producer. No automatic commit, content-pin update or deploy. generate: $(MAKE) export $(MAKE) render $(MAKE) manifest $(MAKE) solutions $(MAKE) registry export: $(PYTHON) tools/export_catalog.py --target both render: $(PYTHON) tools/render_readmes.py manifest: $(PYTHON) tools/build_content_manifest.py registry: $(PYTHON) -m tools.build_course_registry solutions: $(PYTHON) tools/build_solution_hashes.py lint: $(PYTHON) -m ruff check . test: $(PYTHON) -m pytest verify: $(PYTHON) tools/verify_examples.py courses: $(PYTHON) tools/verify_courses.py paths: $(PYTHON) tools/verify_paths.py lock: $(compile_locks) # uv keeps every committed pin that still satisfies pyproject.toml, so any # diff after re-resolution means the locks drifted — the printed diff is the # change to commit. lock-check: @$(compile_locks) @git diff --exit-code requirements.lock.txt requirements-dev.lock.txt || \ { echo "lock files drifted from pyproject.toml — commit the regenerated files"; exit 1; } all: generate $(MAKE) check |
| You are visitor 01402503 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |