Viewing package version history

The History tab on the package details page provides a chronological timeline of every change that affected a package’s availability. Use it to understand when each version became available, which source provides it, and to get snapshot URLs for reproducible environments.

Unlike the Activity Log, which shows repository-wide changes per source, the History tab focuses on a single package across all sources. It shows the historical source priority as it was at each point in time — not just the current state — so you can trace exactly how source and version changes affected what was served.

Accessing the history tab

  1. Navigate to a package details page (see Viewing Package Details).
  2. Click the History tab.

History tab showing vertical timeline with dates, change descriptions, versions with source status badges, and snapshot URLs

Understanding the timeline

The timeline displays vertically with the most recent dates at the top and oldest at the bottom. Each entry represents a snapshot date — a point in time when something changed for this package.

Each timeline entry shows:

  • Date and a change description summarizing what happened
  • Latest version at that date, with source status badges
  • Snapshot URL for that date, with a Copy button and a View Snapshot Packages link
  • An expandable section showing other versions available at that date

Timeline entry showing date, change description, latest version 2.0.0 with Available status, snapshot URL, and expandable archived versions

What triggers a new timeline entry

The following events create new entries in the timeline:

  1. A new package version is added from a source — for example, a CRAN (Comprehensive R Archive Network) or PyPI (Python Package Index) sync brings a newer version. The change description reads something like “v2.0.0 added from CRAN”.
  2. A source is subscribed (added) to the repository — for example, an admin adds a new local source. The change description reads something like “my-local-source added”.
  3. A source is unsubscribed (removed) from the repository — the change description reads something like “my-local-source removed”.
  4. Sources are reordered — an admin changes the source priority order. The change description reads “Sources reordered”.
  5. Multiple versions added on the same date — for example, a bulk upload to a local source. The change description reads something like “v2.0.0, v1.5.0 and v1.0.0 added”.
Note

Adding a new package version does not change older snapshot dates. Each snapshot is a fixed point in time. If you need access to a version that was added later, use a newer snapshot date.

Understanding source status badges

Each version in the timeline displays a status badge for every source that contains the package. The badges indicate how the version is served at that snapshot date:

Status Color Meaning
Available Green This version is served from this source at this snapshot date
Archived Gray This version exists in this source but a newer version is now the latest (R repositories only)
Not served (lower priority) Orange This version exists in this source, but another source with higher priority provides a different version

In R repositories, you can only install the latest version of a package via install.packages(). Older versions are shown as Archived. The “other versions” section shows when each archived version was last available (the “Last available” date).

In Python repositories, you can install all versions via pip install package==version. Both current and older versions show as Available. The “other versions” section shows older versions that are still installable.

The following examples show the different source status badges in action:

Available and Not served (lower priority): The latest version (0.15) is Available from the higher-priority local2 source. The expanded other versions show an older version (0.14) from local1 marked as “Not served (lower priority)” with a “Last available” date indicating when it was last served before the higher-priority source added a newer version.

Timeline entry showing version 0.15 Available from local2, with version 0.14 from local1 marked Not served (lower priority)

Not served with Never available: When a lower-priority source adds a new version (v1.42.61 from pypi), it appears as “Not served (lower priority)” with “Never available” because the higher-priority local-python source continues to serve its own version (1.42.48).

Timeline entry for boto3 showing version 1.42.48 Available from local-python, version 1.42.61 from pypi marked Never available

Not served with Last available dates: The expanded other versions section shows multiple versions from a lower-priority source — one marked “Never available” because it was always outranked, and another with a “Last available” date indicating when it was last served before the higher-priority source took over.

Timeline entry showing version 1.42.48 Available from local-python, Not served from pypi, with 1143 other versions

Understanding source priority

When a repository has multiple sources containing the same package, the source listed first (highest priority) determines which version is served. The History tab shows the source priority as it was at each snapshot date, not the current priority.

If an admin reorders sources, the timeline shows a “Sources reordered” entry. Entries after that date reflect the new priority order. A version marked “Not served (lower priority)” means it exists in a source, but another higher-priority source provides a different version at that date.

For more details on how source priority works, see Repositories with Multiple Sources.

Note

Source priority can change over time. Look at the source status badges across different dates to understand how priority changes affected which version was served.

Using snapshot URLs for reproducibility

Each timeline entry includes a snapshot URL that pins your environment to the exact set of packages available at that date.

  • Click Copy to copy the snapshot URL to your clipboard.
  • Click View Snapshot Packages to open a new tab showing all packages available at that snapshot date.

Use the snapshot URL in your renv.lock, requirements.txt, or R/Python configuration to pin to a reproducible set of packages. For more details on configuring frozen URLs, see Getting frozen URLs for improving reproducibility.

Note

If you need a specific version of a package, find a snapshot date in the History timeline where that version was the latest, then use that snapshot URL for your environment configuration.

Close-up of a snapshot URL field highlighted with an orange border, showing the URL and a Copy button

Expanding other versions

Click Show N other versions available to expand the list of all other versions that existed at a given snapshot date. Each version shows:

  • Its source status badges
  • Last available date (R repositories): the last snapshot date where this version was the latest
  • Never available (R repositories): this version was never served because a higher-priority source always provided a different version

This section is useful for understanding version history and finding when a specific version was available.

Expanded other versions showing version 1.42.51 as Never available and version 1.42.50 with Last available date 2026-02-17

Pagination

The timeline loads 20 entries at a time, sorted newest-first. Click Load More at the bottom to load older entries.

Back to top