diff --git a/.github/workflows/diagnose.yml b/.github/workflows/diagnose.yml new file mode 100644 index 0000000..537c351 --- /dev/null +++ b/.github/workflows/diagnose.yml @@ -0,0 +1,30 @@ +name: Diagnose + +on: pull_request + +jobs: + windows-hang: + runs-on: windows-latest + timeout-minutes: 40 + steps: + - uses: actions/checkout@v7 + - uses: dtolnay/rust-toolchain@stable + - uses: Swatinem/rust-cache@v2 + - run: cargo test -p gitcraft --locked --no-run + - shell: pwsh + run: | + git --version + git config --show-origin --list --system + for ($i = 1; $i -le 10; $i++) { + $p = Start-Process cargo -ArgumentList 'test','-p','gitcraft','--locked' -NoNewWindow -PassThru -RedirectStandardOutput "out$i.txt" -RedirectStandardError "err$i.txt" + $null = $p.Handle + if (-not $p.WaitForExit(150000)) { + Write-Host "RUN $i HUNG" + Get-Content "out$i.txt" | Select-Object -Last 8 + Get-CimInstance Win32_Process | Where-Object { $_.Name -match 'git|sh|bash|gitcraft|cargo|conhost' } | + Select-Object ProcessId,ParentProcessId,CreationDate,Name,CommandLine | Format-List | Out-String -Width 4096 + taskkill /T /F /PID $p.Id + exit 1 + } + Write-Host "run $i exit $($p.ExitCode)" + } diff --git a/Cargo.lock b/Cargo.lock index c7181f2..2f18e76 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1156,7 +1156,7 @@ dependencies = [ [[package]] name = "gitcraft" -version = "0.9.0" +version = "0.10.0" dependencies = [ "eframe", "egui_kittest", @@ -1167,7 +1167,7 @@ dependencies = [ [[package]] name = "gitcraft-core" -version = "0.9.0" +version = "0.10.0" dependencies = [ "criterion", "gix", diff --git a/Cargo.toml b/Cargo.toml index 8b39e85..8290614 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,14 +3,14 @@ resolver = "3" members = ["crates/*"] [workspace.package] -version = "0.9.0" +version = "0.10.0" edition = "2024" rust-version = "1.95" license = "MIT OR Apache-2.0" repository = "https://github.com/Lars-/gitcraft" [workspace.dependencies] -gitcraft-core = { path = "crates/core", version = "0.9.0" } +gitcraft-core = { path = "crates/core", version = "0.10.0" } gix = { version = "0.90", default-features = false, features = ["max-performance", "sha1", "excludes"] } notify = "8.2" thiserror = "2"