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 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>
* 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
* 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>
* ci.yml: avoid calling brew link libpq --force on macos
PRs started to fail due to that but we are not actually running
postgres tests on MacOS
* fix: remove brew linking for test job
* fix: conditional compilation for macos
* fix: remove autoformatted details
---------
Co-authored-by: rymnc <43716372+rymnc@users.noreply.github.com>
* chore(rln-relay-v2): additional testing
* fix: bump librln to v0.4.2 for v2
* fix: catch possible error from the copyFrom
* ci: rename step title for rln-version
* postgres: first step to implement partition management
* postgres_driver: use of times.now().toTime().toUnix() instead of Moment.now()
* postgres migrations: set new version to 2
* test_driver_postgres: use of assert instead of require and avoid using times.now()
* postgres_driver: better implementation of the reset method with partitions
* Remove createMessageTable, init, and deleteMessageTable procs
* postgres: ensure we use the version 15.4 in tests
* postgres_driver.nim: enhance debug logs partition addition
* ci.yml: ensure logs are printed without colors
* postgres_driver: starting the loop factory in an asynchronous task
* postgres_driver: log partition name and size when removing a partition
* libwaku.nim: unsubscribe -> unsubscribeAll to make it build properly
We introduced a change in the next PR
https://github.com/waku-org/nwaku/pull/1983/
that made the `libwaku` to stop building properly
(make libwaku) because a signature change in the
`unsubscribe` proc of waku/waku_relay/protocol.nim.
This commit is a temporary workaround to make it work,
and not block any ongoing PR tests,
although not exactly as it is expected because we are
unsubscribing from all topics.
* ci.yml: adds library/** to force tests when changes under that folder
* removing implicit dependency with libpq if postgres is not being used.
* We only run the postgres tests when explicitly willing to, i.e. make
POSTGRES=1 test. The reason is that the postgres tests expect a
database instance to be running locally.
* chore: remove v1 code
* chore: deprecate support for v1 compatibility from JSON-RPC API
* chore: remove v1 tests from JSON-RPC suite
* chore: remove wakubridge code
* chore: remove v1 compatibility functions
* chore: remove support for v1 payloads from chat2 app
* chore: remove v1 from CI processes
* fix: lingering references to private API functions
* fix: remove v1 compat from chat2
* fix: some more lingering references in tests
* Refactoring the Waku Archive. Simplifying the app.nim
This change is needed to accommodate the further PRs where we will integrate Postgres in `wakunode2`.