You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
After installing dependencies with one Nimble version and switching to a different Nimble version, the project will not compile.
This situation was detected in two of nim-libp2p's jobs, specifically Windows' Nim1.6.21 and Nim2.0.8 jobs. Randomly, one of these jobs would fail when attempting to run the tests. When compiling, it would fail to find the installed packages.
We traced it to caching: There's one step that will install dependencies in local mode and cache the directory. Because both Windows' jobs share the cache key, all jobs posterior to caching will use the same structure, either Nimble < 0.14.0 (Nim 1.6.21) or Nimble >= 0.14.0 (Nim2.0.8), depending on which stores the directory in the cache.
This led to the hypothesis of incompatible nimbledeps structures, at least in one of the directions. Which one I can't say, because the cache is gone and I couldn't reproduce it locally. Both my Fedora and WSL machines failed to compile when switching Nimble versions; unlike Github, where there was (seemingly) at least one-way compatibility.
We made the runner consistently pass by adding the Nim version to the cache key. While this does not definitively prove the hypothesis, it supports the explanation.
To reproduce
Install dependencies for one Nim version
Run the code. It should work.
Switch to the other Nim version
Run the code. It fails to find libraries.
Expected behaviour
I actually don't know what the expected behaviour is for this. Maybe there's no intention to support this.
Versions
Nim: 1.6.20 and 2.0.8
The text was updated successfully, but these errors were encountered:
Problem
After installing dependencies with one Nimble version and switching to a different Nimble version, the project will not compile.
This situation was detected in two of nim-libp2p's jobs, specifically Windows' Nim1.6.21 and Nim2.0.8 jobs. Randomly, one of these jobs would fail when attempting to run the tests. When compiling, it would fail to find the installed packages.
We traced it to caching: There's one step that will install dependencies in local mode and cache the directory. Because both Windows' jobs share the cache key, all jobs posterior to caching will use the same structure, either
Nimble < 0.14.0 (Nim 1.6.21)
orNimble >= 0.14.0 (Nim2.0.8)
, depending on which stores the directory in the cache.This led to the hypothesis of incompatible
nimbledeps
structures, at least in one of the directions. Which one I can't say, because the cache is gone and I couldn't reproduce it locally. Both my Fedora and WSL machines failed to compile when switching Nimble versions; unlike Github, where there was (seemingly) at least one-way compatibility.We made the runner consistently pass by adding the Nim version to the cache key. While this does not definitively prove the hypothesis, it supports the explanation.
To reproduce
Expected behaviour
I actually don't know what the expected behaviour is for this. Maybe there's no intention to support this.
Versions
Nim: 1.6.20 and 2.0.8
The text was updated successfully, but these errors were encountered: