Skip to content

build(jvm): bump Coursier to v2.1.25-M26 to fix transitive dependenci… - #23517

Open
thiago-carbonera wants to merge 7 commits into
pantsbuild:mainfrom
thiago-carbonera:fix-coursier-version
Open

build(jvm): bump Coursier to v2.1.25-M26 to fix transitive dependenci…#23517
thiago-carbonera wants to merge 7 commits into
pantsbuild:mainfrom
thiago-carbonera:fix-coursier-version

Conversation

@thiago-carbonera

Copy link
Copy Markdown
Contributor

Fixes #22909.

Problem

Older versions of Coursier (like 2.1.24) had a bug where transitive dependencies were sometimes omitted from the lockfile if a different version of a dependency was requested (e.g., timbre -> encore -> truss missing truss when requesting a non-default encore version).

Solution

  • Bumped the default Coursier version to v2.1.25-M26, which contains the upstream fix.
  • Updated the SHA256 hashes and file sizes for linux_arm64, linux_x86_64, macos_arm64, and macos_x86_64.
  • Replaced the VirtusLab fallback URLs for arm64 with the official coursier/coursier release URLs, as ARM binaries are now officially published.
  • Updated test_resolve_with_packaging in coursier_fetch_integration_test.py to match the new, simplified jar naming convention from Coursier (removed the redundant _jar_ from the expected filename).

Comment thread docs/notes/2.34.x.md
@sureshjoshi
sureshjoshi requested a review from jgranstrom July 10, 2026 11:58

@jgranstrom jgranstrom left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Great! It's been quite some time since the last coursier release, so I think it's fair to default to a pre-release to get the fix for transitive dependencies. Just a comment on appending the known versions.

"v2.1.25-M26|linux_arm64 |68288bcd47a81f3a3bcf0392572d40ec0981172bba9055a8b662413691358be9|30241456|https://github.com/coursier/coursier/releases/download/v2.1.25-M26/cs-aarch64-pc-linux.gz",
"v2.1.25-M26|linux_x86_64|017812b4da91a72fadd3cb0fb97caae4a16cb947a7bd6be2b46e5aa984458cbf|31136143",
"v2.1.25-M26|macos_arm64 |4ebc84fa2fd767dffca3b4e63ed1cd7bc0f55870f98f14207e46e00512043bc4|29762912|https://github.com/coursier/coursier/releases/download/v2.1.25-M26/cs-aarch64-apple-darwin.gz",
"v2.1.25-M26|macos_x86_64|e061ec985562e9b21d75975cb6d60cac3c8874df19e3c6e007d935bc68aaf6b0|29978385",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

It might be best to append the new versions to the default_known_versions rather than replacing the previous default. Especially since it's a pre-release of coursier. That allows a simple one-line revert if it would cause any regressions.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I agree. Please add the hashes for 2.1.25-M26. Thanks.

Comment thread docs/notes/2.34.x.md

The `indicatif-spinner` `dynamic_ui_renderer` (default), now renders on a dedicated thread. This should reduce jitter and display a smoother spinner under heavy load.

Bumped the default Coursier version to v2.1.25-M26 to fix a bug where transitive dependencies were incorrectly omitted from lockfiles when resolving non-default versions of intermediate dependencies.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

These notes should go under the jvm section I think.

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.

Coursier transitive dependencies bug results in incorrect lockfile

4 participants