Skip to content

v0.5.0: Elixir 1.19 & Python 3 - Modern Stack Upgrade

Latest

Choose a tag to compare

@mendrugory mendrugory released this 08 Nov 17:14
0480fc9

🚀 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 (was 21.0)
  • Python 2.x dropped: Python 3.x now required
  • Poison removed: Using Elixir's built-in JSON module

✨ What's New

Core Updates

  • Elixir 1.19.2 with OTP 27.1 support
  • Built-in JSON - No external JSON library needed
  • Updated dependencies:
    • erlport 0.10.0 → 0.11.0
    • ex_doc 0.19.1 → 0.39.1
    • earmark 1.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-versions file included
  • Better documentation - Updated README and new CHANGELOG
  • Modern config - Fixed Mix.Config deprecation 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

  1. Update your Elixir version to 1.19 or later
  2. Ensure Python 3.x is installed (Python 2 no longer supported)
  3. Update your mix.exs:
    {:piton, "~> 0.5.0"}
  4. If using Poison for JSON, switch to Elixir's built-in JSON module:
    # 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.