Skip to content

fix(ci): warn when a pinned conda release has lost a wheel (#2028) - #2035

Merged
JarryShaw merged 1 commit into
mainfrom
fix/2028-refresh-pins-lost-wheel
Oct 22, 2026
Merged

JarryShaw merged 1 commit into
mainfrom
fix/2028-refresh-pins-lost-wheel

Conversation

@JarryShaw

Copy link
Copy Markdown
Owner

What is the purpose of your pull request?

  • fix — corrects a defect

Description of your pull request and other information

Closes #2028. In refresh(), the state newest is not None and target is None covered two cases: the pin is still the newest qualifying release, which is right to stay silent, and the pinned release has lost a wheel (newest < pin), which was wrongly silent.

  • A new branch, elif Version(newest) < current < ceiling, emits a ::warning. The new helper lost() names the tags the pinned release lacks, or says PyPI no longer lists that release. The step still exits 0.
  • The comment above Refresh the platform pins in cron-conda.yml names the case.

Example: cryptography 48.0.1 on osx-64 stays as it is, and may no longer hold: 48.0.1 has no wheel for cp311 on osx-64, and the newest release up to 52.0.0 with wheels for all of cp311, … there is 47.0.0.

The new tests fail without the fix (5 failed, 48 passed) and pass with it (51 passed). Two tests check that a pin that is still the newest, and a pin above the installed release, stay silent. The 25 files that read cron-conda or the workflows give 714 passed.

- refresh() now warns when the newest release with a wheel for every
  conda Python is older than the pin, naming the tags the pinned release
  lacks and the newest release that still qualifies; the new lost()
  helper words it. The pin stays and the step still passes.
- A pin that is still the newest qualifying release stays silent, as
  does one above the installed release.
- cron-conda.yml: the refresh step's comment covers the new warning.
- Tests: unit and end-to-end cases for the warning, and the silent case.
@JarryShaw JarryShaw added bug Issues reporting a defect (set by the bug report template; a default, not an assessment) ci Pull requests that change CI or workflow configuration (ci: subject prefix) review: running A cross-review is in flight against the current head - no verdict yet labels Oct 22, 2026
@JarryShaw

Copy link
Copy Markdown
Owner Author

GOOD TO GO at b5675b6e0 (Sonnet cross-review). The branch order shows the new elif is reachable only when newest < pin < installed. A pin that is still the newest, and a pin above the installed release, stay silent. lost() handles missing files, yanked files, pre-release pins and unlisted releases without crashing, and _releases filters exactly as newest_wheel does. With only conda_vendor.py reverted, the new tests fail (3 tests, 2 subtests).

@JarryShaw JarryShaw added review: good-to-go Cross-review at the current head says ready; CI state is separate and removed review: running A cross-review is in flight against the current head - no verdict yet labels Oct 22, 2026
@JarryShaw JarryShaw moved this to In review in PyPCAPKit Oct 22, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Coverage: 91.54% (unit tier, Python 3.15, b5675b6e0, Unit Tests run success)

Package Statements Missed Branches Partial Cover
pcapkit (top level) 104 4 20 2 95.16%
pcapkit/const 19597 881 2618 867 92.11%
pcapkit/corekit 2567 71 816 37 96.57%
pcapkit/dumpkit 282 3 102 3 98.44%
pcapkit/foundation 2930 23 1022 25 98.79%
pcapkit/interface 138 4 52 3 96.32%
pcapkit/protocols 17436 219 4582 185 98.15%
pcapkit/toolkit 872 36 298 10 95.21%
pcapkit/utilities 529 7 160 5 98.26%
pcapkit/vendor 4431 1995 1018 167 51.73%

Per-file detail: the coverage-html artifact of this run.

@JarryShaw

Copy link
Copy Markdown
Owner Author

Ordering check on b5675b6e0: python util/run_unittest_leg.py project on this tree gave Ran 1705 tests, OK (skipped=71). KTLO failing test ids: 0 across every KTLO leg.

@JarryShaw
JarryShaw merged commit 4226e39 into main Oct 22, 2026
67 checks passed
@JarryShaw
JarryShaw deleted the fix/2028-refresh-pins-lost-wheel branch October 22, 2026 14:53
@JarryShaw JarryShaw moved this from In review to Done in PyPCAPKit Oct 22, 2026
@JarryShaw JarryShaw removed the review: good-to-go Cross-review at the current head says ready; CI state is separate label Oct 22, 2026
@JarryShaw JarryShaw added this to the PyPCAPKit v1.5 milestone Oct 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Issues reporting a defect (set by the bug report template; a default, not an assessment) ci Pull requests that change CI or workflow configuration (ci: subject prefix)

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

conda_vendor --refresh-pins stays silent when the pinned release lost a wheel

1 participant