GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — Properly handle -dev suffix on tags and ranges. by zooba · Pull Request #436 · python/pymanager

Conversation

@zooba

@zooba zooba commented Oct 30, 2026

Copy link
Copy Markdown
Member

Fixes #428

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
zooba added 3 commits October 30, 2026 10:56
@zooba
Properly handle -dev suffix on tags and ranges.
f3235c6
Fixes python#428
@zooba
Always ensure tag is a tag
474a015
@zooba
Tag is optional
d14f03a
@zooba
zooba requested a balanced review from Copilot November 3, 2026 21:29
Copilot started reviewing on behalf of zooba November 3, 2026 21:30
View session
Copilot AI reviewed Nov 3, 2026
View reviewed changes

Copilot AI left a comment

Copy link
Copy Markdown

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

🟡 Changes recommended

Installed listings can still select a stable release for 3-dev, while execution can choose an x64 prerelease despite an available preferred ARM64 prerelease.

2 open issues
  • Medium severity Preserve platform preference among prerelease matches · New
  • Medium severity Apply prerelease preference to installed matches · New
What changed in this PR

This PR addresses #428 by making -dev tags and ranges signal prerelease preference during runtime selection.

Changes:

  • Add prerelease-preference detection for tags and ranges, excluding negated constraints.
  • Apply that preference to installation lookup, execution, and online single-result listings.
  • Add tests for suffix casing, platform suffixes, and range operators.
File Description
tests/​test_tagutils.py Tests prerelease preferences for tags and ranges.
src/​manage/​tagutils.py Adds suffix checking and prerelease-preference properties.
src/​manage/​list_command.py Honors prerelease preference in online --one listings.
src/​manage/​installs.py Prefers matching installed prereleases for execution.
src/​manage/​indexutils.py Infers installation prerelease preference from the requested tag or range.

Review effort: Balanced

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
Comment thread src/manage/installs.py Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread src/manage/list_command.py Resolved

Uh oh!

There was an error while loading. Please reload this page.

zooba added 2 commits November 3, 2026 23:00
@zooba
Improved handling of tag selection - still WIP
ee72b88
@zooba
Fix -dev handling for py list
725b84f
@zooba
zooba requested a balanced review from Copilot November 11, 2026 23:30
Copilot started reviewing on behalf of zooba November 11, 2026 23:31
View session
Copilot AI reviewed Nov 11, 2026
View reviewed changes

Copilot AI left a comment

Copy link
Copy Markdown

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

🟡 Changes recommended

Unresolved runtime-selection regressions can produce missing or multiple results, violate managed-only and version filters, and raise uncaught exceptions.

7 open issues
  • Medium severity Guard prerelease lookup when the tag is empty · New
  • Medium severity Limit online single-runtime results to one entry · New
  • Medium severity Resolve the default runtime when no filters are provided · New
  • Medium severity Match ranges against install tags, not run-for aliases · New
  • Medium severity Exclude unmanaged installs for --only-managed selection · New
  • Medium severity Handle missing installs without raising during single-runtime listing · New
  • Medium severity Prefer stable releases regardless of filter order · New
2 resolved since last review
  • Medium severity Apply prerelease preference to installed matches
  • Medium severity Preserve platform preference among prerelease matches

Review effort: Balanced

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
Comment thread src/manage/installs.py Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread src/manage/list_command.py Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread src/manage/list_command.py Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread src/manage/list_command.py Outdated
best_ver = None
for t in tags:
try:
install = cmd.get_install_to_run(t)
Comment thread src/manage/list_command.py Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread src/manage/list_command.py Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread src/manage/list_command.py Resolved

Uh oh!

There was an error while loading. Please reload this page.

@zooba
Simplify check and fix order
be8d639
@zooba
zooba requested a balanced review from Copilot November 12, 2026 15:44
Copilot started reviewing on behalf of zooba November 12, 2026 15:44
View session
Copilot AI reviewed Nov 12, 2026
View reviewed changes

Copilot AI left a comment

Copy link
Copy Markdown

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

🔵 Needs a closer look

Active selection regressions allow --online --one to return multiple runtimes and cause --one to omit installed defaults or valid prerelease matches.

3 open issues
  • Medium severity Prefer stable releases regardless of filter order
  • Medium severity Match ranges against install tags, not run-for aliases
  • Medium severity Resolve the default runtime when no filters are provided
2 previously missed issues

In code that hasn't changed since last review

Medium severity Preserve a runtime when --one is used without filters

src/​manage/​list_command.py:388

Without any filters, tags is empty, so the new loop never adds a candidate and line 404 replaces the installed runtimes with an empty list. Consequently, py list --one -f=exe produces no executable even when a default runtime is installed. Preserve the marked default (or first available runtime) when there are no filters, and use the per-tag selection only for explicit filters.

Medium severity Use listing aliases when selecting filtered prerelease runtimes

src/​manage/​list_command.py:400

This second filtering pass requires a matching run-for alias, although listing uses install-for aliases. Prerelease records generated by scripts/generate-nuget-index.py include 3-dev-64 in install-for but not in run-for, so py list --one 3-dev discards these valid listing matches and can print nothing. Rank candidates using the listing match rules rather than requiring a runnable alias for the filter.

4 resolved since last review
  • Medium severity Handle missing installs without raising during single-runtime listing
  • Medium severity Exclude unmanaged installs for --only-managed selection
  • Medium severity Limit online single-runtime results to one entry
  • Medium severity Guard prerelease lookup when the tag is empty

Review effort: Balanced

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

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

Reviewers

Copilot code review Copilot
Copilot review effort
Applies to this pull request for everyone.Learn more about Copilot code review.
Copilot left review comments

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

py install 3-dev doesn't install prerelease

Uh oh!

There was an error while loading. Please reload this page.

2 participants

@zooba
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.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.