manticoresoftware / manticoresoftware/manticoresearch-elixir
Update to modern Elixir, eliminate deprecation warnings
- Dominant language
- Elixir
- Stars
- 21
- Forks
- 1
- PR merge metrics
- No merged PRs in 30d
Description
## Summary
The current project uses an outdated Elixir version (`~> 1.6`), deprecated `Poison` JSON library, and produces multiple compiler warnings. This issue proposes to modernize the codebase.
## Proposed changes
### 1. Bump minimal Elixir version
- Current: `elixir: "~> 1.6"` (released in 2018, EOL for years)
- Proposed: `elixir: "~> 1.14"` or `~> 1.15`
- **Reasoning**: Use modern features, reduce maintenance burden, improve performance
### 2a. Replace Poison with Jason
- `Jason` is the de-facto standard JSON library in Elixir ecosystem
- It's more strict (than Poison) and complies with the JSON standard
- It's faster, actively maintained, and supports all modern Elixir features
- Breaking: None, API is identical (`encode!`/`decode!`)
### 2b. Use native :json
- No need any requirements
- BEAM native impovements and standard
### 3. Fix compiler warnings
Current warnings include:
- Deprecated functions and modules of standard library
- Ambiguous clauses in function definitions
## Benefits
- Clean compilation (no noise)
- Better compatibility with current and future Elixir releases
- Improved performance (`Jason` is 2-3x faster, `:json` also faster)
- Lower barrier for new contributors (modern tooling)
## Migration path
1. Update `mix.exs` with new requirements and dependencies (or without them!)
2. Replace `Poison` calls with `Jason` or `:json`
3. Refactor code to eliminate warnings
4. Update tests against supported Elixir versions (1.14, 1.15, 1.16)
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with mix.exs and the existing test suite: verify the supported Elixir versions and inspect current Poison usage and compiler warnings. Done means choosing one JSON approach, updating dependencies and calls, removing the listed warnings, and confirming tests pass on the supported versions.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- elixir
- Domain
- backend, build-system
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100