Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
4e40aa7
Require Rust 1.95
sidkmenon Oct 3, 2026
a45efe6
Read Git through gix instead of libgit2
sidkmenon Oct 3, 2026
2caf429
Rework the plugin system around WebAssembly components and a host-own…
sidkmenon Oct 3, 2026
5930bfd
diffr-ts: drop the annotations record and the version 4 stream
sidkmenon Oct 3, 2026
8724150
Remove --order
sidkmenon Oct 3, 2026
38bc246
Collapse the CLI and stream layering into one run module
sidkmenon Oct 3, 2026
a06baf8
Delete the loader --no-index no longer uses
sidkmenon Oct 3, 2026
45ab669
Remove the file node from the cursor contract
sidkmenon Oct 3, 2026
4949b37
Run the classifier in its own Store before the shape pipeline starts
sidkmenon Oct 3, 2026
1026d83
Keep the cursor on a region
sidkmenon Oct 3, 2026
310feb5
Hand each file to the least-loaded worker and run it as a Store task
sidkmenon Oct 3, 2026
57ac671
Drop reqwest: the host makes no HTTP requests
sidkmenon Oct 3, 2026
31e0519
Require Rust 1.99
sidkmenon Oct 3, 2026
c506416
Move to Wasmtime 49.0.2
sidkmenon Oct 3, 2026
04e5435
Rename the package diffr-cli to diffr
sidkmenon Oct 3, 2026
3e8d9d7
Move the engine into crates/diffr-core
sidkmenon Oct 3, 2026
d89c0c3
Move present into diffr-core
sidkmenon Oct 3, 2026
145599b
Match the classifier's path rules with regex's perf features
sidkmenon Oct 3, 2026
ba68e94
Read the attribute files once per Store
sidkmenon Oct 3, 2026
43534f2
Drop the per-worker and per-walk debug timings
sidkmenon Oct 3, 2026
72dc8be
Export both kinds of plugin through the prelude
sidkmenon Oct 3, 2026
7b3876b
Point the typo checker at Linguist's new home
sidkmenon Oct 3, 2026
18e40ef
Name the working-tree path so the typo checker reads it
sidkmenon Oct 3, 2026
2aa760e
Accept gix's rela_path in the typo checker
sidkmenon Oct 3, 2026
deac61d
Turn on each language feature when all-languages is on
sidkmenon Oct 3, 2026
340d072
Give the component concurrency test room on slow CI runners
sidkmenon Oct 3, 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
2 changes: 0 additions & 2 deletions .github/workflows/coverage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,6 @@ jobs:
run: cargo +stable xtask build-plugins

- name: Generate code coverage
env:
DIFFR_PLUGINS_BUILT: "1"
run: cargo +stable llvm-cov --all-features --workspace --lcov --output-path lcov.info
- name: Upload coverage to Codecov
uses: codecov/codecov-action@75cd11691c0faa626561e295848008c8a7dddffe # v5
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ jobs:
env:
RELEASE_TAG: ${{ github.ref_type == 'tag' && github.ref_name || '' }}
run: |
version=$(cargo metadata --no-deps --format-version 1 | "$PYTHON" -c 'import json, sys; print(next(p["version"] for p in json.load(sys.stdin)["packages"] if p["name"] == "diffr-cli"), end="")')
version=$(cargo metadata --no-deps --format-version 1 | "$PYTHON" -c 'import json, sys; print(next(p["version"] for p in json.load(sys.stdin)["packages"] if p["name"] == "diffr"), end="")')
if [ -n "$RELEASE_TAG" ] && [ "$RELEASE_TAG" != "$version" ]; then
echo "Tag $RELEASE_TAG does not match Cargo version $version" >&2
exit 1
Expand Down
21 changes: 13 additions & 8 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,9 @@ jobs:
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683

- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@1.85.0
uses: dtolnay/rust-toolchain@1.99.0
with:
targets: ${{ matrix.job.target }}
targets: ${{ matrix.job.target }}, wasm32-wasip2

- name: Install cross
if: matrix.job.use-cross
Expand All @@ -57,12 +57,12 @@ jobs:
steps:
# v4.2.2
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
- uses: dtolnay/rust-toolchain@1.85.0
- uses: dtolnay/rust-toolchain@1.99.0
with:
# The tests build every bundled plugin as a component.
targets: wasm32-wasip2
# Component loading is host behaviour, so it is tested once, natively,
# rather than on every target the matrix above cross-compiles for.
# Rebuild the components and test external loading and async HTTP.
# The target matrix above exercises the embedded components.
- run: cargo xtask test-plugins

test_mime_db:
Expand All @@ -71,7 +71,9 @@ jobs:
steps:
# v4.2.2
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
- uses: dtolnay/rust-toolchain@1.85.0
- uses: dtolnay/rust-toolchain@1.99.0
with:
targets: wasm32-wasip2
# This runs tests that rely on the MIME database being present.
- run: cargo test -- --ignored

Expand All @@ -82,6 +84,8 @@ jobs:
# v4.2.2
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
- uses: dtolnay/rust-toolchain@stable
with:
targets: wasm32-wasip2
- run: cargo +stable test

fmt:
Expand All @@ -90,8 +94,9 @@ jobs:
steps:
# v4.2.2
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
- uses: dtolnay/rust-toolchain@1.85.0
- uses: dtolnay/rust-toolchain@1.99.0
- run: cargo fmt --all -- --check
- run: cargo fmt --manifest-path plugins/workspace/Cargo.toml --all -- --check

actionlint:
name: Actionlint
Expand Down Expand Up @@ -129,7 +134,7 @@ jobs:
- uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0
with:
bun-version: 1.3.10
- uses: dtolnay/rust-toolchain@1.85.0
- uses: dtolnay/rust-toolchain@1.99.0
- run: cargo build --locked
- run: cargo test --locked --features all-languages --bin diffr --test cli
- working-directory: diffr-ts
Expand Down
7 changes: 4 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,9 @@ perf_baseline_*.txt
__pycache__/
.env

# WASM plugin builds: scripts/build-wasm-plugins.sh
# External WASM plugin builds
plugin.wasm
# The bundled WASM summarizer ships ready to embed without a WASM toolchain.
!/plugins/summarize/plugin.wasm
# Bundled components ship ready to embed without a WASM toolchain.
!/plugins/*/plugin.wasm
/crates/*/target
/plugins/workspace/target
6 changes: 5 additions & 1 deletion .typos.toml
Original file line number Diff line number Diff line change
@@ -1,12 +1,16 @@
[files]
extend-exclude = [
"vendored_parsers/", "sample_files/",
"src/tags/linguist/",
"plugins/classify/rust/src/linguist/",
"demo_files/",
# Git index lines carry blob hashes that can spell words.
"examples/review/real/*/change.patch",
]

[default.extend-identifiers]
# gix names the repository-relative path of a status item rela_path.
rela_path = "rela_path"

[default.extend-words]
ba = "ba"
edn = "edn"
Expand Down
Loading
Loading