status-im / nim-stew

stew is collection of utilities, std library extensions and budding libraries that are frequently used at Status, but are too small to deserve their own git repository.
139 stars 18 forks source link

Remove lock file #165

Closed arnetheduck closed 1 year ago

arnetheduck commented 1 year ago

The lock file breaks devel testing - CI updates are needed as well as a strategy for handling "nim important packages" builds (which build with a version of Nim different from that in the lock file)

zah commented 1 year ago

Can you elaborate on how the lockfile breaks Nim devel testing?

Even after Nim is locked in the lockfile, nimble commands such as nimble build have the option --use-system-nim which tells Nimble to use the first Nim executable found in the system PATH, so I would argue the Nim important packages use case is fully supported.

arnetheduck commented 1 year ago

on our end, we've had CI build failures because of this for weeks without anyone taking action, and it's disrupting upstream's testing as well - the lock files have also been without maintainer for months - when there's maintenance in place and a strategy for handling the ensuing lock file churn, we can readd them but until then they disrupt day-to-day work (I'm happy to close this if a PR comes along that fixes all of the above, but until then..):

arnetheduck commented 1 year ago

more of the same: https://github.com/status-im/nim-chronos/issues/337 (and similar issues elsewhere)

zah commented 1 year ago

OK, I agree that the lockfiles need to be maintained and it's reasonable to temporarily remove them until the team starts to use the intended tooling. I've tasked @yyoncho with delivering an exemplar Nimble integration in the CI of LibP2P repo which will hopefully resolve some of the remaining contention points.

There was another way to "fix" the issue here though. You could have tried the new Nimble and/or the nim-workspace workflow and produced an up-to-date lockfile.

arnetheduck commented 1 year ago

produced an up-to-date lockfile.

not quite, we need separate lock files for every nim version and significant updates to the CI scripts and a working solution for the upstream "important packages" for practically every project - this is not a 5-minute job but rather a complex task that requires dedicated time and effort.