-
-
Notifications
You must be signed in to change notification settings - Fork 14
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
.gitignore, config, nimble: use lock file #418
Conversation
Unfortunately, the Nim 1.6.0 release doesn't include a Nimble version with the We could (maybe pretty easily) update the Nimble version that we use in the GitHub Actions environment, so that we have the |
73dccf1
to
ce9f8db
Compare
This looks promising: nim-lang/Nim@908fc2a |
Nim 1.6.2 RC1 is now out, which is intended to support the Nimble that can use lockfiles. But it doesn't ship with it. See: |
ce9f8db
to
477b76a
Compare
477b76a
to
1dd2198
Compare
Nim 2.0 should ship with a nimble version that supports lock files. |
1dd2198
to
f3cfca9
Compare
With f3cfca9, |
f3cfca9
to
d490263
Compare
The error here is unexpected to me. I'm not sure what I'm supposed to do. To ask, I've opened nim-lang/Nim#22438. |
Run `nimble lock` and `nimble setup`, and remove versions from the nimble file. Closes: 467
d490263
to
addbc16
Compare
nimble.lock
file
Only 23 months for this one. Please see: |
Otherwise, it seems that re-running `nimble setup` adds the whole block (!) so e.g. `--noNimblePath` would be in this file twice.
I tested the previous commit by tagging it, and pushing that tag to exercism/configlet, which triggers the build workflow. But it looks like it also triggered the fetch-configlet workflow, which seems to fail on Windows [1]. Create an empty commit so that there's no failing fetch-configlet check on the pull request. [1] exercism#786
Before this commit, configlet pinned the version of each Nimble dependency by using the .nimble file. This was the best approach until recently, and was good enough for creating configlet releases, but it wasn't robust - Nimble wasn't designed to produce reproducible builds with that mechanism. For example, Nimble didn't check the hash of a package at build time to ensure that it was unmodified.
Now that we've updated to Nim 2.0 and vendored the parseopt3 dependency, let's use Nimble's new lock file mechanism. This should be robust.
Run
nimble lock
andnimble setup
, and remove versions from the nimble file.From the docs for
nimble lock
:and the docs for
nimble setup
:Closes: #467
To-do:
nimble build
.nimble setup
Refs: d6d7283
Closes: #467