Skip to content

Cosmetic: compare_version drops pre-release suffixes #98

@avrabe

Description

@avrabe

Source

Mythos discovery + validator run on meld-core/src/merger.rs (PR #96 pipeline).
Validator verdict: not-confirmed — real quirk but not safety-relevant.

Symptom

`compare_version("0.2.99-rc1", "0.2.0")` returns `Ordering::Less` because `filter_map(parse::)` silently drops the non-numeric "99-rc1" segment, parsing the first as `[0, 2]` which sorts before `[0, 2, 0]`.

Why it's not urgent

Shipped WASI components always use canonical numeric triples like `wasi:io/error@0.2.6` — wit-component emits these without pre-release suffixes. And `normalize_wasi_module_name` strips `@version` before dedup, so `best_module_version` only selects a display label among already-equivalent imports.

Why to still track it

If we ever start ingesting WASI-nightly components or custom interface versions with pre-release tags, the bug becomes real: meld would emit the older version string as "best." Cheap to fix (full semver comparison or reject non-canonical versions).

Fix sketch

Either (a) use a proper semver comparator, or (b) reject inputs whose `@VERSION` contains non-digit/non-dot characters.

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions