Skip to content

Tighten scaffold version comparison for pre-release versions #124

@JRS1986

Description

@JRS1986

Review follow-up from the #117-#123 merge train.

Problem:
compare_versions in src/coding_scaffold/scaffold_version.py currently compares dotted chunks with a lightweight tuple strategy. That makes 0.5.1.dev0 sort as newer than 0.5.1, so a dev build can pass a project min_supported_scaffold_version floor for the corresponding release.

Why it matters:
The compatibility gate is meant to prevent older writers from touching a project last updated by a newer scaffold. Treating pre-release/dev builds as newer than the final release weakens that safety check for contributors and CI jobs running from source.

Suggested fix:
Implement a deterministic semver-ish parser that orders pre-release/dev suffixes before the final release, without adding a runtime dependency. Add explicit tests for dev, alpha, beta, rc, final release, and short versions like 0.5 vs 0.5.0.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions