diff --git a/README.md b/README.md index 6aaef0b..f5bfab9 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ For the motivation and algorithm behind the library, read [Conflict-Free Three-W - **No conflict markers** - Clean, merged output without Git's `<<<<<<<` markers - **Cursor tracking** - Automatically repositions cursors and selections throughout the merging process -- **Flexible tokenisation** - Word-level (default), character-level, line-level, or custom tokenisation strategies +- **Flexible tokenisation** - Word-level (default), character-level, line-level, Markdown-aware, or custom tokenisation strategies - **Unicode support** - Full UTF-8 support with proper handling of complex scripts and grapheme clusters - **Cross-platform** - Native Rust performance with WebAssembly bindings for JavaScript and native bindings for Python @@ -36,7 +36,7 @@ Alternatively, add `reconcile-text` to your `Cargo.toml`: ```toml [dependencies] -reconcile-text = "0.8" +reconcile-text = "0.13.2" ``` Then start merging: @@ -220,7 +220,7 @@ Install [rustup][26]: ### Scripts - **Run tests**: `scripts/test.sh` -- **Lint and format**: `scripts/lint.sh` +- **Check lint and formatting**: `scripts/lint.sh` - **Develop demo website**: `scripts/dev-website.sh` - **Build demo website**: `scripts/build-website.sh` - **Publish new version**: `scripts/bump-version.sh patch` diff --git a/scripts/bump-version.sh b/scripts/bump-version.sh index 8c3fd47..7e1246a 100755 --- a/scripts/bump-version.sh +++ b/scripts/bump-version.sh @@ -38,6 +38,9 @@ echo "Bumping versions" which cargo-set-version || cargo install cargo-edit cargo set-version --bump $1 +NEWVER=$(grep '^version = ' Cargo.toml | head -1 | sed 's/version = "\(.*\)"/\1/') +sed_inplace "s/^reconcile-text = \".*\"/reconcile-text = \"$NEWVER\"/" README.md + which wasm-pack || cargo install wasm-pack wasm-pack build --target web --features wasm @@ -46,7 +49,6 @@ cd reconcile-js npm version $1 npm install -NEWVER=$(grep '^version = ' ../Cargo.toml | head -1 | sed 's/version = "\(.*\)"/\1/') cd ../reconcile-python sed_inplace "s/^version = \".*\"/version = \"$NEWVER\"/" Cargo.toml sed_inplace "s/^version = \".*\"/version = \"$NEWVER\"/" pyproject.toml diff --git a/scripts/lint.sh b/scripts/lint.sh index 6ae4f66..802e2c5 100755 --- a/scripts/lint.sh +++ b/scripts/lint.sh @@ -2,25 +2,31 @@ set -e +VERSION=$(grep '^version = ' Cargo.toml | head -1 | sed 's/version = "\(.*\)"/\1/') +if ! grep -Fxq "reconcile-text = \"$VERSION\"" README.md; then + echo "README.md must use the Cargo.toml version ($VERSION) in the Rust installation example." + exit 1 +fi + which cargo-machete || cargo install cargo-machete cargo machete -cargo clippy --all-targets --all-features --fix --allow-dirty --allow-staged -cargo fmt --all +cargo clippy --all-targets --all-features -- -D warnings +cargo fmt --all -- --check cd reconcile-js npm ci -npm run format +npm run format:check cd ../examples/website npm ci -npm run format +npm run format:check cd ../../reconcile-python -cp ../README.md . +cp ../README.md ../LICENSE . uv run maturin develop -q uv run ruff check python/ tests/ -uv run ruff format python/ tests/ +uv run ruff format --check python/ tests/ uv run pyright python/ tests/ cd -