Skip to content

chore: depr vendor and leverage nimble#3682

Open
darshankabariya wants to merge 34 commits intomasterfrom
deprect_vendor
Open

chore: depr vendor and leverage nimble#3682
darshankabariya wants to merge 34 commits intomasterfrom
deprect_vendor

Conversation

@darshankabariya
Copy link
Contributor

@darshankabariya darshankabariya commented Jan 5, 2026

  • Removed all submodules except the native ones still required (nim-ffi, zerokit, waku-rlnv2-contract, nph).
  • Day-to-day commands (make wakunode2, make test, etc.) remain unchanged.
  • we no longer need nimbus-build-system.
  • Update CI according.
  • latest version of all submodule
  • Plan to replace the remaining four vendor libraries with nimble packages and delete ./vendor entirely.

closes #3672

uses: actions/checkout@v4

- name: Install Nim
uses: jiro4989/setup-nim-action@v2
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

instead of installing nim, it makes more sense to install nimble and have nimble manage nim.

Nim itself also needs to be locked down for a reproducible build.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See also github.com/nim-lang/setup-nimble-action

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

also, for a reproducible build, you need to lock the nimble version, which setup-nimble-action allows you to do.

waku.nimble Outdated
requires "nim >= 2.2.4"

# Pure Nim packages - pinned to exact commits via Nimble
requires "https://github.com/status-im/nim-chronicles#54f5b726025e8c7385e3a6529d3aa27454c6e6ff"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

using requires this way will effectively prevent third-parties from depending on waku, unless they use the exact same commit of everything.

nimble lock can be used to produce a lock file that allows an application to use a locked set of deps while at the same time allowing others that depend on waku to be more flexible in the versions they use. For example, an application might want to use a newer version of chronicles for logging, and it's unreasonable for waku to limit this.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the idea. I’m now using nimble.lock to get an exact replica of the packages for the waku build.

@darshankabariya darshankabariya force-pushed the deprect_vendor branch 5 times, most recently from 7d8fbd3 to 351cac6 Compare January 6, 2026 07:36
@NagyZoltanPeter
Copy link
Contributor

@darshankabariya FYI in this #3670 I bumped versions on nim-chronos and nim-libp2p which involves new deps: nim-lsquic and nim-jwt.
These changes comes with some code adjustments. I suggest later incorporate these changes into this PR.

@darshankabariya darshankabariya force-pushed the deprect_vendor branch 8 times, most recently from 685ba5c to 7d34b1e Compare January 8, 2026 11:31
@darshankabariya
Copy link
Contributor Author

@darshankabariya FYI in this #3670 I bumped versions on nim-chronos and nim-libp2p which involves new deps: nim-lsquic and nim-jwt. These changes comes with some code adjustments. I suggest later incorporate these changes into this PR.

Sure, will do. I tried earlier, but it failed. I need to resolve the conflict carefully now.

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.

chore: completely stop using vendor folder and only use Nimble

6 participants