v0.9: runtime/ scaffold + lifectl CLI + pyproject + scaffold tests (#120)#127
Merged
Merged
Conversation
) Lay down the empty runtime/ Python package, the lifectl CLI entrypoint, and the pyproject.toml that declares the dlrs-runtime package + console script. No assembly logic ships in this PR — Stages 1-5 land in sub-issues #121-#126. - runtime/__init__.py exports __version__='0.9.0.dev0' and LIFE_RUNTIME_PROTOCOL_VERSION='0.1.1' - runtime/{verify,resolve,assemble,run,guard,providers,audit}/ empty sub-packages with one-line docstrings naming the owning sub-issue - runtime/cli/lifectl.py: 'version' subcommand fully working; 'info' / 'run' parse args + exit non-zero with 'not yet implemented' message that points at #121 / #121-#126 - pyproject.toml: name='dlrs-runtime', version='0.9.0.dev0', Python>=3.10, deps jsonschema+pyyaml, exports lifectl console script - tools/test_runtime_scaffold.py: 8 sanity-test cases (import, version, stub exit codes, --help, pyproject parse + script entry, sub-package presence) - .github/workflows/validate.yml: new runtime-scaffold CI job parallel to pipelines (matrix py3.11+3.12), pip install -e ., run tests, confirm lifectl on PATH + scaffold stubs exit non-zero - CHANGELOG.md: v0.9 epic entry + sub-issue #120 'Added' details - .gitignore: add *.egg-info/ + build/ + dist/ Closes part of #119; closes #120. Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Contributor
Author
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
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
First PR of the v0.9 epic (#119). Lays down the empty
runtime/Python package, thelifectlCLI entrypoint, and thepyproject.tomlthat declares thedlrs-runtimepackage + console script. No assembly logic ships in this PR — Stages 1–5 land in sub-issues #121–#126.Closes #120.
What landed
runtime/__init__.py— exports__version__ = "0.9.0.dev0"andLIFE_RUNTIME_PROTOCOL_VERSION = "0.1.1", plus a tinyRuntimestub class.runtime/{verify,resolve,assemble,run,guard,providers,audit}/— empty sub-packages, each with a one-line docstring naming the sub-issue that populates it.runtime/cli/lifectl.py— CLI entrypoint with three sub-commands:lifectl version→ fully working: printslifectl 0.9.0.dev0 (life-runtime v0.1.1)and exits 0.lifectl info <pkg>→ parses args, exits non-zero with a "not yet implemented (v0.9 sub-issue v0.9 sub-issue #2: Stage 1 Verify (zip / schema / time / identity / integrity / audit chain / consent / withdrawal pre-flight / lifecycle gate) #121 — Stage 1 Verify)" stderr message.lifectl run <pkg>→ parses args (incl.--once,--no-tty,--poll-interval-override), exits non-zero with a "not yet implemented (v0.9 sub-issues v0.9 sub-issue #2: Stage 1 Verify (zip / schema / time / identity / integrity / audit chain / consent / withdrawal pre-flight / lifecycle gate) #121-v0.9 sub-issue #7: Built-in echo Provider + end-to-end conformance harness + Quickstart docs #126)" stderr message.pyproject.tomlat repo root —name = "dlrs-runtime",version = "0.9.0.dev0",requires-python >= 3.10, depsjsonschema+pyyaml, exportslifectlconsole script via[project.scripts]. Setuptools is told to package onlyruntime*so existingtools/andpipelines/trees stay out of the wheel.runtime/audit/emitter.py—RuntimeAuditEmitterstub class raisingNotImplementedErrorreferencing sub-issue v0.9 sub-issue #6: Stage 5 Guard (withdrawal / lifecycle / expiry watchers + clean teardown + audit emitter) #125 (the full v0.4 hash-chain emitter ships there).runtime/README.md— package-level overview pointing at the runtime spec and naming each sub-package's owning sub-issue.tools/test_runtime_scaffold.py— 8 sanity-test cases (import,Runtimestub,lifectl versionoutput, scaffold-only stub exits,--helplisting,pyproject.tomlparse + script entry, sub-package presence)..github/workflows/validate.yml— newruntime-scaffoldCI job parallel topipelines(matrix py3.11+3.12). Installsdlrs-runtimeeditable, runs the scaffold test driver, asserts thelifectlconsole script is onPATH(lifectl versionsucceeds) and thatlifectl info/lifectl runexit non-zero in this scaffold-only build.CHANGELOG.md— v0.9 epic entry + sub-issue v0.9 sub-issue #1:runtime/package scaffold +lifectlCLI entrypoint #120 "Added" details..gitignore— add*.egg-info/,build/,dist/to keep editable-install artefacts out of git.Hard-rule invariants preserved
This sub-issue ships no execution code, so the v0.7 + v0.8 hard-rule invariants (D1=C in-life sandbox / D2=B
bundled_in_lifeProvider refusal / D5=mixed hosted-API AND-gate / D6=fail-close Stage gating) hold trivially: the gates don't run yet. Sub-issues #121–#126 reinstate each invariant as they implement the corresponding Stage.Review & Testing Checklist for Human
(Risk: green — no functional logic, only scaffolding. CI is the primary gate.)
runtime-scaffoldjob in CI passes on both py3.11 and py3.12.pip install -e .,lifectl versionprintslifectl 0.9.0.dev0 (life-runtime v0.1.1)andlifectl info pretend.life/lifectl run pretend.lifeexit non-zero with the documented stderr message.runtime/sub-package layout matches the 5-stage assembly pipeline you'd expect fromdocs/LIFE_RUNTIME_STANDARD.mdPart B (verify / resolve / assemble / run / guard) plusproviders/andaudit/.Notes
runtime/<stage>/and bringlifectl info/lifectl runfrom "not yet implemented" stubs to a fully working e2e pipeline by sub-issue v0.9 sub-issue #7: Built-in echo Provider + end-to-end conformance harness + Quickstart docs #126.Link to Devin session: https://app.devin.ai/sessions/ff7322e18fd94887875daa2c1c75f87d
Requested by: @LING71671