Releases: ucharmdev/ucharm
Releases · ucharmdev/ucharm
v0.5.0
μcharm 0.5.0
Beautiful tables, spinners, and a brand new home for your CLI toolkit.
✨ What's New
- Add charm.table() for rendering beautiful Unicode tables with multiple border styles and header support
- Add charm.spinner() with animated frames, custom messages, and color support
- Add charm.progress_done() helper to elegantly complete progress bars and spinners
- Enhance charm.progress() with elapsed time display
- Launch documentation website with interactive Terminal component, getting-started guides, and full module reference
- Add vision roadmap featuring planned features inspired by Rich, Inquirer, and BubbleTea
⚡ Improvements
- Expand input module with test mode support for
prompt()andpassword()functions viaMCHARM_TEST_KEYSenvironment variable - All 28 end-to-end tests now pass with improved test infrastructure
- Update embedded runtime binaries across all platforms with BearSSL (TLS), sqlite3, and new module support
📚 Documentation
- New Fumadocs-powered website with landing page, module documentation, and guides
- Add comprehensive AI templates for common CLI patterns
- Update type stubs with new charm functions for better IDE support
- Improve contribution guidelines with website deployment checklist
Installation
# Install
brew install ucharmdev/tap/ucharm
# Or upgrade
brew upgrade ucharmWhat's next? Check out the roadmap for fuzzy select, task lists, and more interactive components coming soon.
Full Changelog: v0.4.0...v0.5.0
v0.4.0
μcharm 0.4.0
Network requests and templating just got a whole lot easier—plus 10 new stdlib modules to round out your toolkit.
✨ What's New
- Add fetch module for HTTP/HTTPS requests with built-in TLS support via BearSSL
get(),post(),request()functions with intuitive APIs- Built-in CA certificate bundle; set
verify=Falsefor development
- Add template module with Jinja-like syntax for dynamic content generation
- Variables:
{{name}}, dotted access{{user.email}} - Conditionals:
{% if condition %}...{% end %} - Loops:
{% for item in items %}...{% end %}
- Variables:
- Expand stdlib with sqlite3, zipfile, tarfile, gzip, xml.etree.ElementTree, dataclasses, hmac, toml, tempfile improvements, and subprocess enhancements
⚡ Improvements
- sqlite3 now supports full DB-API subset with cursor objects and
fetchall() - zipfile and tarfile add read-only archive support for common workflows
- xml.etree.ElementTree gains
fromstring(),find(), andfindall()for XML parsing - dataclasses module now includes
field(),asdict(), andastuple()helpers - subprocess.run() improved with
capture_outputparameter for easier output handling - toml module supports nested table parsing with
loads()anddumps()
📚 Documentation
- Updated README with fetch and template examples
- Expanded AI instruction templates with 50+ module reference
- Full compatibility report: 1,663/1,663 tests passing ✓
Installation
# Install
brew install ucharmdev/tap/ucharm
# Or upgrade
brew upgrade ucharmFull Changelog: v0.3.0...v0.4.0
v0.3.0
μ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
--targetflag: 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, andUserList - Enhance functools module with
singledispatch,cmp_to_key, andwrapsdecorator - Enhance json module with
JSONDecoderandJSONEncoderclasses 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
labelparameter - 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 ucharmWhat'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
v0.2.0
μcharm 0.2.0
Interactive input just got rock solid—arrow keys, vim bindings, and task runners all work seamlessly now.
✨ What's New
- Add shared TUI library with ANSI constants, Unicode symbols, and reusable UI components
- Introduce test mode for automated testing of interactive prompts via environment variables or file descriptors
- New
ucharm initcommand initializes projects with type stubs and AI assistant instructions - Add
ucharm new --stubsand--aiflags for scaffolding with IDE support and coding assistant templates
⚡ Improvements
- Interactive input now works with task runners like
justandmakeby reading directly from/dev/tty - Escape sequences for arrow keys and vim bindings (
j,k) handled properly without false quits - Cross-compilation support with
--targetflag for macOS (aarch64/x86_64) and Linux (x86_64/aarch64) - Auto-download platform-specific runtimes with version awareness and user prompts
- 24 native modules with full type stubs for IDE autocomplete and type checking
- Position-independent code enabled on Linux for PIE compatibility
- Unified ANSI styling across CLI and native modules eliminates duplication
🐛 Bug Fixes
- Fix box width calculation with unsigned integer underflow when no title provided
- Correct ANSI escape codes in all help text and subcommands with proper
\x1bprefix - Add
_XOPEN_SOURCEforstrptime()Linux compatibility - Add
_POSIX_C_SOURCEandsys/types.hfor signal/terminal functions on Linux - Fix terminal inheritance in
ucharm runusingexecvfor proper interactive input - Code-sign MicroPython binary on macOS for terminal interaction
- Prevent continuous redraws in select/multiselect when no key pressed
- Update CI to use
macos-15-intelrunners (macos-13 retired)
Installation
# Install
brew install ucharmdev/tap/ucharm
# Or upgrade
brew upgrade ucharmFull Changelog: v0.1.0...v0.2.0
v0.1.0
Features
- Add os module with environ, path utilities, and system info
- Add sys module with recursion limits, sizeof, and flags
- Add argparse subparsers and mutually_exclusive_group support
- Upgrade to Zig 0.15.2 for improved performance
Improvements
- Improve CPython compatibility to 88.2% (1,288/1,461 tests passing)
- Achieve 100% compatibility for 28 modules including os, collections, argparse
- Add OrderedDict.move_to_end(), deque.clear(), deque.rotate() methods
- Add namedtuple._replace() and namedtuple._fields support
- Fix argparse choices, required, and nargs='?' const handling
- Patch MicroPython module delegation chaining
Documentation
- Add comprehensive CPython compatibility documentation and implementation plan
- Update architecture guide with Zig-only policy for native modules
- Document all 28 native modules with examples and performance benchmarks
Maintenance
- Remove obsolete Python compatibility layer and legacy tests
- Clean up build configuration and module organization