The librln cache key/path hardcoded v0.9.0, so after the zerokit v2.0.2
bump it never matched the built artifact and librln was rebuilt every run.
Derive the version via `make print-librln-version` so it tracks the
Makefile automatically.
Drop the cargo/zerokit-target cache: zerokit is bumped rarely, so the
librln artifact cache covers the common case, and caching the target dir
inside the submodule broke `git submodule update --init` (non-empty dir).
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Caching only nimbledeps/ was insufficient: make invokes `nimble <task>`,
which re-resolves dependencies on every build using ~/.nimble/pkgcache
(nimble's git clone/version cache). That dir was not cached, so every
cache-hit build re-cloned ~50 packages and intermittently failed when
the runner's `git fetch --tags` flaked, breaking nimble's SAT solver.
Add ~/.nimble to the cached paths (alongside nimbledeps/ + nimble.paths)
so re-resolution is served from the local clone cache. Bump the cache
version to v3 since the cached contents changed.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The Windows build referenced steps.cache-nimbledeps.outputs.cache-hit
but never defined a Cache nimble deps step, so the condition was always
true and nimble deps were never cached on Windows.
Add the cache step with the same versioned key + restore-keys as the
Linux/macOS jobs, and move the .nimble-setup stamp touch into its own
unconditional step so a cache hit doesn't re-trigger `nimble setup`.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The nimbledeps cache key was based only on hashFiles(nimble.lock, ...),
which hasn't changed, so PRs kept restoring a stale, incomplete master
cache. GitHub caches are immutable per key, so that poisoned cache was
never refreshed and `make all` re-resolved/re-downloaded deps every run.
Add a bumpable NIMBLE_CACHE_VERSION token to abandon the poisoned cache
and restore-keys for warm starts. `nimble setup --localdeps` fully
installs the locked dep set, so a fresh v2 cache will be complete.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Avoid rebuilding librln (zerokit) from Rust source on every job. Cache the
final static library keyed by OS + RLN version + zerokit submodule SHA, and
add a Cargo registry/target fallback cache for the miss path. Applied to the
build and test jobs in ci.yml.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* fix(node-info): real Version + new Commit in Nix/lgpm builds
getNodeInfo Version returned "n/a" on Nix-built libs (and lgpm
releases built from the flake) because nix/default.nix never passed
-d:git_version. A flake sandbox has no .git, so git describe is
impossible; derive the semver from waku.nimble's version field plus
the flake short commit, and expose the full commit SHA via a new
Commit node info id.
- waku_state_info: add Commit to NodeInfoId + dispatch git_commit
- waku_node: add git_commit {.strdefine.} (default "n/a")
- node start logs ("Starting Waku node" / "Running nwaku node") now
print commit = git_commit alongside version
- Makefile: inject -d:git_commit (full SHA), mirrors docker label
- nix/default.nix: accept gitVersion/gitCommit, pass as nim defines
- flake.nix: gitVersion = <nimble version>-g<shortRev>, gitCommit = rev
- CI version-check (PR only): ancestor-aware `git describe --tags
--abbrev=0` vs PR HEAD, base-version compare, so waku.nimble is kept
current early and a new tag never breaks in-flight PRs
- release-assets.yml: gate build/upload on a verify-version job
asserting tag base == waku.nimble (RC tags allowed), so a mismatched
tag publishes no artifacts
- docs: prepare_release.md explains the bump-before-tag requirement
Refs: status-im/infra-logos#4Closes: logos-messaging/logos-delivery#3884
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* docs: simplify
* chore: update version in waku.nimble
* fix(node-info): remove Commit node info field
Drop the newly added Commit (full SHA) node info id and its
git_commit compile-time define plumbing across Makefile, flake.nix
and nix/default.nix; revert the start/run log lines to version only.
The PR now solely fixes the getNodeInfo Version regression.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* chore(nix): align git_version format closer to Makefile
Adds the `v` prefix and uses a 6-char SHA so Nix-built nodes report
e.g. `v0.38.1-g52e980`, matching the shape of `git describe --abbrev=6
--always --tags` aside from the unreachable commit-count segment (tag
metadata isn't exposed through the flake input protocol).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* allow create libwaku pkg
* fix Makefile create library extension libwaku
* make sure libwaku is built as part of assets
* Makefile: avoid rm libwaku before building it
* properly format debian pkg in gh release workflow
* waku.nimble set dylib extension correctly
* properly pass lib name and ext to waku.nimble
* Bump commit for vendor wakurlnv2contract
* Update RLN registration proc for contract updates
* add option to runAnvil for state dump or load with optional contract deployment on setup
* Code clean up
* Upodate rln relay tests to use cached anvil state
* Minor updates to utils and new test for anvil state dump
* stopAnvil needs to wait for graceful shutdown
* configure runAnvil to use load state in other tests
* reduce ci timeout
* Allow for RunAnvil load state file to be compressed
* Fix linting
* Change return type of sendMintCall to Futre[void]
* Update naming of ci path for interop tests
* properly pass userMessageLimit to OnchainGroupManager
* waku.nimble 2.2.4 Nim compiler
* rm stew/shims/net import
* change ValidIpAddress.init with parseIpAddress
* fix serialize for zerokit
* group_manager: separate if statements
* protocol_types: add encode UInt32 with zeros up to 32 bytes
* windows build: skip libunwind build and rm libunwind.a inlcusion step
* bump nph to overcome the compilation issues with 2.2.x
* bump nim-libp2p to v1.10.1
* avoid compile TRACE level to reduce libwaku size
* waku_rln_relay/constants.nim: avoid adding constant seq that is used in tests only
* ci:yml USE_LIBBACKTRACE=0 to force -d:debug when running tests
* undo apt install libpcre (not circuit-relay related.)
* nat.nim: protect against possible exceptions when calling getExternalIP
* new external CLI argument, isRelayClient
* waku factory change to mount circuit hop proto by default
* waku_node: move autonat_service to a separate module
* Prevent multiple nat module initialization that cause dead lock in nat refresh thread tear down during tests.
* NPROC to 1 to avoid parallel test runs can lead to timing and port allocation issues
Co-authored-by: gabrielmer <101006718+gabrielmer@users.noreply.github.com>