Skip to content

Shared graph backends, node enumeration, and Fedora CI - #6

Merged
david-days merged 9 commits into
trunkfrom
shared-graphs
Oct 18, 2026
Merged

david-days merged 9 commits into
trunkfrom
shared-graphs

Conversation

@david-days

Copy link
Copy Markdown
Owner

Summary

  • Add shared-memory, mmap, and hashed graph backends, with tests for each.
  • Enumerate nodes through listNodes and foreachNode, and return copies from the linked and hashed getters.
  • Run Fedora 43 build-and-test on push and pull request. A v* tag publishes the RPM, binary tarball, and source tarball. Package version is 0.1.0.

Test plan

  • build-and-test passes on this pull request
  • After merge, build-and-test passes on trunk
  • Tag v0.1.0 on trunk and confirm the release workflow publishes the three artifacts

Made with Cursor

Additional switching to EXIT_FAILURE and EXIT_SUCCESS
Fix shmem/mmap create-attach-teardown, align meta layouts with arrayops,
introduce clear GRAPH_OK/TRUE conventions, expand graph tests, and drop
NuGet packaging while making Doxygen opt-in.
Fill shmemtests and shmmaptests with init, capacity/flow, reset, and
degree-exhaust coverage. Introduce attachReadonlyGraph() as an in-process
RD_ONLY accessor for write-reject testing (official multi-process reader
discovery remains deferred). Readers detach without destroying segments or
unlinking mmap files, and readonly write failures now return GRAPH_ERR.
Require a single implementation bit in parseTypeFlags, reject conflicting
label/domain flags, and return GRAPH_OK/GRAPH_ERR. initGraph now demands
dimensions for shared backends and allows RD_ONLY only on shared graphs.
Expand inittests, comptests, and hashtests for lifecycle helpers, path
capacity, SuperFastHash, and the new reject paths.
Add node/edge CRUD, undirected both-way adjacency, neighbors/remove/reset, and graph tests covering init, rehash, and directed/undirected paths.
…d hashed getters.

Sparse backends are not a dense 0..n-1 range, and getNode/getEdge have to be safe to free on every implementation.
The test workflow has to fail when the suite fails, and the package version has to match the v0.1.0 tag.
@david-days
david-days merged commit 8e7cf36 into trunk Oct 18, 2026
2 checks passed
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