Skip to content

fix: ci errors#132

Merged
DanielSeemaier merged 23 commits intomainfrom
fix/ci
Mar 21, 2026
Merged

fix: ci errors#132
DanielSeemaier merged 23 commits intomainfrom
fix/ci

Conversation

@DanielSeemaier
Copy link
Copy Markdown
Member

No description provided.

DanielSeemaier and others added 14 commits March 16, 2026 20:15
- Add ccache with persistent GitHub Actions cache to all C++ build
  workflows (main, package, examples) for dramatically faster rebuilds
- Reduce Python/NetworKit wheel builds on PRs to cp313 only (3 jobs
  instead of 27 for Python, 1 instead of 4 for NetworKit); full matrix
  still runs on pushes and release tags
- Print ccache statistics after builds for observability

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
DanielSeemaier and others added 9 commits March 16, 2026 22:29
Return std::vector<uint64_t> from C++ instead of NetworKit::Partition
to avoid Cython struct size mismatch (expected 96 bytes, got 72) caused
by networkit version differences between build and runtime. Construct
the Partition on the Python side via networkit.Partition(data=vec).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The previous fix changed C++ return types but `from networkit.graph cimport
_Graph, Graph` still transitively pulled in networkit.structures.Partition
through the .pxd chain, causing binary incompatibility in manylinux builds.

Declare NetworKit::Graph directly via cdef extern and extract the C++ pointer
through the Python object's _this attribute instead.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
networkit 11.2 is unavailable for the Nix build. Revert to 11.1.post1
which is already used in flake.nix.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
cibuildwheel downloads virtualenv.pyz from GitHub on each run, which
can fail with HTTP 429 (Too Many Requests). Caching the cibuildwheel
cache directory ensures virtualenv is reused across runs.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…dings

The previous approach tried to access networkit's Graph._this cdef
attribute from Cython without cimporting, which fails because cdef
attributes are only accessible at the C level with type knowledge.

Instead, extract the graph as a scipy CSR matrix via networkit's Python
API (adjacencyMatrix), then pass the raw arrays (xadj, adjncy, adjwgt)
to a new C++ copyCSRGraph method. This completely decouples the Cython
bindings from networkit's internal C++ types.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
cibuildwheel downloads virtualenv.pyz from GitHub on every run, which
frequently fails with HTTP 429 (Too Many Requests). Pre-download it with
curl retries and cache via actions/cache so subsequent runs skip the
download entirely.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@DanielSeemaier DanielSeemaier merged commit 51108b1 into main Mar 21, 2026
95 of 103 checks passed
@DanielSeemaier DanielSeemaier deleted the fix/ci branch March 21, 2026 09:04
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.

2 participants