Repository navigation
extdeps/python: PEP 440 version identification model - #5307
Conversation
|
Review item 1 ( The finding was correct for Addressed in follow-up commits on this branch:
Witness corpus re-run green: — sent from clever-seal-76 |
ec37783 to
37fcb25
Compare
|
Review item 1 (release-segment zero-padding): valid on reviewed SHA
Witness added: Re-run green: — sent from clever-seal-76 |
2b7bc8e to
32cfc8f
Compare
|
Intentionally DRAFT — not abandoned. Blocked on #5309 merge (operator-visible sequential gate): both PRs edit After #5309 lands: rebase → CI green → |
3a7a846 to
8ffb55b
Compare
Decompose public/local version segments per PEP 440 (not std SemVer), add canonical wire labels and claim witnesses executed green. Co-authored-by: Cursor <cursoragent@cursor.com>
Use count(xs:) instead of undefined length(); discriminate 1.0a1 vs 1.0a2 on the numeric suffix. Co-authored-by: Cursor <cursoragent@cursor.com>
Replace the invalid length(local:) free-function call with list .length(), matching realization_schedule.dag peers. Co-authored-by: Cursor <cursoragent@cursor.com>
… fns.
Model PEP 440 N(.N)* as Pep440ReleaseSegments { first, rest } so empty release cannot be constructed; witnesses call record constructors directly.
Co-authored-by: Cursor <cursoragent@cursor.com>
Rebase onto main, wire VersionIdentity/VersionConstraint/VersionScheme projections, add structural compare on public carriers, and update witness imports. Co-authored-by: Cursor <cursoragent@cursor.com>
Compare release→pre→post→dev per cited suffix order (with bare-dev tier), remove asymmetric pep440_scheme.compare placeholder, and add discriminating ordering witnesses. Co-authored-by: Cursor <cursoragent@cursor.com>
Per PyPA ordering, 1 and 1.0 compare equal; witness added. Addresses cursor RC on release padding. Co-authored-by: Cursor <cursoragent@cursor.com>
PEP 440 specifier wire text (>= 3.11) — not a bare version identity. Witnessed in python_pep440_version_witness_test. Co-authored-by: Cursor <cursoragent@cursor.com>
8ffb55b to
b95a310
Compare
…5341) * Ground version constraint strings for gnu_coreutils, cargo, python, go. Slice 6 of the versioning program: migrate bare version literals to VersionConstraint carriers and add runtime stubs for python/go with by-execution witnesses. Co-authored-by: Cursor <cursoragent@cursor.com> * Align slice-6 constraints with scheme-specific version carriers. Go uses GoLanguageVersion/go directive wire form ("1.22"), not ">= 1.22". Cargo and python use SemVerConstraint and Pep440Constraint aliases from new semver/pep440 scheme stubs; emit-host bootstrap cites GoToolchainName. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(slice-6): drop scheme forks — gnu_coreutils + tools only Remove extdeps/go, extdeps/python, and semver/pep440 stubs from #5322. Go uses go-directive wire form ("1.22"), not ">= 1.22" VersionConstraint. Cargo/python/go mins belong in their ecosystem slice PRs (#5309/#5307/#5315). Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Brian Searls <briansrls@gunb.ai> Co-authored-by: Cursor <cursoragent@cursor.com>
Summary
dsl/extdeps/version/pep440.dagmodeling PEP 440 public/local version structure (epoch, release segments, pre/post/dev suffixes, local labels) distinct fromstd.types.SemVer.python_pep440_version_witness_test.dagwith by-execution witnesses (final, alpha, epoch, post, dev, local, specifier clauses).Merge order (operator-visible — sequential with #5309)
DRAFT until #5309 merges. This PR and #5309 both edit
dsl/std/realization_width.dag+ witness file. Even a textual auto-merge can be semantically skewed (PR CI tests each branch, not the merged tree).Primary: merge #5309 (Cargo SemVer) first.
Then: rebase this branch onto updated
main, re-run CI green, flip to ready-for-review.Do not merge #5307 and #5309 simultaneously.
Test plan
gunbc run --source-root dsl --entry dsl/test/claim/python_pep440_version_witness_test.dag --function python_pep440_version_witnesses --claim-run→true