This release adds 4 notable features for engineering teams evaluating rollout.
Published 1mo
Build & Package
✓ No known CVEs patched
✓ No known CVEs patched in this version
Topics
android
compile
harmonyos
ios
llvm
macos
+5 more
native
smc
typescript
watchos
windows
Summary
AI summaryBroad release touches Highlights, Infrastructure / Docs, v0.5.151, and v0.5.125.
Full changelog
Highlights
- Tier-2 iOS simulator CI gate —
release-packages.ymlnow waits on bothTestsandSimulator Tests (iOS)green on the exact tag-commit SHA before publishing to brew / apt / npm. Newawait-testsjob pollsgh run list --commit <sha>every 30s with a 45-min deadline. Test workflow trigger extended totags: ['v*']so the Tests run actually exists on the tag.workflow_dispatchemergency-republish bypass preserved. - Doc-examples test harness + cross-compile matrix — Every
docs/examples/snippet now compiles under CI against macOS / Linux / Windows (blocking) and iOS / tvOS / watchOS / Android / WASM / Web (advisory until baselines blessed, now blocking on macOS+Linux). Simulator runs usePERRY_UI_TEST_MODE=1+ self-exit timer for bundle-launches smoke signal. - watchOS end-to-end —
--target watchos[-simulator]compiles and bundles; adds--features watchos-game-loop(Metal surface) and--features watchos-swift-app(SwiftUI host) plusperry.nativeLibrary.targets.<plat>.metal_sourcesfor.metallibbundling (closes #124). perry devwatch mode — New subcommand auto-recompiles on save (v0.5.143).- perry/ui gap closure —
alertWithButtons, string values inpreferencesGet/Set,onTerminate/onActivatelifecycle hooks, and LazyVStack backed byNSTableViewvirtualization (v0.5.151).
Features
feat: gate release-packages on Tests + Simulator Tests(v0.5.155)feat: close all 4 remaining perry/ui gaps(v0.5.151)feat: metal_sources manifest field for .metallib bundling(v0.5.146, closes #124)feat: compile-only banner + Fastify #125 regression check(v0.5.144)feat: perry dev — watch-mode subcommand for auto-recompile on save(v0.5.143, #126)feat: big doc-tests push — blessings + UI docs + xcompile + Android + PNG compress(v0.5.140)feat: tier-2 follow-ups — watchOS test mode + iOS-sim fix + simctl CI(v0.5.137)feat: wire PERRY_UI_TEST_MODE into perry-ui-ios + perry-ui-tvos(v0.5.135)feat: split xcompile into blocking (wasm+web) + advisory(v0.5.133)feat: bless gallery baselines + flip macOS+Linux blocking(v0.5.131)feat: doc-tests cross-compile matrix (iOS/tvOS/Android/WASM/Web)(v0.5.125)feat: doc-examples test harness + widget gallery(v0.5.123)feat: add --features watchos-swift-app for SwiftUI-hosted rendering(v0.5.122, #118)feat: add --features watchos-game-loop for Metal-surface apps(v0.5.114, #106)
Fixes
fix: drop run_with_timeout from simctl launch path(v0.5.154)fix: drop --console-pty from simctl-tests(v0.5.152)fix: honor --app-bundle-id on ios-simulator/ios full-app(v0.5.150)fix: ios-simulator Info.plist platform keys(v0.5.149)fix: simctl env vars via SIMCTL_CHILD_ prefix(v0.5.148)fix: simctl --setenv arg syntax(v0.5.147)fix: simctl-tests — detect timeout/gtimeout + fallback(v0.5.145)fix: async arrow/closure returns — wrap in js_promise_resolved(v0.5.142, closes #125)fix: cross-platform fs/roundtrip path(v0.5.142)fix: Ubuntu gtk4 border symbols + Windows png encoder borrow(v0.5.141)fix: PowerShell arg-splitting, round two — repeat xcompile flag(v0.5.139)fix: PowerShell arg-splitting on Windows xcompile step(v0.5.138)fix: three follow-ups from v0.5.135 CI run(v0.5.136)fix: Windows Picker parent HWND for WS_CHILD(v0.5.132)fix: force async-runtime feature when UI backend is linked(v0.5.130)fix: diagnose why --whole-archive didn't surface on Ubuntu(v0.5.129)fix: use --whole-archive for stdlib on Linux UI links(v0.5.128)fix: Linux link order + Windows MSVC env(v0.5.127)fix: merge stdout + stderr in doc-tests compile-fail detail(v0.5.126)fix: watchos bundle step copies project assets into the .app(#123)fix: platform-split HEAP_MIN for android/linux(v0.5.125)fix: doc-tests CI follow-ups after first run of v0.5.123(v0.5.124)fix: reject silent perry/ui API misuse at compile time(v0.5.119, #114)fix: drop libc: ["glibc"] from glibc Linux npm manifests(v0.5.118, #116)fix: wire URL/URLSearchParams through LLVM backend(v0.5.117, #111)fix: animateOpacity/animatePosition signature, units, and reactivity(v0.5.116, #109)fix: console.log on Windows by gating MSVC subsystem on needs_ui(v0.5.114, #108)fix: find_native_library target_key honors watchos(v0.5.115, #107)fix: make --target watchos[-simulator] compile end-to-end(v0.5.113, #105)fix: perry-ui-ios StringHeader.length migrated to byte_lenfix: ios-game-loop entry point for iOS/tvOS targets
Infrastructure / Docs
docs(skill): rewrite /release to tag HEAD, not commit uncommitted workchore: simctl-tests per-phase trace + explicit timeouts(v0.5.153)docs: correct stale version strings + TabBar platform caveatdocs: port-npm-to-perry skill + porting guide(experimental, re #115)docs: add CONTRIBUTING, CoC, and issue/PR templatesdocs: carve out "no version bumps in external PRs" ruledocs: add perry dev to CLI commands referencedocs: rewrite ui/widgets.md against the real API(v0.5.134)docs: document @perryts/perry npm install path in README + mdBook
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 perry
A native TypeScript compiler written in Rust. Compiles TypeScript directly to executables using SWC and LLVM.
Related context
Beta — feedback welcome: [email protected]