Skip to content

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 20 Dec 20:13

μcharm 0.3.0

100% Python stdlib compatibility—now with cross-platform builds and 18 new modules.

✨ What's New

  • Add 18 new CPython-compatible stdlib modules: array, binascii, configparser, contextlib, copy, dataclasses, hmac, secrets, urllib.parse, uuid, and more
  • Add cross-compilation support with --target flag: build for Linux ARM64, x86_64, and macOS from any platform
  • Add multi-platform runtime builds: pre-built PocketPy binaries for macOS (aarch64, x86_64) and Linux (x86_64, aarch64)
  • Add SHA256 verification for downloaded runtime artifacts with automatic fallback to local builds
  • Enhance collections module with Counter, ChainMap, UserDict, and UserList
  • Enhance functools module with singledispatch, cmp_to_key, and wraps decorator
  • Enhance json module with JSONDecoder and JSONEncoder classes supporting custom hooks
  • Enhance struct module with calcsize() and improved format string parsing
  • Add patchset management for PocketPy vendor patches with CI verification

⚡ Improvements

  • Runtime caching in ~/.ucharm/runtimes/ with automatic version tracking
  • Smarter build system: falls back to local PocketPy compilation when in source checkout
  • Better error messages and user prompts for missing dependencies
  • CI now verifies PocketPy patches aren't accidentally corrupted or removed

🐛 Bug Fixes

  • Fix progress() function signature to include label parameter
  • Fix float formatting for small values in PocketPy runtime
  • Correct release artifact hashing from repository root

📚 Documentation

  • Update compatibility stats: 100% of targeted modules now pass all tests (1,606/1,600 tests)
  • Add cross-compilation examples and WIP modules section
  • Expand PocketPy patch documentation with management instructions
  • Convert FAQ to collapsible sections for easier navigation

Installation

# Install
brew install ucharmdev/tap/ucharm

# Or upgrade
brew upgrade ucharm

What's next? We're working on TLS support for http.client, full sqlite3 bindings, and streaming compression. Check the roadmap for details.


Full Changelog: v0.2.0...v0.3.0