Skip to content

Fix CI: remove Pigeons from weakdeps, extensions, and compat to resolve transitive Roots conflict with Distributions#472

Draft
ptiede with Copilot wants to merge 4 commits into
mainfrom
copilot/fix-github-actions-job
Draft

Fix CI: remove Pigeons from weakdeps, extensions, and compat to resolve transitive Roots conflict with Distributions#472
ptiede with Copilot wants to merge 4 commits into
mainfrom
copilot/fix-github-actions-job

Conversation

Copilot AI commented Jun 29, 2026

Copy link
Copy Markdown

The test (lts, ubuntu-latest, x64, 3.10) CI job was failing due to an unsatisfiable transitive dependency conflict: Distributions ^0.25.129 requires Roots 3.x, while all available Pigeons versions (0.1.0–0.4.11) require Roots 2.x.

Root Cause

The conflict is a three-way incompatibility:

  • HypercubeTransform ^0.4.16 uses DiagNormal{T} (type-parametric alias introduced in Distributions 0.25.129) → requires Distributions ≥ 0.25.129
  • Distributions 0.25.128+ → requires Roots 3.x
  • All Pigeons 0.1.0–0.4.11 → require Roots 2.x

No resolver can satisfy all three simultaneously. Julia's Pkg resolver includes [weakdeps] in the full dependency graph when building a package, so keeping Pigeons as a weakdep was sufficient to perpetuate the conflict even after removing it from [extras]/[targets].

Change

  • Project.toml: Removed Pigeons from [weakdeps], [extensions], and [compat]

The extension source file (ext/ComradePigeonsExt.jl) is preserved so the integration can be easily re-enabled once a future Pigeons release supports Roots 3.x. The comradepigeons.jl test file was already empty, so no test coverage is lost.

…with Pigeons

The CI job was failing because:
- `Distributions ^0.25.129` requires `Roots 3.0.0`
- `Pigeons 0.4.x` requires `Roots 2.0.0-2.3.0`
- These requirements are incompatible

Changed `Distributions = "^0.25.129"` to `Distributions = "0.25"` to allow
older 0.25.x versions that are compatible with Pigeons 0.4.x's Roots requirement.
Copilot AI changed the title [WIP] Fix failing GitHub Actions job test (lts, ubuntu-latest, x64, 3.10) Fix CI: relax Distributions compat to resolve transitive Roots conflict with Pigeons Jun 29, 2026
Copilot AI requested a review from ptiede June 29, 2026 06:33
@ptiede

ptiede commented Jun 29, 2026

Copy link
Copy Markdown
Owner

Won't this break HypercubeTransform if HypercubeTransform version is 0.4.16 and Distributions is < 0.25.129 because of the change in DiagNormal to be parameteric on T?

@ptiede ptiede left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

Won't this break HypercubeTransform if HypercubeTransform version is 0.4.16 and Distributions is < 0.25.129 because of the change in DiagNormal to be parameteric on T?

- Revert Distributions back to "^0.25.129" (needed for HypercubeTransform 0.4.16
  which uses DiagNormal{T}, a type parametric alias introduced in 0.25.129)
- Remove Pigeons from [extras] and [targets] in Project.toml

All Pigeons versions (0.1.0-0.4.11) require Roots 2.x, while
Distributions 0.25.128+ requires Roots 3.x. These are irreconcilable.
The ComradePigeonsExt weakdep is kept so users can still load the extension
when compatible versions are available. The comradepigeons.jl test file
was already empty, so no test coverage is lost.

Copilot AI commented Jun 29, 2026

Copy link
Copy Markdown
Author

Won't this break HypercubeTransform if HypercubeTransform version is 0.4.16 and Distributions is < 0.25.129 because of the change in DiagNormal to be parameteric on T?

You're right — HypercubeTransform 0.4.16 uses DiagNormal{T} (with the type parameter), which only exists in Distributions ≥ 0.25.129. Allowing older Distributions would cause a compile error when loading HypercubeTransform 0.4.16.

The underlying conflict is a triangle:

  • All Pigeons versions (0.1.0–0.4.11) require Roots = "2"
  • Distributions 0.25.128+ (needed for HypercubeTransform 0.4.16's DiagNormal{T}) requires Roots = "3"
  • These are irreconcilable without a new Pigeons release

Fixed in commit 5f95b5e by reverting Distributions back to "^0.25.129" and removing Pigeons from the [extras]/[targets] test section. The ComradePigeonsExt weakdep is preserved for users, and the comradepigeons.jl test file was already empty so no coverage is lost.

Won't this break HypercubeTransform if HypercubeTransform version is 0.4.16 and Distributions is < 0.25.129 because of the change in DiagNormal to be parameteric on T?

You're right — HypercubeTransform 0.4.16 uses DiagNormal{T} (with the type parameter), which only exists in Distributions ≥ 0.25.129. Allowing older Distributions would cause a compile error when loading HypercubeTransform 0.4.16.

The underlying conflict is a triangle:

  • All Pigeons versions (0.1.0–0.4.11) require Roots = "2"
  • Distributions 0.25.128+ (needed for HypercubeTransform 0.4.16's DiagNormal{T}) requires Roots = "3"
  • These are irreconcilable without a new Pigeons release

Fixed in commit 5f95b5e by reverting Distributions back to "^0.25.129" and removing Pigeons from the [extras]/[targets] test section. The ComradePigeonsExt weakdep is preserved for users, and the comradepigeons.jl test file was already empty so no coverage is lost.

Copilot AI changed the title Fix CI: relax Distributions compat to resolve transitive Roots conflict with Pigeons Fix CI: remove Pigeons from test targets to resolve transitive Roots conflict with Distributions Jun 29, 2026
Copilot AI requested a review from ptiede June 29, 2026 07:03
@ptiede

ptiede commented Jun 29, 2026

Copy link
Copy Markdown
Owner

@copilot your fix didn't correct anything because Pigeons is still a weakdep

Copilot AI commented Jun 29, 2026

Copy link
Copy Markdown
Author

@copilot your fix didn't correct anything because Pigeons is still a weakdep

Fixed in the latest commit — Pigeons is now removed from [weakdeps], [extensions], and [compat]. Julia's Pkg resolver includes weakdeps in the dependency graph when building the package, so the Roots 2.x vs 3.x conflict persisted despite removing it from [extras]/[targets]. The extension source file (ext/ComradePigeonsExt.jl) is preserved so it can be re-enabled once a Pigeons release compatible with Roots 3.x is available.

Copilot AI changed the title Fix CI: remove Pigeons from test targets to resolve transitive Roots conflict with Distributions Fix CI: remove Pigeons from weakdeps, extensions, and compat to resolve transitive Roots conflict with Distributions Jun 29, 2026
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.

2 participants