Stripping nim from the lock breaks nimble 0.22.3: 41 packages list nim in
their dependencies, so removing the nim entry makes resolution fail with
"key not found: nim". nimble already has the right knob — --useSystemNim
("Use system nim and ignore nim from the lock") — which skips the locked
nim (no download, no checksum) while still verifying every other locked
dependency, and uses the nim the CI already installed.
This is the proper fix for the Windows checksum mismatch: nim's tree
checks out differently per platform, so its locked checksum is unreliable
there. Verified locally with nimble 0.22.3 (exit 0, system nim used, lock
left untouched).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Restores a fix that was dropped in e5b46e5e and re-exposed when cda01971
reintroduced nim/nimble into nimble.lock: the nim package never matches
its Linux-computed checksum on Windows because nim's own .gitattributes
forces line endings on parts of its tree, so the SHA1 differs regardless
of core.autocrlf. autocrlf alone therefore cannot fix the nim mismatch.
Remove nim/nimble from the lock before `nimble setup` (they are provided
by the toolchain installed in CI, not real project deps). Added to the
Windows workflow, which never had it, and restored in ci.yml's setup
steps since the cache-key bump now forces those to run on a fresh tree.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The earlier autocrlf fix ran in a pwsh step, which only configures Git
for Windows. nimble clones its dependency packages from the MSYS2 shell,
whose git reads a separate global config, so autocrlf stayed enabled
there. That kept altering dependency source trees, breaking their SHA1
match against nimble.lock (e.g. the nim package), so nimble re-downloaded
and hung. Repeat the setting in an MSYS2-shell step so nimble's own git
clones produce Linux-identical trees.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Windows Git defaults to core.autocrlf=true. When nimble clones dependency
packages into nimbledeps/, the LF→CRLF conversion changes the SHA1 of the
source tree relative to the Linux-computed checksums in nimble.lock.
nimble then treats every cached package as invalid and re-downloads on each
invocation; in PR #3919 the re-download of bearssl_pkey_decoder during
`nimble wakunode2` hung until the 6h job timeout.
Set core.autocrlf=false / core.eol=lf globally before checkout so every
package nimble clones keeps LF endings and matches the Linux SHA1s. This
also obsoletes the targeted sed patch for the nim checksum, which is
removed.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
* 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