Open
Conversation
This commit makes the minimum changes necessary to run the project on modern Elixir (1.14+) and Erlang (25+). Changes: - Update Elixir requirement from ~> 1.7.2 to ~> 1.14 - Update HTTPoison from >= 1.2.0 to ~> 2.0 (fixes Hackney compatibility) - Update Credo from ~> 0.10.0 to ~> 1.7 (was crashing on Elixir 1.14) - Update ExDoc from >= 0.0.0 to ~> 0.31 (Earmark was crashing) - Add runtime: false to dev/test dependencies (modern best practice) - Update test expectations to match current Expo API error format All tests pass: mix format, compile, credo, docs, and test suite.
Poison has been abandoned since 2017. Jason is the modern, actively
maintained standard for JSON in Elixir with better performance.
Changes:
- Replace {:poison, "~> 3.1.0"} with {:jason, "~> 1.4"} in deps
- Replace all Poison.encode!/encode calls with Jason.encode!/encode
- Replace all Poison.decode calls with Jason.decode
- Update application list to use :jason instead of :poison
- Update module documentation references
Note: HTTPoison still depends on Poison internally, which is fine.
We've removed all direct usage from our codebase.
All tests pass.
Since Elixir 1.4, applications are automatically inferred from the deps list. The `applications` key is deprecated in favor of `extra_applications` which should only list built-in OTP apps (not dependencies). Changes: - Replace `applications: [:logger, :httpoison, :jason]` with `extra_applications: [:logger]` - :httpoison and :jason are now auto-started from deps - Only :logger remains as it's a built-in OTP application This follows modern Elixir conventions and removes deprecation warnings. All tests pass.
These dependencies are no longer maintained or useful: - dialyze (last updated 2017): Outdated Dialyzer wrapper. Modern Elixir projects use the built-in `mix dialyzer` or the actively maintained `dialyxir` package if needed. - inch_ex: Documentation quality checker for the Inch CI service, which shut down years ago. No longer functional. Removing these reduces maintenance burden and dependency bloat. All tests pass.
Remove outdated Elixir 1.3 patterns from the installation guide. The old pattern was necessary 7+ years ago but confuses modern users.
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
This PR modernizes the Elixir SDK to work with current Elixir versions (1.14+) and updates dependencies that haven't been maintained in 7 years.
Changes
Commit 1: Update to Elixir 1.14 and modernize critical dependencies
runtime: falseto dev/test dependencies (modern best practice)Commit 2: Migrate from Poison to Jason
Commit 3: Use modern extra_applications pattern
applicationslist withextra_applicationsCommit 4: Remove obsolete dependencies
dialyze(outdated, last updated 2017)inch_ex(Inch CI service shut down)Commit 5: Update README
Testing
All quality checks pass:
mix format --check-formattedmix compile --warnings-as-errorsmix credo --strictmix docsmix test(15 tests, 0 failures)Compatibility
Context
The project hasn't been updated in 7 years and won't compile on modern systems due to:
This PR brings the project up to current standards while maintaining all existing functionality.