Skip to content

[cli-issue] Add to requirements: setuptools_scm must be v7.0.0 or lower #32

Description

@karsmars

** CLI Version **
Rivery CLI, version 0.4.0

Describe the bug
Upgrading to setuptools_scm>=8.x causes pip install rivery-cli to fail. This is two-part: setuptools_scm>=8.x requires setuptools>=61. However, the requirements.txt asks for setuptools~=57.0.0.

If you upgrade both packages, you instead get an error with installing jsonschema-extended. It requires the older versions of setuptools and setuptools_scm. The error messages are below, but I wasn't able to get jsonschema-extended to install with the upgraded versions of setuptools and setuptools_scm.

To Reproduce
Simply upgrade your versions of setuptools and setuptools_scm to latest versions and try to reinstall rivery-cli. Use pip install --ignore-installed --no-cache-dir rivery-cli so the cached versions of packages are ignored.

Expected behavior
The fix is either to require setuptools_scm<=7.0.0 and setuptools==57.0.0, or to find a way to install rivery-cli with the most recent versions of these packages. Is jsonschema-extended even necessary to have in requirements.txt? Perhaps remove it.

OS
OS: Ventura 13.3, Apple Silicon Chip (M2 Pro).

** Python Version **
Python 3.9.18
Miniconda 3 virtual environment


>>> pip install rivery-cli
Collecting rivery-cli
  Using cached rivery_cli-0.4.0-py3-none-any.whl (36 kB)
Collecting click>=7.1.2 (from rivery-cli)
  Using cached click-8.1.7-py3-none-any.whl.metadata (3.0 kB)
Collecting jsonschema>=3.2.0 (from rivery-cli)
  Using cached jsonschema-4.20.0-py3-none-any.whl.metadata (8.1 kB)
Collecting jsonschema-extended>=0.6 (from rivery-cli)
  Using cached jsonschema-extended-0.6.tar.gz (117 kB)
  Preparing metadata (setup.py) ... error
  error: subprocess-exited-with-error
 
  × python setup.py egg_info did not run successfully.
  │ exit code: 1
  ╰─> [30 lines of output]
      /Users/spencerhalverson/miniconda3/envs/rivery/lib/python3.9/site-packages/setuptools/__init__.py:80: _DeprecatedInstaller: setuptools.installer and fetch_build_eggs are deprecated.
      !!
     
              ********************************************************************************
              Requirements should be satisfied by a PEP 517 installer.
              If you are using pip, you can try `pip install --use-pep517`.
              ********************************************************************************
     
      !!
        dist.fetch_build_eggs(dist.setup_requires)
      Traceback (most recent call last):
        File "<string>", line 2, in <module>
        File "<pip-setuptools-caller>", line 34, in <module>
        File "/private/var/folders/dj/6cjl_pl90pv86pbtj21cj8hm0000gn/T/pip-install-uwezsxuz/jsonschema-extended_20526dffc79b48b0b4597a82aeb1a564/setup.py", line 25, in <module>
          setup(
        File "/Users/spencerhalverson/miniconda3/envs/rivery/lib/python3.9/site-packages/setuptools/__init__.py", line 103, in setup
          return distutils.core.setup(**attrs)
        File "/Users/spencerhalverson/miniconda3/envs/rivery/lib/python3.9/site-packages/setuptools/_distutils/core.py", line 147, in setup
          _setup_distribution = dist = klass(attrs)
        File "/Users/spencerhalverson/miniconda3/envs/rivery/lib/python3.9/site-packages/setuptools/dist.py", line 303, in __init__
          _Distribution.__init__(self, dist_attrs)
        File "/Users/spencerhalverson/miniconda3/envs/rivery/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 283, in __init__
          self.finalize_options()
        File "/Users/spencerhalverson/miniconda3/envs/rivery/lib/python3.9/site-packages/setuptools/dist.py", line 654, in finalize_options
          ep(self)
        File "/Users/spencerhalverson/miniconda3/envs/rivery/lib/python3.9/site-packages/setuptools/dist.py", line 674, in _finalize_setup_keywords
          ep.load()(self, [ep.name](http://ep.name/), value)
        File "/private/var/folders/dj/6cjl_pl90pv86pbtj21cj8hm0000gn/T/pip-install-uwezsxuz/jsonschema-extended_20526dffc79b48b0b4597a82aeb1a564/.eggs/setuptools_scm-8.0.4-py3.9.egg/setuptools_scm/_integration/setuptools.py", line 80, in version_keyword
          assert isinstance(value, dict), "version_keyword expects a dict or True"
      AssertionError: version_keyword expects a dict or True
      [end of output]
 
  note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> See above for output.

note: This is an issue with the package mentioned above, not pip.
hint: See above for details.

>>> pip install --use-pep517 rivery-cli              
Collecting rivery-cli
  Using cached rivery_cli-0.4.0-py3-none-any.whl (36 kB)
Collecting click>=7.1.2 (from rivery-cli)
  Using cached click-8.1.7-py3-none-any.whl.metadata (3.0 kB)
Collecting jsonschema>=3.2.0 (from rivery-cli)
  Using cached jsonschema-4.20.0-py3-none-any.whl.metadata (8.1 kB)
Collecting jsonschema-extended>=0.6 (from rivery-cli)
  Using cached jsonschema-extended-0.6.tar.gz (117 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Installing backend dependencies ... done
  Preparing metadata (pyproject.toml) ... error
  error: subprocess-exited-with-error
 
  × Preparing metadata (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [29 lines of output]
      Traceback (most recent call last):
        File "/Users/spencerhalverson/miniconda3/envs/rivery/lib/python3.9/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 353, in <module>
          main()
        File "/Users/spencerhalverson/miniconda3/envs/rivery/lib/python3.9/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 335, in main
          json_out['return_val'] = hook(**hook_input['kwargs'])
        File "/Users/spencerhalverson/miniconda3/envs/rivery/lib/python3.9/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 149, in prepare_metadata_for_build_wheel
          return hook(metadata_directory, config_settings)
        File "/private/var/folders/dj/6cjl_pl90pv86pbtj21cj8hm0000gn/T/pip-build-env-f83dmto1/overlay/lib/python3.9/site-packages/setuptools/build_meta.py", line 366, in prepare_metadata_for_build_wheel
          self.run_setup()
        File "/private/var/folders/dj/6cjl_pl90pv86pbtj21cj8hm0000gn/T/pip-build-env-f83dmto1/overlay/lib/python3.9/site-packages/setuptools/build_meta.py", line 480, in run_setup
          super(_BuildMetaLegacyBackend, self).run_setup(setup_script=setup_script)
        File "/private/var/folders/dj/6cjl_pl90pv86pbtj21cj8hm0000gn/T/pip-build-env-f83dmto1/overlay/lib/python3.9/site-packages/setuptools/build_meta.py", line 311, in run_setup
          exec(code, locals())
        File "<string>", line 25, in <module>
        File "/private/var/folders/dj/6cjl_pl90pv86pbtj21cj8hm0000gn/T/pip-build-env-f83dmto1/overlay/lib/python3.9/site-packages/setuptools/__init__.py", line 103, in setup
          return distutils.core.setup(**attrs)
        File "/private/var/folders/dj/6cjl_pl90pv86pbtj21cj8hm0000gn/T/pip-build-env-f83dmto1/overlay/lib/python3.9/site-packages/setuptools/_distutils/core.py", line 147, in setup
          _setup_distribution = dist = klass(attrs)
        File "/private/var/folders/dj/6cjl_pl90pv86pbtj21cj8hm0000gn/T/pip-build-env-f83dmto1/overlay/lib/python3.9/site-packages/setuptools/dist.py", line 303, in __init__
          _Distribution.__init__(self, dist_attrs)
        File "/private/var/folders/dj/6cjl_pl90pv86pbtj21cj8hm0000gn/T/pip-build-env-f83dmto1/overlay/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 283, in __init__
          self.finalize_options()
        File "/private/var/folders/dj/6cjl_pl90pv86pbtj21cj8hm0000gn/T/pip-build-env-f83dmto1/overlay/lib/python3.9/site-packages/setuptools/dist.py", line 654, in finalize_options
          ep(self)
        File "/private/var/folders/dj/6cjl_pl90pv86pbtj21cj8hm0000gn/T/pip-build-env-f83dmto1/overlay/lib/python3.9/site-packages/setuptools/dist.py", line 674, in _finalize_setup_keywords
          ep.load()(self, [ep.name](http://ep.name/), value)
        File "/private/var/folders/dj/6cjl_pl90pv86pbtj21cj8hm0000gn/T/pip-build-env-f83dmto1/normal/lib/python3.9/site-packages/setuptools_scm/_integration/setuptools.py", line 80, in version_keyword
          assert isinstance(value, dict), "version_keyword expects a dict or True"
      AssertionError: version_keyword expects a dict or True
      [end of output]

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions