Closed Clonkk closed 3 years ago
Hi. Hm, Fidget requires typography 0.7.5
not >= 0.7.5
. See https://github.com/treeform/fidget/blob/master/fidget.nimble.
This 0.7.5 will result in Pixie 1.0.3 for Typography as well, resolving the incompatibility issue. We have locked the versions to ensure Fidget works, I'm not sure why later versions are installed but they are not what Fidget requires and that is the problem.
Hello, Indeed, you are right. I was hasty (nad mistaken) in my package versions dependencies analysis.
Here is the output on my first nimble install fidget
Downloading https://github.com/treeform/fidget using git
Verifying dependencies for fidget@0.7.4
Installing chroma@0.2.3
Downloading https://github.com/treeform/chroma using git
Verifying dependencies for chroma@0.2.3
Installing chroma@0.2.3
Success: chroma installed successfully.
Installing typography@0.7.5
Downloading https://github.com/treeform/typography using git
Verifying dependencies for typography@0.7.5
Installing pixie@>= 1.0.3
Downloading https://github.com/treeform/pixie using git
Verifying dependencies for pixie@1.1.0
Installing vmath@>= 0.4.0
Downloading https://github.com/treeform/vmath using git
Verifying dependencies for vmath@0.5.0
Installing vmath@0.5.0
Success: vmath installed successfully.
Installing chroma@>= 0.2.5
Downloading https://github.com/treeform/chroma using git
Verifying dependencies for chroma@0.2.5
Installing chroma@0.2.5
Success: chroma installed successfully.
Info: Dependency on zippy@>= 0.3.5 already satisfied
Verifying dependencies for zippy@0.5.3
Installing flatty@>= 0.1.3
Downloading https://github.com/treeform/flatty using git
Verifying dependencies for flatty@0.2.1
Installing flatty@0.2.1
Success: flatty installed successfully.
Installing nimsimd@>= 1.0.0
Downloading https://github.com/guzba/nimsimd using git
Verifying dependencies for nimsimd@1.0.0
Installing nimsimd@1.0.0
Success: nimsimd installed successfully.
Installing bumpy@>= 1.0.2
Downloading https://github.com/treeform/bumpy using git
Verifying dependencies for bumpy@1.0.2
Info: Dependency on vmath@>= 0.4.0 already satisfied
Verifying dependencies for vmath@0.5.0
Installing bumpy@1.0.2
Success: bumpy installed successfully.
Installing pixie@1.1.0
Success: pixie installed successfully.
Info: Dependency on vmath@>= 0.4.0 already satisfied
Verifying dependencies for vmath@0.5.0
Info: Dependency on chroma@>= 0.2.3 already satisfied
Verifying dependencies for chroma@0.2.5
Info: Dependency on print@>= 0.1.0 already satisfied
Verifying dependencies for print@0.2.0
Info: Dependency on bumpy@>= 1.0.0 already satisfied
Verifying dependencies for bumpy@1.0.2
Info: Dependency on vmath@>= 0.4.0 already satisfied
Verifying dependencies for vmath@0.5.0
Info: Dependency on flatty@>= 0.1.3 already satisfied
Verifying dependencies for flatty@0.2.1
Installing typography@0.7.5
Success: typography installed successfully.
Installing pixie@1.0.3
Downloading https://github.com/treeform/pixie using git
Tip: 158 messages have been suppressed, use --verbose to show them.
Error: Downloaded package's version does not satisfy requested version range: wanted 1.0.3 got 1.1.0.
Running nimble install fidget
a second time yields a different package having incompatible versions. I'm guessing some version were still installed by nimble in the meantime so the dependencies resolution (or lack of) failed in another place.
This was my second attempt :
Downloading https://github.com/treeform/fidget using git
Verifying dependencies for fidget@0.7.4
Info: Dependency on chroma@0.2.3 already satisfied
Verifying dependencies for chroma@0.2.3
Info: Dependency on typography@0.7.5 already satisfied
Verifying dependencies for typography@0.7.5
Info: Dependency on pixie@>= 1.0.3 already satisfied
Verifying dependencies for pixie@1.1.0
Info: Dependency on vmath@>= 0.4.0 already satisfied
Verifying dependencies for vmath@0.5.0
Info: Dependency on chroma@>= 0.2.5 already satisfied
Verifying dependencies for chroma@0.2.5
Info: Dependency on zippy@>= 0.3.5 already satisfied
Verifying dependencies for zippy@0.5.3
Info: Dependency on flatty@>= 0.1.3 already satisfied
Verifying dependencies for flatty@0.2.1
Info: Dependency on nimsimd@>= 1.0.0 already satisfied
Verifying dependencies for nimsimd@1.0.0
Info: Dependency on bumpy@>= 1.0.2 already satisfied
Verifying dependencies for bumpy@1.0.2
Info: Dependency on vmath@>= 0.4.0 already satisfied
Verifying dependencies for vmath@0.5.0
Info: Dependency on vmath@>= 0.4.0 already satisfied
Verifying dependencies for vmath@0.5.0
Info: Dependency on chroma@>= 0.2.3 already satisfied
Verifying dependencies for chroma@0.2.5
Info: Dependency on print@>= 0.1.0 already satisfied
Verifying dependencies for print@0.2.0
Info: Dependency on bumpy@>= 1.0.0 already satisfied
Verifying dependencies for bumpy@1.0.2
Info: Dependency on vmath@>= 0.4.0 already satisfied
Verifying dependencies for vmath@0.5.0
Info: Dependency on flatty@>= 0.1.3 already satisfied
Verifying dependencies for flatty@0.2.1
Installing pixie@1.0.3
Downloading https://github.com/treeform/pixie using git
Verifying dependencies for pixie@1.0.3
Info: Dependency on vmath@>= 0.4.0 already satisfied
Verifying dependencies for vmath@0.5.0
Info: Dependency on chroma@>= 0.2.3 already satisfied
Verifying dependencies for chroma@0.2.5
Info: Dependency on zippy@>= 0.3.5 already satisfied
Verifying dependencies for zippy@0.5.3
Info: Dependency on flatty@>= 0.1.3 already satisfied
Verifying dependencies for flatty@0.2.1
Info: Dependency on nimsimd@>= 1.0.0 already satisfied
Verifying dependencies for nimsimd@1.0.0
Info: Dependency on bumpy@>= 1.0.2 already satisfied
Verifying dependencies for bumpy@1.0.2
Info: Dependency on vmath@>= 0.4.0 already satisfied
Verifying dependencies for vmath@0.5.0
Installing pixie@1.0.3
Success: pixie installed successfully.
Info: Dependency on vmath@>= 0.4.0 already satisfied
Verifying dependencies for vmath@0.5.0
Info: Dependency on print@>= 0.1.0 already satisfied
Verifying dependencies for print@0.2.0
Installing opengl@>= 1.2.3
Downloading https://github.com/nim-lang/opengl using git
Verifying dependencies for opengl@1.2.6
Installing x11@>= 1.1
Downloading https://github.com/nim-lang/x11 using git
Verifying dependencies for x11@1.1
Installing x11@1.1
Success: x11 installed successfully.
Installing opengl@1.2.6
Success: opengl installed successfully.
Installing html5_canvas@>= 1.3
Downloading https://gitlab.com/define-private-public/HTML5-Canvas-Nim using git
Verifying dependencies for html5_canvas@1.3
Installing html5_canvas@1.3
Success: html5_canvas installed successfully.
Installing staticglfw@>= 4.1.2
Downloading https://github.com/treeform/staticglfw using git
Verifying dependencies for staticglfw@4.1.2
Info: Dependency on opengl@>= 1.2.3 already satisfied
Verifying dependencies for opengl@1.2.6
Info: Dependency on x11@>= 1.1 already satisfied
Verifying dependencies for x11@1.1
Installing staticglfw@4.1.2
Success: staticglfw installed successfully.
Info: Dependency on cligen@>= 1.0.0 already satisfied
Verifying dependencies for cligen@1.4.1
Installing supersnappy@>= 1.0.0
Downloading https://github.com/guzba/supersnappy using git
Verifying dependencies for supersnappy@2.0.0
Installing supersnappy@2.0.0
Success: supersnappy installed successfully.
Info: Dependency on bumpy@>= 1.0.0 already satisfied
Verifying dependencies for bumpy@1.0.2
Info: Dependency on vmath@>= 0.4.0 already satisfied
Verifying dependencies for vmath@0.5.0
Tip: 269 messages have been suppressed, use --verbose to show them.
Error: Cannot satisfy the dependency on chroma 0.2.5 and chroma 0.2.3
Yeah I wish we got more helpful errors here, it'd be nice to know which packages required the different versions.
Another person ran into this, from having a later Chroma installed by a later Pixie. Dom ended up suggesting a new nimble dir since there's bug(s) in Nimble. See the convo here in Discord: https://discord.com/channels/371759389889003530/371759607934353448/820388609508769802 https://dl3.pushbulletusercontent.com/t4HXVghftQCFNKT6NEuSsmYGY7ynRWwa/image.png
I think just uninstalling Chroma (which got a later version from the later version of Pixie) may resolve the issue though but the other person who had this tried and it didn't work. I'm not sure, something with Nimble is off unfortunately.
Hi. Hm, Fidget requires typography 0.7.5 not >= 0.7.5. See https://github.com/treeform/fidget/blob/master/fidget.nimble.
This 0.7.5 will result in Pixie 1.0.3 for Typography as well, resolving the incompatibility issue. We have locked the versions to ensure Fidget works, I'm not sure why later versions are installed but they are not what Fidget requires and that is the problem.
Unfortunately by doing this you are asking for trouble. Libraries shouldn't lock dependencies, only application packages should.
Sadly without lock files it's a pain I know, but I think you'll have much less Nimble issues if you change these to not be locked to a single version.
What you can do is provide a list of requires
lines (that specify concrete versions) for applications to use to get a reproducible build that works.
I mean, we're just trying to keep Fidget on life support for now while working on Fidget 2. This is why we have locked versions and letting it be. This is the first I've heard that we should not be requiring specific versions.
What you can do is provide a list of requires lines (that specify concrete versions) for applications to use to get a reproducible build that works.
That is the requires lines in the nimble file we already have I think? Github Actions verifies them for us so we know they work. For some reason though Nimble can't make that work for some users who try to install and use Fidget. Not sure what goes wrong there that doesn't go wrong with a fresh environment.
Since locking isn't ok, I'm going to go back to following the releases: https://github.com/treeform/fidget/pull/146
(This'll mean we need to think about Fidget [current] each time we work on this libs which is what we were trying to avoid but it seems unavoidable.)
That is the requires lines in the nimble file we already have I think? Github Actions verifies them for us so we know they work. For some reason though Nimble can't make that work for some users who try to install and use Fidget. Not sure what goes wrong there that doesn't go wrong with a fresh environment.
Is that in fidget's nimble file though? What I am talking about is a separate list of "requires" that other developers can put in their program's .nimble files. It's definitely a workaround though so I wouldn't blame you for not creating it.
I think we'll just follow releases with Fidget [current], it's a bit more to think about but it's more in line with what Nimble expects so I'd rather follow the normal path now that it's become clear we took a wrong turn here haha.
Fidget installation does to err anymore:
Should this issue be closed or renamed?
I'll close for now. We can reopen it if it arise again.
There is an error in Nimble specified versions of dependencies.
Fidget require Typography >= 0.7.5 => latest is 0.7.7 In the nimble file for Typography v0.7.7 it requires Pixie >= 1.0.4 .
In the latest fidget version it requires Pixie 1.0.3.
=> These range are incompatible. Minimum acceptable version for Pixie package is 1.0.4 or Typography needs to be restrained to a version that accepts Pixie 1.0.3.