v2.0.0-rc1
Pre-release
Pre-release
github-actions
released this
13 May 09:49
·
413 commits
to main
since this release
We have chosen to re-write treefmt
in Go, but have tried to retain backwards compatibility as much as possible. For the most part, treefmt
2.0 should be a drop in replacement for 1.0.
Where users may find some differences in behaviour is in how treefmt
2.0 traverses the filesystem. See below for an explanation of walkers
.
If you have any problems please create an issue and we will do our best to resolve it in a timely fashion.
Features
- migrated cache storage from Toml to boltdb
- introduced the concept of
walkers
to make traversal of the filesystem extensible. Currently supportsauto
,git
andfilesystem
. You no longer have to exclude the.git
directory, andtreefmt
will traverse files based on the git index if a.git
directory is detected. - introduced the concept of pipelines to allow grouping of related formatters into a deterministic sequence
- improved performance by up to 8x when cached based on a nixpkgs benchmark
- migrated docs from mkdocs to vitepress
- docs are now hosted under a custom domain, treefmt.com
Changelog
- 4f004de: Merge branch 'main' into dependabot/github_actions/actions/setup-go-5 (@mergify[bot])
- 87e844a: Merge branch 'main' into dependabot/github_actions/goreleaser/goreleaser-action-5 (@mergify[bot])
- 9328b46: Merge pull request #1 from numtide/feat/improve-stdin-and-path-processing (@brianmcgee)
- 3d165d7: Merge pull request #10 from numtide/fix/race-condition (@brianmcgee)
- 243d1be: Merge pull request #2 from numtide/feat/cpu-profiling (@brianmcgee)
- 3ed9fc9: Merge pull request #287 from numtide/dependabot/pip/test/examples/python/flask-2.2.5 (@brianmcgee)
- 3e73f5d: Merge pull request #288 from numtide/dependabot/github_actions/goreleaser/goreleaser-action-5 (@mergify[bot])
- 010a6cf: Merge pull request #289 from numtide/dependabot/github_actions/actions/setup-go-5 (@mergify[bot])
- b7458e6: Merge pull request #3 from numtide/fix/ci-deploy-pages-on-main (@brianmcgee)
- 306fe0f: Merge pull request #4 from numtide/dependabot/github_actions/cachix/install-nix-action-26 (@brianmcgee)
- 7aa2ad6: Merge pull request #5 from numtide/feat/nix-ci (@brianmcgee)
- fe1fad5: Merge pull request #6 from numtide/feat/release-workflow (@brianmcgee)
- 0dd4344: Merge pull request #7 from numtide/feat/improve-docs (@brianmcgee)
- 2188358: Merge pull request #8 from numtide/chore/set-package-version (@brianmcgee)
- 39b73b8: Merge pull request #9 from numtide/fix/install-docs-dependencies (@brianmcgee)
- 9de4fd4: Merge pull request 'Feature parity with treefmt.rs' (#22) from feat/explicit-paths-and-stdin into main ( <>)
- 8333c99: Merge pull request 'Implement Init and fix setting build variables' (#26) from feat/init into main ( <>)
- 964330f: Merge pull request 'Port README' (#35) from feat/port-readme into main ( <>)
- 618f6f7: Merge pull request 'Stats output similar to treefmt.rs' (#33) from feat/stats into main ( <>)
- d3cdb69: Merge pull request 'feat/configure-treefmt-pipeline' (#32) from feat/configure-treefmt-pipeline into main ( <>)
- 5d341f9: Merge pull request 'feat: introduce concept of pipelines for better concurrency' (#30) from feat/concurrency-refactor into main ( <>)
- 404b0a9: Merge pull request 'improve caching and tracking' (#34) from feat/improve-caching into main ( <>)
- 2ad2cef: Merge pull request 'port docs' (#31) from feat/docs into main ( <>)
- 187375c: README: update link to the Rust v1 (@zimbatm)
- 400d0c7: Revert "chore: temporarily remove settings.yml workflow" (@brianmcgee)
- 8de5446: Revert "ci: add go workflow" (@brianmcgee)
- 8df73f7: chore(deps): bump actions/setup-go from 4 to 5 (@dependabot[bot])
- 4b47097: chore(deps): bump cachix/install-nix-action from 25 to 26 (@dependabot[bot])
- 039888b: chore(deps): bump flask from 0.12.1 to 2.2.5 in /test/examples/python (@dependabot[bot])
- feaf2b7: chore(deps): bump goreleaser/goreleaser-action from 4 to 5 (@dependabot[bot])
- 978eb48: ci: add go workflow (@brianmcgee)
- e5a6cc6: ci: handle releases with goreleaser (@zimbatm)
- 73a224a: ci: only deploy github pages on main (@brianmcgee)
- 183fbf7: ci: remove henri (@brianmcgee)
- e232ffe: ci: testing alternative gh pages upload action (@brianmcgee)
- 9cc0ab7: ci: testing alternative gh pages workflow (@brianmcgee)
- e6fe431: ci: tweak repo settings (@brianmcgee)
- ead81a6: ci: update gh pages action in github workflow (@brianmcgee)
- aa07c0a: doc: add favicon (@brianmcgee)
- fc8d8f3: doc: add footer (@brianmcgee)
- b01ea77: doc: add init gif (@brianmcgee)
- 95c6cdb: doc: add some devshell helpers (@brianmcgee)
- c68ef40: doc: adjust formatting in README (@brianmcgee)
- 926c1b2: doc: change project url to github.com/numtide/treefmt.go (@brianmcgee)
- b86d0f8: doc: configure hero and logo (@brianmcgee)
- e7f6bfa: doc: explain re-write in Go (@brianmcgee)
- e252f6b: doc: fix bad formatter spec link (@brianmcgee)
- b11474c: doc: fix copyright notice (@brianmcgee)
- 311e46a: doc: fix docs package build (@brianmcgee)
- 54d3cd0: doc: fix license link in footer (@brianmcgee)
- aa2b9e8: doc: fix social links (@brianmcgee)
- 17f354b: doc: improve hero gif (@brianmcgee)
- ea6fe2d: doc: improve treefmt.gif (@brianmcgee)
- f5c81e6: doc: initial port of README (@brianmcgee)
- 361c5a9: doc: minor tweak to README (@brianmcgee)
- 894f90f: doc: move assets into public folder (@brianmcgee)
- 7372273: doc: port existing content (@brianmcgee)
- 0a2a823: doc: reduce use of anchors for Rust and Go in README (@brianmcgee)
- 4d60509: doc: refine contributing (@brianmcgee)
- e5da10e: doc: refine docs and usage (@brianmcgee)
- 6070b6f: doc: refine faq (@brianmcgee)
- d9ee97a: doc: refine formatter spec (@brianmcgee)
- 8e840a9: doc: refine installation (@brianmcgee)
- 2f557e3: doc: refine overview (@brianmcgee)
- 577c608: doc: refine quick start content (@brianmcgee)
- f1c80ed: doc: refine usage (@brianmcgee)
- 097b701: doc: remove features on home page (@brianmcgee)
- 7806581: doc: set base url to work in github pages (@brianmcgee)
- 07989c7: doc: some initial experiments with colors (@brianmcgee)
- c815a21: doc: switch to treefmt.com domain (@brianmcgee)
- 92f8d58: doc: update fmt.gif (@brianmcgee)
- 482e497: doc: update github link (@brianmcgee)
- f4700c4: doc: update licence copyright year (@brianmcgee)
- 8323ca3: doc: update rust version link in readme (@brianmcgee)
- 352dfff: doc: update stats in overview (@brianmcgee)
- e3fabb1: doc: update usage with info about walkers. (@brianmcgee)
- 811f883: feat/bust-cache-validators-change (#14) (@brianmcgee)
- cb9564c: feat: add -s -w build flags to reduce binary size (@brianmcgee)
- 4ffe2ca: feat: add CGO dependencies to devshell (@brianmcgee)
- 2b49923: feat: add an example of 'before' (@brianmcgee)
- a79ae95: feat: add cpu profile flag (@brianmcgee)
- ad3e661: feat: add flake compat (@brianmcgee)
- aa75d3d: feat: add initial github workflow (@brianmcgee)
- 4dd4c55: feat: add nix direnv source to .envrc (@brianmcgee)
- ebfd17b: feat: add nix github workflow (@brianmcgee)
- 6ae0e4f: feat: add pipeline priority field (@brianmcgee)
- 0c5c34d: feat: add release workflow (@brianmcgee)
- 04330a3: feat: add stats output similar to treefmt.rs (@brianmcgee)
- 12452b0: feat: align example treefmt config with flake treefmt config (@brianmcgee)
- 4c45d2a: feat: allow missing formatters (#6) (@brianmcgee)
- 9b84155: feat: allow specifying formatters in cli (@brianmcgee)
- 298e5ac: feat: change module root to git.numtide.com (@brianmcgee)
- b6405d0: feat: clean up and documentation (@brianmcgee)
- 18bdb72: feat: compare with cache before reporting a file as changed (@brianmcgee)
- 757d5e7: feat: configure a pipeline for formatting nix code (@brianmcgee)
- b8d9e2a: feat: configure numtide binary cache (@brianmcgee)
- b109358: feat: create config package (#25) (@brianmcgee)
- 40b76b7: feat: ensure deterministic application of formatters (@brianmcgee)
- c71d690: feat: have each formatter filter paths again if part of a pipeline (@brianmcgee)
- 26c2ae1: feat: hex encode db name (@brianmcgee)
- 2ad87c2: feat: implement init (@brianmcgee)
- 92321c8: feat: improve specifying formatters test (@brianmcgee)
- 53ea16a: feat: improve stats assertion feedback (@brianmcgee)
- 8af5b3c: feat: introduce concept of pipelines for better concurrency (@brianmcgee)
- 7c137bf: feat: listen for shutdown correctly (@brianmcgee)
- 2e77e12: feat: optimize git walker (@brianmcgee)
- 2eaf999: feat: refactor some config init logic into config package (@brianmcgee)
- 9b00e00: feat: set nix package version to shortRev (@brianmcgee)
- ada9a72: feat: simplify some test code (@brianmcgee)
- 8b92dca: feat: streaming processing of paths from stdin and paths argument (@brianmcgee)
- da82b80: feat: support --no-cache (@brianmcgee)
- d53f98e: feat: support --version (@brianmcgee)
- 5711cae: feat: support .gitignore files (#19) (@brianmcgee)
- a3ca782: feat: support changing work directory (#15) (@brianmcgee)
- 84629f7: feat: support fail on change (#16) (@brianmcgee)
- 96b1560: feat: support global excludes (#13) (@zimbatm)
- 0fbae06: feat: support reading paths from stdin (@brianmcgee)
- 8e23c86: feat: update flake inputs (@brianmcgee)
- 1002f05: feat: update module go version to 1.22 (@brianmcgee)
- 28ec6f8: feat: upgrade modules (@brianmcgee)
- 0c93d98: feat: use a named type for Cli options (@brianmcgee)
- d8d666a: feat: use exec.LookPath to find formatter executable (@brianmcgee)
- 80e99b6: feat: use go-git index instead of
git ls-files
(#23) (@brianmcgee) - fcce518: feat: various perf improvements (@brianmcgee)
- 6c66daf: fix: devshell commands for docs (@brianmcgee)
- 15db7f4: fix: duplicate processing in ordered formatters (#24) (@brianmcgee)
- ed10f97: fix: fmt.Errorf formats (@brianmcgee)
- 12aa9a7: fix: glob patterns for includes and excludes (@brianmcgee)
- f322e1f: fix: include correct gotools package (@brianmcgee)
- 249f807: fix: install node dependencies in devshell commands (@brianmcgee)
- 25230e2: fix: license contributors (@brianmcgee)
- 4a78a1e: fix: nix build (@brianmcgee)
- 397d051: fix: nix filter for package (@brianmcgee)
- 3000c65: fix: nix-filter config for package (@brianmcgee)
- 5a5c1ea: fix: record cache entries for files that don't match formatters (@brianmcgee)
- cb8565d: fix: reduce log verbosity (@brianmcgee)
- 710efbd: fix: remember timestamps from logging (@brianmcgee)
- 97e94ba: fix: remove -dirty suffix from revision (@brianmcgee)
- 6ec924c: fix: remove goreleaser from running on pull requests (@brianmcgee)
- 87a0be9: fix: remove md extension from LICENSE file (@brianmcgee)
- f1f56d1: fix: remove setting of cpu profile rate (@brianmcgee)
- 602751a: fix: rename treefmt.go to treefmt-go (@brianmcgee)
- 49596b8: fix: setting build Name and Version (@brianmcgee)
- ab7bf54: fix: source filter in package build (@brianmcgee)
- 55ca446: fix: stalling on large file sets (#18) (@brianmcgee)
- 0ec0c3d: fix: update filter to prevent rebuilds (@brianmcgee)
- 95bc3e8: fix: update settings.yml to point to treefmt instead of treefmt-go (@brianmcgee)
- 4a6fbf9: fix: vhs command wrapper (@brianmcgee)
- 5be37ca: fixup! feat: add release workflow (@brianmcgee)
- 60a1d78: fixup! feat: clean up and documentation (@brianmcgee)
- 912dcaa: fixup! fix: remove md extension from LICENSE file (@brianmcgee)
- aebbcfd: nit: clean batch capacity (#17) (@zimbatm)
- c7d0138: support formatter ordering (#20) (@brianmcgee)
- 7cc49e2: wip: add focs package (@brianmcgee)