Skip to content

perry

v0.5.155 Feature

This release adds 4 notable features for engineering teams evaluating rollout.

Published 1mo Build & Package
✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Topics

android compile harmonyos ios llvm macos
+5 more
native smc typescript watchos windows

Summary

AI summary

Broad release touches Highlights, Infrastructure / Docs, v0.5.151, and v0.5.125.

Full changelog

Highlights

  • Tier-2 iOS simulator CI gaterelease-packages.yml now waits on both Tests and Simulator Tests (iOS) green on the exact tag-commit SHA before publishing to brew / apt / npm. New await-tests job polls gh run list --commit <sha> every 30s with a 45-min deadline. Test workflow trigger extended to tags: ['v*'] so the Tests run actually exists on the tag. workflow_dispatch emergency-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 use PERRY_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) plus perry.nativeLibrary.targets.<plat>.metal_sources for .metallib bundling (closes #124).
  • perry dev watch mode — New subcommand auto-recompiles on save (v0.5.143).
  • perry/ui gap closurealertWithButtons, string values in preferencesGet/Set, onTerminate / onActivate lifecycle hooks, and LazyVStack backed by NSTableView virtualization (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_len
  • fix: ios-game-loop entry point for iOS/tvOS targets

Infrastructure / Docs

  • docs(skill): rewrite /release to tag HEAD, not commit uncommitted work
  • chore: simctl-tests per-phase trace + explicit timeouts (v0.5.153)
  • docs: correct stale version strings + TabBar platform caveat
  • docs: port-npm-to-perry skill + porting guide (experimental, re #115)
  • docs: add CONTRIBUTING, CoC, and issue/PR templates
  • docs: carve out "no version bumps in external PRs" rule
  • docs: add perry dev to CLI commands reference
  • docs: 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

Track perry

Get notified when new releases ship.

Sign up free

About perry

A native TypeScript compiler written in Rust. Compiles TypeScript directly to executables using SWC and LLVM.

All releases →

Beta — feedback welcome: [email protected]