manticoresoftware / manticoresoftware/manticoresearch-elixir

Update to modern Elixir, eliminate deprecation warnings

Open
#13 0 comments 0 reactions 0 assignees View on GitHub
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.