This commit is contained in:
20
.task/languages/csharp.yml
Normal file
20
.task/languages/csharp.yml
Normal file
@@ -0,0 +1,20 @@
|
||||
version: "3"
|
||||
internal: true
|
||||
|
||||
tasks:
|
||||
update:
|
||||
desc: "Update C# dependencies within major versions (dotnet outdated -u --version-lock Minor)"
|
||||
silent: false
|
||||
cmds:
|
||||
- cmd: |
|
||||
cd packages/csharp && dotnet outdated -u --version-lock Minor
|
||||
ignore_error: false
|
||||
|
||||
upgrade:
|
||||
desc: "Upgrade C# dependencies to latest including breaking changes (dotnet outdated -u)"
|
||||
silent: false
|
||||
cmds:
|
||||
- cmd: |
|
||||
command -v dotnet >/dev/null 2>&1 || { echo "Dotnet not found, skipping C# upgrade"; exit 0; }
|
||||
cd packages/csharp/Kreuzberg && dotnet outdated -u
|
||||
ignore_error: false
|
||||
20
.task/languages/dart.yml
Normal file
20
.task/languages/dart.yml
Normal file
@@ -0,0 +1,20 @@
|
||||
version: "3"
|
||||
internal: true
|
||||
|
||||
tasks:
|
||||
update:
|
||||
desc: "Update Dart dependencies within major versions (dart pub upgrade)"
|
||||
silent: false
|
||||
cmds:
|
||||
- cmd: |
|
||||
cd packages/dart && dart pub upgrade
|
||||
ignore_error: false
|
||||
|
||||
upgrade:
|
||||
desc: "Upgrade Dart dependencies to latest including breaking changes (dart pub upgrade --major-versions)"
|
||||
silent: false
|
||||
cmds:
|
||||
- cmd: |
|
||||
command -v dart >/dev/null 2>&1 || { echo "Dart not found, skipping Dart upgrade"; exit 0; }
|
||||
cd packages/dart && dart pub upgrade --major-versions
|
||||
ignore_error: false
|
||||
20
.task/languages/elixir.yml
Normal file
20
.task/languages/elixir.yml
Normal file
@@ -0,0 +1,20 @@
|
||||
version: "3"
|
||||
internal: true
|
||||
|
||||
tasks:
|
||||
update:
|
||||
desc: "Update Elixir dependencies within major versions (mix deps.update --all)"
|
||||
silent: false
|
||||
cmds:
|
||||
- cmd: |
|
||||
cd packages/elixir && mix deps.update --all
|
||||
ignore_error: false
|
||||
|
||||
upgrade:
|
||||
desc: "Upgrade Elixir dependencies to latest including breaking changes (mix hex.outdated --all + mix deps.update)"
|
||||
silent: false
|
||||
cmds:
|
||||
- cmd: |
|
||||
command -v mix >/dev/null 2>&1 || { echo "Elixir not found, skipping Elixir upgrade"; exit 0; }
|
||||
cd packages/elixir && mix hex.outdated --all || true && mix deps.update --all
|
||||
ignore_error: false
|
||||
20
.task/languages/go.yml
Normal file
20
.task/languages/go.yml
Normal file
@@ -0,0 +1,20 @@
|
||||
version: "3"
|
||||
internal: true
|
||||
|
||||
tasks:
|
||||
update:
|
||||
desc: "Update Go dependencies within major versions (go get -u=patch + go mod tidy)"
|
||||
silent: false
|
||||
cmds:
|
||||
- cmd: |
|
||||
cd packages/go/v5 && go get -u=patch ./... && go mod tidy
|
||||
ignore_error: false
|
||||
|
||||
upgrade:
|
||||
desc: "Upgrade Go dependencies to latest including breaking changes (go get -u + go mod tidy)"
|
||||
silent: false
|
||||
cmds:
|
||||
- cmd: |
|
||||
command -v go >/dev/null 2>&1 || { echo "Go not found, skipping Go upgrade"; exit 0; }
|
||||
cd packages/go/v5 && go get -u ./... && go mod tidy
|
||||
ignore_error: false
|
||||
19
.task/languages/java.yml
Normal file
19
.task/languages/java.yml
Normal file
@@ -0,0 +1,19 @@
|
||||
version: "3"
|
||||
internal: true
|
||||
|
||||
tasks:
|
||||
update:
|
||||
desc: "Update Java dependencies within major versions (mvn versions:use-next-versions)"
|
||||
silent: false
|
||||
cmds:
|
||||
- cmd: |
|
||||
cd packages/java && command -v mvn >/dev/null 2>&1 && mvn versions:use-next-versions -DgenerateBackupPoms=false || echo "Maven not found, skipping Java upgrade"
|
||||
ignore_error: false
|
||||
|
||||
upgrade:
|
||||
desc: "Upgrade Java dependencies to latest including breaking changes (mvn versions:use-latest-releases)"
|
||||
silent: false
|
||||
cmds:
|
||||
- cmd: |
|
||||
cd packages/java && command -v mvn >/dev/null 2>&1 && mvn versions:use-latest-releases -DgenerateBackupPoms=false || echo "Maven not found, skipping Java upgrade"
|
||||
ignore_error: false
|
||||
20
.task/languages/kotlin_android.yml
Normal file
20
.task/languages/kotlin_android.yml
Normal file
@@ -0,0 +1,20 @@
|
||||
version: "3"
|
||||
internal: true
|
||||
|
||||
tasks:
|
||||
update:
|
||||
desc: "Update Kotlin/Android dependencies within major versions (gradlew dependencyUpdates)"
|
||||
silent: false
|
||||
cmds:
|
||||
- cmd: |
|
||||
cd packages/kotlin-android && ./gradlew dependencyUpdates
|
||||
ignore_error: false
|
||||
|
||||
upgrade:
|
||||
desc: "Upgrade Kotlin/Android dependencies to latest including breaking changes (gradlew useLatestVersions)"
|
||||
silent: false
|
||||
cmds:
|
||||
- cmd: |
|
||||
test -f packages/kotlin-android/gradlew || { echo "Kotlin-Android gradlew not found, skipping upgrade"; exit 0; }
|
||||
cd packages/kotlin-android && ./gradlew useLatestVersions
|
||||
ignore_error: false
|
||||
19
.task/languages/node.yml
Normal file
19
.task/languages/node.yml
Normal file
@@ -0,0 +1,19 @@
|
||||
version: "3"
|
||||
internal: true
|
||||
|
||||
tasks:
|
||||
update:
|
||||
desc: "Update Node.js dependencies within major versions (pnpm up)"
|
||||
silent: false
|
||||
cmds:
|
||||
- cmd: |
|
||||
pnpm up
|
||||
ignore_error: false
|
||||
|
||||
upgrade:
|
||||
desc: "Upgrade Node.js dependencies to latest including breaking changes (pnpm up --latest)"
|
||||
silent: false
|
||||
cmds:
|
||||
- cmd: |
|
||||
pnpm up --latest
|
||||
ignore_error: false
|
||||
20
.task/languages/php.yml
Normal file
20
.task/languages/php.yml
Normal file
@@ -0,0 +1,20 @@
|
||||
version: "3"
|
||||
internal: true
|
||||
|
||||
tasks:
|
||||
update:
|
||||
desc: "Update PHP dependencies within major versions (composer update)"
|
||||
silent: false
|
||||
cmds:
|
||||
- cmd: |
|
||||
cd packages/php && composer update
|
||||
ignore_error: false
|
||||
|
||||
upgrade:
|
||||
desc: "Upgrade PHP dependencies to latest including breaking changes (composer update --with-all-dependencies)"
|
||||
silent: false
|
||||
cmds:
|
||||
- cmd: |
|
||||
command -v composer >/dev/null 2>&1 || { echo "Composer not found, skipping PHP upgrade"; exit 0; }
|
||||
cd packages/php && composer update --with-all-dependencies
|
||||
ignore_error: false
|
||||
22
.task/languages/python.yml
Normal file
22
.task/languages/python.yml
Normal file
@@ -0,0 +1,22 @@
|
||||
version: "3"
|
||||
internal: true
|
||||
|
||||
vars:
|
||||
PYTHON_PKG: "packages/python"
|
||||
|
||||
tasks:
|
||||
update:
|
||||
desc: "Update Python dependencies within major versions (uv sync --upgrade-package)"
|
||||
silent: false
|
||||
cmds:
|
||||
- cmd: |
|
||||
cd {{.PYTHON_PKG}} && uv sync --no-install-project --no-install-workspace --all-extras --upgrade-package "*" --no-prerelease
|
||||
ignore_error: false
|
||||
|
||||
upgrade:
|
||||
desc: "Upgrade Python dependencies to latest including breaking changes (uv sync --upgrade)"
|
||||
silent: false
|
||||
cmds:
|
||||
- cmd: |
|
||||
cd {{.PYTHON_PKG}} && uv sync --no-install-project --no-install-workspace --all-extras --upgrade
|
||||
ignore_error: false
|
||||
20
.task/languages/r.yml
Normal file
20
.task/languages/r.yml
Normal file
@@ -0,0 +1,20 @@
|
||||
version: "3"
|
||||
internal: true
|
||||
|
||||
tasks:
|
||||
update:
|
||||
desc: "Update R dependencies within major versions (devtools::update_packages(check.built = TRUE))"
|
||||
silent: false
|
||||
cmds:
|
||||
- cmd: |
|
||||
cd packages/r && Rscript -e "devtools::update_packages(check.built = TRUE)"
|
||||
ignore_error: false
|
||||
|
||||
upgrade:
|
||||
desc: "Upgrade R dependencies to latest including breaking changes (update.packages())"
|
||||
silent: false
|
||||
cmds:
|
||||
- cmd: |
|
||||
command -v Rscript >/dev/null 2>&1 || { echo "R not found, skipping R upgrade"; exit 0; }
|
||||
cd packages/r && Rscript -e 'options(repos = c(CRAN = "https://cloud.r-project.org")); update.packages(ask = FALSE)'
|
||||
ignore_error: false
|
||||
20
.task/languages/ruby.yml
Normal file
20
.task/languages/ruby.yml
Normal file
@@ -0,0 +1,20 @@
|
||||
version: "3"
|
||||
internal: true
|
||||
|
||||
tasks:
|
||||
update:
|
||||
desc: "Update Ruby dependencies within major versions (bundle update --conservative)"
|
||||
silent: false
|
||||
cmds:
|
||||
- cmd: |
|
||||
cd packages/ruby && bundle update --conservative
|
||||
ignore_error: false
|
||||
|
||||
upgrade:
|
||||
desc: "Upgrade Ruby dependencies to latest including breaking changes (bundle update)"
|
||||
silent: false
|
||||
cmds:
|
||||
- cmd: |
|
||||
command -v bundle >/dev/null 2>&1 || { echo "Bundle not found, skipping Ruby upgrade"; exit 0; }
|
||||
cd packages/ruby && bundle update
|
||||
ignore_error: false
|
||||
247
.task/languages/rust.yml
Normal file
247
.task/languages/rust.yml
Normal file
@@ -0,0 +1,247 @@
|
||||
version: "3"
|
||||
internal: true
|
||||
|
||||
includes:
|
||||
platforms: ../config/platforms.yml
|
||||
|
||||
vars:
|
||||
RUST_LOG: '{{.RUST_LOG | default "info"}}'
|
||||
BUILD_PROFILE: '{{.BUILD_PROFILE | default "release"}}'
|
||||
RUST_BACKTRACE: '{{.RUST_BACKTRACE | default "1"}}'
|
||||
CARGO_TERM_COLOR: "always"
|
||||
|
||||
tasks:
|
||||
install:
|
||||
desc: "Install Rust toolchain and components"
|
||||
cmds:
|
||||
- rustup update stable
|
||||
- rustup component add rustfmt clippy
|
||||
# Windows: install lld-link to avoid PATH conflicts with Git Bash's link.exe
|
||||
- cmd: rustup component add llvm-tools
|
||||
platforms: [windows]
|
||||
- cargo install cargo-llvm-cov --locked
|
||||
- cargo install cargo-edit --locked
|
||||
- cargo --version
|
||||
- rustc --version
|
||||
|
||||
build:
|
||||
desc: "Build all Rust crates with {{.BUILD_PROFILE}} profile"
|
||||
cmds:
|
||||
- task: build:{{.BUILD_PROFILE | default "release"}}
|
||||
|
||||
build:dev:
|
||||
desc: "Build all Rust crates in debug mode"
|
||||
cmds:
|
||||
- cmd: cargo build --workspace --all-features --exclude kreuzberg-php --exclude kreuzberg-node --exclude kreuzberg-wasm
|
||||
platforms: [linux, darwin]
|
||||
# Note: exclude benchmark-harness on Windows as jemalloc doesn't build with MSVC
|
||||
- cmd: cargo build --workspace --all-features --exclude kreuzberg-php --exclude kreuzberg-node --exclude kreuzberg-wasm --exclude benchmark-harness
|
||||
platforms: [windows]
|
||||
|
||||
build:release:
|
||||
desc: "Build all Rust crates in release mode"
|
||||
cmds:
|
||||
- cmd: cargo build --release --workspace --all-features --exclude kreuzberg-php --exclude kreuzberg-node --exclude kreuzberg-wasm
|
||||
platforms: [linux, darwin]
|
||||
- cmd: cargo build --release --workspace --all-features --exclude kreuzberg-php --exclude kreuzberg-node --exclude kreuzberg-wasm --exclude benchmark-harness
|
||||
platforms: [windows]
|
||||
|
||||
build:ci:
|
||||
desc: "Build for CI with debug info enabled"
|
||||
env:
|
||||
RUSTFLAGS: "-C debuginfo=2"
|
||||
cmds:
|
||||
- cmd: cargo build --release --workspace --all-features --exclude kreuzberg-php --exclude kreuzberg-node --exclude kreuzberg-wasm
|
||||
platforms: [linux, darwin]
|
||||
- cmd: cargo build --release --workspace --all-features --exclude kreuzberg-php --exclude kreuzberg-node --exclude kreuzberg-wasm --exclude benchmark-harness
|
||||
platforms: [windows]
|
||||
|
||||
build:profiling:
|
||||
desc: "Build all Rust crates with profiling features (for flamegraph generation)"
|
||||
env:
|
||||
ENABLE_PROFILING: "true"
|
||||
RUSTFLAGS: "-g"
|
||||
cmds:
|
||||
- cargo build --workspace --release --features full,profiling,api,mcp,otel --exclude kreuzberg-php --exclude kreuzberg-node --exclude kreuzberg-wasm
|
||||
- cargo build --manifest-path tools/benchmark-harness/Cargo.toml --release --features profiling
|
||||
|
||||
cli:build:
|
||||
desc: "Build CLI binary"
|
||||
cmds:
|
||||
- cargo build --release --package kreuzberg-cli {{if .TARGET}}--target {{.TARGET}}{{end}}
|
||||
|
||||
cli:build:dev:
|
||||
desc: "Build CLI binary in debug mode"
|
||||
cmds:
|
||||
- cargo build --package kreuzberg-cli
|
||||
|
||||
cli:install:
|
||||
desc: "Install CLI binary"
|
||||
cmds:
|
||||
- cargo install --path crates/kreuzberg-cli
|
||||
|
||||
ffi:build:
|
||||
desc: "Build FFI library for language bindings"
|
||||
cmds:
|
||||
- cargo build --release --package kreuzberg-ffi {{.CARGO_ARGS | default ""}}
|
||||
|
||||
ffi:build:dev:
|
||||
desc: "Build FFI library in debug mode"
|
||||
cmds:
|
||||
- cargo build --package kreuzberg-ffi {{.CARGO_ARGS | default ""}}
|
||||
|
||||
ffi:build:ci:
|
||||
desc: "Build FFI library in CI mode (with debug info)"
|
||||
env:
|
||||
RUSTFLAGS: "-C debuginfo=2"
|
||||
cmds:
|
||||
- cargo build --release --package kreuzberg-ffi {{.CARGO_ARGS | default ""}}
|
||||
|
||||
wasm:build:all:
|
||||
desc: "Build all WASM targets (web/bundler/nodejs/deno) plus the TypeScript wrapper"
|
||||
dir: crates/kreuzberg-wasm
|
||||
cmds:
|
||||
- pnpm run build:all
|
||||
|
||||
test:
|
||||
desc: "Run all Rust tests"
|
||||
cmds:
|
||||
- cmd: bash scripts/ci/rust/run-unit-tests.sh
|
||||
platforms: [linux, darwin]
|
||||
|
||||
test:ci:
|
||||
desc: "Run Rust tests in CI mode with tessdata setup"
|
||||
env:
|
||||
RUST_BACKTRACE: "{{.RUST_BACKTRACE}}"
|
||||
CARGO_TERM_COLOR: "{{.CARGO_TERM_COLOR}}"
|
||||
cmds:
|
||||
- cmd: bash scripts/ci/rust/run-unit-tests.sh
|
||||
platforms: [linux, darwin]
|
||||
|
||||
test:quick:
|
||||
desc: "Run fast Rust tests (unit tests only)"
|
||||
cmds:
|
||||
- cargo test --lib --workspace --exclude kreuzberg-php --exclude kreuzberg-node --exclude kreuzberg-wasm
|
||||
|
||||
lint:
|
||||
desc: "Lint Rust code WITH auto-fix (cargo fmt + cargo clippy --fix)"
|
||||
cmds:
|
||||
- cargo fmt --all
|
||||
- cargo clippy --workspace --fix --allow-dirty --allow-staged --exclude kreuzberg-php --exclude kreuzberg-node --exclude kreuzberg-wasm
|
||||
|
||||
lint:check:
|
||||
desc: "Lint Rust code WITHOUT auto-fix (check-only)"
|
||||
cmds:
|
||||
- cargo fmt --all -- --check
|
||||
- cargo clippy --workspace --exclude kreuzberg-php --exclude kreuzberg-node --exclude kreuzberg-wasm -- -D warnings
|
||||
|
||||
format:
|
||||
desc: "Format Rust code (with modifications)"
|
||||
cmds:
|
||||
- cargo fmt --all
|
||||
|
||||
format:check:
|
||||
desc: "Check Rust formatting without modifications"
|
||||
cmds:
|
||||
- cargo fmt --all -- --check
|
||||
|
||||
licenses:
|
||||
desc: "Check Rust dependency licenses with cargo-deny"
|
||||
cmds:
|
||||
- cargo deny check licenses
|
||||
|
||||
doc:
|
||||
desc: "Generate Rust documentation and open in browser"
|
||||
cmds:
|
||||
- cargo doc --no-deps --open
|
||||
|
||||
doc:build:
|
||||
desc: "Build Rust documentation (without opening)"
|
||||
cmds:
|
||||
- cargo doc --no-deps
|
||||
|
||||
clean:
|
||||
desc: "Clean Rust build artifacts"
|
||||
cmds:
|
||||
- cargo clean
|
||||
|
||||
cache:cleanup:
|
||||
desc: "Clean up large build artifacts to reduce cache size (for CI)"
|
||||
cmds:
|
||||
- echo "Cleaning up large build artifacts to reduce cache size..."
|
||||
- cmd: find target -type f -name "*.rlib" -size +10M -exec rm -f {} \; 2>/dev/null || true
|
||||
ignore_error: true
|
||||
- cmd: find target -type f -name "*.so" -size +10M -exec rm -f {} \; 2>/dev/null || true
|
||||
ignore_error: true
|
||||
- cmd: find target -type f -name "*.dylib" -size +10M -exec rm -f {} \; 2>/dev/null || true
|
||||
ignore_error: true
|
||||
- cmd: find target -type f -name "*.dll" -size +10M -exec rm -f {} \; 2>/dev/null || true
|
||||
ignore_error: true
|
||||
- cmd: rm -rf target/*/incremental 2>/dev/null || true
|
||||
ignore_error: true
|
||||
- echo "Cleanup completed successfully"
|
||||
- cmd: du -sh target 2>/dev/null || echo "No target directory found"
|
||||
ignore_error: true
|
||||
|
||||
update:
|
||||
desc: "Update Rust dependencies (compatible only)"
|
||||
cmds:
|
||||
- cargo update
|
||||
- cmd: cargo update --manifest-path packages/ruby/ext/kreuzberg_rb/native/Cargo.toml
|
||||
ignore_error: true
|
||||
|
||||
upgrade:
|
||||
desc: "Upgrade Rust dependencies aggressively (cargo upgrade --incompatible)"
|
||||
cmds:
|
||||
- cargo upgrade --incompatible
|
||||
- cargo update
|
||||
- cmd: cargo upgrade --incompatible --manifest-path packages/ruby/ext/kreuzberg_rb/native/Cargo.toml
|
||||
ignore_error: true
|
||||
- cmd: cargo update --manifest-path packages/ruby/ext/kreuzberg_rb/native/Cargo.toml
|
||||
ignore_error: true
|
||||
|
||||
e2e:format:
|
||||
desc: "Format generated Rust E2E sources"
|
||||
cmds:
|
||||
- cargo fmt --manifest-path e2e/rust/Cargo.toml
|
||||
|
||||
e2e:lint:
|
||||
desc: "Lint Rust E2E crate with clippy"
|
||||
cmds:
|
||||
- cargo clippy --manifest-path e2e/rust/Cargo.toml -- -D warnings
|
||||
|
||||
e2e:test:
|
||||
desc: "Run Rust E2E tests"
|
||||
env:
|
||||
RUST_TEST_THREADS: "1"
|
||||
cmds:
|
||||
- cargo test --manifest-path e2e/rust/Cargo.toml --release
|
||||
|
||||
check:android:
|
||||
desc: "cargo check kreuzberg-dart + kreuzberg-ffi for Android ABIs (requires ANDROID_NDK_HOME and cargo-ndk)"
|
||||
preconditions:
|
||||
- sh: command -v cargo-ndk
|
||||
msg: "cargo-ndk not installed. Run: cargo install cargo-ndk --locked"
|
||||
- sh: 'test -n "${ANDROID_NDK_HOME:-}"'
|
||||
msg: "ANDROID_NDK_HOME is not set. Install Android NDK and export ANDROID_NDK_HOME=<path-to-ndk>"
|
||||
cmds:
|
||||
- cargo ndk --target arm64-v8a --platform 21 -- check -p kreuzberg-dart
|
||||
- cargo ndk --target x86_64 --platform 21 -- check -p kreuzberg-dart
|
||||
- cargo ndk --target arm64-v8a --platform 21 -- check -p kreuzberg-ffi
|
||||
- cargo ndk --target x86_64 --platform 21 -- check -p kreuzberg-ffi
|
||||
|
||||
check:ios:
|
||||
desc: "cargo check kreuzberg-dart + kreuzberg-swift for iOS targets (macOS only)"
|
||||
platforms: [darwin]
|
||||
cmds:
|
||||
- rustup target add aarch64-apple-ios aarch64-apple-ios-sim
|
||||
- cargo check -p kreuzberg-dart --target aarch64-apple-ios
|
||||
- cargo check -p kreuzberg-dart --target aarch64-apple-ios-sim
|
||||
- cargo check -p kreuzberg-swift --target aarch64-apple-ios
|
||||
- cargo check -p kreuzberg-swift --target aarch64-apple-ios-sim
|
||||
|
||||
check:mobile:
|
||||
desc: "cargo check Android + iOS mobile targets"
|
||||
cmds:
|
||||
- task: check:android
|
||||
- task: check:ios
|
||||
20
.task/languages/swift.yml
Normal file
20
.task/languages/swift.yml
Normal file
@@ -0,0 +1,20 @@
|
||||
version: "3"
|
||||
internal: true
|
||||
|
||||
tasks:
|
||||
update:
|
||||
desc: "Update Swift dependencies (swift package update)"
|
||||
silent: false
|
||||
cmds:
|
||||
- cmd: |
|
||||
cd packages/swift && swift package update
|
||||
ignore_error: false
|
||||
|
||||
upgrade:
|
||||
desc: "Upgrade Swift dependencies (swift package update)"
|
||||
silent: false
|
||||
cmds:
|
||||
- cmd: |
|
||||
command -v swift >/dev/null 2>&1 || { echo "Swift not found, skipping Swift upgrade"; exit 0; }
|
||||
cd packages/swift && swift package update
|
||||
ignore_error: false
|
||||
19
.task/languages/zig.yml
Normal file
19
.task/languages/zig.yml
Normal file
@@ -0,0 +1,19 @@
|
||||
version: "3"
|
||||
internal: true
|
||||
|
||||
tasks:
|
||||
update:
|
||||
desc: "Update Zig dependencies (zig fetch --update-hash)"
|
||||
silent: false
|
||||
cmds:
|
||||
- cmd: |
|
||||
cd packages/zig && zig fetch --update-hash
|
||||
ignore_error: false
|
||||
|
||||
upgrade:
|
||||
desc: "Upgrade Zig dependencies (zig package manager)"
|
||||
silent: false
|
||||
cmds:
|
||||
- cmd: |
|
||||
echo "Zig package updates are manual; see packages/zig/build.zig.zon"
|
||||
ignore_error: false
|
||||
Reference in New Issue
Block a user