🚀 Elixir 1.19 & Python 3 - Modern Stack Upgrade
This major release modernizes Piton to support the latest Elixir ecosystem while dropping legacy dependencies and improving CI/CD automation.
⚠️ Breaking Changes
- Minimum Elixir:
~> 1.19(was~> 1.7) - Minimum OTP:
27(was21.0) - Python 2.x dropped: Python 3.x now required
- Poison removed: Using Elixir's built-in
JSONmodule
✨ What's New
Core Updates
- ✅ Elixir 1.19.2 with OTP 27.1 support
- ✅ Built-in JSON - No external JSON library needed
- ✅ Updated dependencies:
erlport0.10.0 → 0.11.0ex_doc0.19.1 → 0.39.1earmark1.2.5 → 1.4.48
CI/CD Automation
- ✅ GitHub Actions CI - Automated testing on every push/PR
- ✅ Auto-publish to Hex.pm - Triggered on release creation
- ✅ Python 3.12 in CI workflows
- ❌ Travis CI removed
Developer Experience
- ✅ asdf support -
.tool-versionsfile included - ✅ Better documentation - Updated README and new CHANGELOG
- ✅ Modern config - Fixed
Mix.Configdeprecation warnings
📊 Testing
All 13 tests passing with Elixir 1.19.2, OTP 27.1, and Python 3.12.
Finished in 13.6 seconds
13 tests, 0 failures ✅
🔄 Migration Guide
Upgrade Steps
- Update your Elixir version to 1.19 or later
- Ensure Python 3.x is installed (Python 2 no longer supported)
- Update your
mix.exs:{:piton, "~> 0.5.0"}
- If using Poison for JSON, switch to Elixir's built-in
JSONmodule:# Old Poison.encode!(data) Poison.decode!(json) # New JSON.encode!(data) JSON.decode!(json)
For Development
# Using asdf
asdf install
# Create Python venv for tests
python3 -m venv test/venv
# Run tests
mix test📝 Full Changelog
See CHANGELOG.md for complete details.
🙏 Notes
This is a breaking release due to updated minimum requirements. However, the API remains compatible - only the runtime requirements have changed.
If you need Python 2 support or older Elixir versions, please continue using v0.4.0.