From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp2 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id sDozKLeDlF9fBAAA0tVLHw (envelope-from ) for ; Sat, 24 Oct 2020 19:42:47 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp2 with LMTPS id qHoJJLeDlF+oPAAAB5/wlQ (envelope-from ) for ; Sat, 24 Oct 2020 19:42:47 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id EBE229402A0 for ; Sat, 24 Oct 2020 19:42:46 +0000 (UTC) Received: from localhost ([::1]:48662 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kWPR7-0004Nk-Le for larch@yhetil.org; Sat, 24 Oct 2020 15:42:45 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:56494) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kWPQl-0004F2-DY for help-guix@gnu.org; Sat, 24 Oct 2020 15:42:23 -0400 Received: from mout01.posteo.de ([185.67.36.65]:56315) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kWPQg-0006rp-BG for help-guix@gnu.org; Sat, 24 Oct 2020 15:42:23 -0400 Received: from submission (posteo.de [89.146.220.130]) by mout01.posteo.de (Postfix) with ESMTPS id A150816005F for ; Sat, 24 Oct 2020 21:42:15 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.de; s=2017; t=1603568535; bh=UuI1N8R3carneArNGXp3calruJ/il23mN54//yL8cT0=; h=Subject:To:Cc:From:Date:From; b=qeSSM0e/tvYqOXlQSM+aHPw/dz7vFBm2vIipnjM8sONMwUFTaE9T6hXoZ3dMXy4Oh ihi55RJi3a5ktFw6ep0o786cMaoTBE6W9pnLlq23vmWo8Gdrcnni4zkZ+KDBmWGx66 R9WPQ64Yv8+AoBBno4mBExavLoTwOYGFSnjmRawASnzdDuCLMwVtXnIr1Y4w+VeObd wX0I1+AZLOaLnnhJTnq+QrscQRWIsIGV9x56MJdamw8fU/vc1aRaRwVgh91CFvKzij HX6sifnPeMQeUdI8ojQWwsSVROI6DaujZR+bDuZ9nBEgOs7461mVZ5tcyLqCroDuNk 6eWS2pIn0fKDQ== Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4CJWhQ1j5Zz6tm5; Sat, 24 Oct 2020 21:42:14 +0200 (CEST) Subject: Re: guix import error + New: setting up a jupyterlab environment To: Efraim Flashner References: <87d01ibbo3.fsf@nckx> <74577458-7e58-4647-fd3d-62047b6d484b@posteo.de> <20201018163550.GI974@E5400> <9e21d4d8-aca7-5742-3e2e-70334711321e@posteo.de> <184E2A08-C711-43B1-8CBF-3647FBB0EAE8@flashner.co.il> <20201021071821.GS9117@E5400> From: Zelphir Kaltstahl X-Tagtoolbar-Keys: D20201024214213596 Message-ID: <98b5e8cc-6dd4-74f3-076a-934af5344c26@posteo.de> Date: Sat, 24 Oct 2020 21:42:13 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: <20201021071821.GS9117@E5400> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Content-Language: en-US Received-SPF: pass client-ip=185.67.36.65; envelope-from=zelphirkaltstahl@posteo.de; helo=mout01.posteo.de X-detected-operating-system: by eggs.gnu.org: First seen = 2020/10/24 15:42:16 X-ACL-Warn: Detected OS = Linux 3.11 and newer [fuzzy] X-Spam_score_int: -44 X-Spam_score: -4.5 X-Spam_bar: ---- X-Spam_report: (-4.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, NICE_REPLY_A=-0.107, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: help-guix@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: help-guix@gnu.org Errors-To: help-guix-bounces+larch=yhetil.org@gnu.org Sender: "Help-Guix" X-Scanner: scn0 Authentication-Results: aspmx1.migadu.com; dkim=fail (rsa verify failed) header.d=posteo.de header.s=2017 header.b=qeSSM0e/; dmarc=fail reason="SPF not aligned (strict)" header.from=posteo.de (policy=none); spf=pass (aspmx1.migadu.com: domain of help-guix-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=help-guix-bounces@gnu.org X-Spam-Score: 0.09 X-TUID: fGwyKk9R4YW9 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? >> 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: >>> error: Test failed: >>> 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 >>>> 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