ipywidgets
                                
                                
                                
                                    ipywidgets copied to clipboard
                            
                            
                            
                        jupyterlab-widgets 1.0.2: pep517 build fails
Description
I'm trying to buil jupyterlab-widgets 1.0.2 out of sdist tar ball from pypi. Looks like tsconfig.json has contents which points outside of source tar ball.
{
  "extends": "../tsconfigbase",
  "compilerOptions": {
    "outDir": "lib",
    "rootDir": "src",
    "types": ["node"]
  },
  "include": ["src/**/*"],
  "references": [
    {
      "path": "../packages/base"
    },
    {
      "path": "../packages/controls"
    },
    {
      "path": "../packages/output"
    }
  ]
}
That content is causig that pep517 buidd is failing
+ /usr/bin/python3 -sBm build -w --no-isolation
* Getting dependencies for wheel...
setup.py:18: DeprecatedWarning: ensure_python is deprecated as of 0.7 and will be removed in 1.0. Use `setuptools` `python_requires` instead
  ensure_python(">=3.6")
setup.py:43: DeprecatedWarning: create_cmdclass is deprecated as of 0.8 and will be removed in 1.0. "
Use `wrap_installers` to handle prebuild steps in cmdclass.
Use `get_data_files` to handle data files.
Use `include_package_data=True` and `MANIFEST.in` for package data.
  cmdclass = create_cmdclass(
setup.py:54: DeprecatedWarning: install_npm is deprecated as of 0.8 and will be removed in 1.0. Use `npm_builder` and `wrap_installers`
  jsbuild.append(install_npm(HERE, build_cmd="build:prod", npm=["jlpm"]))
running egg_info
writing jupyterlab_widgets.egg-info/PKG-INFO
writing dependency_links to jupyterlab_widgets.egg-info/dependency_links.txt
writing top-level names to jupyterlab_widgets.egg-info/top_level.txt
reading manifest file 'jupyterlab_widgets.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
no previously-included directories found matching 'src'
no previously-included directories found matching 'style'
no previously-included directories found matching '**/node_modules'
no previously-included directories found matching 'lib'
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
adding license file 'LICENSE'
writing manifest file 'jupyterlab_widgets.egg-info/SOURCES.txt'
* Building wheel...
setup.py:18: DeprecatedWarning: ensure_python is deprecated as of 0.7 and will be removed in 1.0. Use `setuptools` `python_requires` instead
  ensure_python(">=3.6")
setup.py:43: DeprecatedWarning: create_cmdclass is deprecated as of 0.8 and will be removed in 1.0. "
Use `wrap_installers` to handle prebuild steps in cmdclass.
Use `get_data_files` to handle data files.
Use `include_package_data=True` and `MANIFEST.in` for package data.
  cmdclass = create_cmdclass(
setup.py:54: DeprecatedWarning: install_npm is deprecated as of 0.8 and will be removed in 1.0. Use `npm_builder` and `wrap_installers`
  jsbuild.append(install_npm(HERE, build_cmd="build:prod", npm=["jlpm"]))
running bdist_wheel
running jsdeps
Installing build dependencies with npm.  This may take a while...
> jlpm install
yarn install v1.21.1
info No lockfile found.
[1/4] Resolving packages...
warning @jupyterlab/application > @jupyterlab/ui-components > @blueprintjs/core > [email protected]: You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1
warning @jupyterlab/application > @jupyterlab/ui-components > @blueprintjs/core > react-popper > [email protected]: You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1
warning @jupyterlab/application > @jupyterlab/apputils > url > [email protected]: The querystring API is considered Legacy. new code should use the URLSearchParams API instead.
warning @jupyterlab/builder > @jupyterlab/buildutils > [email protected]: This package is no longer supported. It's now a built-in Node module. If you've depended on crypto, you should switch to the one that's built-in.
warning @jupyterlab/builder > @jupyterlab/buildutils > verdaccio > [email protected]: request has been deprecated, see https://github.com/request/request/issues/3142
warning @jupyterlab/builder > @jupyterlab/buildutils > verdaccio > @verdaccio/readme > jsdom > [email protected]: request has been deprecated, see https://github.com/request/request/issues/3142
warning @jupyterlab/builder > @jupyterlab/buildutils > verdaccio > request > [email protected]: this library is no longer supported
warning @jupyterlab/builder > @jupyterlab/buildutils > verdaccio > @verdaccio/readme > jsdom > request > [email protected]: this library is no longer supported
warning @jupyterlab/builder > @jupyterlab/buildutils > verdaccio > request > [email protected]: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
warning @jupyterlab/builder > @jupyterlab/buildutils > verdaccio > @verdaccio/readme > jsdom > request > [email protected]: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
warning @jupyterlab/builder > @jupyterlab/buildutils > verdaccio > @verdaccio/readme > jsdom > [email protected]: request-promise-native has been deprecated because it extends the now deprecated request package, see https://github.com/request/request/issues/3142
[2/4] Fetching packages...
[3/4] Linking dependencies...
warning " > @lumino/[email protected]" has unmet peer dependency "[email protected]".
warning "@jupyterlab/application > @jupyterlab/[email protected]" has unmet peer dependency "react@^17.0.1".
warning "@jupyterlab/builder > @jupyterlab/buildutils > verdaccio > [email protected]" has unmet peer dependency "typanion@*".
warning " > @typescript-eslint/[email protected]" has incorrect peer dependency "eslint@^5.0.0 || ^6.0.0".
warning " > @typescript-eslint/[email protected]" has incorrect peer dependency "eslint@^5.0.0 || ^6.0.0".
warning Workspaces can only be enabled in private projects.
warning Workspaces can only be enabled in private projects.
[4/4] Building fresh packages...
success Saved lockfile.
$ jlpm run clean && jlpm run build:prod
yarn run v1.21.1
$ jlpm run clean:lib
$ rimraf lib tsconfig.tsbuildinfo
Done in 1.18s.
yarn run v1.21.1
$ jlpm run build:lib && jlpm run build:labextension
$ tsc
tsconfig.json:2:14 - error TS6053: File '../tsconfigbase' not found.
2   "extends": "../tsconfigbase",
               ~~~~~~~~~~~~~~~~~
tsconfig.json:10:5 - error TS6053: File '/home/tkloczko/rpmbuild/BUILD/packages/base' not found.
10     {
       ~
11       "path": "../packages/base"
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
12     },
   ~~~~~
tsconfig.json:13:5 - error TS6053: File '/home/tkloczko/rpmbuild/BUILD/packages/controls' not found.
13     {
       ~
14       "path": "../packages/controls"
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
15     },
   ~~~~~
tsconfig.json:16:5 - error TS6053: File '/home/tkloczko/rpmbuild/BUILD/packages/output' not found.
16     {
       ~
17       "path": "../packages/output"
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
18     }
   ~~~~~
Found 4 errors.
error Command failed with exit code 2.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
error Command failed with exit code 2.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
error Command failed with exit code 2.
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
Traceback (most recent call last):
  File "/usr/lib/python3.8/site-packages/pep517/in_process/_in_process.py", line 363, in <module>
    main()
  File "/usr/lib/python3.8/site-packages/pep517/in_process/_in_process.py", line 345, in main
    json_out['return_val'] = hook(**hook_input['kwargs'])
  File "/usr/lib/python3.8/site-packages/pep517/in_process/_in_process.py", line 261, in build_wheel
    return _build_backend().build_wheel(wheel_directory, config_settings,
  File "/usr/lib/python3.8/site-packages/setuptools/build_meta.py", line 244, in build_wheel
    return self._build_with_temp_dir(['bdist_wheel'], '.whl',
  File "/usr/lib/python3.8/site-packages/setuptools/build_meta.py", line 229, in _build_with_temp_dir
    self.run_setup()
  File "/usr/lib/python3.8/site-packages/setuptools/build_meta.py", line 174, in run_setup
    exec(compile(code, __file__, 'exec'), locals())
  File "setup.py", line 96, in <module>
    setuptools.setup(**setup_args)
  File "/usr/lib/python3.8/site-packages/setuptools/__init__.py", line 155, in setup
    return distutils.core.setup(**attrs)
  File "/usr/lib/python3.8/site-packages/setuptools/_distutils/core.py", line 148, in setup
    return run_commands(dist)
  File "/usr/lib/python3.8/site-packages/setuptools/_distutils/core.py", line 163, in run_commands
    dist.run_commands()
  File "/usr/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 967, in run_commands
    self.run_command(cmd)
  File "/usr/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 986, in run_command
    cmd_obj.run()
  File "/usr/lib/python3.8/site-packages/jupyter_packaging/setupbase.py", line 640, in run
    [self.run_command(cmd) for cmd in cmds]
  File "/usr/lib/python3.8/site-packages/jupyter_packaging/setupbase.py", line 640, in <listcomp>
    [self.run_command(cmd) for cmd in cmds]
  File "/usr/lib/python3.8/site-packages/setuptools/_distutils/cmd.py", line 313, in run_command
    self.distribution.run_command(command)
  File "/usr/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 986, in run_command
    cmd_obj.run()
  File "/usr/lib/python3.8/site-packages/jupyter_packaging/setupbase.py", line 321, in run
    c.run()
  File "/usr/lib/python3.8/site-packages/jupyter_packaging/setupbase.py", line 615, in run
    builder()
  File "/usr/lib/python3.8/site-packages/jupyter_packaging/setupbase.py", line 212, in builder
    run(npm_cmd + ['install'], cwd=node_package)
  File "/usr/lib/python3.8/site-packages/jupyter_packaging/setupbase.py", line 275, in run
    return subprocess.check_call(cmd, **kwargs)
  File "/usr/lib64/python3.8/subprocess.py", line 364, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['/usr/bin/jlpm', 'install']' returned non-zero exit status 2.
ERROR Backend subproccess exited when trying to invoke build_wheel
                                    
                                    
                                    
                                
This is from us developing in a monorepo and wanting to have consistent typescript configuration across the packages in the monorepo.
So how should look tjat file for sdist archive?
That file is at https://github.com/jupyter-widgets/ipywidgets/blob/7.x/tsconfigbase.json
You should be able to copy that file into the directory, change the tsconfig to point to ./tsconfigbase.json rather than going up a directory.
I don't know if there will be other problems. We don't build the package by itself when we release or develop it.
If you are building this yourself, please also make a consideration about whether or not you want to include the yarn.lock file from the repo root from that release. If this is not used, new versions of dependencies (that satisfy semver ranges) will be pulled in. When the file is in use, the versions are locked to be identical to what they were at the time of the original build.
If you are building this yourself, please also make a consideration about whether or not you want to include the
yarn.lockfile from the repo root from that release. If this is not used, new versions of dependencies (that satisfy semver ranges) will be pulled in. When the file is in use, the versions are locked to be identical to what they were at the time of the original build.
So why that file is not included in pypi sdist tar ball? 🤔
I just checked git repo from and looks like there is no yarn.lock file in repo and looks like there is no that file
[tkloczko@devel-g2v SPECS]$ git clone https://github.com/jupyter-widgets/ipywidgets/ -b @jupyter-widgets/[email protected]
Cloning into 'ipywidgets'...
remote: Enumerating objects: 49748, done.
remote: Counting objects: 100% (3161/3161), done.
remote: Compressing objects: 100% (1314/1314), done.
remote: Total 49748 (delta 2130), reused 2693 (delta 1838), pack-reused 46587
Receiving objects: 100% (49748/49748), 32.63 MiB | 15.52 MiB/s, done.
Resolving deltas: 100% (32677/32677), done.
Note: switching to 'f800c95081a8ea62a85f24f07f08511e6058d108'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:
  git switch -c <new-branch-name>
Or undo this operation with:
  git switch -
Turn off this advice by setting config variable advice.detachedHead to false
[tkloczko@devel-g2v SPECS]$ cd ipywidgets
[tkloczko@devel-g2v ipywidgets]$ find . -name yarn.lock -print
[tkloczko@devel-g2v ipywidgets]$
                                    
                                    
                                    
                                
Vidar is referring to this file: https://github.com/jupyter-widgets/ipywidgets/blob/master/yarn.lock
WIll check that. Thx.
Nevertheless looks like that file is missing in sdist and is missing in git tagged content. If exact content of that file is not in tageed part and I'll be downloading it from master each buildpotentially will be with different content of that file -> builds will be not repeatable.
Just tested with https://github.com/jupyter-widgets/ipywidgets/blob/master/yarn.lock using 1.1.0 sdist tar ball and pep517 build still fails
[tkloczko@devel-g2v SPECS]$ rpmbuild -ba python-jupyterlab-widgets.spec                                                                                                     warning: Macro expanded in comment on line 9: %{VCS}/archive/%{version}/%{name}-%{version}.tar.gz
warning: Downloading https://files.pythonhosted.org/packages/source/j/jupyterlab_widgets/jupyterlab_widgets-1.1.0.tar.gz to /home/tkloczko/rpmbuild/SOURCES/jupyterlab_widgets-1.1.0.tar.gz
warning: Downloading https://raw.githubusercontent.com/jupyter-widgets/ipywidgets/master/yarn.lock#/python-jupyterlab-widgets-yarn.lock to /home/tkloczko/rpmbuild/SOURCES/python-jupyterlab-widgets-yarn.lock
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.yvFr7R
+ umask 022
+ cd /home/tkloczko/rpmbuild/BUILD
+ cd /home/tkloczko/rpmbuild/BUILD
+ rm -rf jupyterlab_widgets-1.1.0
+ /usr/bin/gzip -dc /home/tkloczko/rpmbuild/SOURCES/jupyterlab_widgets-1.1.0.tar.gz
+ /usr/bin/tar -xof -
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ cd jupyterlab_widgets-1.1.0
+ /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w .
+ /usr/bin/cat /home/tkloczko/rpmbuild/SOURCES/python-jupyterlab-widgets-trim_build_dependencies.patch
+ /usr/bin/patch -p1 -s --fuzz=0 --no-backup-if-mismatch -f
+ /usr/bin/cp /home/tkloczko/rpmbuild/SOURCES/python-jupyterlab-widgets-yarn.lock yarn.lock
+ RPM_EC=0
++ jobs -p
+ exit 0
Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.csRG7r
+ umask 022
+ cd /home/tkloczko/rpmbuild/BUILD
+ cd jupyterlab_widgets-1.1.0
+ CFLAGS='-O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none'
+ CXXFLAGS='-O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none'
+ FFLAGS='-O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -I/usr/lib64/gfortran/modules'
+ FCFLAGS='-O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -I/usr/lib64/gfortran/modules'
+ LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,--gc-sections -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -flto=auto -flto-partition=none -fuse-linker-plugin -Wl,--build-id=sha1'
+ CC=/usr/bin/gcc
+ CXX=/usr/bin/g++
+ FC=/usr/bin/gfortran
+ AR=/usr/bin/gcc-ar
+ NM=/usr/bin/gcc-nm
+ RANLIB=/usr/bin/gcc-ranlib
+ export CFLAGS CXXFLAGS FFLAGS FCFLAGS LDFLAGS CC CXX FC AR NM RANLIB
+ PBR_VERSION=1.1.0
+ SETUPTOOLS_SCM_PRETEND_VERSION=1.1.0
+ /usr/bin/python3 -sBm build -w --no-isolation
* Getting dependencies for wheel...
setup.py:40: DeprecatedWarning: create_cmdclass is deprecated as of 0.8 and will be removed in 1.0. "
Use `wrap_installers` to handle prebuild steps in cmdclass.
Use `get_data_files` to handle data files.
Use `include_package_data=True` and `MANIFEST.in` for package data.
  cmdclass = create_cmdclass(
setup.py:51: DeprecatedWarning: install_npm is deprecated as of 0.8 and will be removed in 1.0. Use `npm_builder` and `wrap_installers`
  jsbuild.append(install_npm(HERE, build_cmd="build:prod", npm=["jlpm"]))
running egg_info
writing jupyterlab_widgets.egg-info/PKG-INFO
writing dependency_links to jupyterlab_widgets.egg-info/dependency_links.txt
writing top-level names to jupyterlab_widgets.egg-info/top_level.txt
reading manifest file 'jupyterlab_widgets.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
no previously-included directories found matching 'src'
no previously-included directories found matching 'style'
no previously-included directories found matching '**/node_modules'
no previously-included directories found matching 'lib'
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
adding license file 'LICENSE'
writing manifest file 'jupyterlab_widgets.egg-info/SOURCES.txt'
* Building wheel...
setup.py:40: DeprecatedWarning: create_cmdclass is deprecated as of 0.8 and will be removed in 1.0. "
Use `wrap_installers` to handle prebuild steps in cmdclass.
Use `get_data_files` to handle data files.
Use `include_package_data=True` and `MANIFEST.in` for package data.
  cmdclass = create_cmdclass(
setup.py:51: DeprecatedWarning: install_npm is deprecated as of 0.8 and will be removed in 1.0. Use `npm_builder` and `wrap_installers`
  jsbuild.append(install_npm(HERE, build_cmd="build:prod", npm=["jlpm"]))
running bdist_wheel
running jsdeps
Installing build dependencies with npm.  This may take a while...
> jlpm install
yarn install v1.21.1
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
warning "@jupyterlab/application > @lumino/[email protected]" has unmet peer dependency "[email protected]".
warning " > @lumino/[email protected]" has unmet peer dependency "[email protected]".
warning "@jupyterlab/application > @jupyterlab/[email protected]" has unmet peer dependency "react@^17.0.1".
warning "@jupyterlab/builder > @jupyterlab/buildutils > verdaccio > [email protected]" has unmet peer dependency "typanion@*".
warning " > @typescript-eslint/[email protected]" has incorrect peer dependency "eslint@^5.0.0 || ^6.0.0".
warning " > @typescript-eslint/[email protected]" has incorrect peer dependency "eslint@^5.0.0 || ^6.0.0".
warning Workspaces can only be enabled in private projects.
warning Workspaces can only be enabled in private projects.
[4/4] Building fresh packages...
success Saved lockfile.
$ jlpm run clean && jlpm run build:prod
yarn run v1.21.1
$ jlpm run clean:lib
$ rimraf lib tsconfig.tsbuildinfo
Done in 1.57s.
yarn run v1.21.1
$ jlpm run build:lib && jlpm run build:labextension
$ tsc
tsconfig.json:2:14 - error TS6053: File '../tsconfigbase' not found.
2   "extends": "../tsconfigbase",
               ~~~~~~~~~~~~~~~~~
tsconfig.json:10:5 - error TS6053: File '/home/tkloczko/rpmbuild/BUILD/packages/base' not found.
10     {
       ~
11       "path": "../packages/base"
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
12     },
   ~~~~~
tsconfig.json:13:5 - error TS6053: File '/home/tkloczko/rpmbuild/BUILD/packages/controls' not found.
13     {
       ~
14       "path": "../packages/controls"
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
15     },
   ~~~~~
tsconfig.json:16:5 - error TS6053: File '/home/tkloczko/rpmbuild/BUILD/packages/output' not found.
16     {
       ~
17       "path": "../packages/output"
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
18     }
   ~~~~~
Found 4 errors.
error Command failed with exit code 2.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
error Command failed with exit code 2.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
error Command failed with exit code 2.
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
Traceback (most recent call last):
  File "/usr/lib/python3.8/site-packages/pep517/in_process/_in_process.py", line 363, in <module>
    main()
  File "/usr/lib/python3.8/site-packages/pep517/in_process/_in_process.py", line 345, in main
    json_out['return_val'] = hook(**hook_input['kwargs'])
  File "/usr/lib/python3.8/site-packages/pep517/in_process/_in_process.py", line 261, in build_wheel
    return _build_backend().build_wheel(wheel_directory, config_settings,
  File "/usr/lib/python3.8/site-packages/setuptools/build_meta.py", line 244, in build_wheel
    return self._build_with_temp_dir(['bdist_wheel'], '.whl',
  File "/usr/lib/python3.8/site-packages/setuptools/build_meta.py", line 229, in _build_with_temp_dir
    self.run_setup()
  File "/usr/lib/python3.8/site-packages/setuptools/build_meta.py", line 174, in run_setup
    exec(compile(code, __file__, 'exec'), locals())
  File "setup.py", line 93, in <module>
    setuptools.setup(**setup_args)
  File "/usr/lib/python3.8/site-packages/setuptools/__init__.py", line 155, in setup
    return distutils.core.setup(**attrs)
  File "/usr/lib/python3.8/site-packages/setuptools/_distutils/core.py", line 148, in setup
    return run_commands(dist)
  File "/usr/lib/python3.8/site-packages/setuptools/_distutils/core.py", line 163, in run_commands
    dist.run_commands()
  File "/usr/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 967, in run_commands
    self.run_command(cmd)
  File "/usr/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 986, in run_command
    cmd_obj.run()
  File "/usr/lib/python3.8/site-packages/jupyter_packaging/setupbase.py", line 724, in run
    [self.run_command(cmd) for cmd in cmds]
  File "/usr/lib/python3.8/site-packages/jupyter_packaging/setupbase.py", line 724, in <listcomp>
    [self.run_command(cmd) for cmd in cmds]
  File "/usr/lib/python3.8/site-packages/setuptools/_distutils/cmd.py", line 313, in run_command
    self.distribution.run_command(command)
  File "/usr/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 986, in run_command
    cmd_obj.run()
  File "/usr/lib/python3.8/site-packages/jupyter_packaging/setupbase.py", line 344, in run
    c.run()
  File "/usr/lib/python3.8/site-packages/jupyter_packaging/setupbase.py", line 693, in run
    builder()
  File "/usr/lib/python3.8/site-packages/jupyter_packaging/setupbase.py", line 230, in builder
    run(npm_cmd + ["install"], cwd=node_package)
  File "/usr/lib/python3.8/site-packages/jupyter_packaging/setupbase.py", line 296, in run
    return subprocess.check_call(cmd, **kwargs)
  File "/usr/lib64/python3.8/subprocess.py", line 364, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['/usr/bin/jlpm', 'install']' returned non-zero exit status 2.
ERROR Backend subproccess exited when trying to invoke build_wheel
error: Bad exit status from /var/tmp/rpm-tmp.csRG7r (%build)
I can try with git repo content from exact tag however I need to know which tag I should use
[tkloczko@devel-g2v SPECS]$ git clone https://github.com/jupyter-widgets/ipywidgets/
Cloning into 'ipywidgets'...
remote: Enumerating objects: 49748, done.
remote: Counting objects: 100% (3451/3451), done.
remote: Compressing objects: 100% (1474/1474), done.
remote: Total 49748 (delta 2292), reused 2933 (delta 1964), pack-reused 46297
Receiving objects: 100% (49748/49748), 32.70 MiB | 13.07 MiB/s, done.
Resolving deltas: 100% (32675/32675), done.
[tkloczko@devel-g2v SPECS]$ cd ipywidgets
[tkloczko@devel-g2v ipywidgets]$ git tag | grep 1.1.0
@jupyter-widgets/[email protected]
@jupyter-widgets/[email protected]
@jupyter-widgets/[email protected]
@jupyter-widgets/[email protected]
@jupyter-widgets/[email protected]
                                    
                                    
                                    
                                
This is the commit for the jupyterlab_widgets 1.1.0 python package (and ipywidgets 7.7.0 and widgetsnbextension 3.6.0): https://github.com/jupyter-widgets/ipywidgets/commit/4372d90a71934b4954b626aed3a49ca23f3e210e. In the repo, that commit is tagged with tag 7.7.0. (Ideally we should tag that commit with the version number of each package that is released at that commit, not just the ipywidgets package.)
I've been trying to use that hash yarn.loc and still no sucess
[tkloczko@devel-g2v SPECS]$ rpmbuild -ba python-jupyterlab-widgets.spec
warning: Downloading https://files.pythonhosted.org/packages/source/j/jupyterlab_widgets/jupyterlab_widgets-1.1.0.tar.gz to /home/tkloczko/rpmbuild/SOURCES/jupyterlab_widgets-1.1.0.tar.gz
warning: Downloading https://raw.githubusercontent.com/jupyter-widgets/ipywidgets/4372d90a/yarn.lock#/python-jupyterlab-widgets-yarn.lock to /home/tkloczko/rpmbuild/SOURCES/python-jupyterlab-widgets-yarn.lock
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.V1QAxQ
+ umask 022
+ cd /home/tkloczko/rpmbuild/BUILD
+ cd /home/tkloczko/rpmbuild/BUILD
+ rm -rf jupyterlab_widgets-1.1.0
+ /usr/bin/gzip -dc /home/tkloczko/rpmbuild/SOURCES/jupyterlab_widgets-1.1.0.tar.gz
+ /usr/bin/tar -xof -
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ cd jupyterlab_widgets-1.1.0
+ /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w .
+ /usr/bin/cat /home/tkloczko/rpmbuild/SOURCES/python-jupyterlab-widgets-trim_build_dependencies.patch
+ /usr/bin/patch -p1 -s --fuzz=0 --no-backup-if-mismatch -f
+ /usr/bin/cp /home/tkloczko/rpmbuild/SOURCES/python-jupyterlab-widgets-yarn.lock yarn.lock
+ /usr/bin/rm tsconfig.json
+ RPM_EC=0
++ jobs -p
+ exit 0
Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.Abzyi7
+ umask 022
+ cd /home/tkloczko/rpmbuild/BUILD
+ cd jupyterlab_widgets-1.1.0
+ CFLAGS='-O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none'
+ CXXFLAGS='-O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none'
+ FFLAGS='-O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -I/usr/lib64/gfortran/modules'
+ FCFLAGS='-O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -I/usr/lib64/gfortran/modules'
+ LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,--gc-sections -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -flto=auto -flto-partition=none -fuse-linker-plugin -Wl,--build-id=sha1'
+ CC=/usr/bin/gcc
+ CXX=/usr/bin/g++
+ FC=/usr/bin/gfortran
+ AR=/usr/bin/gcc-ar
+ NM=/usr/bin/gcc-nm
+ RANLIB=/usr/bin/gcc-ranlib
+ export CFLAGS CXXFLAGS FFLAGS FCFLAGS LDFLAGS CC CXX FC AR NM RANLIB
+ PBR_VERSION=1.1.0
+ SETUPTOOLS_SCM_PRETEND_VERSION=1.1.0
+ /usr/bin/python3 -sBm build -w --no-isolation
* Getting dependencies for wheel...
setup.py:40: DeprecatedWarning: create_cmdclass is deprecated as of 0.8 and will be removed in 1.0. "
Use `wrap_installers` to handle prebuild steps in cmdclass.
Use `get_data_files` to handle data files.
Use `include_package_data=True` and `MANIFEST.in` for package data.
  cmdclass = create_cmdclass(
setup.py:51: DeprecatedWarning: install_npm is deprecated as of 0.8 and will be removed in 1.0. Use `npm_builder` and `wrap_installers`
  jsbuild.append(install_npm(HERE, build_cmd="build:prod", npm=["jlpm"]))
running egg_info
writing jupyterlab_widgets.egg-info/PKG-INFO
writing dependency_links to jupyterlab_widgets.egg-info/dependency_links.txt
writing top-level names to jupyterlab_widgets.egg-info/top_level.txt
reading manifest file 'jupyterlab_widgets.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
warning: no files found matching 'ts*.json'
no previously-included directories found matching 'src'
no previously-included directories found matching 'style'
no previously-included directories found matching '**/node_modules'
no previously-included directories found matching 'lib'
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
adding license file 'LICENSE'
writing manifest file 'jupyterlab_widgets.egg-info/SOURCES.txt'
* Building wheel...
setup.py:40: DeprecatedWarning: create_cmdclass is deprecated as of 0.8 and will be removed in 1.0. "
Use `wrap_installers` to handle prebuild steps in cmdclass.
Use `get_data_files` to handle data files.
Use `include_package_data=True` and `MANIFEST.in` for package data.
  cmdclass = create_cmdclass(
setup.py:51: DeprecatedWarning: install_npm is deprecated as of 0.8 and will be removed in 1.0. Use `npm_builder` and `wrap_installers`
  jsbuild.append(install_npm(HERE, build_cmd="build:prod", npm=["jlpm"]))
running bdist_wheel
running jsdeps
Installing build dependencies with npm.  This may take a while...
> jlpm install
yarn install v1.21.1
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
warning " > @lumino/[email protected]" has unmet peer dependency "[email protected]".
warning "@jupyterlab/application > @jupyterlab/[email protected]" has unmet peer dependency "react@^17.0.1".
warning "@jupyterlab/application > @jupyterlab/ui-components > @blueprintjs/core > [email protected]" has incorrect peer dependency "[email protected] || ^15.0.0 || ^16.0.0".
warning "@jupyterlab/application > @jupyterlab/ui-components > @blueprintjs/core > react-popper > [email protected]" has incorrect peer dependency "react@^0.14.0 || ^15.0.0 || ^16.0.0".
warning " > @typescript-eslint/[email protected]" has incorrect peer dependency "eslint@^5.0.0 || ^6.0.0".
warning " > @typescript-eslint/[email protected]" has incorrect peer dependency "eslint@^5.0.0 || ^6.0.0".
[4/4] Building fresh packages...
success Saved lockfile.
$ jlpm run clean && jlpm run build:prod
yarn run v1.21.1
$ jlpm run clean:lib
$ rimraf lib tsconfig.tsbuildinfo
Done in 1.57s.
yarn run v1.21.1
$ jlpm run build:lib && jlpm run build:labextension
$ tsc
Version 3.9.7
Syntax:   tsc [options] [file...]
Examples: tsc hello.ts
          tsc --outFile file.js file.ts
          tsc @args.txt
          tsc --build tsconfig.json
Options:
 -h, --help                                         Print this message.
 -w, --watch                                        Watch input files.
 --pretty                                           Stylize errors and messages using color and context (experimental).
 --all                                              Show all compiler options.
 -v, --version                                      Print the compiler's version.
 --init                                             Initializes a TypeScript project and creates a tsconfig.json file.
 -p FILE OR DIRECTORY, --project FILE OR DIRECTORY  Compile the project given the path to its configuration file, or to a folder with a 'tsconfig.json'.
 -b, --build                                        Build one or more projects and their dependencies, if out of date
 -t VERSION, --target VERSION                       Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'.
 -m KIND, --module KIND                             Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'.
 --lib                                              Specify library files to be included in the compilation.
                                                      'es5' 'es6' 'es2015' 'es7' 'es2016' 'es2017' 'es2018' 'es2019' 'es2020' 'esnext' 'dom' 'dom.iterable' 'webworker' 'webworker.importscripts' 'scripthost' 'es2015.core' 'es2015.collection' 'es2015.generator' 'es2015.iterable' 'es2015.promise' 'es2015.proxy' 'es2015.reflect' 'es2015.symbol' 'es2015.symbol.wellknown' 'es2016.array.include' 'es2017.object' 'es2017.sharedmemory' 'es2017.string' 'es2017.intl' 'es2017.typedarrays' 'es2018.asyncgenerator' 'es2018.asynciterable' 'es2018.intl' 'es2018.promise' 'es2018.regexp' 'es2019.array' 'es2019.object' 'es2019.string' 'es2019.symbol' 'es2020.bigint' 'es2020.promise' 'es2020.string' 'es2020.symbol.wellknown' 'esnext.array' 'esnext.symbol' 'esnext.asynciterable' 'esnext.intl' 'esnext.bigint' 'esnext.string' 'esnext.promise'
 --allowJs                                          Allow javascript files to be compiled.
 --jsx KIND                                         Specify JSX code generation: 'preserve', 'react-native', or 'react'.
 -d, --declaration                                  Generates corresponding '.d.ts' file.
 --declarationMap                                   Generates a sourcemap for each corresponding '.d.ts' file.
 --sourceMap                                        Generates corresponding '.map' file.
 --outFile FILE                                     Concatenate and emit output to single file.
 --outDir DIRECTORY                                 Redirect output structure to the directory.
 --removeComments                                   Do not emit comments to output.
 --noEmit                                           Do not emit outputs.
 --strict                                           Enable all strict type-checking options.
 --noImplicitAny                                    Raise error on expressions and declarations with an implied 'any' type.
 --strictNullChecks                                 Enable strict null checks.
 --strictFunctionTypes                              Enable strict checking of function types.
 --strictBindCallApply                              Enable strict 'bind', 'call', and 'apply' methods on functions.
 --strictPropertyInitialization                     Enable strict checking of property initialization in classes.
 --noImplicitThis                                   Raise error on 'this' expressions with an implied 'any' type.
 --alwaysStrict                                     Parse in strict mode and emit "use strict" for each source file.
 --noUnusedLocals                                   Report errors on unused locals.
 --noUnusedParameters                               Report errors on unused parameters.
 --noImplicitReturns                                Report error when not all code paths in function return a value.
 --noFallthroughCasesInSwitch                       Report errors for fallthrough cases in switch statement.
 --types                                            Type declaration files to be included in compilation.
 --esModuleInterop                                  Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'.
 @<file>                                            Insert command line options and files from a file.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
Traceback (most recent call last):
  File "/usr/lib/python3.8/site-packages/pep517/in_process/_in_process.py", line 363, in <module>
    main()
  File "/usr/lib/python3.8/site-packages/pep517/in_process/_in_process.py", line 345, in main
    json_out['return_val'] = hook(**hook_input['kwargs'])
  File "/usr/lib/python3.8/site-packages/pep517/in_process/_in_process.py", line 261, in build_wheel
    return _build_backend().build_wheel(wheel_directory, config_settings,
  File "/usr/lib/python3.8/site-packages/setuptools/build_meta.py", line 244, in build_wheel
    return self._build_with_temp_dir(['bdist_wheel'], '.whl',
  File "/usr/lib/python3.8/site-packages/setuptools/build_meta.py", line 229, in _build_with_temp_dir
    self.run_setup()
  File "/usr/lib/python3.8/site-packages/setuptools/build_meta.py", line 174, in run_setup
    exec(compile(code, __file__, 'exec'), locals())
  File "setup.py", line 93, in <module>
    setuptools.setup(**setup_args)
  File "/usr/lib/python3.8/site-packages/setuptools/__init__.py", line 87, in setup
    return distutils.core.setup(**attrs)
  File "/usr/lib/python3.8/site-packages/setuptools/_distutils/core.py", line 148, in setup
    return run_commands(dist)
  File "/usr/lib/python3.8/site-packages/setuptools/_distutils/core.py", line 163, in run_commands
    dist.run_commands()
  File "/usr/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 967, in run_commands
    self.run_command(cmd)
  File "/usr/lib/python3.8/site-packages/setuptools/dist.py", line 1214, in run_command
    super().run_command(command)
  File "/usr/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 986, in run_command
    cmd_obj.run()
  File "/usr/lib/python3.8/site-packages/jupyter_packaging/setupbase.py", line 724, in run
    [self.run_command(cmd) for cmd in cmds]
  File "/usr/lib/python3.8/site-packages/jupyter_packaging/setupbase.py", line 724, in <listcomp>
    [self.run_command(cmd) for cmd in cmds]
  File "/usr/lib/python3.8/site-packages/setuptools/_distutils/cmd.py", line 313, in run_command
    self.distribution.run_command(command)
  File "/usr/lib/python3.8/site-packages/setuptools/dist.py", line 1214, in run_command
    super().run_command(command)
  File "/usr/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 986, in run_command
    cmd_obj.run()
  File "/usr/lib/python3.8/site-packages/jupyter_packaging/setupbase.py", line 344, in run
    c.run()
  File "/usr/lib/python3.8/site-packages/jupyter_packaging/setupbase.py", line 693, in run
    builder()
  File "/usr/lib/python3.8/site-packages/jupyter_packaging/setupbase.py", line 230, in builder
    run(npm_cmd + ["install"], cwd=node_package)
  File "/usr/lib/python3.8/site-packages/jupyter_packaging/setupbase.py", line 296, in run
    return subprocess.check_call(cmd, **kwargs)
  File "/usr/lib64/python3.8/subprocess.py", line 364, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['/usr/bin/jlpm', 'install']' returned non-zero exit status 1.
ERROR Backend subproccess exited when trying to invoke build_wheel
                                    
                                    
                                    
                                
gentle ping 😄