Release Notes
All notable changes to Morphir Rust are documented here. This project follows Semantic Versioning.
For the full changelog, see CHANGELOG.md on GitHub.
v0.2.0 (January 24, 2026)
Added
- Core CLI Commands: Promoted
compileandgeneratefrom experimental to stablemorphir compile- Compile source code to Morphir IR using language extensionsmorphir generate- Generate code from Morphir IR using target extensions
- TUI Pager: Interactive JSON viewer with syntax highlighting and vim-like navigation
- Visual mode (
v,V) for selecting text - Yank to clipboard (
y) with WSL, X11, Wayland, and macOS support - Word motions (
w,b), line jumps (g,G), and scroll controls
- Visual mode (
- Expanded Format:
--expandedflag formorphir ir migrateproduces verbose V4 output- Variables:
{"Variable": {"name": "a"}}instead of"a" - References:
{"Reference": {"fqname": "...", "args": [...]}}instead of array format
- Variables:
- Launcher Script: Self-updating launcher with version management (
scripts/morphir.sh)- Supports
.morphir-versionfile for per-project version pinning - Auto-downloads correct version on first run
morphir self upgradeto fetch latest version
- Supports
- Dev Mode: Run morphir from local source for development and testing
- Enable via
--devflag,MORPHIR_DEV=1,local-devin.morphir-version, ordev_mode=trueinmorphir.toml morphir self devcommand to check dev mode status and configuration- Auto-detects source directory from CI environments and common locations
- Enable via
- Gleam Binding: Roundtrip testing infrastructure for Gleam code
- Compile Gleam to IR V4, generate back to Gleam, verify equivalence
- Support for todo/panic expressions in parser
Fixed
- VFS Consistency:
MemoryVfs::exists()now returnstruefor directories, matchingOsVfsbehavior - Compile Path Resolution:
source_directoryfrom config is now resolved relative to the config file location, not the current working directory
Changed
- V4 Compact Format Improvements:
- Reference with args now uses array format:
{"Reference": ["fqname", arg1, ...]} - Type variables are bare name strings in compact mode:
"a" - References without args are bare FQName strings:
"morphir/sdk:int#int"
- Reference with args now uses array format:
- V4 Canonical Naming:
Nametype now uses kebab-case by default (e.g.,my-function) - Documentation Site: Restructured with just-the-docs theme and morphir.finos.org branding
v0.1.0 (January 23, 2026)
Added
- Initial release of the Morphir Rust CLI toolchain
- IR Versioning: Support for both Classic and V4 Morphir IR formats
- Remote Source Support: IR migration can fetch from URLs, GitHub releases, and archives
- Extension System: Plugin architecture using Extism with JSON-RPC communication
- Morphir Daemon: Background service for workspace management and IDE integration
- CLI Commands:
morphir validate- Validate Morphir IR modelsmorphir generate- Generate code from Morphir IRmorphir transform- Transform Morphir IRmorphir tool- Manage Morphir tools (install/list/update/uninstall)morphir dist- Manage Morphir distributionsmorphir extension- Manage Morphir extensionsmorphir ir migrate- Migrate IR between versionsmorphir schema- Generate JSON Schema for Morphir IRmorphir version- Print version info (supports--jsonfor machine-readable output)
- Multi-platform Binaries: Pre-built releases for Linux (x86_64, aarch64, musl), macOS (x86_64, aarch64), and Windows (x86_64, aarch64)
- cargo-binstall Support: Install pre-built binaries via
cargo binstall morphir - WASM Bindings: WebAssembly backend for browser and edge deployments
- Gleam Binding: Language binding for Gleam frontend/backend
Upgrading
To upgrade to the latest version:
# Using the launcher
morphir self upgrade
# Using mise
mise upgrade github:finos/morphir-rust
# Using cargo
cargo install --git https://github.com/finos/morphir-rust morphir --force
Reporting Issues
Found a bug or have a feature request? Please open an issue on GitHub.