<?xml version='1.0' encoding='UTF-8'?>
<rss version='2.0' xmlns:sparkle='http://www.andymatuschak.org/xml-namespaces/sparkle'>
	<channel>
		<title>TextMate 3</title>
		<link>https://api.textmate3.com/appcast.xml</link>
		<description>
				Application updates for TextMate 3. Empty until the first release ships.
			Items are added by the release pipeline and signed with the production EdDSA
			key. 
		</description>
		<language>en</language>
		<item>
			<title>TextMate 2.1.0-alpha.12</title>
			<sparkle:version>15886</sparkle:version>
			<sparkle:shortVersionString>2.1.0-alpha.12</sparkle:shortVersionString>
			<sparkle:channel>alpha</sparkle:channel>
			<sparkle:minimumSystemVersion>27.0</sparkle:minimumSystemVersion>
			<pubDate>Tue, 27 Oct 2026 03:33:18 -0000</pubDate>
			<link>https://github.com/textmate3/textmate/releases/tag/v2.1.0-alpha.12</link>
			<description>
				<![CDATA[<ul>
<li>Refresh the contributions data for 2.1.0-alpha.12</li>
<li>Stop the signing steps and one file browser object rerunning on every build (#87)</li>
<li>Show a notice when a .tm_properties section header cannot be read (#86)</li>
<li>Wrap the key equivalents in the release notes in backticks (#84)</li>
<li>Accept a comma between the names of a .tm_properties section header (#83)</li>
<li>Name the test a C++ test binary crashes in (#82)</li>
<li>A Runtimes pane in Preferences (#81)</li>
<li>Give every Swift compile its own depfile and restat its outputs (#85)</li>
<li>A notice strip above the text for what the launch did about the runtimes (#80)</li>
<li>Move Python to 3.14.9 (#79)</li>
<li>Read the runtime pins from .ruby-version and .python-version, and move Ruby to 4.0.9 (#78)</li>
<li>Check the Ruby on the PATH against .ruby-version in configure (#76)</li>
<li>Delete the Title lines from the About pages and the code that skipped them (#77)</li>
<li>Name the Swift module in ninja's progress line (#75)</li>
<li>Refresh the contributions data from the release scripts (#74)</li>
<li>Say what multimarkdown is for now that the release notes are native: the Help pages</li>
<li>Refresh the contributions data after #72 (#73)</li>
<li>Show Contributions natively, with the data behind it as one JSON file per year (#72)</li>
<li>Show the About window's Changes, Legal and Bundles pages natively (#71)</li>
<li>Add a native Markdown renderer to OakAppKit (#70)</li>
<li>Refresh the seed bundles with unescaped Changes.json (#69)</li>
<li>Insert commit summaries and bodies into the Bundles page as text (#68)</li>
<li>Raise the minimum macOS to 27 (and Swift to 6.4) (#67)</li>
</ul>]]>
			</description>
			<enclosure url='https://github.com/textmate3/textmate/releases/download/v2.1.0-alpha.12/TextMate-2.1.0-alpha.12.zip' length='23067226' type='application/octet-stream' sparkle:edSignature='Y2kWxwVCXBiL8tM65Q28IRQr5yi2pvQ5fqadQbihXdISA6y4Q2h1sL1Tx57cQZ7wz3Uswp3MuhQK4FzHsK+KCA=='/>
		</item>
		<item>
			<title>TextMate 2.1.0-alpha.11</title>
			<sparkle:version>15863</sparkle:version>
			<sparkle:shortVersionString>2.1.0-alpha.11</sparkle:shortVersionString>
			<sparkle:channel>alpha</sparkle:channel>
			<sparkle:minimumSystemVersion>26.0</sparkle:minimumSystemVersion>
			<pubDate>Sat, 24 Oct 2026 02:09:43 -0000</pubDate>
			<link>https://github.com/textmate3/textmate/releases/tag/v2.1.0-alpha.11</link>
			<description>
				<![CDATA[<ul>
<li>Mark CommitMessageDocument @MainActor (#66)</li>
<li>Move the chooser abbreviation memory to Swift (#65)</li>
<li>Move the commit window to Swift and SwiftUI (#63)</li>
<li>Move the HTML output status strip to SwiftUI (#64)</li>
<li>Refresh the seed bundles after the Python work landed (#62)</li>
<li>A runtime bundle per language, and a Python for bundle commands (#58)</li>
</ul>]]>
			</description>
			<enclosure url='https://github.com/textmate3/textmate/releases/download/v2.1.0-alpha.11/TextMate-2.1.0-alpha.11.zip' length='23032206' type='application/octet-stream' sparkle:edSignature='G+cpOWOOStijlWXxnh40LlX6Ik7I6yS38bAvGLMsa428IVwx6yVVO2CIInfNOOhVwRv2c375F5gIKU4/zWUiCA=='/>
		</item>
		<item>
			<title>TextMate 2.1.0-alpha.10</title>
			<sparkle:version>15857</sparkle:version>
			<sparkle:shortVersionString>2.1.0-alpha.10</sparkle:shortVersionString>
			<sparkle:channel>alpha</sparkle:channel>
			<sparkle:minimumSystemVersion>26.0</sparkle:minimumSystemVersion>
			<pubDate>Fri, 11 Sep 2026 03:34:48 -0000</pubDate>
			<link>https://github.com/textmate3/textmate/releases/tag/v2.1.0-alpha.10</link>
			<description>
				<![CDATA[<ul>
<li>Refuse a TM_RUBY that is not an executable file and say why (#57)</li>
</ul>]]>
			</description>
			<enclosure url='https://github.com/textmate3/textmate/releases/download/v2.1.0-alpha.10/TextMate-2.1.0-alpha.10.zip' length='22881331' type='application/octet-stream' sparkle:edSignature='XAEey7LCOkICC+1rJ3fQ5ZG+bmz9lE5SXBjQiVmCr+VxkhNmjwbp6XBHQ7HkcktFPHdx510gROrmzPoQXD62Dg=='/>
		</item>
		<item>
			<title>TextMate 2.1.0-alpha.9</title>
			<sparkle:version>15856</sparkle:version>
			<sparkle:shortVersionString>2.1.0-alpha.9</sparkle:shortVersionString>
			<sparkle:channel>alpha</sparkle:channel>
			<sparkle:minimumSystemVersion>26.0</sparkle:minimumSystemVersion>
			<pubDate>Fri, 11 Sep 2026 02:49:10 -0000</pubDate>
			<link>https://github.com/textmate3/textmate/releases/tag/v2.1.0-alpha.9</link>
			<description>
				<![CDATA[<ul>
<li>Refresh the seed bundles from the current catalog archives</li>
<li>Write out the grapheme loops that used the citerate macro (#56)</li>
<li>Write out the loops that used the foreach macro over an iterator pair (#55)</li>
<li>Write out the loops that used the iterate macro and delete it (#54)</li>
<li>Walk containers backwards with std::views::reverse in place of the riterate macro (#53)</li>
<li>Say once when TM_RUBY is below the 4.0 minimum (#52)</li>
<li>Test end to end that a Ruby command runs on the Ruby its shebang names (#51)</li>
<li>Order version strings with a Swift Version (#50)</li>
<li>Rewrite shebangs that spell out the system framework Ruby (#49)</li>
<li>Drop the CFPlugInCOM import the QuickLook generator needed (#47)</li>
<li>Silence the frozen string warning in gen_test (#48)</li>
<li>Tell GitHub the headers are Objective-C++, not C (#46)</li>
<li>Fold environment maps with insert at each site and drop oak/algorithm.h (#45)</li>
<li>Write the family removal of marks out at its two callers (#44)</li>
<li>Replace oak::replace_copy with text::replace_all (#43)</li>
<li>Move the test shuffle helper into a test-only header (#42)</li>
<li>Replace oak::contains and oak::has_prefix with the standard library (#41)</li>
<li>Drop the unused slow_in_out easing curve (#40)</li>
<li>Drop the DB_VAR macro and the header that existed for it (#39)</li>
<li>The oak grab bag header is a print_system_error header (#38)</li>
<li>Drop the file browser's duplicate status header (#37)</li>
<li>Drop the network framework's umbrella header (#36)</li>
<li>The C and Mac preludes say include rather than import (#35)</li>
<li>The yellow flash in Swift (#34)</li>
<li>The folder that stands for a selection, in Swift (#33)</li>
<li>Find in Project on a folder and something inside it searches the folder, not its parent (#32)</li>
<li>The interface sounds in Swift (#31)</li>
<li>Drop the interface sound nothing ever played (#30)</li>
</ul>]]>
			</description>
			<enclosure url='https://github.com/textmate3/textmate/releases/download/v2.1.0-alpha.9/TextMate-2.1.0-alpha.9.zip' length='22880543' type='application/octet-stream' sparkle:edSignature='Z0V3qSZbzNzoLOWoWkC0cbmhfiDPE5nfH1m3ohkIBOm285Uf1sygvTSBwltJAmZvIRvgwDAuSh4aGAvYmryQCQ=='/>
		</item>
		<item>
			<title>TextMate 2.1.0-alpha.8</title>
			<sparkle:version>15828</sparkle:version>
			<sparkle:shortVersionString>2.1.0-alpha.8</sparkle:shortVersionString>
			<sparkle:channel>alpha</sparkle:channel>
			<sparkle:minimumSystemVersion>26.0</sparkle:minimumSystemVersion>
			<pubDate>Mon, 07 Sep 2026 03:01:00 -0000</pubDate>
			<link>https://github.com/textmate3/textmate/releases/tag/v2.1.0-alpha.8</link>
			<description>
				<![CDATA[<ul>
<li>Bundle commands run on a pinned Ruby through rv and the Runtimes bundle, never the system Ruby (#29)</li>
<li>A standalone helper beside the application's executable is signed as itself (#28)</li>
</ul>]]>
			</description>
			<enclosure url='https://github.com/textmate3/textmate/releases/download/v2.1.0-alpha.8/TextMate-2.1.0-alpha.8.zip' length='22900797' type='application/octet-stream' sparkle:edSignature='69byMt72sbiOyLG1v8AHXOOZudFjDvgOBUDXB5qrFeew77byMA1b9ppg0XEd0STadOzWQfY+ZRfvBPCmIvO6Bg=='/>
		</item>
		<item>
			<title>TextMate 2.1.0-alpha.7</title>
			<sparkle:version>15826</sparkle:version>
			<sparkle:shortVersionString>2.1.0-alpha.7</sparkle:shortVersionString>
			<sparkle:channel>alpha</sparkle:channel>
			<sparkle:minimumSystemVersion>26.0</sparkle:minimumSystemVersion>
			<pubDate>Sun, 06 Sep 2026 11:30:26 -0000</pubDate>
			<link>https://github.com/textmate3/textmate/releases/tag/v2.1.0-alpha.7</link>
			<description>
				<![CDATA[<ul>
<li>The Terminal preferences pane in SwiftUI, the last of the six (#27)</li>
<li>The Bundles preferences pane in SwiftUI (#26)</li>
<li>The Variables preferences pane in SwiftUI (#25)</li>
<li>The Projects preferences pane in SwiftUI (#24)</li>
<li>The Files preferences pane in SwiftUI (#23)</li>
<li>The Updates preferences pane in SwiftUI, with the update channel (#22)</li>
</ul>]]>
			</description>
			<enclosure url='https://github.com/textmate3/textmate/releases/download/v2.1.0-alpha.7/TextMate-2.1.0-alpha.7.zip' length='17227548' type='application/octet-stream' sparkle:edSignature='Q39Ie2Kc4Ec6ODHIpwSCaTBeBSB65R7BQsQlPjDSXIs1AeG/DhuaXFhQt4up/ZoqXrbd2uDyB8ckwjvgo8OFAw=='/>
		</item>
		<item>
			<title>TextMate 2.1.0-alpha.6</title>
			<sparkle:version>15820</sparkle:version>
			<sparkle:shortVersionString>2.1.0-alpha.6</sparkle:shortVersionString>
			<sparkle:channel>alpha</sparkle:channel>
			<sparkle:minimumSystemVersion>26.0</sparkle:minimumSystemVersion>
			<pubDate>Sun, 06 Sep 2026 05:00:56 -0000</pubDate>
			<link>https://github.com/textmate3/textmate/releases/tag/v2.1.0-alpha.6</link>
			<description><![CDATA[<ul>
<li>The first alpha of 2.1.0.</li>
</ul>]]></description>
			<enclosure url='https://github.com/textmate3/textmate/releases/download/v2.1.0-alpha.6/TextMate-2.1.0-alpha.6.zip' length='17153890' type='application/octet-stream' sparkle:edSignature='I4DjhY0hQxJJbfbmk1CnqaVZeQjAT55css4HWKS0POJoBUFfm2/G8XA9EjY3ZbrOV7NuwRNiyYT2lKY0FT6cBQ=='/>
		</item>
		<item>
			<title>TextMate 2.1.0-alpha.5</title>
			<sparkle:version>15820</sparkle:version>
			<sparkle:shortVersionString>2.1.0-alpha.5</sparkle:shortVersionString>
			<sparkle:channel>alpha</sparkle:channel>
			<sparkle:minimumSystemVersion>26.0</sparkle:minimumSystemVersion>
			<pubDate>Sun, 06 Sep 2026 04:58:22 -0000</pubDate>
			<link>https://github.com/textmate3/textmate/releases/tag/v2.1.0-alpha.5</link>
			<description>
				<![CDATA[<ul>
<li>Re-order README</li>
<li>Update screenshots in README</li>
</ul>]]>
			</description>
			<enclosure url='https://github.com/textmate3/textmate/releases/download/v2.1.0-alpha.5/TextMate-2.1.0-alpha.5.zip' length='17153907' type='application/octet-stream' sparkle:edSignature='1xfyhPa+HAfHUb8t9hdtnQaCbnXn9KGYWIhlyNik9O8rXEljKMBfA4Oavu1XfXkSkmXhqcikyeRp9QNtYKqVBA=='/>
		</item>
		<item>
			<title>TextMate 2.1.0-alpha.4</title>
			<sparkle:version>15818</sparkle:version>
			<sparkle:shortVersionString>2.1.0-alpha.4</sparkle:shortVersionString>
			<sparkle:channel>alpha</sparkle:channel>
			<sparkle:minimumSystemVersion>26.0</sparkle:minimumSystemVersion>
			<pubDate>Sun, 06 Sep 2026 04:07:15 -0000</pubDate>
			<link>https://github.com/textmate3/textmate/releases/tag/v2.1.0-alpha.4</link>
			<description>
				<![CDATA[<ul>
<li>Release builds talk to production regardless of local.rave (#21)</li>
</ul>]]>
			</description>
			<enclosure url='https://github.com/textmate3/textmate/releases/download/v2.1.0-alpha.4/TextMate-2.1.0-alpha.4.zip' length='17153894' type='application/octet-stream' sparkle:edSignature='9rztGSX/aJeKHIpdbCOQ+tf/uBEtxKpFwu39eCU4jkasa2pMu1zj1ZaEShORJvduue3Ws+ziYdwiFXct/zotDw=='/>
		</item>
		<item>
			<title>TextMate 2.1.0-alpha.3</title>
			<sparkle:version>15817</sparkle:version>
			<sparkle:shortVersionString>2.1.0-alpha.3</sparkle:shortVersionString>
			<sparkle:channel>alpha</sparkle:channel>
			<sparkle:minimumSystemVersion>26.0</sparkle:minimumSystemVersion>
			<pubDate>Sun, 06 Sep 2026 03:33:23 -0000</pubDate>
			<link>https://github.com/textmate3/textmate/releases/tag/v2.1.0-alpha.3</link>
			<description><![CDATA[<ul>
<li>WIP: Update README toward 2.1 ... 3.0</li>
</ul>]]></description>
			<enclosure url='https://github.com/textmate3/textmate/releases/download/v2.1.0-alpha.3/TextMate-2.1.0-alpha.3.zip' length='17153942' type='application/octet-stream' sparkle:edSignature='NSosywsHz7nhO4Kq3nxvt/FkHbgENZvws0a0N6761EyAvP/6UcAyUwseq50Eq5eS2u9z8yAT3QKjlHD5znYSBQ=='/>
		</item>
		<item>
			<title>TextMate 2.1.0-alpha.2</title>
			<sparkle:version>15816</sparkle:version>
			<sparkle:shortVersionString>2.1.0-alpha.2</sparkle:shortVersionString>
			<sparkle:channel>alpha</sparkle:channel>
			<sparkle:minimumSystemVersion>26.0</sparkle:minimumSystemVersion>
			<pubDate>Sun, 06 Sep 2026 01:55:42 -0000</pubDate>
			<link>https://github.com/textmate3/textmate/releases/tag/v2.1.0-alpha.2</link>
			<description>
				<![CDATA[<ul>
<li>Two fixes from the first alpha: fetch tags with force, and zip without extended attributes (#20)</li>
</ul>]]>
			</description>
			<enclosure url='https://github.com/textmate3/textmate/releases/download/v2.1.0-alpha.2/TextMate-2.1.0-alpha.2.zip' length='17153914' type='application/octet-stream' sparkle:edSignature='T2ui6AzgrZMn223e2/Z6+GApOYi80VOoMa1wqhZlSyR/3ks/LcSl8xEHYbWOmWBKKNsheYC2gAKJpmxAByCXAA=='/>
		</item>
		<item>
			<title>TextMate 2.1.0-alpha.1</title>
			<sparkle:version>15815</sparkle:version>
			<sparkle:shortVersionString>2.1.0-alpha.1</sparkle:shortVersionString>
			<sparkle:channel>alpha</sparkle:channel>
			<sparkle:minimumSystemVersion>26.0</sparkle:minimumSystemVersion>
			<pubDate>Sun, 06 Sep 2026 00:54:40 -0000</pubDate>
			<link>https://github.com/textmate3/textmate/releases/tag/v2.1.0-alpha.1</link>
			<description>
				<![CDATA[<ul>
<li>The Legal page names what the application is made of (#19)</li>
<li>Markdown lint</li>
<li>A release pipeline with alpha, beta and release channels (#18)</li>
<li>Notarize on request, and sign Sparkle's Autoupdate helper as itself (#17)</li>
<li>Run the workflow once per push (#16)</li>
<li>The privileged helper as an SMAppService daemon, retiring the last deprecated call (#15)</li>
<li>Sign with a Developer ID, and re-sign the vendored Sparkle pieces with the same identity (#14)</li>
<li>Give the application its own identity, with a first launch import from TextMate 2 (#13)</li>
<li>Record the bundle editor forms and the parser deletion in the changelog (#12)</li>
<li>Delete the OpenStep ASCII property list parser and Ragel (#11)</li>
<li>Edit preferences and macros as forms in the bundle editor (#10)</li>
<li>Edit themes as a form with a live preview in the bundle editor (#9)</li>
<li>Grammar editor: panel edits reach the preview, rule shapes change, capture patterns in the outline (#8)</li>
<li>Grammar editor: live preview of sample text parsed with the grammar being edited (#7)</li>
<li>Grammar editor: add, remove and move rules, captures and repository names (#5)</li>
<li>Grammar editor: rules as an outline and a form, in place of the text pane (#4)</li>
<li>GrammarSchema: the grammar format as data, with a validator (#3)</li>
<li>Swift Testing under script/test (#2)</li>
<li>swift format's default two space indentation for the Swift sources</li>
<li>Swift and SwiftUI spike: ApplicationInfo, the About page, and the encoding chooser sheet (#1)</li>
<li>Rename LICENSE to LICENSE.md</li>
<li>Reformat LICENSE as Markdown</li>
<li>Record the removed gtm options in the changelog</li>
<li>Drop gtm's --trim and --delimiters options, which were parsed and never implemented</li>
<li>Pass .tbd library paths through in the test link too, which still prefixed them with -l</li>
<li>Record the property list caches and the end of the Homebrew run time dependency in the changelog</li>
<li>Remove Cap'n Proto: the schemas, the compiler step in bin/rave, the configure checks, the Brewfile line, and Homebrew's library directory from the linker search path</li>
<li>Link the SDK's sqlite by path in DocumentWindow and OakAppKit, so a Homebrew sqlite on the search path is never picked up</li>
<li>Drop the library validation entitlement from the command line tools, which load nothing foreign now, and say why the application still needs it for an ad hoc build</li>
<li>Store the encoding classifier's frequency tables as a binary property list, EncodingFrequencies.plist</li>
<li>Store the bundle index cache as a binary property list, BundlesIndex.plist, and read it back the same way in the application and gtm</li>
<li>Remove the cache format benchmark tool now that the format is chosen, keeping the launch measurement in script/benchmark_bundle_index</li>
<li>Left align the text columns of the benchmark report tables</li>
<li>Record the bundle index benchmark in the changelog</li>
<li>Report the first index build apart from the later ones, since it pays the process warmup a launch pays elsewhere</li>
<li>Add script/benchmark_bundle_index, which builds and runs the cache format and launch measurements and prints the report</li>
<li>Report bundle index cache load, index build and whole launch timings on stderr when TEXTMATE_BUNDLES_INDEX_TIMING is set, with TEXTMATE_BUNDLES_INDEX_PATH pointing the cache elsewhere</li>
<li>Add bundle_index_benchmark, a tool that times the bundle index cache in Cap'n Proto, property list, JSON, JSON Lines, CSV and YAML forms</li>
<li>Move the bundle index content filter from BundlesManager into the bundles framework as prune_bundle_item_plist</li>
<li>Split the bundle index cache's property list form out of load and save as to_plist and from_plist</li>
<li>Move the gtm tag to the commit each upload was built from</li>
<li>Ship gtm inside the application and publish it from continuous integration as the gtm prerelease</li>
<li>Sign gtm with the helper entitlements, so the hardened runtime lets it load the Homebrew libraries and it starts</li>
</ul>]]>
			</description>
			<enclosure url='https://github.com/textmate3/textmate/releases/download/v2.1.0-alpha.1/TextMate-2.1.0-alpha.1.zip' length='17296396' type='application/octet-stream' sparkle:edSignature='xT6VmxU4AoDeeCfz5gA+jB0KAf6jqyx1YRXlNw1khJwjbOnk1aynSNXPTt4rBgo2uYSqWcV19N+qkAK1L169DA=='/>
		</item>
	</channel>
</rss>
