feat: workspace version check — compatibility floor + staleness warning (R2)#119
Merged
Merged
Conversation
…ct match Floor precedence: version.minimum_library_version (new key) -> version.workspace_version (legacy, reinterpreted as floor) -> version.txt. Installed < floor still raises WorkspaceVersionMismatchError; installed newer passes, warning to git-pull beyond a 30-day gap; unparseable versions warn. Advice text no longer recommends exact == pins (which can be yanked). R2 of the version-pinning design review (PyAutoLabs/PyAutoBuild#118). Issue: #118 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WGkd3Jf7tjNpWqeU27aShB
This was referenced Jul 8, 2026
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.
Overview
R2 of the version-pinning design review (PyAutoLabs/PyAutoBuild#118; task issue #118).
check_version()now enforces a compatibility floor instead of exact equality: it raises only when the installed library is older than the minimum version the workspace requires, warns (never raises) when the workspace clone looks stale, and never advises exact==pins (which can point at yanked releases).Issue: #118 · Design review: PyAutoLabs/PyAutoBuild#118
API Changes
check_version(library_version, workspace_root=None)signature andWorkspaceVersionMismatchErrorare unchanged; downstream import-time calls in autofit/autogalaxy/autolens need no edits.version.minimum_library_version(floor, bumped deliberately when workspace scripts start needing new API). Legacyversion.workspace_version/version.txtare reinterpreted as floors.git pullwarning beyond a 30-day gap) instead of raising; installed older than the floor still raises. Unparseable versions (dev installs) warn instead of raising.pip install --upgrade <pkg>/ workspace release-tag checkout / bypasses — no==pins anywhere.Test Results
test_autoconf/: 117 passed (20 workspace-check tests, 7 new: floor pass/raise, key precedence, 30-day staleness window, unparseable in both directions, no-pin advice).2026.5.29.4, workspacemainrecording yanked2026.7.6.649) still correctly raises — the fix for that is the R1 release realignment; the previously-fatal old-clone/newer-library case passes silently; a 60-day gap warns once.Ship gate
Supervised
--autorun; maintainer sign-off + Heart YELLOW acknowledgement (6 reasons: workspace validation not passing / 58 stale parked scripts / autolens_assistant pinned behind / install verification not run / no release validation for current source / PyAutoMind open PR 9d old) given in-session on 2026-07-08 ("continue --auto" following the surfaced sign-off summary).Downstream
minimum_library_versionin workspacegeneral.yamls is a queued follow-up.🤖 Generated with Claude Code
https://claude.ai/code/session_01WGkd3Jf7tjNpWqeU27aShB