Hi Daniel, 2024/06/17, Daniel Littlewood:
> The file guix.scm contains (by the way, why is the use-modules syntax > different here?) > (use-modules (guix packages) > (guix download) > (guix utils) > (guix build-system ruby) > (ruby)) > (package > (name "my-project") > (version "1.0.0") > (license #f) > (source #f) > (build-system ruby-build-system) ; "no build system" was not an option > (propagated-inputs (list ruby-3.3)) > (synopsis "") > (description "") > (homepage "")) > > Now I become confused: > guix shell -L ~/my-channel -D -f guix.scm # works, as expected > ruby --version > ruby 3.1.4p223 (2023-03-30 revision 957bb7cb81) [x86_64-linux] > # this is *not* the host ruby: > exit > ruby --version > ruby 2.7.8p225 (2023-03-30 revision 1fd455848) [x86_64-linux] > > I don't know where it is getting 3.1.4 from! I have not written it > anywhere. I do recognise it - I think I have previously installed it > at some point. But I don't know where it's being pulled from - some > cache? It looks like Remco's approach using manifests should work, but > I wonder: does anyone know what's wrong with my guix.scm? I think you're getting the build dependency of ruby-3.3 because you're using -D to get the development dependencies of the defined package. It should probably work when you use "inputs" instead of "propagated-inputs" here when using -D. I've never used "propagated-inputs" but I think this is not the way to use them. A typical use, I think, would be some package which enhances some other package. So say you have a package "foo" which you could install to do it's thing but there's also "foo-with-superpowers" which depends on "foo" being installed but add superpowers to that command and function through the original package. Cheers, Remco