Skip to content

exclude-newer-index: per-index cooldown periods #19749

Closed

Description

@neutrinoceros

Summary

The scientific Python ecosystem heavily relies on nightly builds of a small set of crucial packages (numpy, scipy, matplotlib...) for testing. These "nightly channels" are implemented in the form of a simple index.
uv is already able to resolve across multiple registries, but I find it compounds non-ideally with cooldown periods; a typical recommendation for a cooldown period is a week, with is longer than the life cycle of many artifacts from, e.g., https://pypi.anaconda.org/scientific-python-nightly-wheels/simple/
Currently, users can either

  • disable cooldowns entirely for a selection of jobs that install from multiple registries. This is obviously not a very secure choice, especially in the absence of a lock file.
  • whitelist the small set of crucial dependencies that we want nightlies from via exclude-newer-package, but this will also override cooldown periods for CI jobs that run against PyPI only.

I think a better solution would be to fine tune cooldown periods per index rather than packages. In short, I'd like to have a exclude-newer-index parameter. The obvious next question is how would this option compound with exclude-newer(-package). I think it'd make sense that it overrides a global exclude-newer just as exclude-newer-package already does, but it should also itself be overridden by exclude-newer-package. Schematically:
exclude-newer-package > exclude-newer-index > exclude-newer

Example

No response

Activity

  1. changed the title [-]`exclude-newer-index`: setting cooldown periods per index[/-] [+]`exclude-newer-index`: per-index cooldown periods[/+] on Jun 9, 2026
  2. charliermarsh commented on Jun 9, 2026

    @charliermarsh
    Member

    I think this exists: #18839

  3. neutrinoceros commented on Jun 9, 2026

    @neutrinoceros
    Author

    oh my. Indeed, this is exactly what I was looking for, and somehow missed 🤦🏻
    Welp, thank you for answering my feature request more than 2 months before I even thought of it !

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or improvement to existing functionality

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions