Skip to content

fix: make hackney an optional dependency (0.15.7)#54

Merged
nyo16 merged 1 commit intomasterfrom
fix/optional-hackney
May 6, 2026
Merged

fix: make hackney an optional dependency (0.15.7)#54
nyo16 merged 1 commit intomasterfrom
fix/optional-hackney

Conversation

@nyo16
Copy link
Copy Markdown
Owner

@nyo16 nyo16 commented May 6, 2026

Req is the default backend for both one-shot and streaming HTTP. Hackney is only used when a consumer opts into Nous.HTTP.Backend.Hackney / Nous.HTTP.StreamBackend.Hackney via NOUS_HTTP_BACKEND or app config.

Forcing {:hackney, "~> 4.0"} as a hard dep in 0.15.x broke downstream apps that pulled in any transitive optional constraint of hackney ~> 1.x (e.g. aws ~> 1.0's optional hackney dep). Once hackney 4 entered the graph, Mix activated the optional ~> 1.20 constraint and version resolution failed:

Because "the lock" depends on "aws 1.0.10" which depends on
"hackney ~> 1.20", "the lock" requires "hackney ~> 1.20".
And because "nous >= 0.15.0" depends on "hackney ~> 4.0",
"the lock" is incompatible with "nous >= 0.15.0".

Apps using the hackney backend now declare {:hackney, "~> 4.0"} in their own mix.exs.

Req is the default backend for both one-shot and streaming HTTP. Hackney
is only used when a consumer opts into Nous.HTTP.Backend.Hackney /
Nous.HTTP.StreamBackend.Hackney via NOUS_HTTP_BACKEND or app config.

Forcing {:hackney, "~> 4.0"} as a hard dep in 0.15.x broke downstream
apps that pulled in any transitive optional constraint of hackney ~> 1.x
(e.g. aws ~> 1.0's optional hackney dep). Once hackney 4 entered the
graph, Mix activated the optional ~> 1.20 constraint and version
resolution failed:

  Because "the lock" depends on "aws 1.0.10" which depends on
  "hackney ~> 1.20", "the lock" requires "hackney ~> 1.20".
  And because "nous >= 0.15.0" depends on "hackney ~> 4.0",
  "the lock" is incompatible with "nous >= 0.15.0".

Apps using the hackney backend now declare {:hackney, "~> 4.0"} in
their own mix.exs.
@nyo16 nyo16 merged commit 6cb64c5 into master May 6, 2026
5 checks passed
@nyo16 nyo16 deleted the fix/optional-hackney branch May 6, 2026 01:01
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.

1 participant