This release includes 3 breaking changes for platform teams planning a safe upgrade.
Published 11d
Forensics & Incident Response
✓ No known CVEs patched
✓ No known CVEs patched in this version
Affected surfaces
breaking_upgrade
Summary
AI summaryMulti-module project support requires migrating jo.toml to per‑module sections.
Full changelog
Added
- Multi-module project support in
jo.toml, including ordered
[module.<id>]sections, per-module source roots, source-module
dependencies, module-aware build outputs, and module-aware
build/clean/deps/doc/lock/package/run/testcommands. (#67) - App-module dependencies can inherit and override link wiring, enabling test
modules and app-as-library workflows. (#67) Bytes, an immutable byte sequence, withfill,size,get,slice,
andtoBase64support across the interpreter, JavaScript, native, Python,
and Ruby backends. (#65)- JIP-0001, documenting the regularized expression syntax. (#62)
Changed
jo.tomlnow separates source dependencies (modules) from registry
dependencies (packages), uses per-moduleplatform, and requires explicit
per-modulesrcentries. (#67)- Expression syntax is more regular:
match, dot chains, indented colon calls,
rescue,allow, andwithmay be used in more expression positions, while
inline colon calls are rejected directly inside comma-delimited contexts.
(#62) - Package metadata now records the module platform from the build spec. (#67)
Fixed
- Class-parameter factory functions and patterns are synthesized for all
parameterized classes unless overridden by user definitions. (#61) - Documentation comments are preserved when annotations appear before the
documented definition or member. (#63) - Rebuilds clean stale SAST output when source files are removed or changed.
(#64) - Dependency diagnostics cover missing
jo.toml, missingsrc, module cycles,
undefined modules, and clearer module labels. (#67)
Security
- No new ambient capabilities are introduced. FFI access remains explicit per
module throughenable-ffi, andBytesexposes an opaque Jo API rather than
backend-native byte-buffer representations. (#65, #67)
Compatibility
- Existing single-module
jo.tomlfiles must be migrated to the
[module.<id>]shape with explicitsrc; top-level source and dependency
fields are no longer the current build-spec form. (#67) - Registry dependencies that were previously listed as source dependencies must
move topackages, while source dependencies move tomodules. (#67) - New code using
Bytesrequires the 0.12 compiler, standard library, and
runtime backend support. (#65) - Inline colon calls that previously parsed in comma-delimited positions now
require parentheses or indentation. (#62)
Breaking Changes
- `jo.toml` must be migrated to the `[module. ]` shape with explicit `src`; top‑level source and dependency fields are removed.
- Source dependencies (`modules`) must be separated from registry dependencies (`packages`).
- Inline colon calls inside comma‑delimited contexts now require parentheses or indentation.
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About Jo
All releases →Related context
Related tools
Earlier breaking changes
- v0.12.1 Projects must directly declare transitive dependencies previously accessible via link=true sources.
Beta — feedback welcome: [email protected]