Loosen pi_bridge Elixir requirement to ~> 1.16#5
Merged
dannote merged 4 commits intoJun 15, 2026
Conversation
The pi_bridge Mix project pinned elixir: "~> 1.20", which is too strict for legacy projects still on Elixir 1.16–1.19. Loosen the requirement to "~> 1.16" in the bridge and the bundled demo_project fixture so adoption on older Elixir releases is at least allowed by mix.exs. Note: the runtime json_codec dep (hex: ~> 0.1.3) currently pins "~> 1.20" upstream, so installing pi_bridge on 1.16–1.19 still fails at deps resolution until a json_codec release is published with the same loosened requirement. Tracked separately.
5badcc2 to
bff2e2a
Compare
2b9ee86 to
d7bd44e
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
pi_bridge'selixir:requirement from~> 1.20to~> 1.16so legacy projects still on Elixir 1.16–1.19 can adopt the bridge.packages/fixtures/demo_projectfixture for consistency.Why
The previous
~> 1.20requirement was too strict for projects on supported-but-older Elixir releases. The bridge code itself does not require 1.20 features; the floor was set higher than necessary.Paired dependency change
The runtime dep
json_codec ~> 0.1.3(hex) still pinselixir: "~> 1.20"upstream, so until ajson_codecrelease is published with the same loosened requirement,mix deps.geton 1.16–1.19 will still fail at deps resolution. A paired PR is open:json_codec'selixir:to~> 1.16, bump to0.1.5Once
json_codec 0.1.5is published to hex, a follow-up commit on this branch will bumppackages/bridge/mix.exsto pin{:json_codec, "~> 0.1.5"}(or wider) so the looser floor actually takes effect for downstream consumers.Checks
pnpm run check:js— passespnpm run check:beam(mix ci— compile/format/credo/dialyzer/ex_dna/reach) — passespnpm run hex:check— passespnpm run pack:check— passespnpm run test:beam(mix test) — 119/123 pass; the 4 failures are pre-existing QuackDB tests that require theduckdbbinary (also fail onmasterwithout these changes)