Hi all, I've read through this link: https://guix.gnu.org/manual/en/html_node/Package-Transformation-Options.html
But I seem to get unexpected outcomes in some examples - see below. Any advice or confirmation that this is a bug or misuse by me? Thanks, Phil. A simple case of package transformation without any dependencies seems to work fine - for example, let's upgrade pandas to v1.1.5: *$ guix package -i python-pandas python -p ~/profiles/pandas-1.1.5 --with-git-url=python-pandas=https://github.com/pandas-dev/pandas.git <https://github.com/pandas-dev/pandas.git> --with-commit=python-pandas=v1.1.5 --without-tests=python-pandasThe following packages will be installed: python 3.8.2 python-pandas 1.1.5updating checkout of 'https://github.com/pandas-dev/pandas.git'. <https://github.com/pandas-dev/pandas.git'.>..retrieved commit af3e67970ff8e9e3eccfef54c8de96f850e36912The following derivation will be built: /gnu/store/cd045q1l75wx59d62f1b8sb6p92yjf4d-profile.drvbuilding CA certificate bundle...listing Emacs sub-directories...building fonts directory...building directory of Info manuals...building database for manual pages...building profile with 2 packages...hint: Consider setting the necessary environment variables by running: GUIX_PROFILE="/home/phil/profiles/pandas-1.1.5" . "$GUIX_PROFILE/etc/profile"Alternately, see `guix package --search-paths -p "/home/phil/profiles/pandas-1.1.5"'.$ GUIX_PROFILE="/home/phil/profiles/pandas-1.1.5"$ . "$GUIX_PROFILE/etc/profile"$ python3Python 3.8.2 (default, Jan 1 1970, 00:00:01)[GCC 7.5.0] on linuxType "help", "copyright", "credits" or "license" for more information.>>> import pandas as pd>>> pd.__version__'0+unknown'>>>* The right commit is taken from github, and after the build we use the profile to access our new version of pandas (the 0+unknown version I think is caused by building from git). Next, I try exactly the same transformation, but I want to instead build one of my own applications which has python-pandas as propagated input. My understanding from the docs is this should work find as a deep transformation should occur? *$ guix package -i foo python -p ~/profiles/foo-pandas-1.1.5 --with-git-url=python-pandas=https://github.com/pandas-dev/pandas.git <https://github.com/pandas-dev/pandas.git> --with-commit=python-pandas=v1.1.5 --without-tests=python-pandas --without-tests=python-dask --without-tests=fooThe following packages will be installed: python 3.8.2 foo 3.196.0updating checkout of 'ssh://git@bitbucket:7999/foo/foo.git'...retrieved commit a723e52bec22ca36bbfda62f34a1f46e0065b7eaupdating checkout of 'https://github.com/pandas-dev/pandas.git'. <https://github.com/pandas-dev/pandas.git'.>..retrieved commit af3e67970ff8e9e3eccfef54c8de96f850e36912hint: Consider setting the necessary environment variables by running: GUIX_PROFILE="/home/phil/profiles/simm-pandas-1.1.5" . "$GUIX_PROFILE/etc/profile"Alternately, see `guix package --search-paths -p "/home/phil/profiles/simm-pandas-1.1.5"'.$ GUIX_PROFILE="/home/phil/profiles/simm-pandas-1.1.5"$ . "$GUIX_PROFILE/etc/profile"$ python3Python 3.8.2 (default, Jan 1 1970, 00:00:01)[GCC 7.5.0] on linuxType "help", "copyright", "credits" or "license" for more information.>>> import pandas as pd>>> pd.__version__'1.1.2'>>>* Everything looks to be going to plan, but when I import pandas using the new profile I get version *1.1.2* - which is my standard untransformed python-pandas package - no replacement has taken place, despite the process reporting the correct location and commit id for the pandas checkout. This either looks like a) a bug, or b) I've misunderstood the scope of the transformation syntax. One last detail - my own definiton of python-pandas v1.1.2 inherits from the gnu package in Guix. Whilst I inherit the name python-pandas the actual package is called python-pandas-foo, and it is referenced in foo's package's propagated inputs like this: *("python-pandas" ,python-pandas-foo)* Package definition snippet: *(define-public python-pandas-foo (package (inherit python-pandas) (version "1.1.2") (source (origin (method url-fetch) (uri (pypi-uri "pandas" version)) (sha256 (base32 "0i0lbp26kzbq1qa4rv2s2r42m9d95svjrfflmi01plygla3zskxn")))) .... and so on* I don't think this last detail should matter, but I include is as the only other significant detail that may differ from other systems.
