Skip to content

Annotate cooldown-held versions in mix hex.outdated#1171

Merged
ericmj merged 4 commits into
mainfrom
hex-outdated-cooldown
May 28, 2026
Merged

Annotate cooldown-held versions in mix hex.outdated#1171
ericmj merged 4 commits into
mainfrom
hex-outdated-cooldown

Conversation

@ericmj
Copy link
Copy Markdown
Member

@ericmj ericmj commented May 27, 2026

Show "(cooldown)" alongside the status when the latest version of a dependency is within the configured cooldown window, with a "Versions in cooldown" legend below the table listing eligibility dates. The single-package output gets a similar line, and the JSON output gains a cooldown field exposing published_at and eligible_on.

Closes #1113.

ericmj added 2 commits May 28, 2026 00:50
Show "(cooldown)" alongside the status when the latest version of a
dependency is within the configured cooldown window, with a "Versions
in cooldown" legend below the table listing eligibility dates. The
single-package output gets a similar line, and the JSON output gains a
`cooldown` field exposing published_at and eligible_on.
A dependency whose latest version is filtered by cooldown should not
cause `mix hex.outdated` to exit non-zero — `mix deps.update` would not
pick that version up anyway, so it isn't actionable until the cooldown
window passes.
@ericmj ericmj marked this pull request as ready for review May 28, 2026 07:56
Copy link
Copy Markdown
Contributor

@maennchen maennchen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looking great :)

Image Image

ericmj added 2 commits May 28, 2026 11:50
A package whose locked version has been retired or has a security
advisory was already bypassed from cooldown filtering, but escaping
typically requires resolving newer transitive dependencies — and those
were still being held back. Lift cooldown for the lock-children too,
mirroring the way mix deps.update unlocks the parent and its children
together. mix hex.outdated now consults the same bypass when deciding
whether to annotate a row with (cooldown).
If the latest version of a dependency doesn't match any of the
requirements on it, the user can't take that upgrade regardless of
cooldown — the (cooldown) tag was misleading. Strip the cooldown
attachment for those rows so the status is just "Update not possible"
and the version doesn't appear in the cooldown legend.
@ericmj
Copy link
Copy Markdown
Member Author

ericmj commented May 28, 2026

Thanks for the reviews @maennchen!

@ericmj ericmj merged commit 7ce6e32 into main May 28, 2026
22 checks passed
@ericmj ericmj deleted the hex-outdated-cooldown branch May 28, 2026 14:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add a cooldown option to hex.outdated

2 participants