Hi Efraim! On 10/25/20 9:52 AM, Efraim Flashner wrote: > On Sat, Oct 24, 2020 at 09:42:13PM +0200, Zelphir Kaltstahl wrote: >> Hello Efraim! >> >> On 10/21/20 9:18 AM, Efraim Flashner wrote: >>> On Mon, Oct 19, 2020 at 11:12:35PM +0200, Zelphir Kaltstahl wrote: >>>> Meanwhile I have managed to run the jupyterlab-server tests, as >>>> described in more details here: >>>> https://github.com/jupyterlab/jupyterlab_server/issues/128 >>>> >>>> Indeed, in version 1.2.0 the tests fail the same way they fail when I >>>> try to create my environment. This means the next thing to fix would >>>> probably be to use another version of jupyterlab-server. 1.2.0 is a tag >>>> in the jupyterlab-server repository, which _seems_ to be the latest >>>> "stable" version, before a lot of alpha, beta, and release-candidate >>>> versions follow. >>>> >>>> I guess I could switch the commit in my `jupyterlab.scm` file to point >>>> to a different one? >>>> >>>> I can change the version to `2.0.0rc1`, but I do not know how the >>>> checksum is calculated. The checksum is shorter than what I see on >>>> simply PyPI: >>>> >>>> https://files.pythonhosted.org/packages/79/43/5249be5ee741a93f3fa60823caf9a276cadc3103dae16d6e36cc534fefd8/jupyterlab_server-2.0.0rc1.tar.gz#sha256=733b149c5ab8e50ea5f2897c323047257060e7bf2dc0fa88663181427bec605d >>>> >>>> and base32 should only make it longer, not shorter. >>>> >>>> Can you explain how to switch a version manually and calculate the >>>> checksum to match another version? >>> For a tarball like the one at pythonhosted you'd download the file and >>> then run 'guix hash the-file'. If you're using a source code repository >>> then from the top level of the repo you'd run 'guix hash --exclude-vcs >>> --recursive .', or 'guix hash -rx .' for short. The hash layout that >>> Guix uses is the sha256 of the tarball base32 encoded, but with a change >>> in the letters used. >>> >>> For python packages you can specify a version number, so in this case >>> it'd be 'guix import pypi jupyterlab_server/2.0.0rc1'. Some other >>> importers us the '@' symbol to specify version number and I think some >>> don't support using other versions at all. >>> >>> I don't know how compatible different major versions of >>> jupyterlab-server are with each other, so I'd stick with 1.2.0 for now. >> >> This means however, that the check phase will fail, because of the >> failing tests in the jupyterlab_server repository on version 1.2.0. >> >> Unless there is a way to disable running those specific tests, I guess >> this means, that only getting the tests to pass in the jupyterlab_server >> repository will solve the problem? >> > I'd suggest starting with my suggestion from the other email, to try > using 'add-installed-pythonpath' to make sure the library is in the > PYTHONPATH. Perhaps that will help the tests pass.
The thing is, that I already tried to run the tests within the jupyterlab_server repository and they do not pass there either. They are simply failing currently / jupyterlab_server stable is not in a clean state. At first I had to figure out how to get a test environment set up, but I solved that one: https://github.com/jupyterlab/jupyterlab_server/pull/129. I think there is nothing on the Guix side to make them magically pass, when they even fail in the original repository / code. Where do you grep for add-installed-pythonpath in other packages? I have looked here https://git.savannah.gnu.org/cgit/guix.git/tree/guix/packages.scm, but that seems to be the package implementation of Guix itself, not the packages it offers. Ah, I think I found it: https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages. Thanks!^^ It was clear from the `guix package -A <package>` command. >>>> Regards, >>>> Zelphir >>>> >>>> On 10/19/20 8:19 PM, Zelphir Kaltstahl wrote: >>>>> Hello Efraim, >>>>> >>>>> Thanks for your patience! It seems with that I am getting quite far >>>>> (at least it feels like making progress, or even being close to have a >>>>> working environment), up to the "check phase". There some tests >>>>> failing in the "check phase". Here is what I am getting now, >>>>> regardless of whether I stick ("python-ipykernel" ,python-ipykernel) >>>>> in the native inputs or propagated inputs: >>>>> >>>>> ~~~~START~~~~ >>>>> running install_egg_info >>>>> Copying jupyterlab_server.egg-info to >>>>> /gnu/store/2h44ldpcqqd0q7hqpbcqdavcnbjsibfb-python-jupyterlab-server-1.2.0/lib/python3.8/site-packages/jupyterlab_server-1.2.0-py3.8.egg-info >>>>> running install_scripts >>>>> phase `install' succeeded after 0.3 seconds >>>>> starting phase `wrap' >>>>> find-files: >>>>> /gnu/store/2h44ldpcqqd0q7hqpbcqdavcnbjsibfb-python-jupyterlab-server-1.2.0/bin: >>>>> No such file or directory >>>>> find-files: >>>>> /gnu/store/2h44ldpcqqd0q7hqpbcqdavcnbjsibfb-python-jupyterlab-server-1.2.0/sbin: >>>>> No such file or directory >>>>> phase `wrap' succeeded after 0.0 seconds >>>>> starting phase `check' >>>>> running "python setup.py" with command "test" and parameters () >>>>> running test >>>>> running egg_info >>>>> writing jupyterlab_server.egg-info/PKG-INFO >>>>> writing dependency_links to >>>>> jupyterlab_server.egg-info/dependency_links.txt >>>>> writing requirements to jupyterlab_server.egg-info/requires.txt >>>>> writing top-level names to jupyterlab_server.egg-info/top_level.txt >>>>> reading manifest file 'jupyterlab_server.egg-info/SOURCES.txt' >>>>> reading manifest template 'MANIFEST.in' >>>>> warning: no previously-included files matching '*~' found anywhere in >>>>> distribution >>>>> warning: no previously-included files matching '*.pyc' found anywhere in >>>>> distribution >>>>> warning: no previously-included files matching '*.pyo' found anywhere in >>>>> distribution >>>>> warning: no previously-included files matching '.git' found anywhere in >>>>> distribution >>>>> warning: no previously-included files matching '.ipynb_checkpoints' found >>>>> anywhere in distribution >>>>> writing manifest file 'jupyterlab_server.egg-info/SOURCES.txt' >>>>> running build_ext >>>>> test_get (jupyterlab_server.tests.test_settings_api.SettingsAPITest) ... >>>>> ERROR >>>>> test_get_bad (jupyterlab_server.tests.test_settings_api.SettingsAPITest) >>>>> ... ERROR >>>>> test_listing (jupyterlab_server.tests.test_settings_api.SettingsAPITest) >>>>> ... ERROR >>>>> test_patch (jupyterlab_server.tests.test_settings_api.SettingsAPITest) >>>>> ... ERROR >>>>> test_patch_bad_data >>>>> (jupyterlab_server.tests.test_settings_api.SettingsAPITest) ... ERROR >>>>> test_patch_wrong_id >>>>> (jupyterlab_server.tests.test_settings_api.SettingsAPITest) ... ERROR >>>>> test_bad_put >>>>> (jupyterlab_server.tests.test_workspaces_api.WorkspacesAPITest) ... ERROR >>>>> test_blank_put >>>>> (jupyterlab_server.tests.test_workspaces_api.WorkspacesAPITest) ... ERROR >>>>> test_delete >>>>> (jupyterlab_server.tests.test_workspaces_api.WorkspacesAPITest) ... ERROR >>>>> test_get (jupyterlab_server.tests.test_workspaces_api.WorkspacesAPITest) >>>>> ... ERROR >>>>> test_listing >>>>> (jupyterlab_server.tests.test_workspaces_api.WorkspacesAPITest) ... ERROR >>>>> test_put (jupyterlab_server.tests.test_workspaces_api.WorkspacesAPITest) >>>>> ... ERROR >>>>> >>>>> ====================================================================== >>>>> ERROR: test_get >>>>> (jupyterlab_server.tests.test_settings_api.SettingsAPITest) >>>>> ---------------------------------------------------------------------- >>>>> Traceback (most recent call last): >>>>> File >>>>> "/tmp/guix-build-python-jupyterlab-server-1.2.0.drv-0/jupyterlab_server-1.2.0/jupyterlab_server/tests/test_settings_api.py", >>>>> line 31, in setUp >>>>> dst = os.path.join(self.lab_config.schemas_dir, '@jupyterlab') >>>>> AttributeError: 'SettingsAPITest' object has no attribute 'lab_config' >>>>> >>>>> ====================================================================== >>>>> ERROR: test_get_bad >>>>> (jupyterlab_server.tests.test_settings_api.SettingsAPITest) >>>>> ---------------------------------------------------------------------- >>>>> Traceback (most recent call last): >>>>> File >>>>> "/tmp/guix-build-python-jupyterlab-server-1.2.0.drv-0/jupyterlab_server-1.2.0/jupyterlab_server/tests/test_settings_api.py", >>>>> line 31, in setUp >>>>> dst = os.path.join(self.lab_config.schemas_dir, '@jupyterlab') >>>>> AttributeError: 'SettingsAPITest' object has no attribute 'lab_config' >>>>> >>>>> ====================================================================== >>>>> ERROR: test_listing >>>>> (jupyterlab_server.tests.test_settings_api.SettingsAPITest) >>>>> ---------------------------------------------------------------------- >>>>> Traceback (most recent call last): >>>>> File >>>>> "/tmp/guix-build-python-jupyterlab-server-1.2.0.drv-0/jupyterlab_server-1.2.0/jupyterlab_server/tests/test_settings_api.py", >>>>> line 31, in setUp >>>>> dst = os.path.join(self.lab_config.schemas_dir, '@jupyterlab') >>>>> AttributeError: 'SettingsAPITest' object has no attribute 'lab_config' >>>>> >>>>> ====================================================================== >>>>> ERROR: test_patch >>>>> (jupyterlab_server.tests.test_settings_api.SettingsAPITest) >>>>> ---------------------------------------------------------------------- >>>>> Traceback (most recent call last): >>>>> File >>>>> "/tmp/guix-build-python-jupyterlab-server-1.2.0.drv-0/jupyterlab_server-1.2.0/jupyterlab_server/tests/test_settings_api.py", >>>>> line 31, in setUp >>>>> dst = os.path.join(self.lab_config.schemas_dir, '@jupyterlab') >>>>> AttributeError: 'SettingsAPITest' object has no attribute 'lab_config' >>>>> >>>>> ====================================================================== >>>>> ERROR: test_patch_bad_data >>>>> (jupyterlab_server.tests.test_settings_api.SettingsAPITest) >>>>> ---------------------------------------------------------------------- >>>>> Traceback (most recent call last): >>>>> File >>>>> "/tmp/guix-build-python-jupyterlab-server-1.2.0.drv-0/jupyterlab_server-1.2.0/jupyterlab_server/tests/test_settings_api.py", >>>>> line 31, in setUp >>>>> dst = os.path.join(self.lab_config.schemas_dir, '@jupyterlab') >>>>> AttributeError: 'SettingsAPITest' object has no attribute 'lab_config' >>>>> >>>>> ====================================================================== >>>>> ERROR: test_patch_wrong_id >>>>> (jupyterlab_server.tests.test_settings_api.SettingsAPITest) >>>>> ---------------------------------------------------------------------- >>>>> Traceback (most recent call last): >>>>> File >>>>> "/tmp/guix-build-python-jupyterlab-server-1.2.0.drv-0/jupyterlab_server-1.2.0/jupyterlab_server/tests/test_settings_api.py", >>>>> line 31, in setUp >>>>> dst = os.path.join(self.lab_config.schemas_dir, '@jupyterlab') >>>>> AttributeError: 'SettingsAPITest' object has no attribute 'lab_config' >>>>> >>>>> ====================================================================== >>>>> ERROR: test_bad_put >>>>> (jupyterlab_server.tests.test_workspaces_api.WorkspacesAPITest) >>>>> ---------------------------------------------------------------------- >>>>> Traceback (most recent call last): >>>>> File >>>>> "/tmp/guix-build-python-jupyterlab-server-1.2.0.drv-0/jupyterlab_server-1.2.0/jupyterlab_server/tests/test_workspaces_api.py", >>>>> line 34, in setUp >>>>> dst = os.path.join(self.lab_config.workspaces_dir, item) >>>>> AttributeError: 'WorkspacesAPITest' object has no attribute 'lab_config' >>>>> >>>>> ====================================================================== >>>>> ERROR: test_blank_put >>>>> (jupyterlab_server.tests.test_workspaces_api.WorkspacesAPITest) >>>>> ---------------------------------------------------------------------- >>>>> Traceback (most recent call last): >>>>> File >>>>> "/tmp/guix-build-python-jupyterlab-server-1.2.0.drv-0/jupyterlab_server-1.2.0/jupyterlab_server/tests/test_workspaces_api.py", >>>>> line 34, in setUp >>>>> dst = os.path.join(self.lab_config.workspaces_dir, item) >>>>> AttributeError: 'WorkspacesAPITest' object has no attribute 'lab_config' >>>>> >>>>> ====================================================================== >>>>> ERROR: test_delete >>>>> (jupyterlab_server.tests.test_workspaces_api.WorkspacesAPITest) >>>>> ---------------------------------------------------------------------- >>>>> Traceback (most recent call last): >>>>> File >>>>> "/tmp/guix-build-python-jupyterlab-server-1.2.0.drv-0/jupyterlab_server-1.2.0/jupyterlab_server/tests/test_workspaces_api.py", >>>>> line 34, in setUp >>>>> dst = os.path.join(self.lab_config.workspaces_dir, item) >>>>> AttributeError: 'WorkspacesAPITest' object has no attribute 'lab_config' >>>>> >>>>> ====================================================================== >>>>> ERROR: test_get >>>>> (jupyterlab_server.tests.test_workspaces_api.WorkspacesAPITest) >>>>> ---------------------------------------------------------------------- >>>>> Traceback (most recent call last): >>>>> File >>>>> "/tmp/guix-build-python-jupyterlab-server-1.2.0.drv-0/jupyterlab_server-1.2.0/jupyterlab_server/tests/test_workspaces_api.py", >>>>> line 34, in setUp >>>>> dst = os.path.join(self.lab_config.workspaces_dir, item) >>>>> AttributeError: 'WorkspacesAPITest' object has no attribute 'lab_config' >>>>> >>>>> ====================================================================== >>>>> ERROR: test_listing >>>>> (jupyterlab_server.tests.test_workspaces_api.WorkspacesAPITest) >>>>> ---------------------------------------------------------------------- >>>>> Traceback (most recent call last): >>>>> File >>>>> "/tmp/guix-build-python-jupyterlab-server-1.2.0.drv-0/jupyterlab_server-1.2.0/jupyterlab_server/tests/test_workspaces_api.py", >>>>> line 34, in setUp >>>>> dst = os.path.join(self.lab_config.workspaces_dir, item) >>>>> AttributeError: 'WorkspacesAPITest' object has no attribute 'lab_config' >>>>> >>>>> ====================================================================== >>>>> ERROR: test_put >>>>> (jupyterlab_server.tests.test_workspaces_api.WorkspacesAPITest) >>>>> ---------------------------------------------------------------------- >>>>> Traceback (most recent call last): >>>>> File >>>>> "/tmp/guix-build-python-jupyterlab-server-1.2.0.drv-0/jupyterlab_server-1.2.0/jupyterlab_server/tests/test_workspaces_api.py", >>>>> line 34, in setUp >>>>> dst = os.path.join(self.lab_config.workspaces_dir, item) >>>>> AttributeError: 'WorkspacesAPITest' object has no attribute 'lab_config' >>>>> >>>>> ---------------------------------------------------------------------- >>>>> Ran 12 tests in 0.001s >>>>> >>>>> FAILED (errors=12) >>>>> Test failed: <unittest.runner.TextTestResult run=12 errors=12 failures=0> >>>>> error: Test failed: <unittest.runner.TextTestResult run=12 errors=12 >>>>> failures=0> >>>>> command "python" "-c" "import setuptools, >>>>> tokenize;__file__='setup.py';f=getattr(tokenize, 'open', >>>>> open)(__file__);code=f.read().replace('\\r\\n', >>>>> '\\n');f.close();exec(compile(code, __file__, 'exec'))" "test" failed >>>>> with status 1 >>>>> ~~~~~END~~~~~ >>>>> >>>>> I have some thoughts about this: >>>>> >>>>> The Python error does not really tell me what is wrong. I don't know >>>>> why the `WorkspacesAPITest` does not have an attribute named `lab_config`. >>>>> >>>>> One can see, that those are all API tests. Since there were problems >>>>> in the previous step with network, perhaps it is a network thing here >>>>> as well? (Is network, even if localhost for testing, available in the >>>>> "check phase"?) >>>>> >>>>> It could also simply be, that some PyPI package has failing tests. I >>>>> don't know how one could then skip such tests. >>>>> >>>>> I guess I will summarize everything in the end and put it in a >>>>> repository as a kind of "guide", so that others can use it or learn >>>>> from the process. >>>>> >>>>> Regards, >>>>> Zelphir >>>>> >>>>> On 10/19/20 6:54 PM, Efraim Flashner wrote: >>>>>> It looks like you need to add python-ipykernel to native-inputs. >>>>>> Unless it's needed to run the program and not just for the test >>>>>> suite, in which case it should go in propagated-inputs. There's no >>>>>> network available in the build environment so it can't retrieve >>>>>> ipykernel while building. >>>>>> >>>>>> >>>>>> On October 19, 2020 2:31:53 PM UTC, Zelphir Kaltstahl >>>>>> <zelphirkaltst...@posteo.de> wrote: >>>>>> >>>>>> Hello Efraim! >>>>>> >>>>>> Thank you! Your idea of replacing "-" with "_" seems to partially >>>>>> help: >>>>>> >>>>>> The package is downloaded and byte compiled. However, afterwards >>>>>> there is a problem, when it tries to copy the byte-compiled files >>>>>> in the "wrap phase" (comments inserted in some places): >>>>>> >>>>>> ~~~~START~~~~ >>>>>> ### ... a lot of output before this ... >>>>>> >>>>>> byte-compiling >>>>>> /gnu/store/yr7q21bws1xgx3p2dy9cfdiknjpsajm6-python-jupyterlab-server-1.2.0/lib/python3.8/site-packages/jupyterlab_server/__init__.py >>>>>> to __init__.cpython-38.pyc >>>>>> byte-compiling >>>>>> /gnu/store/yr7q21bws1xgx3p2dy9cfdiknjpsajm6-python-jupyterlab-server-1.2.0/lib/python3.8/site-packages/jupyterlab_server/_version.py >>>>>> to _version.cpython-38.pyc >>>>>> byte-compiling >>>>>> /gnu/store/yr7q21bws1xgx3p2dy9cfdiknjpsajm6-python-jupyterlab-server-1.2.0/lib/python3.8/site-packages/jupyterlab_server/app.py >>>>>> to app.cpython-38.pyc >>>>>> byte-compiling >>>>>> /gnu/store/yr7q21bws1xgx3p2dy9cfdiknjpsajm6-python-jupyterlab-server-1.2.0/lib/python3.8/site-packages/jupyterlab_server/handlers.py >>>>>> to handlers.cpython-38.pyc >>>>>> byte-compiling >>>>>> /gnu/store/yr7q21bws1xgx3p2dy9cfdiknjpsajm6-python-jupyterlab-server-1.2.0/lib/python3.8/site-packages/jupyterlab_server/listings_handler.py >>>>>> to listings_handler.cpython-38.pyc >>>>>> byte-compiling >>>>>> /gnu/store/yr7q21bws1xgx3p2dy9cfdiknjpsajm6-python-jupyterlab-server-1.2.0/lib/python3.8/site-packages/jupyterlab_server/process.py >>>>>> to process.cpython-38.pyc >>>>>> byte-compiling >>>>>> /gnu/store/yr7q21bws1xgx3p2dy9cfdiknjpsajm6-python-jupyterlab-server-1.2.0/lib/python3.8/site-packages/jupyterlab_server/process_app.py >>>>>> to process_app.cpython-38.pyc >>>>>> byte-compiling >>>>>> /gnu/store/yr7q21bws1xgx3p2dy9cfdiknjpsajm6-python-jupyterlab-server-1.2.0/lib/python3.8/site-packages/jupyterlab_server/server.py >>>>>> to server.cpython-38.pyc >>>>>> byte-compiling >>>>>> /gnu/store/yr7q21bws1xgx3p2dy9cfdiknjpsajm6-python-jupyterlab-server-1.2.0/lib/python3.8/site-packages/jupyterlab_server/servertest.py >>>>>> to servertest.cpython-38.pyc >>>>>> byte-compiling >>>>>> /gnu/store/yr7q21bws1xgx3p2dy9cfdiknjpsajm6-python-jupyterlab-server-1.2.0/lib/python3.8/site-packages/jupyterlab_server/settings_handler.py >>>>>> to settings_handler.cpython-38.pyc >>>>>> byte-compiling >>>>>> /gnu/store/yr7q21bws1xgx3p2dy9cfdiknjpsajm6-python-jupyterlab-server-1.2.0/lib/python3.8/site-packages/jupyterlab_server/themes_handler.py >>>>>> to themes_handler.cpython-38.pyc >>>>>> byte-compiling >>>>>> /gnu/store/yr7q21bws1xgx3p2dy9cfdiknjpsajm6-python-jupyterlab-server-1.2.0/lib/python3.8/site-packages/jupyterlab_server/workspaces_handler.py >>>>>> to workspaces_handler.cpython-38.pyc >>>>>> byte-compiling >>>>>> /gnu/store/yr7q21bws1xgx3p2dy9cfdiknjpsajm6-python-jupyterlab-server-1.2.0/lib/python3.8/site-packages/jupyterlab_server/tests/__init__.py >>>>>> to __init__.cpython-38.pyc >>>>>> byte-compiling >>>>>> /gnu/store/yr7q21bws1xgx3p2dy9cfdiknjpsajm6-python-jupyterlab-server-1.2.0/lib/python3.8/site-packages/jupyterlab_server/tests/test_settings_api.py >>>>>> to test_settings_api.cpython-38.pyc >>>>>> byte-compiling >>>>>> /gnu/store/yr7q21bws1xgx3p2dy9cfdiknjpsajm6-python-jupyterlab-server-1.2.0/lib/python3.8/site-packages/jupyterlab_server/tests/test_workspaces_api.py >>>>>> to test_workspaces_api.cpython-38.pyc >>>>>> byte-compiling >>>>>> /gnu/store/yr7q21bws1xgx3p2dy9cfdiknjpsajm6-python-jupyterlab-server-1.2.0/lib/python3.8/site-packages/jupyterlab_server/tests/utils.py >>>>>> to utils.cpython-38.pyc >>>>>> >>>>>> ### ... seems byte-compiling went without problems, but not comes >>>>>> the problem ... >>>>>> >>>>>> running install_egg_info >>>>>> Copying jupyterlab_server.egg-info to >>>>>> /gnu/store/yr7q21bws1xgx3p2dy9cfdiknjpsajm6-python-jupyterlab-server-1.2.0/lib/python3.8/site-packages/jupyterlab_server-1.2.0-py3.8.egg-info >>>>>> running install_scripts >>>>>> phase `install' succeeded after 0.3 seconds >>>>>> starting phase `wrap' >>>>>> find-files: >>>>>> /gnu/store/yr7q21bws1xgx3p2dy9cfdiknjpsajm6-python-jupyterlab-server-1.2.0/bin: >>>>>> No such file or directory >>>>>> find-files: >>>>>> /gnu/store/yr7q21bws1xgx3p2dy9cfdiknjpsajm6-python-jupyterlab-server-1.2.0/sbin: >>>>>> No such file or directory >>>>>> phase `wrap' succeeded after 0.0 seconds >>>>>> starting phase `check' >>>>>> running "python setup.py" with command "test" and parameters () >>>>>> running test >>>>>> Searching for ipykernel >>>>>> Reading https://pypi.org/simple/ipykernel/ >>>>>> Download error on https://pypi.org/simple/ipykernel/: [Errno -2] >>>>>> Name or service not known -- Some packages may not be found! >>>>>> Couldn't find index page for 'ipykernel' (maybe misspelled?) >>>>>> Scanning index of all packages (this may take a while) >>>>>> Reading https://pypi.org/simple/ >>>>>> Download error on https://pypi.org/simple/: [Errno -2] Name or >>>>>> service not known -- Some packages may not be found! >>>>>> No local packages or working download links found for ipykernel >>>>>> error: Could not find suitable distribution for >>>>>> Requirement.parse('ipykernel') >>>>>> command "python" "-c" "import setuptools, >>>>>> tokenize;__file__='setup.py';f=getattr(tokenize, 'open', >>>>>> open)(__file__);code=f.read().replace('\\r\\n', >>>>>> '\\n');f.close();exec(compile(code, __file__, 'exec'))" "test" failed >>>>>> with status 1 >>>>>> ~~~~~END~~~~~ >>>>>> >>>>>> So it seems, that while the download URL is corrected, there is >>>>>> another place, where Guix has an error now, resulting in a final >>>>>> error shown in command line: >>>>>> >>>>>> ~~~~START~~~~ >>>>>> $ guix time-machine --channels=channels.scm -- environment >>>>>> --manifest=manifest.scm --load=jupyterlab.scm >>>>>> Updating channel 'guix' from Git repository at >>>>>> 'https://git.savannah.gnu.org/git/guix.git'... >>>>>> substitute: updating substitutes from 'https://ci.guix.gnu.org'... >>>>>> 100.0% >>>>>> The following derivations will be built: >>>>>> >>>>>> /gnu/store/wzmfn9m45bmsbrx094rv3lf3w0rpmw49-python-pytest-check-links-0.3.0.drv >>>>>> >>>>>> /gnu/store/96xf5mrg134mcsp01b0m1qs1lxkb401a-python-jupyterlab-server-1.2.0.drv >>>>>> >>>>>> /gnu/store/32a28hd7aainwn0hfsnf3blh8prmfz61-jupyterlab_server-1.2.0.tar.gz.drv >>>>>> >>>>>> 3,9 MB will be downloaded >>>>>> downloading from >>>>>> https://ci.guix.gnu.org/nar/lzip/54kpl9psx16jwic4gpnjwh44kim04wlk-python-notebook-5.7.4 >>>>>> ... >>>>>> python-notebook-5.7.4 3.7MiB >>>>>> >>>>>> >>>>>> 5.1MiB/s 00:01 [##################] 100.0% >>>>>> >>>>>> building >>>>>> /gnu/store/32a28hd7aainwn0hfsnf3blh8prmfz61-jupyterlab_server-1.2.0.tar.gz.drv... >>>>>> downloading from >>>>>> https://files.pythonhosted.org/packages/source/j/jupyterlab_server/jupyterlab_server-1.2.0.tar.gz >>>>>> ... >>>>>> building >>>>>> /gnu/store/wzmfn9m45bmsbrx094rv3lf3w0rpmw49-python-pytest-check-links-0.3.0.drv... >>>>>> building >>>>>> /gnu/store/96xf5mrg134mcsp01b0m1qs1lxkb401a-python-jupyterlab-server-1.2.0.drv... >>>>>> \ 'check' phasebuilder for >>>>>> `/gnu/store/96xf5mrg134mcsp01b0m1qs1lxkb401a-python-jupyterlab-server-1.2.0.drv' >>>>>> failed with exit code 1 >>>>>> build of >>>>>> /gnu/store/96xf5mrg134mcsp01b0m1qs1lxkb401a-python-jupyterlab-server-1.2.0.drv >>>>>> failed >>>>>> View build log at >>>>>> '/var/log/guix/drvs/96/xf5mrg134mcsp01b0m1qs1lxkb401a-python-jupyterlab-server-1.2.0.drv.bz2'. >>>>>> guix environment: error: build of >>>>>> `/gnu/store/96xf5mrg134mcsp01b0m1qs1lxkb401a-python-jupyterlab-server-1.2.0.drv' >>>>>> failed >>>>>> ~~~~~END~~~~~ >>>>>> >>>>>> Apparently ipykernel is not found, but when I visit >>>>>> https://pypi.org/simple/ipykernel/, I see packages there. >>>>>> >>>>>> From the logs: >>>>>> >>>>>> ~~~~START~~~~ >>>>>> Download error on https://pypi.org/simple/ipykernel/: [Errno -2] >>>>>> Name or service not known -- Some packages may not be found! >>>>>> Couldn't find index page for 'ipykernel' (maybe misspelled?) >>>>>> ~~~~~END~~~~~ >>>>>> >>>>>> Do I need to add another input in my `jupyterlab.scm`? (How?) Or >>>>>> perhaps I need to create a separate `ipykernel.scm` which >>>>>> contains the output of `guix import pypi --recursive ipykernel`? >>>>>> >>>>>> However, it somehow seems to fail for PyPI simple in general >>>>>> (from the logs again): >>>>>> >>>>>> ~~~~START~~~~ >>>>>> Reading https://pypi.org/simple/ >>>>>> Download error on https://pypi.org/simple/: [Errno -2] Name or >>>>>> service not known -- Some packages may not be found! >>>>>> No local packages or working download links found for ipykernel >>>>>> error: Could not find suitable distribution for >>>>>> Requirement.parse('ipykernel') >>>>>> command "python" "-c" "import setuptools, >>>>>> tokenize;__file__='setup.py';f=getattr(tokenize, 'open', >>>>>> open)(__file__);code=f.read().replace('\\r\\n', >>>>>> '\\n');f.close();exec(compile(code, __file__, 'exec'))" "test" failed >>>>>> with status 1 >>>>>> ~~~~~END~~~~~ >>>>>> >>>>>> Thanks, >>>>>> Zelphir >>>>>> >>>>>> >>>>>> On 10/18/20 6:35 PM, Efraim Flashner wrote: >>>>>>> On Sun, Oct 18, 2020 at 01:55:49PM +0200, Zelphir Kaltstahl wrote: >>>>>>>> Hello Guix Users, hello Zimoun and Tobias! >>>>>>>> >>>>>>>> Thanks for your information regarding the importer syntax thing. >>>>>>>> >>>>>>>> I continued trying to get a jupyterlab environment today. >>>>>>>> >>>>>>>> Here is what I did so far: >>>>>>>> >>>>>>>> (1) Create my manifest file: >>>>>>>> >>>>>>>> ~~~~START~~~~ >>>>>>>> (specifications->manifest >>>>>>>> '("python")) >>>>>>>> ~~~~~END~~~~~ >>>>>>>> >>>>>>>> (2) Create my channels file: >>>>>>>> >>>>>>>> ~~~~START~~~~ >>>>>>>> $ guix describe --format=channels > channels.scm >>>>>>>> $ cat channels.scm >>>>>>>> (list (channel >>>>>>>> (name 'guix) >>>>>>>> (url "https://git.savannah.gnu.org/git/guix.git") >>>>>>>> (commit >>>>>>>> "6ca673b30dac281ba27a8dac242c0ac83e5e354b") >>>>>>>> (introduction >>>>>>>> (make-channel-introduction >>>>>>>> "9edb3f66fd807b096b48283debdcddccfea34bad" >>>>>>>> (openpgp-fingerprint >>>>>>>> "BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A >>>>>>>> 54FA"))))) >>>>>>>> ~~~~~END~~~~~ >>>>>>>> >>>>>>>> (3) Create my jupyterlab PyPI import file, this time around using >>>>>>>> the >>>>>>>> "/" instead of "@" for specifying the version: >>>>>>>> >>>>>>>> ~~~~START~~~~ >>>>>>>> $ guix import pypi --recursive jupyterlab/2.1.5 > jupyterlab.scm >>>>>>>> ~~~~~END~~~~~ >>>>>>>> >>>>>>>> (4) Add missing import expressions and add output expression at >>>>>>>> the end: >>>>>>>> >>>>>>>> ~~~~START~~~~ >>>>>>>> ;; add module imports >>>>>>>> (use-modules >>>>>>>> (guix packages) >>>>>>>> (guix download) >>>>>>>> (guix build-system python) >>>>>>>> ((guix licenses) #:prefix license:) >>>>>>>> ;; use `guix environment --ad-hoc python-jinja2 -- guix package >>>>>>>> -A python-jinja2` to find the location of python-jinja2, which is >>>>>>>> gnu/packages/python-xyz.scm >>>>>>> This can be just 'guix package -A python-jinja2', no need for the >>>>>>> environment. >>>>>>> >>>>>>>> (gnu packages python-xyz) >>>>>>>> ;; for python-tornado >>>>>>>> (gnu packages python-web) >>>>>>>> ;; for python-pytest >>>>>>>> (gnu packages check)) >>>>>>>> >>>>>>>> ;; QUESTION: Why are those required packages not imported by guix >>>>>>>> automatically? >>>>>>>> ;; QUESTION: Why are the manually imported packages not actually >>>>>>>> in files with their own name, but instead jinja2 -> python-xyz, >>>>>>>> tornado -> python-web, and pytest -> check? >>>>>>>> ;; QUESTION: Is my process of finding the files in which the >>>>>>>> packages are correct or just working by chance? >>>>>>>> >>>>>>>> (define-public python-jupyterlab-server >>>>>>>> (package >>>>>>>> (name "python-jupyterlab-server") >>>>>>>> (version "1.2.0") >>>>>>>> (source >>>>>>>> (origin >>>>>>>> (method url-fetch) >>>>>>>> (uri (pypi-uri "jupyterlab-server" version)) >>>>>>>> (sha256 >>>>>>>> (base32 >>>>>>>> >>>>>>>> "132xby7531rbrjg9bqvsx86birr1blynjxy8gi5kcnb6x7fxjcal")))) >>>>>>>> (build-system python-build-system) >>>>>>>> (propagated-inputs >>>>>>>> `(("python-jinja2" ,python-jinja2) >>>>>>>> ("python-json5" ,python-json5) >>>>>>>> ("python-jsonschema" ,python-jsonschema) >>>>>>>> ("python-notebook" ,python-notebook) >>>>>>>> ("python-requests" ,python-requests))) >>>>>>>> (native-inputs >>>>>>>> `(("python-pytest" ,python-pytest) >>>>>>>> ("python-requests" ,python-requests))) >>>>>>>> (home-page "https://jupyter.org") >>>>>>>> (synopsis "JupyterLab Server") >>>>>>>> (description "JupyterLab Server") >>>>>>>> (license license:bsd-3))) >>>>>>>> >>>>>>>> (define-public python-jupyterlab >>>>>>>> (package >>>>>>>> (name "python-jupyterlab") >>>>>>>> (version "2.1.5") >>>>>>>> (source >>>>>>>> (origin >>>>>>>> (method url-fetch) >>>>>>>> (uri (pypi-uri "jupyterlab" version)) >>>>>>>> (sha256 >>>>>>>> (base32 >>>>>>>> >>>>>>>> "162jn51cg36fsn4l2zhnb5n4nbkhm9wlv974ggcnmdij3i4r4yya")))) >>>>>>>> (build-system python-build-system) >>>>>>>> (propagated-inputs >>>>>>>> `(("python-jinja2" ,python-jinja2) >>>>>>>> ("python-jupyterlab-server" >>>>>>>> ,python-jupyterlab-server) >>>>>>>> ("python-notebook" ,python-notebook) >>>>>>>> ("python-tornado" ,python-tornado))) >>>>>>>> (native-inputs >>>>>>>> `(("python-pytest" ,python-pytest) >>>>>>>> ("python-pytest-check-links" >>>>>>>> ,python-pytest-check-links) >>>>>>>> ("python-requests" ,python-requests) >>>>>>>> ("python-virtualenv" ,python-virtualenv) >>>>>>>> ("python-wheel" ,python-wheel))) >>>>>>>> (home-page "http://jupyter.org") >>>>>>>> (synopsis >>>>>>>> "The JupyterLab notebook server extension.") >>>>>>>> (description >>>>>>>> "The JupyterLab notebook server extension.") >>>>>>>> (license license:bsd-3))) >>>>>>>> >>>>>>>> python-jupyterlab >>>>>>>> ~~~~~END~~~~~ >>>>>>>> >>>>>>>> And as noted in the comments, I have 3 questions at this point: >>>>>>>> >>>>>>>> (Q1) Why are those required packages not imported by guix >>>>>>>> automatically? >>>>>>>> (My guess: This functionality simply has not yet been implemented.) >>>>>>>> >>>>>>>> (Q2) Why are the manually imported packages not actually in files >>>>>>>> with >>>>>>>> their own name, but instead jinja2 -> python-xyt, tornado -> >>>>>>>> python-web, >>>>>>>> and pytest -> check? Why not (gnu packages python pytest) for >>>>>>>> example? >>>>>>>> >>>>>>>> (Q3) Is my process of finding the files in which the packages are >>>>>>>> correct or just working by chance? Basically I am creating >>>>>>>> temporary >>>>>>>> environments, in which I then lookup "where would the package be >>>>>>>> installed" and then exit the temporary environment to use that >>>>>>>> information in my imported package file's import expressions / >>>>>>>> use-modules expression. This seems to be a bit of a convoluted >>>>>>>> process, >>>>>>>> though worth it, if it always works in the end. >>>>>>>> >>>>>>>> (4) Now I run my time-machine command: >>>>>>>> >>>>>>>> ~~~~START~~~~ >>>>>>>> $ guix time-machine --channels=channels.scm -- environment >>>>>>>> --manifest=manifest.scm --load=jupyterlab.scm >>>>>>>> ~~~~~END~~~~~ >>>>>>>> >>>>>>>> This take a moment and then I get an error (the full output is >>>>>>>> longer, >>>>>>>> but when running it multiple times, already successful steps are >>>>>>>> not all >>>>>>>> done repeatedly, so the output is then reduced to what fails): >>>>>>>> >>>>>>>> ~~~~START~~~~ >>>>>>>> $ guix time-machine --channels=channels.scm -- environment >>>>>>>> --manifest=manifest.scm --load=jupyterlab.scm >>>>>>>> Updating channel 'guix' from Git repository at >>>>>>>> 'https://git.savannah.gnu.org/git/guix.git'... >>>>>>>> The following derivations will be built: >>>>>>>> >>>>>>>> /gnu/store/wzmfn9m45bmsbrx094rv3lf3w0rpmw49-python-pytest-check-links-0.3.0.drv >>>>>>>> >>>>>>>> /gnu/store/n9i421lrbwrr8d0947w5vma7rhy3iyba-python-jupyterlab-server-1.2.0.drv >>>>>>>> >>>>>>>> /gnu/store/s7jc2dbb0bnrahxklmszmpfv8klgw3sd-jupyterlab-server-1.2.0.tar.gz.drv >>>>>>>> >>>>>>>> 4,2 MB will be downloaded >>>>>>>> downloading from >>>>>>>> https://ci.guix.gnu.org/nar/lzip/2nahbs5v8q073gjmy224gk0h5lsh1kkw-python-nbconvert-5.0.0b1 >>>>>>>> ... >>>>>>>> python-nbconvert-5.0.0b1 301KiB >>>>>>>> >>>>>>>> >>>>>>>> 2.0MiB/s 00:00 [##################] 100.0% >>>>>>>> >>>>>>>> building >>>>>>>> /gnu/store/s7jc2dbb0bnrahxklmszmpfv8klgw3sd-jupyterlab-server-1.2.0.tar.gz.drv... >>>>>>>> |builder for >>>>>>>> `/gnu/store/s7jc2dbb0bnrahxklmszmpfv8klgw3sd-jupyterlab-server-1.2.0.tar.gz.drv' >>>>>>>> failed to produce output path >>>>>>>> `/gnu/store/92md7gh966n4fzj6al267lqq4xjx0ncf-jupyterlab-server-1.2.0.tar.gz' >>>>>>>> build of >>>>>>>> /gnu/store/s7jc2dbb0bnrahxklmszmpfv8klgw3sd-jupyterlab-server-1.2.0.tar.gz.drv >>>>>>>> failed >>>>>>>> View build log at >>>>>>>> '/var/log/guix/drvs/s7/jc2dbb0bnrahxklmszmpfv8klgw3sd-jupyterlab-server-1.2.0.tar.gz.drv.bz2'. >>>>>>>> cannot build derivation >>>>>>>> `/gnu/store/n9i421lrbwrr8d0947w5vma7rhy3iyba-python-jupyterlab-server-1.2.0.drv': >>>>>>>> 1 dependencies couldn't be built >>>>>>>> killing process 7384 >>>>>>>> guix environment: error: build of >>>>>>>> `/gnu/store/n9i421lrbwrr8d0947w5vma7rhy3iyba-python-jupyterlab-server-1.2.0.drv' >>>>>>>> failed >>>>>>>> ~~~~~END~~~~~ >>>>>>>> >>>>>>>> OK, an error, perhaps I can understand it. Lets look at that log >>>>>>>> file: >>>>>>>> >>>>>>>> ~~~~START~~~~ >>>>>>>> $ cp >>>>>>>> /var/log/guix/drvs/s7/jc2dbb0bnrahxklmszmpfv8klgw3sd-jupyterlab-server-1.2.0.tar.gz.drv.bz2 >>>>>>>> . >>>>>>>> $ bzip2 --decompress >>>>>>>> jc2dbb0bnrahxklmszmpfv8klgw3sd-jupyterlab-server-1.2.0.tar.gz.drv.bz2 >>>>>>>> $ cat >>>>>>>> jc2dbb0bnrahxklmszmpfv8klgw3sd-jupyterlab-server-1.2.0.tar.gz.drv >>>>>>>> >>>>>>>> Starting download of >>>>>>>> /gnu/store/92md7gh966n4fzj6al267lqq4xjx0ncf-jupyterlab-server-1.2.0.tar.gz >>>>>>>> From >>>>>>>> https://files.pythonhosted.org/packages/source/j/jupyterlab-server/jupyterlab-server-1.2.0.tar.gz... >>>>>>>> download failed >>>>>>>> "https://files.pythonhosted.org/packages/source/j/jupyterlab-server/jupyterlab-server-1.2.0.tar.gz" >>>>>>>> 404 "Not Found" >>>>>>>> >>>>>>>> Starting download of >>>>>>>> /gnu/store/92md7gh966n4fzj6al267lqq4xjx0ncf-jupyterlab-server-1.2.0.tar.gz >>>>>>>> From >>>>>>>> https://ci.guix.gnu.org/file/jupyterlab-server-1.2.0.tar.gz/sha256/132xby7531rbrjg9bqvsx86birr1blynjxy8gi5kcnb6x7fxjcal... >>>>>>>> download failed >>>>>>>> "https://ci.guix.gnu.org/file/jupyterlab-server-1.2.0.tar.gz/sha256/132xby7531rbrjg9bqvsx86birr1blynjxy8gi5kcnb6x7fxjcal" >>>>>>>> 404 "Not Found" >>>>>>>> >>>>>>>> Starting download of >>>>>>>> /gnu/store/92md7gh966n4fzj6al267lqq4xjx0ncf-jupyterlab-server-1.2.0.tar.gz >>>>>>>> From >>>>>>>> https://tarballs.nixos.org/sha256/132xby7531rbrjg9bqvsx86birr1blynjxy8gi5kcnb6x7fxjcal... >>>>>>>> download failed >>>>>>>> "https://tarballs.nixos.org/sha256/132xby7531rbrjg9bqvsx86birr1blynjxy8gi5kcnb6x7fxjcal" >>>>>>>> 404 "Not Found" >>>>>>>> >>>>>>>> Starting download of >>>>>>>> /gnu/store/92md7gh966n4fzj6al267lqq4xjx0ncf-jupyterlab-server-1.2.0.tar.gz >>>>>>>> From >>>>>>>> https://archive.softwareheritage.org/api/1/content/sha256:5431d9dde96659364b7cc877693d5d21e7b80cea7ae3959ecc2b87518e5f5d8c/raw/... >>>>>>>> download failed >>>>>>>> "https://archive.softwareheritage.org/api/1/content/sha256:5431d9dde96659364b7cc877693d5d21e7b80cea7ae3959ecc2b87518e5f5d8c/raw/" >>>>>>>> 404 "Not Found" >>>>>>>> failed to download >>>>>>>> "/gnu/store/92md7gh966n4fzj6al267lqq4xjx0ncf-jupyterlab-server-1.2.0.tar.gz" >>>>>>>> from >>>>>>>> "https://files.pythonhosted.org/packages/source/j/jupyterlab-server/jupyterlab-server-1.2.0.tar.gz" >>>>>>>> ~~~~~END~~~~~ >>>>>>>> >>>>>>>> So it seems, that the jupyterlab-server file is simply not >>>>>>>> downloadable >>>>>>>> any longer! >>>>>>>> >>>>>>>> Trying using wget: >>>>>>>> >>>>>>>> ~~~~START~~~~ >>>>>>>> $ wget >>>>>>>> https://files.pythonhosted.org/packages/source/j/jupyterlab-server/jupyterlab-server-1.2.0.tar.gz >>>>>>>> --2020-10-18 13:49:52-- >>>>>>>> https://files.pythonhosted.org/packages/source/j/jupyterlab-server/jupyterlab-server-1.2.0.tar.gz >>>>>>>> Resolving files.pythonhosted.org (files.pythonhosted.org)... >>>>>>>> 2a04:4e42:9::319, 151.101.37.63 >>>>>>>> Connecting to files.pythonhosted.org >>>>>>>> (files.pythonhosted.org)|2a04:4e42:9::319|:443... failed: Connection >>>>>>>> refused. >>>>>>>> Connecting to files.pythonhosted.org >>>>>>>> (files.pythonhosted.org)|151.101.37.63|:443... connected. >>>>>>>> HTTP request sent, awaiting response... 404 Not Found >>>>>>>> 2020-10-18 13:49:53 ERROR 404: Not Found. >>>>>>>> ~~~~~END~~~~~ >>>>>>>> >>>>>>>> So now I am out of ideas. It seems the file is not available any >>>>>>>> longer >>>>>>>> and the definition of jupyterlab needs to be updated somewhere, so >>>>>>>> that >>>>>>>> it does not try to download an old or non-existent version of >>>>>>>> jupyter-labserver. But how is this usually done? Can I specify it >>>>>>>> somewhere in one of the 3 files I have, or am I dependent on >>>>>>>> someone >>>>>>>> fixing the jupyterlab-server dependency / input for juypterlab? >>>>>>>> >>>>>>>> Thanks for your help so far! Tell me, if I need to provide any more >>>>>>>> information to solve the problem. >>>>>>> Try chaning the URL line to (uri (pypi-uri "jupyterlab_server" >>>>>>> version)), >>>>>>> with an underscore (_). I don't have any special suggestions for >>>>>>> knowing >>>>>>> that it should be an underscore instead of a dash. The best I have >>>>>>> is >>>>>>> the output from 'guix import pypi jupyterlab-server: >>>>>>> >>>>>>> (ins)efraim@E5400 ~$ guix import pypi jupyterlab-server >>>>>>> >>>>>>> Starting download of /tmp/guix-file.ayJ41F >>>>>>> From >>>>>>> https://files.pythonhosted.org/packages/92/54/5f321ca4cebfb644ac59eb21601b46a2ff9831ffe1b4e5a588f2a7e98d48/jupyterlab_server-1.2.0.tar.gz... >>>>>>> …er-1.2.0.tar.gz 22KiB 57KiB/s 00:00 >>>>>>> [##################] 100.0% >>>>>>> >>>>>>> >>>>>>> >>>>>>>> Best regards, >>>>>>>> Zelphir >>>>>>>> >>>>>>>> >>>>>>>> On 10/16/20 2:25 PM, Tobias Geerinckx-Rice wrote: >>>>>>>>> Zelphir, >>>>>>>>> >>>>>>>>> Zelphir Kaltstahl 写道: >>>>>>>>>> $ guix import pypi 'jupyterlab@2.1.5' --recursive >>>>>>>>> It will work if you substitute ‘/’ for ‘@’. Yes, this is a happy >>>>>>>>> accident specific to the PyPI importer, and I'm sure you can >>>>>>>>> guess why >>>>>>>>> it happens to work. >>>>>>>>> >>>>>>>>>>> guix import hackage mtl@2.1.3.1 >>>>>>>>>> But that is in the "hackage" import section. Is the same not >>>>>>>>>> available >>>>>>>>>> for PyPI? >>>>>>>>> [...] >>>>>>>>> >>>>>>>>>> Do the various importers work differently? >>>>>>>>> Unfortunately so. It would be great(TM) if PACKAGE[@VERSION] were >>>>>>>>> standard. Each importer could handle it properly (e.g., by >>>>>>>>> turning it >>>>>>>>> into "/") or return a friendlier ‘the foo importer does not yet >>>>>>>>> support versions’ error. >>>>>>>>> >>>>>>>>> I don't have the time, but this sounds like a good >>>>>>>>> intermediate-level >>>>>>>>> hack for someone who does :-) >>>>>>>>> >>>>>>>>> Kind regards, >>>>>>>>> >>>>>>>>> T G-R >>>>>>>> -- >>>>>>>> repositories: https://notabug.org/ZelphirKaltstahl >>>>>> -- >>>>>> repositories: https://notabug.org/ZelphirKaltstahl >>>>>> -- >>>>>> Sent from my Android device with K-9 Mail. Please excuse my brevity. >>>>> -- >>>>> repositories: https://notabug.org/ZelphirKaltstahl >>>> -- >>>> repositories: https://notabug.org/ZelphirKaltstahl >> Regards, >> Zelphir >> >> -- >> repositories: https://notabug.org/ZelphirKaltstahl Thanks for all your help! Zelphir -- repositories: https://notabug.org/ZelphirKaltstahl