TextMate 2.1.0-undead
Immutable
release. Only release title and notes can be modified.
2026-05-23 (v2.1.0-undead)
First release of the textmatelives/textmate fork. TextMate builds and ships against macOS 26 on Apple Silicon, with refreshed bundle delivery, an in-process SCM gutter diff, and a signed-and-notarized release pipeline. Commit and PR references throughout. See all changes since v2.0.23.
App and UI
- New Liquid Glass app icon, sourced from an Icon Composer
.iconbundle and compiled at build time. The system handles light, dark, and tinted variants on its own. (0c6319f8) - HTML output backed by
WKWebView(replaces the deprecatedWebView). The git bundle's commit dialog and other bundle-driven HTML windows load on modern macOS again. (a20abe94,f045c65b,c9d831a6,0c058b4f) - macOS 26 compatibility fixes: removed
FSEventStreamFlushSyncto prevent a main-thread hang (78529a60); resolved a deadlock betweenNSUserDefaultsnotification and FSEvents flush (2510f3dc); fixedOakBackgroundFillViewdrawing beyond its bounds on macOS 15+ (72a15176). - Apple Silicon only. Intel binaries removed; deployment target raised to macOS 26.
mateCLI now declaresdisable-library-validationso injected dylibs from launching processes don't get rejected. (fd48bae5)
Bundles
- Catalogue hosted in Bundle Support.tmbundle.
DefaultBundles.plist,AvailableBundles.plist, andBundleFileTypeIndex.plistmove out of the app and into the bundle. Adding a bundle or fixing an extension association no longer requires cutting an app release. (#3,2b828aa0) - First-launch sheet lets you batch-install (or skip) the 40 default-tier bundles. Return installs the checked rows, Esc skips, Space toggles a row. (
0932d14a) - On-demand install: opening a file whose extension matches an uninstalled catalogue bundle now offers to install just that bundle. Bundles you decline are remembered and won't re-prompt. (
47d03525,94d24276,7b0793c7,9f59b9a1) - 110 opt-in bundles wired into the Bundles preference pane as an
AvailableBundlestier alongside the defaults. (3d342b89,7b8d7002) - Bundles pane refresh: gear-icon action menu (
4ea36df6), hovered-row highlight (11a8b2db), restored category headers (e6277292). - SCM and Diff bundles ship by default; the now-redundant SCM Diff Gutter bundle was dropped. (
49aa933e) - 12 additional bundles ship by default alongside the existing core set. (
7e66f138) - Themes bundle embedded as a 4th mandatory bundle so a fresh install picks up themes without a network round-trip. (
5fbb7f6c) api.textmate.orgbundle manager replaced with git-URL-driven subscriptions. The legacyDefaultBundles.tbzextraction on first launch is gone. (4994d2ec,c438a993)- Ruby bundles ported to Ruby 2.6.10 (the system Ruby on macOS 26). Bundled Ruby 1.8 removed entirely from
bundle-support.tmbundle;TM_RUBYremains the override hook. Bundle-Support'splistgem submodule dropped (6243eef4); Java/Groovy/CVS bundles pinned at theirremove-legacy-rubybranches (4b609eac).
SCM
- In-process gutter diff. TextMate no longer relies on the SCM Diff Gutter bundle (or any external git invocation per gutter update). Vendored git's
xdiffand built a self-contained gutter-diff component. (d7f71a64,fd48a081,49fbfca0,7e47d36f) - Per-repository serial queue for
scm::shared_info_t, eliminating cross-repo lock contention on multi-repo workspaces. (7e5a2db1) - Half as many
gitsubprocesses per SCM update:collect_all_pathswas over-shelling and re-running probes inside untracked directories. (7d78a7ab,62f86db9) - Duplicate driver invocation removed in
SCMRepository. (ebe57b52) - Transient
.git/paths filtered from the SCM watcher so unrelated index updates don't trigger spurious status refreshes. (b1af6215) wait_for_statusrace linearized in the per-repo queue test. (e56d4f77)
Build system
- Cap'n Proto removed. Encoding classifier now uses ICU (
4e45d3b6); bundle index cache usesNSKeyedArchiver(0062e083);configure/bin/rave/CI no longer require it (9ab4f001). No Homebrew runtime dependencies remain in the shipped.app. - CxxTest emission wired up in
bin/raveso framework tests build alongside everything else. (04e6c4d8) .mmtest runners forced to--no-parallelon the main thread for fixtures that needNSThread.isMainThread. (602b3a24)- Ruby UTF-8 encoding fixed in build helpers under modern locales. (
aef4231a)
CI, signing, and release
- CI pipeline added: builds the app and runs framework test suites on every push. (#3 test infrastructure work spans
940a9157,598f1da0,0fde8c4e,e9fdde7c,fb734a9a,8966eb60,07a6d384,ef442001,d89fc688.) - Signed-and-notarized release pipeline. Tag a release by bumping
Changes.mdonmain. The workflow extracts the version, builds, signs every embedded Mach-O with Developer ID, re-signs the outer.appwith entitlements, notarizes vianotarytool, retriesstapleruntil the ticket propagates, runs Gatekeeper assessment, andgh release creates the asset. (940a9157,00c49bb6,75ca6517,b8f84419,4f01e338,20dcd938,c201fb6a) - Intel-only
CocoaDialog.appscrubbed from the embeddedbundle-supporttree (blocked notarization). (297d39de) - Release flow consolidation: tag-pushing workflow folded into
release.yml;RELEASE_PATrequirement dropped in favour of${{ github.token }}. (#2,9ab13123,1a2872a7,ba397573)
Repository
- Migrated from
dayglojesustotextmatelivesorg; bundle catalogue and submodule URLs updated; default branch is nowmain(wasmaster). (#1,d5f2ec39,e6677d1a) - README rewritten for the fork: requirements, fork-specific download/feedback, build instructions point at
textmatelives. (2f7c510d) CLAUDE.mdadded to capture fork-specific constraints for contributors. (8359a11a)
Versioning
- Version bumped to 2.1.0 so the auto-update channel sorts the fork above upstream's v2.0.23 and can't downgrade fork installs.
What's Changed
- Update fork references: textmatelives org + main branch by @dayglojesus in #1
- Consolidate auto-tag.yml + release.yml; drop PAT requirement by @dayglojesus in #2
- Catalogue resolver + first-launch bundle installer sheet by @dayglojesus in #3
- Surface CHANGELOG content in GitHub release notes by @dayglojesus in #4
- Bump CI/release runners to macos-26-arm64 by @dayglojesus in #6
- Release v2.1.0-undead by @dayglojesus in #5
- release.yml: re-seal nested bundles before signing outer .app by @dayglojesus in #7
New Contributors
- @dayglojesus made their first contribution in #1
Full Changelog: https://github.com/textmatelives/textmate/commits/v2.1.0-undead