Skip to content

[MAINT]: Fix CI Issues#228

Merged
saivishwak merged 3 commits into
mainfrom
scratch/fix_ci_issues
May 13, 2026
Merged

[MAINT]: Fix CI Issues#228
saivishwak merged 3 commits into
mainfrom
scratch/fix_ci_issues

Conversation

@saivishwak
Copy link
Copy Markdown
Contributor

No description provided.

@saivishwak saivishwak changed the title Scratch/fix ci issues [MAINT]: Fix CI Issues May 13, 2026
@deepsource-io
Copy link
Copy Markdown

deepsource-io Bot commented May 13, 2026

DeepSource Code Review

We reviewed changes in 3b9bc0f...404b360 on this pull request. Below is the summary for the review, and you can see the individual issues we found as inline review comments.

See full review on DeepSource ↗

PR Report Card

Overall Grade   Security  

Reliability  

Complexity  

Hygiene  

Code Review Summary

Analyzer Status Updated (UTC) Details
Rust May 13, 2026 3:59p.m. Review ↗

Important

AI Review is run only on demand for your team. We're only showing results of static analysis review right now. To trigger AI Review, comment @deepsourcebot review on this thread.

@greptile-apps
Copy link
Copy Markdown

greptile-apps Bot commented May 13, 2026

Greptile Summary

This PR fixes CI instability by pinning maturin to an exact version (1.13.3) across all pyproject.toml build-system declarations and every workflow step, and updates the Makefile macro to handle the maturin output-directory layout change (maturin/ vs release/) introduced between maturin releases. Cargo dependencies (wasmtime, rand, testcontainers) receive routine patch/minor bumps, and documentation is updated to reflect the new pinned version.

  • Maturin pinned to ==1.13.3 in all nine pyproject.toml files and all three CI workflow files via a single MATURIN_VERSION env var; maturin-action@v1 steps now pass maturin-version: v${{ env.MATURIN_VERSION }}.
  • install_maturin_cdylib macro replaces install_shared_lib and falls back from target/maturin/ to target/release/ when locating the compiled cdylib, making local editable installs robust against maturin version differences.

Confidence Score: 4/5

Safe to merge for CI stabilisation; the Makefile macro leaves macOS Metal/Vulkan local builds broken on the .dylib extension lookup.

The maturin version pinning and workflow changes are consistent and correct. The updated install_maturin_cdylib macro fixes the output-directory ambiguity but still hardcodes .so, meaning make python-bindings-build-metal fails at the install step on macOS — any contributor developing on Apple Silicon will hit an immediate error even after a successful Rust compilation. The Cargo dependency bumps are minor and low-risk.

Makefile — the install_maturin_cdylib macro needs to probe for .dylib on macOS in addition to the existing .so check.

Important Files Changed

Filename Overview
.github/workflows/ci-chek.yml Adds MATURIN_VERSION env var and pins maturin in the Python test dependency install step.
.github/workflows/python-bindings-ci.yml Adds MATURIN_VERSION env var and passes maturin-version to all maturin-action@v1 steps and direct pip-install steps.
.github/workflows/python-bindings.yml Adds MATURIN_VERSION env var and pins maturin in all build steps consistently.
Makefile Replaces install_shared_lib with install_maturin_cdylib that probes both maturin/ and release/ directories; hardcoded .so extension is still macOS-incompatible for Metal/Vulkan targets, a pre-existing issue.
Cargo.toml Bumps wasmtime 43→44, rand 0.10.0→0.10.1, testcontainers 0.27.1→0.27.3; routine patch/minor dependency updates.
bindings/python/autoagents/pyproject.toml Pins maturin build-system requirement from >=1.5,<2.0 to ==1.13.3; exact pinning is stricter than PEP 517 recommends for build backends.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[Developer / CI trigger] --> B{Build target}
    B -->|make python-bindings-build| C[maturin develop --release]
    B -->|make python-bindings-build-metal| D[maturin develop --release --features metal]
    B -->|CI: maturin-action@v1| E[maturin-version: v1.13.3]
    C --> F[install_maturin_cdylib macro]
    D --> F
    F --> G{lib found in target/maturin/?}
    G -->|yes| H[install .so to package dir]
    G -->|no| I{lib found in target/release/?}
    I -->|yes| H
    I -->|no| J[error: lib not found — exit 1]
    E --> K[Build wheel / sdist]
    subgraph pyproject.toml pins
        L[maturin==1.13.3 build-system.requires]
    end
    subgraph CI env var
        M[MATURIN_VERSION: 1.13.3 all three workflow files]
    end
    L -.->|must stay in sync| M
Loading

Reviews (1): Last reviewed commit: "FIX CI Issues" | Re-trigger Greptile

Comment thread bindings/python/autoagents/pyproject.toml Outdated
Comment thread Makefile
Comment on lines +16 to 18
define install_maturin_cdylib
@lib="$(2)"; src=""; if [[ -f "$(1)/maturin/$$lib" ]]; then src="$(1)/maturin/$$lib"; elif [[ -f "$(1)/release/$$lib" ]]; then src="$(1)/release/$$lib"; else echo "error: $$lib not found under $(1)/maturin or $(1)/release" >&2; exit 1; fi; rm -f "$(3)"; install -m 755 "$$src" "$(3)"
endef
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 macOS .dylib not handled in install_maturin_cdylib

The macro searches for $$lib (e.g. lib_autoagents_llamacpp_metal.so) but on macOS Rust emits lib_*.dylib, not lib_*.so. This means make python-bindings-build-metal will always hit the error branch on macOS even though the Metal build succeeds — the compiled library exists but under the wrong extension. The Metal and Vulkan local-development targets are effectively broken on macOS until the macro also probes the .dylib name. The old install_shared_lib had the same limitation, so this is a pre-existing gap, but the new "fallback" logic gives a false sense that cross-version portability is now fully covered.

@codecov
Copy link
Copy Markdown

codecov Bot commented May 13, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@saivishwak saivishwak merged commit 57ebeaa into main May 13, 2026
19 checks passed
@saivishwak saivishwak deleted the scratch/fix_ci_issues branch May 13, 2026 16:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant