Skip to content

Proposal: change py_require(exclude_newer = ) default to cadence with delay #1842

@t-kalinowski

Description

@t-kalinowski

py_require() currently defaults to resolving latest available package versions. This “always-latest” approach works well enough, but I'm starting to think it's the wrong default. It exposes users to too much risk, and, in practice, it's kind of annoying if you're continuously exposed to a steady stream of breaking changes at random times scattered throughout the day, especially if the breaking changes are transient and are fixed a few hours later by a yank or another update.

I propose we shift exclude_newer to a scheduled cadence instead of tracking the latest release.

Possible defaults

  • floor_week() (e.g., prev_sunday_midnight())
  • prev_monday_10am() or prev_prev_monday_10am()
  • floor_date() (e.g., prev_midnight())
  • Sys.Date() - 2 (e.g., two days ago midnight)

This means updates appear predictably (daily, weekly) and in tranches, rather than instantly and continuously. Bleeding edge could remain available via options(reticulate.py_require.exclude_newer = NA), and custom cadences or exclude times via
options(reticulate.py_require.exclude_newer = <(function-returning)?string/POSIXt/>)

It should also make Python environment initialization a little faster, since we don't have to check for the latest from PyPi every time.

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