Skip to content

feat: add all / none vers types - #98

Open
peinjoh wants to merge 16 commits into
mainfrom
feat/add-all-none-types
Open

peinjoh wants to merge 16 commits into
mainfrom
feat/add-all-none-types

Conversation

@peinjoh

@peinjoh peinjoh commented Oct 27, 2026

Copy link
Copy Markdown
Contributor

No description provided.

@peinjoh
peinjoh requested review from a team and a balanced review from Copilot October 27, 2026 18:11

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Both new range types need TypeScript declarations that match their serialized WASM object representations.

2 open issues
What changed in this PR

Adds universal (all) and empty (none) VERS ranges, integrating them into the existing dynamic range API.

Changes:

  • Introduces wildcard-only range types with constant membership results.
  • Shares validation and serialization logic between both schemes.
  • Extends dynamic parsing, serialization, TypeScript unions, and tests.
File Description
src/​schemes/​none.rs Implements the empty range and validation tests.
src/​schemes/​mod.rs Exposes both new scheme modules.
src/​schemes/​all.rs Implements the universal range and validation tests.
src/​range/​wildcard.rs Shares wildcard validation, constraints, and serialization.
src/​range/​mod.rs Registers the internal wildcard helper module.
src/​range/​dynamic.rs Integrates both schemes into dynamic operations and tests.

Review effort: Balanced

Comment thread src/schemes/all.rs Resolved
Comment thread src/schemes/none.rs Resolved

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

No active review issues are recorded for the addition of VERS all and none scheme support.

No open issues 🎉

2 resolved since last review

Review effort: Balanced

Comment thread src/range/dynamic.rs Resolved
Comment thread src/schemes/all.rs Resolved
Comment thread src/range/wildcard.rs Resolved
Comment thread src/enums/error.rs Resolved

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Universal and empty ranges have incorrect membership semantics, generated TypeScript declarations reference undefined types, and parsing and deserialization accept constraints that produce invalid range strings.

4 open issues

Review effort: Balanced

Comment thread src/range/dynamic.rs Resolved
Comment thread src/range/dynamic.rs Resolved
Comment thread src/range/dynamic.rs Resolved
Comment thread src/range/dynamic.rs Resolved

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Typed none ranges incorrectly match versions, and percent-encoded wildcards bypass validation, allowing ranges that fail JSON round-trip deserialization.

2 open issues
4 resolved since last review

Review effort: Balanced

Comment thread src/schemes/none.rs Resolved
Comment thread src/constraint.rs Resolved

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

Human assessment is needed because tightened generic bounds break existing typed-range APIs, and wildcard validation remains inconsistent in the all and none schemes.

No open issues 🎉

2 resolved since last review

Review effort: Balanced

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants