Commit Graph
255 Commits
Author SHA1 Message Date
Ivan FBandClaude Opus 4.8 a618e09afe feat: link the unified liblogosdelivery from the cgo bridges
logos-delivery#3949 collapses libwaku into liblogosdelivery so a single
C library exports both the waku_* and logosdelivery_* ABIs. Point the
libwaku bridge at liblogosdelivery (header + -llogosdelivery) and route
its event registration through logosdelivery_set_event_callback, since
the waku-specific set_event_callback no longer exists.

With one shared library the two bridges no longer carry overlapping
symbols, so drop the "must not link together" caveats from the package
docs.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-12 11:32:56 +02:00
Igor SirotinandClaude Opus 4.8 5da314e0f7 feat: add liblogosdelivery cgo bridge (internal/ffi/liblogosdelivery) (#113)
Add internal/ffi/liblogosdelivery, the cgo bridge over liblogosdelivery
(Messaging API), mirroring the libwaku subpackage from #114: synchronous
request/response plumbing, a shared async event callback, and a handle->handler
registry, exposing Go-typed primitives (New/Start/Stop/Destroy,
Subscribe/Unsubscribe/Send, SetEventHandler, Handle, RetOK, EventHandler).

It self-links liblogosdelivery via a #cgo directive. For symmetry — and so the
two bridges never need a shared global -l flag — add the same #cgo LDFLAGS:
-lwaku to the libwaku subpackage. Each subpackage now links exactly its own
library; no binary links both (until logos-delivery#3851).

Extend the PR gate to build liblogosdelivery, set CGO_CFLAGS for both headers
with no -l (each package self-links), run the messaging unit tests, and compile
the kernel tests.

Part of #106.

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-11 21:19:41 +01:00
Igor SirotinandClaude Fable 5 1dc549d1d7 refactor: extract libwaku cgo bridge into internal/ffi (#114)
* refactor: extract libwaku cgo bridge into internal/ffi

Move the C preamble, cgo shims, and callback plumbing from pkg/kernel/nwaku.go
into internal/ffi/libwaku.go, where #111 scaffolded them to live. The bridge
exposes Go-typed Waku* primitives (handle in, strings out) and owns the
handle->event-handler registry, so pkg/kernel is now pure Go: WakuNode keeps
its full API, logging, and error texts, and just calls ffi.

Behavior is unchanged. Dropped four C shims that had no Go callers
(cGoWakuContentTopic, cGoWakuPubsubTopic, cGoWakuDefaultPubsubTopic,
cGoWakuLightpushPublish). CGO flags still come from the environment
(Makefile/CI untouched).

Part of #106.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* refactor: move libwaku bridge into internal/ffi/libwaku subpackage

One subpackage per C library so a binary links exactly the libraries it
imports: libwaku and liblogosdelivery carry overlapping symbols and must never
link together (until logos-delivery#3851). With the package named libwaku the
Waku* prefixes became stutter, so the exported primitives drop them
(libwaku.New/Start/RelayPublish/...). internal/ffi keeps an umbrella doc.go
stating the rule.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-06-10 19:54:36 +01:00
Igor SirotinandClaude Fable 5 4fd33b6121 refactor: adopt golang-standards/project-layout (#111)
* refactor: adopt golang-standards/project-layout

Move the legacy kernel wrapper `waku/*` to `pkg/kernel/*` and rename its
package `waku` -> `kernel`; nothing outside the package imported it, so this is
a mechanical import-path/prefix change. Update the relocated Makefile's
relative dep path, the legacy CI workflows (CI/endurance/repeated) build paths,
README, and .gitignore accordingly (preserving the libwaku-cache CI from #109).

Add scaffolding for the upcoming Messaging API work: `internal/ffi` (cgo
bridge), `pkg/messaging` (high-level Node API), and `examples/`. Document
`pkg/kernel` as legacy until logos-delivery#3851 consolidates the C libraries.

Also stop tracking the accidentally-committed `waku-bindings` build artifact
and gitignore the kernel build output.

No behavior change.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* chore: cleanup

* fix: repair references to removed utils package

nwaku_test_utils.go now uses pkg/kernel/utils.GetRSSKB; the memory_record
tool is self-contained (local helpers, missing mutex restored).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-10 10:13:55 +01:00
Igor SirotinandClaude Opus 4.8 0a84f0fb7b ci: add PR-gate workflow + fix module path (#109)
* chore: rename module path to logos-delivery-go-bindings

The module path still read `logos-messaging-go-bindings`, mismatching the
repository name. Rename it to `github.com/logos-messaging/logos-delivery-go-bindings`
and update all in-repo imports. gofmt re-sorts a few import blocks as a result
(plus two files that were already unformatted on master).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* ci: add PR-gate workflow and golangci-lint config

The repo had no `on: pull_request` CI (only workflow_dispatch + nightly
schedule), so nothing validated PRs. Add `.github/workflows/pr.yml` that
builds libwaku and runs `go build`, `go vet`, golangci-lint, and a test-compile
pass on every PR. Add a baseline `.golangci.yml` (standard linters + gofmt).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* ci: scope golangci-lint to new code via new-from-merge-base

Run the full `standard` linter set but only report findings introduced since
the merge-base with master, so the legacy kernel wrapper's pre-existing issues
(unchecked defer-Close, dead helpers) don't drown the gate while new code still
gets full coverage. Fetch origin/master so the base ref is available in CI.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* ci: clone logos-delivery outside vendor/ and build in module mode

`go build` failed in CI because cloning logos-delivery into `vendor/` put Go
into vendor mode against an inconsistent `vendor/modules.txt`. Clone the
checkout into `.logos-delivery` instead and set `GOFLAGS=-mod=mod` so the gate
always builds in module mode.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* ci: use golangci-lint-action@v7 for golangci-lint v2

v6 of the action rejects golangci-lint v2 versions ("v2 is not supported by
golangci-lint-action v6"). Bump to v7.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* ci: cache libwaku, gate go mod tidy, rename LMN_DIR

- Rename LMN_DIR -> LOGOS_DELIVERY_DIR across the PR-gate and nightly
  workflows, the waku Makefile, and the build docs.
- Cache the built logos-delivery kernel keyed on its upstream HEAD SHA,
  skipping the clone + libwaku build while that commit is unchanged.
- Add a "go mod tidy is clean" step that fails if go.mod/go.sum drift.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-09 23:04:57 +01:00
Darshan ac6f8a5096 chore: align with logos-delivery rename and v0.38.0-beta (#105) 2026-02-27 21:47:05 +05:30
Igor Sirotin 95be7e9319 chore: update license files to comply with Logos licensing requirements (#104) 2026-02-06 10:37:23 +01:00
Darshan d29cc2c463 Merge pull request #102 from logos-messaging/daily_ci
fix: local build, tests, and daily CI
2026-01-08 23:28:26 +05:30
darshankabariya 2f6904edd1 update accordingl to suggestion 2026-01-08 23:27:46 +05:30
darshankabariya 4c6f87e62d chore: deprecated go-waku 2025-12-23 02:40:09 +05:30
darshankabariya c500c6d247 chore: deprecated go-waku 2025-12-23 02:21:12 +05:30
darshankabariya 79f94a234a chore: deprecated go-waku 2025-12-23 01:46:21 +05:30
darshankabariya 0f47d57aa8 chore: deprecated go-waku 2025-12-23 01:23:45 +05:30
darshankabariya 56383131f2 chore: deprecated go-waku 2025-12-22 18:52:43 +05:30
darshankabariya 9f6e9ac839 chore: update accordings to rename 2025-12-22 18:23:02 +05:30
darshankabariya cc70f9b695 chore: update accordings to rename 2025-12-22 17:55:04 +05:30
darshankabariya 284bbbc798 chore: update accordings to rename 2025-12-22 17:37:36 +05:30
darshankabariya e774350a9e chore: update accordings to rename 2025-12-22 17:21:52 +05:30
darshankabariya 4f38e24337 chore: update accordings to rename 2025-12-22 17:16:51 +05:30
darshankabariya a600695118 chore: update accordings to rename 2025-12-22 15:13:25 +05:30
darshankabariya 3b704e93c4 chore: update accordings to rename 2025-12-22 14:45:12 +05:30
darshankabariya 97abc293cb chore: update accordings to rename 2025-12-22 14:29:52 +05:30
darshankabariya c4037c9289 chore: deprecated go-waku 2025-12-22 14:15:00 +05:30
darshankabariya d698a6d1ff chore: update accordings to rename 2025-12-22 13:32:40 +05:30
darshankabariya 0f4edc1143 chore: update accordings to rename 2025-12-22 12:53:49 +05:30
darshankabariya bb454ae748 chore: update accordings to rename 2025-12-20 02:08:25 +05:30
darshankabariya 9ba1263350 chore: update accordings to rename 2025-12-20 02:05:09 +05:30
darshankabariya 20676f7d01 chore: update accordings to rename 2025-12-20 01:52:47 +05:30
darshankabariya 02c9a6afa6 chore: update accordings to rename 2025-12-20 01:11:10 +05:30
darshankabariya cdad67ee80 chore: daily ci improvement 2025-12-20 00:14:00 +05:30
darshankabariya 01b58d79f0 chore: daily ci improvement 2025-12-19 15:58:52 +05:30
darshankabariya 099ca17868 chore: daily ci improvement 2025-12-19 14:43:52 +05:30
darshankabariya 576c379ab2 chore: update accordings to rename 2025-12-19 14:09:28 +05:30
darshankabariya 300b4fbed5 chore: daily ci improvement 2025-12-16 18:28:51 +05:30
darshankabariya 4ca0da806c chore: daily ci improvement 2025-12-16 17:33:52 +05:30
darshankabariya c50de8cbc0 chore: daily ci improvement 2025-12-16 17:15:06 +05:30
Darshan 555b747d26 Merge pull request #101 from logos-messaging/rename_alignment 2025-12-16 16:12:34 +05:30
darshankabariya 433c4a90f4 chore: align with rename 2025-12-16 03:06:15 +05:30
Ivan FB 57155dfe6e Merge pull request #100 from logos-messaging/unittest_
chore: unittest failure & align renames
2025-12-15 19:00:34 +01:00
darshankabariya 48758bec78 chore: resolved TestConnectedPeersInfo 2025-12-15 01:09:46 +05:30
Darshan c1dfce50bf Merge pull request #98 from logos-messaging/adapt-for-nim-ffi
adapt nwaku.go to latest nim-ffi ctx callback and userData go first
2025-12-14 01:37:35 +05:30
Ivan Folgueira Bande de7d4cf3c9 chore: waku-go-bindings -> logos-messaging-go-bindings 2025-12-12 22:56:00 +01:00
Ivan Folgueira Bande 3a7b42d93c rm ntp and wall from timesource 2025-12-12 22:54:35 +01:00
Ivan Folgueira Bande 00a74606d3 adding timesource package 2025-12-12 22:54:28 +01:00
Ivan Folgueira Bande 5ec2ab11de waku/Makefile now assumes lib already exists 2025-12-12 22:54:20 +01:00
Ivan Folgueira Bande 3d5e8e550b chore: waku-go-bindings -> logos-messaging-go-bindings 2025-12-12 22:48:53 +01:00
Ivan Folgueira Bande 9a9a9e5c88 update go module name 2025-12-12 22:27:02 +01:00
Ivan Folgueira Bande 8c92ab1daf adapt nwaku.go to latest nim-ffi ctx callback and userData go first 2025-12-12 17:41:02 +01:00
Fabiana Cecin 31fb882511 fix: TestStressStoreQuery5kMessagesWithPagination (#70) 2025-11-10 07:00:51 -03:00
Igor SirotinandIvan FB aa64c47d2b chore: use externally provided nwaku (#95)
* chore: use externally provided nwaku

The fundamental idea is that the nwaku repository should be provided beforehand
before building waku-go-bindings

* fix: include libwaku with brackets

---------

Co-authored-by: Ivan FB <128452529+Ivansete-status@users.noreply.github.com>
2025-10-30 10:59:13 +00:00