-
Notifications
You must be signed in to change notification settings - Fork 78
chore: depr vendor and leverage nimble #3682
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
.github/workflows/ci.yml
Outdated
| uses: actions/checkout@v4 | ||
|
|
||
| - name: Install Nim | ||
| uses: jiro4989/setup-nim-action@v2 |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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
There was a problem hiding this comment.
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" |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
7d8fbd3 to
351cac6
Compare
|
@darshankabariya FYI in this #3670 I bumped versions on nim-chronos and nim-libp2p which involves new deps: nim-lsquic and nim-jwt. |
685ba5c to
7d34b1e
Compare
Sure, will do. I tried earlier, but it failed. I need to resolve the conflict carefully now. |
d497532 to
7d34b1e
Compare
774bb40 to
dafdee9
Compare
f2476a2 to
2d40cb9
Compare
c6234e6 to
97b4665
Compare
3712d7d to
c5e206e
Compare
|
You can find the image built from this PR at Built from dc00236 |
4b1e00f to
f13113c
Compare
|
@darshankabariya can you please share, what's the state of this PR? |
Hi @igor-sirotin, this was Ivan’s idea to remove the git submodules and use Nimble instead. Most of the work is done. I’ve moved all vendors to waku.nimble, except zerokit and waku-rln-contract, due to Nimble limitations. It’s working fine locally—builds and tests pass on macOS and Linux—but a few CI checks are still failing. Right now it’s blocked because of a security compliance issue. |
Ok cool, would be cool to get it merged. Let me know if there's anything I can help with. |
it's not ready merge. will update you soon. |
51c304b to
564ecb4
Compare
|
Probably a good idea to not change the build system before we merge the send API and health API PRs. |
Hi @fcecin - there’s no hurry to merge this branch. pls let me know when you’re planning to merge the send and Health API PRs. @NagyZoltanPeter |
Send-api is now merged! 😀 |
a490685 to
1fd2535
Compare
closes #3672