Skip to content
Merged

Next #96

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
88 commits
Select commit Hold shift + click to select a range
ece83be
style: please clippy
stackmystack May 25, 2026
93698f9
display: move to ratatui backend
stackmystack May 21, 2026
a1ae782
disaply: plain: be far less noisy
stackmystack May 22, 2026
bad1ef5
output: color reflect the build status
stackmystack May 22, 2026
ad50235
display: better coloring for in progress and summary
stackmystack May 22, 2026
176b36d
display: introduce cache
stackmystack May 22, 2026
740266e
display: elapsed: fix width and format
stackmystack May 22, 2026
fd3320d
display: remove magic numbers
stackmystack May 22, 2026
bc95e2d
clippy: fix-now
stackmystack May 22, 2026
2150acc
clippy: fix by hand what's obvious
stackmystack May 22, 2026
6e22bb7
display: use stdout and do some fixes
stackmystack May 22, 2026
8e034bc
display: fix stale cached message cells
stackmystack May 22, 2026
4ef2934
display: get rid of truncation
stackmystack May 22, 2026
9929b1d
display: better flush the terminal with proper colors
stackmystack May 22, 2026
824145e
display: fix summary counts and cleanup
stackmystack May 22, 2026
149f433
lint: fix
stackmystack May 22, 2026
4e4dc44
news: display
stackmystack May 23, 2026
89afae8
build: implement os-level lock
stackmystack May 23, 2026
16c1e77
lock: handle sigterm
stackmystack May 23, 2026
1c51ec5
build: preserve lock+log filess on --fresh
stackmystack May 24, 2026
d9ec4e6
lock: wait on main thread for lock release
stackmystack May 24, 2026
8ad48fe
shutdown: support more signals, better
stackmystack May 24, 2026
f568292
shutdwon: use a PgId wrapper
stackmystack May 24, 2026
4e18210
lock: be more explicit on different cases
stackmystack May 24, 2026
7d822da
log: harden guards against its removal with --fresh
stackmystack May 24, 2026
5333113
display: unify item status and improve displayed info
stackmystack May 24, 2026
e268c8d
install: avoid replacing existing output files when uncertain
stackmystack May 24, 2026
2435c7e
config: show: drop git-column for a clone algo
stackmystack May 24, 2026
cc0f352
display: sort languages
stackmystack May 24, 2026
453da90
style: remove dead code and useless Parser Error
stackmystack May 24, 2026
0757c36
cache: cebtralize and give more details
stackmystack May 25, 2026
02ffd4d
args: --jobs is a NonZeroUsize
stackmystack May 25, 2026
f978579
build: manage the artifacts to improve discovery
stackmystack May 25, 2026
1a696eb
args: implement proper cli args > env vars > config > defaults
stackmystack May 25, 2026
052b55c
cargo: remove unused deps
stackmystack May 25, 2026
ba7eb97
cache: use tokio fs instead of std
stackmystack May 25, 2026
a1d7a8b
git: refactor git ref usage w/ a newtype
stackmystack May 26, 2026
075e753
cache: support moving refs
stackmystack May 27, 2026
f35cf64
ref: separate different semantics and responsibilities
stackmystack May 27, 2026
fef00e6
all: more new types especially on boundaries
stackmystack May 27, 2026
a194b57
all: prefer wualified mod name to struct prefix
stackmystack May 27, 2026
3ada114
all: refactor names
stackmystack May 27, 2026
c87c8d6
language: err when no grammars are found in a repo
stackmystack May 27, 2026
4120c64
tree-sitter-cli: verify on download
stackmystack May 27, 2026
84a11e5
config: don't crash on malformed config files
stackmystack May 28, 2026
511ca2b
db: split into store and db
stackmystack May 28, 2026
3f64c77
cache: correctly identify --target artifacts
stackmystack May 28, 2026
e5dad88
args: parse --jobs as NonZeroUsize
stackmystack May 28, 2026
23ce6bd
all: never Arc<> a PathBuf
stackmystack May 28, 2026
385ab89
all: use Path instead of PathBuf
stackmystack May 28, 2026
dd7ec92
build-sir: introduce newtype
stackmystack May 28, 2026
5eec466
cache: buffer read files when hashing
stackmystack May 28, 2026
82c8d62
config: avoid builder, again
stackmystack May 28, 2026
782d3bb
cache: moved verification from cache to pipeline
stackmystack May 28, 2026
3263826
pipeline: spawn tree-sitter cli in // to grammar discovery
stackmystack May 28, 2026
0f22df3
display: do not double render
stackmystack May 28, 2026
fe86edd
style: sh: sort
stackmystack May 29, 2026
b8bc4ee
style: cache: sort
stackmystack May 29, 2026
7b8f2e2
style: actors/display: sort
stackmystack May 29, 2026
25be483
style: actors/mod: sort
stackmystack May 29, 2026
d579abe
style: app: sort
stackmystack May 29, 2026
0624ebc
style: args: sort
stackmystack May 29, 2026
84e46e8
style: build: sort
stackmystack May 29, 2026
bb1cc6b
style: build: fuse build_dir and sort
stackmystack May 29, 2026
2fc9962
style: cache+column: sort
stackmystack May 29, 2026
70714cd
style: config+display: sort
stackmystack May 29, 2026
954e959
style: error: sort
stackmystack May 29, 2026
59c1086
style: git: sort
stackmystack May 29, 2026
bfeea5f
style: lib: sort
stackmystack May 29, 2026
d441c5b
style: lock: sort
stackmystack May 29, 2026
c8a17ac
style: logging: sort
stackmystack May 29, 2026
7a1a97f
style: parser: sort
stackmystack May 29, 2026
793f916
style: shutdown: sort
stackmystack May 29, 2026
6e8c712
style: tree_sitter: sort
stackmystack May 29, 2026
7687e98
style: tests: sort
stackmystack May 29, 2026
0bce55d
style: structs+enums: sort
stackmystack May 29, 2026
c2a19c5
style: functions: reorder
stackmystack May 29, 2026
29709d7
cache: remove BuildSpec and fix linting
stackmystack May 29, 2026
ace5070
docs: all
stackmystack May 29, 2026
fbc55b5
bump: rust: 2024
stackmystack May 29, 2026
9b4b3b2
release: get rid of git cliff
stackmystack May 29, 2026
c02ffaa
ci: upgrade actions and match tsdl artifact exactly
stackmystack May 29, 2026
f80e8b0
fmt
stackmystack May 29, 2026
85c42a6
fmd: tab width = 2
stackmystack May 29, 2026
b08ccae
fmt: match always have pipes + sort
stackmystack May 29, 2026
9f7e2d1
cargo: update
stackmystack Aug 8, 2026
a66296c
clipy: fix
stackmystack Aug 10, 2026
809dd88
github: remove dependabot; it's just noise
stackmystack Aug 10, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 0 additions & 16 deletions .github/dependabot.yml

This file was deleted.

9 changes: 3 additions & 6 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ jobs:
fetch-depth: 0

- name: Download build artifacts
uses: actions/download-artifact@v6
uses: actions/download-artifact@v5
with:
path: artifacts

Expand All @@ -33,17 +33,14 @@ jobs:
run: |
mkdir -p target
for platform in $(cd artifacts; ls | sed 's/^tsdl\.//'); do
exe=$(ls artifacts/tsdl.$platform/tsdl*)
exe="artifacts/tsdl.$platform/tsdl"
gzip --stdout --name $exe > target/tsdl-$platform.gz
done
rm -rf artifacts
ls -l target/

- name: Install git-cliff
uses: taiki-e/install-action@git-cliff

- name: Generate changelog
run: git-cliff -vv --latest --strip header --output CHANGES.md
run: scripts/changelog.sh "${GITHUB_REF_NAME#v}" > CHANGES.md

- name: Create release
uses: softprops/action-gh-release@v2
Expand Down
46 changes: 44 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,50 @@
- `tsdl selfupdate patch` / `minor` / `major` filters compatible releases.
- `tsdl selfupdate 2.5.0` installs an exact version with downgrade confirmation.

### Performance

- Artifact (wasm, dylib, so) discovery is now exact except for custom `script`
builds.

### UI/UX

The display backend moved to ratatui. The information displayed are more
informative and more coherent.

### Changed

- **cache**: Parser builds that track moving refs such as `HEAD` or branches now
notice when those refs move and rebuild the affected parsers. The parser cache
format changed for this major release and older cache files are not migrated.
- Downloaded `tree-sitter` cli are now verified upon download (no crypto).

### Bug Fixes

- **lock**: Use OS-level build locks to avoid concurrent lock acquisition races,
and replace `--unlock` with an interactive SIGTERM takeover flow controlled by
`--unlock-timeout`.
- **shutdown**: Handle `SIGTERM`/`SIGINT` gracefully by terminating running build
command process groups before releasing the build lock.
- **install**: Avoid replacing existing output files unless they are already the
same file, have identical contents, or `--force` is used; replacements are now
installed through visible temporary hardlinks.
- `--jobs` is a strictly positive number now.
- `tsdl` now fails on repos with no `grammar.js`.
- `tsdl config default` and `tsdl selfupdate` no longer :
- crash on malformed configs,
- write any logs _unless_ `--log` is explicitly set.
- Cycling through `--target` values `{all,native,wasm}` would not invalidate the
cache for artifacts built in the previous calls. This used to happen:
```sh
tsdl build --target native # cache says native
tsdl build --target wasm # cache says wasm
tsdl build --target native # cache misses
```

### Maintenance

- Bumped to rust 2024

## [2.0.0] - 2026-02-20

This is a major rewrite, moving to a single-threaded async runtime, with actors.
Expand Down Expand Up @@ -143,5 +187,3 @@ Some people call it fun, believe it or not …
### Features

- **tsdl**: Working implementation

<!-- generated by git-cliff -->
Loading
Loading