Drop Elixir 1.14/1.15, update dependencies - #11
Open
drozdzynski wants to merge 5 commits into
Open
Conversation
Both are outside Elixir's support window (the five most recent minor versions, 1.16 through 1.20) and only build against OTP 25 and older. `nanoid`, a runtime dependency, already required `~> 1.12`, so the declared `~> 1.10` floor could not be satisfied anyway.
`:pg2` was removed in OTP 24 and the minimum supported Elixir (1.16) requires OTP 24 or newer, so `Code.ensure_loaded?(:pg)` was always true and the fallback branches were unreachable.
Also drops the stale `earmark` lock entry, which no dependency has referenced since ex_doc moved to `earmark_parser`; it was the only retired package reported by `mix hex.audit`.
drozdzynski
force-pushed
the
chore/drop-old-elixir-update-deps
branch
from
September 6, 2026 18:19
5973102 to
85e0117
Compare
There was a problem hiding this comment.
🟢 Approval recommended
The changes are cohesive and low-risk (version floor + dependency/CI updates) with only a minor maintainability nit outstanding.
Pull request overview
This PR bumps Storex to 0.7.0, raises the minimum supported Elixir version to 1.16+, and refreshes the dependency lockfile/CI matrix accordingly while removing the now-unreachable :pg2 fallback.
Changes:
- Drop Elixir 1.14/1.15 support (project requirement + CI matrix reduction).
- Remove conditional
:pg/:pg2branching and standardize on:pg. - Update locked dependency versions and bump project/package versions + changelog entry.
File summaries
| File | Description |
|---|---|
| package.json | Bump npm package version to 0.7.0. |
| mix.exs | Bump library version and raise required Elixir to ~> 1.16. |
| mix.lock | Refresh locked dependency versions (Plug/Bandit/Cowboy/Tesla/etc.) and drop stale entries. |
| lib/storex.ex | Always start a :pg instance and remove conditional child construction. |
| lib/storex/pg.ex | Remove :pg2 fallback helpers and use :pg APIs directly. |
| .github/workflows/main.yml | Remove Elixir 1.14/1.15 jobs from the CI matrix (and PR branch restriction). |
| CHANGELOG.md | Add 0.7.0 entry documenting breaking/support/dependency changes. |
| .gitignore | Add .DS_Store and normalize .elixir_ls entry formatting. |
Review details
- Files reviewed: 6/8 changed files
- Comments generated: 1
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Comment on lines
5
to
+8
| def start(_type, _args) do | ||
| import Supervisor.Spec, warn: false | ||
|
|
||
| children = | ||
| pg_children() ++ | ||
| [ | ||
| {Storex.PG, []}, | ||
| {Storex.Registry, []}, | ||
| {Storex.Supervisor, []} | ||
| ] | ||
| children = [ |
drozdzynski
force-pushed
the
chore/drop-old-elixir-update-deps
branch
from
September 6, 2026 18:38
11f3aec to
0c7d16b
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.
Stacked on #10 — see "Branching" at the bottom for why this is not branched off
master.Drop Elixir 1.14 and 1.15
mix.exsnow declareselixir: "~> 1.16", and the CI matrix drops the five 1.14/1.15 jobs (18 → 13).Rationale:
ubuntu-22.04.~> 1.10floor was already fiction: the runtime dependencynanoidrequires~> 1.12, so a 1.10/1.11 project could never resolve the tree.Remove the
:pg2fallbacklib/storex.exandlib/storex/pg.excarriedCode.ensure_loaded?(:pg)branches falling back to:pg2.:pg2was removed in OTP 24 and Elixir 1.16 needs OTP 24+, so those branches were already unreachable — the matrix has not tested an OTP that could hit them since before 1.14 was dropped.Update dependencies
Notable moves:
Everything the resolver could move, moved; no dependency constraint in
mix.exsneeded changing. All updated packages declare an Elixir requirement of~> 1.15or lower, so the new 1.16 floor holds.Also drops the stale
earmark 1.3.1lock entry — nothing in the tree has referenced it since ex_doc switched toearmark_parser.mix hex.auditRetired packages: none after the
earmarkremoval (it was the only one).Advisories: two packages, both already at the newest version the resolver can reach, and both test-only — neither reaches library consumers:
hackney 1.25.0— 4 advisories (one HIGH: SOCKS5 TLS upgrade ignores caller timeout). Pulled in bywallaby → httpoison → hackney.httpoison 2.3.0requireshackney ~> 1.21, so the fixed 4.x line is unreachable until httpoison widens that constraint. Nothing actionable here.cowlib 2.19.0— 3 advisories (max MEDIUM). 2.19.0 is the latest release; there is no fixed version to move to. Pulled in bycowboy, which isonly: :test.Neither appears in the
:proddependency tree, somix.exs's published requirements are unaffected.Verified locally
mix compile --force --warnings-as-errors→ 0 warnings, non-browser suite → 52 passed, on:Browser tests (Wallaby) not run locally — no chromedriver on this machine.
Branching
Requested off
master, but built onfix/elixir-1.18-type-warnings(#10) instead: that PR adds themix compile --warnings-as-errorsstep and the 1.18–1.20 matrix rows, and without itsStorex.Storefix those jobs fail on the type warnings. Branching offmasterwould have shipped a red matrix or silently dropped those rows.Retarget to
masteronce #10 merges.Note on versioning
CHANGELOG.mdfolds #10's entry into this one: the## 0.6.2section added there becomes## 0.7.0here, carrying all four bullets. Only 0.7.0 gets tagged, so 0.6.2 never becomes a phantom release. #10'sVersion 0.6.2commit is left in place so that PR still stands on its own; it is superseded by theVersion 0.7.0commit here.