Skip to content

feat: workspace version check — compatibility floor + staleness warning (R2)#119

Merged
Jammy2211 merged 1 commit into
mainfrom
feature/version-check-compat-floor
Jul 8, 2026
Merged

feat: workspace version check — compatibility floor + staleness warning (R2)#119
Jammy2211 merged 1 commit into
mainfrom
feature/version-check-compat-floor

Conversation

@Jammy2211

Copy link
Copy Markdown
Collaborator

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

  • Behavioral, not structural. check_version(library_version, workspace_root=None) signature and WorkspaceVersionMismatchError are unchanged; downstream import-time calls in autofit/autogalaxy/autolens need no edits.
  • New optional workspace config key version.minimum_library_version (floor, bumped deliberately when workspace scripts start needing new API). Legacy version.workspace_version / version.txt are reinterpreted as floors.
  • Semantics loosened in one direction only: installed newer than the record now passes (with a git pull warning beyond a 30-day gap) instead of raising; installed older than the floor still raises. Unparseable versions (dev installs) warn instead of raising.
  • Advice text rewritten: 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).
  • Scenario probe: today's real-world broken case (installed 2026.5.29.4, workspace main recording yanked 2026.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 --auto run; 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

🤖 Generated with Claude Code

https://claude.ai/code/session_01WGkd3Jf7tjNpWqeU27aShB

…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
@Jammy2211 Jammy2211 added the pending-release PR queued for the next release build label Jul 8, 2026
@Jammy2211 Jammy2211 merged commit d84b1da into main Jul 8, 2026
4 checks passed
@Jammy2211 Jammy2211 deleted the feature/version-check-compat-floor branch July 8, 2026 20:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pending-release PR queued for the next release build

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant