Skip to content

Feature: Display release date with bundle outdated command #9329

@nickhammond

Description

@nickhammond

Describe the problem as clearly as you can

When running bundle outdated it shows the current and latest versions for any version outdated gem that's required based on your Gemfile. It doesn't actually show gems that are very old(outdated) and possibly unmaintained, such as rest-client rest-client/rest-client#764, which hasn't been updated in about 7 years(just an example). I understand that the outdated command currently checks if there's a new version for a gem based on the version number, this is just an idea to help with detecting unmaintained gems.

Post steps to reproduce the problem

source "https://rubygems.org"

gem "rest-client"
bundle install

Which command did you run?

bundle outdated

$ bundle outdated
Fetching gem metadata from https://rubygems.org/..........
Resolving dependencies...

Gem          Current  Latest  Requested  Groups
http-accept  1.7.0    2.2.1

What were you expecting to happen?

bundle outdated
Fetching gem metadata from https://rubygems.org/..........
Resolving dependencies...

Gem          Current  Latest  Requested  Groups  Release Date
http-accept  1.7.0    2.2.1                      2024-02-05
rest-client  2.1.0    2.1.0                      2019-08-22

Idea for solution

The RubyGems API returns the details for each version of a gem.

For the example with rest-client:

https://rubygems.org/api/v1/versions/rest-client.json

[
    {
        "authors": "REST Client Team",
        "built_at": "2019-08-22T00:00:00.000Z",
        "created_at": "2019-08-22T01:07:47.061Z",
        "description": "A simple HTTP and REST client for Ruby, inspired by the Sinatra microframework style of specifying actions: get, put, post, delete.",
        "downloads_count": 7016,
        "metadata": {},
        "number": "2.1.0",
        "summary": "Simple HTTP and REST client for Ruby, inspired by microframework syntax for specifying actions.",
        "platform": "x86-mswin32",
        "rubygems_version": ">= 0",
        "ruby_version": ">= 2.0.0",
        "prerelease": false,
        "licenses": [
            "MIT"
        ],
        "requirements": [],
        "sha": "a35a3bb8d16ca39d110a946a2c805267f98ce07a0ae890e4512a45eadea47a6e",
        "spec_sha": "9c0b98543a802e9c23370448ba059be28334b02685e0c8bc8e63dcde90d01425"
    }
]

Upon fetching the versions for a gem, Bundler could then select the version that matches number and platform from your current dependency map, and then print the created/built_at datetime.

This might need to be enabled behind an option such as --release-date or something along those lines so it doesn't mess with anyone's current CI flows.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions