Skip to content

Upgrade to target Elixir version ~1.12#40

Open
E14 wants to merge 7 commits into
hexedpackets:masterfrom
E14:master
Open

Upgrade to target Elixir version ~1.12#40
E14 wants to merge 7 commits into
hexedpackets:masterfrom
E14:master

Conversation

@E14

@E14 E14 commented Jun 19, 2026

Copy link
Copy Markdown

Elixir does not seem to strictly follow semver, current Elixir 1.x versions are not fully backwards compatible. Most of the issues are in dependencies, but this project simply does not build anymore with current Elixir versions.

This PR fixes that! :)

I've targeted 1.12, as those incompatible changes happened before then, as far as I've seen.

I've also added CI tests for target and latest Elixir to hopefully make this more visible.

Most code changes are in commit 01f3b78, the rest are getting CI builds to run properly... Here's a combined commit message:

Update dependencies for Elixir 1.12+

  • Increase minimum versions for poison, calliope, plug_heartbeat, credo, slime
  • Increase minimum ex_doc version to 0.33 - removes requirement for earmark, requires Elixir 1.11+
  • Removed :applications, added :extra_applications instead

Update

  • config/config.exs: Use Config instead of Mix.Config
  • lib/trot.ex: Fix Trot.parse_query_string/1 for Elixir 1.12+
  • lib/trot/router.ex: Use Application.compile_env/3 instead of Application.get_env/3
  • test/trot/route_test.exs: Use inspect/1 in unit test as well to avoid unstable test due to changing rendering
  • test/trot/live_reload_test.exs: Create temporary file instead of touching trot.ex

Actions:

  • Added CI actions to test build against Elixir 1.12 and latest

If you've abandoned this project and don't want to bother - don't worry, feel free to ignore this PR!

E14 added 7 commits January 3, 2026 18:22
Update dependencies for Elixir 1.12+
- Increase minimum versions for poison, calliope, plug_heartbeat, credo, slime
- Increase minimum ex_doc version to 0.33 - removes requirement for earmark, requires Elixir 1.11+
- Removed :applications, added :extra_applications instead

Update
- config/config.exs: Use Config instead of Mix.Config
- lib/trot.ex: Fix Trot.parse_query_string/1 for Elixir 1.12+
- lib/trot/router.ex: Use Application.compile_env/3 instead of Application.get_env/3
- test/trot/route_test.exs: Use inspect/1 in unit test as well to avoid unstable test due to changing rendering
- test/trot/live_reload_test.exs: Create temporary file instead of touching trot.ex

Actions:
- Fix incorrect cache hits in workflows by including Elixir version in cache key
- Use `> 0` instead  of `latest` for elixir and  otp versions
Update for modern Elixir (1.12+)
Unlock in order to run on version-compatible libraries
Removed dependency cache usage for now, as that would conflict
Improve CI - Add manual triggers to workflows and change runner for "latest" Elixir so that it unlocks the mix lock-file
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