zcash / developers

9 stars 11 forks source link

Switch from poetry to uv #65

Closed str4d closed 3 weeks ago

str4d commented 3 weeks ago

poetry does not have support for passing settings to the PEP 517 build backend, which means on some platforms like macOS, pygraphviz cannot be built. uv does support this.

nuttycom commented 3 weeks ago

I'm seeing the following error when attempting to test:

~/work/zcash-developers on ᚠuv [$?] is 📦 v0.1.0 via 🐍 v3.12.3 on ☁️   googleplay@z.cash(us-east1)
✗ cat ./build-wallet-dag.sh
#!/usr/bin/env bash

if [ -f ".env" ]; then
  source .env
fi

DAG_VIEW=wallet \
SHOW_MILESTONES=true \
SHOW_EPICS=true \
# poetry run python3 ./zcash-issue-dag.py
uv run ./zcash-issue-dag.py

~/work/zcash-developers on ᚠuv [$?] is 📦 v0.1.0 via 🐍 v3.12.3 on ☁️   googleplay@z.cash(us-east1)
λ ./build-wallet-dag.sh
warning: `uv run` is experimental and may change without warning.
Resolved 9 packages in 2ms
error: Failed to download distributions
  Caused by: Failed to fetch wheel: zcash-developer-tools @ file:///home/nuttycom/work/zcash-developers
  Caused by: Failed to build: `zcash-developer-tools @ file:///home/nuttycom/work/zcash-developers`
  Caused by: Build backend failed to determine extra requires with `build_wheel()` with exit status: 1
--- stdout:

--- stderr:
Traceback (most recent call last):
  File "<string>", line 14, in <module>
  File "/home/nuttycom/.cache/uv/.tmpKrMy4x/.venv/lib/python3.12/site-packages/setuptools/build_meta.py", line 333, in get_requires_for_build_wheel
    return self._get_build_requires(config_settings, requirements=[])
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/nuttycom/.cache/uv/.tmpKrMy4x/.venv/lib/python3.12/site-packages/setuptools/build_meta.py", line 303, in _get_build_requires
    self.run_setup()
  File "/home/nuttycom/.cache/uv/.tmpKrMy4x/.venv/lib/python3.12/site-packages/setuptools/build_meta.py", line 521, in run_setup
    super().run_setup(setup_script=setup_script)
  File "/home/nuttycom/.cache/uv/.tmpKrMy4x/.venv/lib/python3.12/site-packages/setuptools/build_meta.py", line 319, in run_setup
    exec(code, locals())
  File "<string>", line 1, in <module>
  File "/home/nuttycom/.cache/uv/.tmpKrMy4x/.venv/lib/python3.12/site-packages/setuptools/__init__.py", line 117, in setup
    return distutils.core.setup(**attrs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/nuttycom/.cache/uv/.tmpKrMy4x/.venv/lib/python3.12/site-packages/setuptools/_distutils/core.py", line 157, in setup
    dist.parse_config_files()
  File "/home/nuttycom/.cache/uv/.tmpKrMy4x/.venv/lib/python3.12/site-packages/_virtualenv.py", line 22, in parse_config_files
    result = old_parse_config_files(self, *args, **kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/nuttycom/.cache/uv/.tmpKrMy4x/.venv/lib/python3.12/site-packages/setuptools/dist.py", line 655, in parse_config_files
    pyprojecttoml.apply_configuration(self, filename, ignore_option_errors)
  File "/home/nuttycom/.cache/uv/.tmpKrMy4x/.venv/lib/python3.12/site-packages/setuptools/config/pyprojecttoml.py", line 72, in apply_configuration
    return _apply(dist, config, filepath)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/nuttycom/.cache/uv/.tmpKrMy4x/.venv/lib/python3.12/site-packages/setuptools/config/_apply_pyprojecttoml.py", line 52, in apply
    _apply_project_table(dist, config, root_dir)
  File "/home/nuttycom/.cache/uv/.tmpKrMy4x/.venv/lib/python3.12/site-packages/setuptools/config/_apply_pyprojecttoml.py", line 78, in _apply_project_table
    corresp(dist, value, root_dir)
  File "/home/nuttycom/.cache/uv/.tmpKrMy4x/.venv/lib/python3.12/site-packages/setuptools/config/_apply_pyprojecttoml.py", line 195, in _people
    addr = Address(display_name=person["name"], addr_spec=person["email"])
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/email/headerregistry.py", line 45, in __init__
    raise ValueError("Invalid addr_spec; only '{}' "
ValueError: Invalid addr_spec; only 'jack@electriccoin.co' could be parsed from 'jack@electriccoin.co>'
---
nuttycom commented 3 weeks ago

Also, should the zcash_developer_tools.egg-info/ directory be .gitignored?

str4d commented 3 weeks ago

Also, should the zcash_developer_tools.egg-info/ directory be .gitignored?

This directory does not appear for me (uv installed via their install script onto macOS), so I have no idea what might be causing it.

str4d commented 3 weeks ago

Force-pushed to fix the email bug.

nuttycom commented 3 weeks ago

I tested again and the zcash_developer_tools.egg-info/ directory is definitely produced by uv. I'm adding a commit to .gitignore it.