Releases: tweag/topiary
Releases · tweag/topiary
v0.7.2 - Heavenly Hemlock - 2025-11-27
Release Notes
Fixed
- #1132 Set
defaults for every relevant language property
Install topiary-cli 0.7.2
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/tweag/topiary/releases/download/v0.7.2/topiary-cli-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/tweag/topiary/releases/download/v0.7.2/topiary-cli-installer.ps1 | iex"Download topiary-cli 0.7.2
| File | Platform | Checksum |
|---|---|---|
| topiary-cli-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| topiary-cli-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| topiary-cli-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| topiary-cli-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| topiary-cli-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
v0.7.1 - Heavenly Hemlock - 2025-11-19
Release Notes
Fixed
- #1126 Set built-in language configs with a priority of "default"
Install topiary-cli 0.7.1
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/tweag/topiary/releases/download/v0.7.1/topiary-cli-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/tweag/topiary/releases/download/v0.7.1/topiary-cli-installer.ps1 | iex"Download topiary-cli 0.7.1
| File | Platform | Checksum |
|---|---|---|
| topiary-cli-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| topiary-cli-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| topiary-cli-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| topiary-cli-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| topiary-cli-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
v0.7.0 - Heavenly Hemlock - 2025-10-29
Release Notes
Added
- #921 man pages for the Topiary CLI
- #1015 Add support for include expressions to Nickel formatting
- #1049 Add support for rich grammar parsing errors using miette
- #1069 split CI nix dependent tests into separate jobs
- #1070 Implemented parallelism for query coverage
- #1072 Add source spans to query coverage results
- #1077 Add handling for
~/.configon non-linux systems - #1080 Allow formatting existing tree-sitter trees, thanks to @shadr
- #1094 Added
topiary check-grammarsubcommand - #1105 Add new
@keep_whitespacecapture for leaf node, thanks to @blindFS
Changed
- #1031 Removed the Bash rewrite rule for converting POSIX
[to Bash's[[ - #1095 Update to Rust 2024 edition
- #1111 Updated WIT grammar repository to track https://github.com/bytecodealliance/tree-sitter-wit
Fixed
- #1085 CSS formatting fixes
- #1092 Log early returns during formatting
- #1113 Update
distto 0.30 - #1117 Handle inline comments and trailing commas in WIT
Install topiary-cli 0.7.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/tweag/topiary/releases/download/v0.7.0/topiary-cli-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/tweag/topiary/releases/download/v0.7.0/topiary-cli-installer.ps1 | iex"Download topiary-cli 0.7.0
| File | Platform | Checksum |
|---|---|---|
| topiary-cli-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| topiary-cli-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| topiary-cli-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| topiary-cli-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| topiary-cli-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
v0.6.1 - Gilded Ginkgo - 2025-05-27
Release Notes
Added
- #862 Added support for the Simple Domain Modeling Language (SDML), thanks to @johnstonskj
- #884 The Topiary Book
- #918 Language prefetching utilities for Nix
- #933 Added support for WIT, thanks to @mkatychev
- #987 Support for prefetching a single language, thanks to @ErinvanderVeen
Changed
- #859 Break up integration tests per language, thanks to @mkatychev
- #871 Switch to
moldlinker for CI tests, thanks to @mkatychev - #893 Use
gixlib instead of systemgit - #896 Use official grammar repo for OpenSCAD, thanks to @mkatychev
- #933 Bump the
tree-sitterdependency to 0.25, thanks to @mkatychev
Fixed
- #867 Enable coverage check and add code samples for OpenSCAD
- #867 Fixed #969: unhandled trailing comment in multiline list for OpenSCAD, thanks to @mkatychev
- #869 Disable parallel grammar building on Windows
- #908 #907 #939 #955 #964 #967 #975 Various OCaml issues and improvements
- #953 Coverage output when there are zero queries
- #974 No longer remove trailing spaces after pretty-printing
- #992 Fixed openscad-LSP#48: unhandled newline separation for transform chains, thanks to @mkatychev
- #999 Fixed #997: erroneous spacing of block comments in OpenSCAD
Install topiary-cli 0.6.1
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/tweag/topiary/releases/download/v0.6.1/topiary-cli-installer.sh | shDownload topiary-cli 0.6.1
| File | Platform | Checksum |
|---|---|---|
| topiary-cli-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| topiary-cli-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| topiary-cli-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| topiary-cli-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| topiary-cli-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
v0.6.0 - Gilded Ginkgo - 2025-01-30
Release Notes
Added
- #747 Added support for specifying paths to prebuilt grammars in Topiary's configuration
- #785 Added the
coveragecommand, that checks how much of the query file is used by the input - #786 Re-introduce tests to check that all of the language queries are useful
- #832 Added
typos-cliconfiguration to workspaceCargo.tomlfor spellchecking, thanks to @mkatychev - #838 Added
@upper_caseand@lower_casecaptures, thanks to @ctdunc - #845 Added support for OpenSCAD, thanks to @mkatychev
- #851 Added support for following symlinks when specifying input files for formatting
Changed
- #780 Measuring scopes are now independent from captures order
- #790 No longer merge config files by default, use priority instead
- #794 Bump the
tree-sitterdependency to 0.24, thanks to @ZedThree - #801 Improved documentation of the
visualisesubcommand - #811 The
configsubcommand now outputs a Nickel file instead of some inner representation - #830 Use
tree-sitter-loaderto build grammars, rather than rolling our own
Fixed
- #779 Load relevant grammars before CLI tests
- #799 Line break after table-less pairs in TOML
- #813 In-place writing on Windows (also introduced a minimal Windows CI)
- #822 Various Bash fixes and improvements
- #826 Various Tree-sitter query fixes, thanks to @mkatychev
- #853 Small fixes to CLI logging and IO
topiary-cli 0.6.0
Install topiary-cli 0.6.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/tweag/topiary/releases/download/v0.6.0/topiary-cli-installer.sh | shDownload topiary-cli 0.6.0
| File | Platform | Checksum |
|---|---|---|
| topiary-cli-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| topiary-cli-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| topiary-cli-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| topiary-cli-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| topiary-cli-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
v0.5.1 - Fragrant Frangipani - 2024-10-22
Release Notes
Added
- #705 Added support for Nickel 1.7 extended pattern formatting
- #737 Added the
prefetchcommand, that prefetches and caches all grammars in the current configuration - #755 Introduce measuring scopes, which can be used in conjunction with regular scopes to add expressivity to the formatting queries.
- #760 Introduce optional
query_namepredicate, to help with query logging and debugging.
Fixed
- #720 #722 #723 #724 #735 #738 #739 #745 #755 #759 #764 Various OCaml improvements
- #762 Various Rust improvements
- #744 #768 Nickel: fix the formatting of annotated multiline let-bindings
- #763 Various Bash fixes and improvements
- #761 No longer use error code 1 for unspecified errors
- #770 Fallback to compile-time included query files when formatting a file
Changed
- #704 Refactors our postprocessing code to be more versatile.
- #711 Feature gate all grammars, with supported and contributed languages built by default.
- #716 Dynamicly fetch, compile, and load language grammars. Topiary now no longer ships with statically linked grammars.
- #732 Change how function application and parenthesized expressions are treated in Nickel to reduce the overall noise and indentation
- #736 Updates our Nickel grammar, and adds support for let blocks.
- #769 Move the web playground to a separate branch
- #773 Change the status of Bash from "experimental" to "supported"
topiary-cli 0.5.1
Install topiary-cli 0.5.1
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/tweag/topiary/releases/download/v0.5.1/topiary-cli-installer.sh | shDownload topiary-cli 0.5.1
| File | Platform | Checksum |
|---|---|---|
| topiary-cli-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| topiary-cli-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| topiary-cli-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| topiary-cli-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
client-app 0.5.1
Install client-app 0.5.1
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/tweag/topiary/releases/download/v0.5.1/client-app-installer.sh | shDownload client-app 0.5.1
| File | Platform | Checksum |
|---|---|---|
| client-app-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| client-app-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| client-app-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| client-app-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
v0.4.0 - Exquisite Elm - 2024-05-15
Release Notes
Added
- #589 Added syntax highlighting to the playground (excluding Nickel)
- #686 Added support for Nickel pattern formatting
- #697 Setting the log level to INFO now outputs the pattern locations in a (row, column) way.
- #699 Added support for CSS, thanks to @lavigneer
Fixed
- #626 #627 #628 #626 Various OCaml improvements
- #673 Various TOML fixes
- #678 Ensures the client example project builds, and is tested in CI
- #677 Ensures our playground builds consistently in CI
- #682 Removes prepended linebreaks from equal signs in Nickel annotations
- #692 Improves our installation instructions, thanks to @Jasha10
Changed
- #664 Ensures source positions in the logs are consistent thanks to @evertedsphere
- #668 Updates our Nickel grammar
- #672 Completely refactors our crate layout, preparing for a release on crates.io
topiary-cli 0.4.0
Install topiary-cli 0.4.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/tweag/topiary/releases/download/v0.4.0/topiary-cli-installer.sh | shDownload topiary-cli 0.4.0
| File | Platform | Checksum |
|---|---|---|
| topiary-cli-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| topiary-cli-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| topiary-cli-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| topiary-cli-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
v0.3.0 - Dreamy Dracaena - 2023-09-22
Release Notes
Added
- #538 Using
cargo-distto release Topiary binaries. - #528 #609 Created a
topiary-queriescrate that exports the builtin query files. - #526 Multi-line comments can be indented properly using the new predicate @multi_line_indent_all.
- #533 Topiary can now process multiple files with one call.
- #553 In Nickel, indent when a new infix_expr chain starts.
- #557 Topiary now falls back to the buildin queries when no other query files could be located.
- #573 Added OCamllex support (without injections).
- #576 Added append/prepend versions of scope captures.
Changed
- #535 Improved error message when idempotency fails due to invalid output in the first pass.
- #576 Allows prepending/appending
@begin_scopeand@end_scope - #583 Modernisation of the command line interface (see the CLI Migration Guide, for details)
- #535 Change the error message for an idempotency error to be more descriptive.
- #536 #537 #578 #626 #627 #628 Various OCaml improvements.
- #623 #624 #625 Various Toml improvements thanks @pjjw.
Fixed
- #533 Bump tree-sitter-ocaml version, which allowed reintroduction of some removed queries.
- #550 Fixed handling of antispace in post-processing.
- #552 Fixed Nickel tag removal.
- #554 #555 Fixed Nickel idempotency issue related to annotations.
- #565 Fixed an issue where Topiary would remove whitespace between predicate parameters in query files.
Install topiary-cli 0.3.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/tweag/topiary/releases/download/v0.3.0/topiary-cli-installer.sh | shInstall prebuilt binaries via powershell script
irm https://github.com/tweag/topiary/releases/download/v0.3.0/topiary-cli-installer.ps1 | iexDownload topiary-cli 0.3.0
| target | kind | download |
|---|---|---|
| aarch64-apple-darwin | tarball | topiary-cli-aarch64-apple-darwin.tar.xz |
| x86_64-apple-darwin | tarball | topiary-cli-x86_64-apple-darwin.tar.xz |
| x86_64-pc-windows-msvc | tarball | topiary-cli-x86_64-pc-windows-msvc.zip |
| x86_64-unknown-linux-gnu | tarball | topiary-cli-x86_64-unknown-linux-gnu.tar.xz |
v0.2.3 - Cyclic Cypress - 2023-06-20
Added
- #513 Added the
-t, --tolerate-parsing-errorsflags to Topiary,tolerate_parsing_errorsto theFormat
operation of the library, and a "Tolerate parsing errors" checkmark to the
playground. These options make Topiary ignore errors in the parsed file, and
attempt to format it. - #506 Allows the users to
configure Topiary through a user-defined configuration file. More information
can be found in theREADME.md.
Changed
- #523 Skips rebuilding the tree-
sitterQuerywhen performing the idempotence check. This improves performance
when not skipping the idempotence check by about35%for OCaml formatting.
Removed
- #508 Simplified language
detection by treatingocamlandocaml_interfaceas two distinct languages.
This ensures we only have one grammar per language. This
removed the-l ocaml_implementationflag from Topiary and the
SupportedLanguage::OcamlImplementationfrom the library.
Fixed
- #522 Reverted the bump to the
OCaml grammar and queries. This bump (for as of yet unknown reasons) had a
catastrophic impact on Topiary's performance.
v0.2.2 - Cyclic Cypress - 2023-06-12
Added
- #498 Updated the playground to include a nicer editor.
- #487 Added a flag to
formatfunction that allows skipping the idempotency check. - #486 Added the processing time to the online playground.
- #484 Enabled the playground to perform on-the-fly formatting.
- #480 Shows which languages are marked as experimental in the playground.
Changed
- #490 Bumped the Nickel grammar.
- #494 Bumped the OCaml grammar, and fixed for the renamed
infix_operatornamed node.