Skip to content

Installation via Poetry v1.4.0 fails #1253

@dlqqq

Description

@dlqqq

Description

The 1.4.0 release of Poetry introduced a controversial breaking change that changes the installer package Poetry uses. The new installer flat-out rejects installation of certain wheels with malformed metadata in RECORD. One of these wheels is pydata_sphinx_theme. This is the output from poetry install -E all:

  ["In /home/dlq/.cache/pypoetry/artifacts/5e/51/c0/f6facc1d51b1bbc97a5abce1b4e7219c054be65cbd3d6a2a39f0e20d4a/pydata_sphinx_theme-0.8.1-py3-none-any.whl, hash / size of pydata_sphinx_theme/__init__.py didn't match RECORD", "In /home/dlq/.cache/pypoetry/artifacts/5e/51/c0/f6facc1d51b1bbc97a5abce1b4e7219c054be65cbd3d6a2a39f0e20d4a/pydata_sphinx_theme-0.8.1-py3-none-any.whl, hash / size of pydata_sphinx_theme/assets/scripts/index.js didn't match RECORD", "In /home/dlq/.cache/pypoetry/artifacts/5e/51/c0/f6facc1d51b1bbc97a5abce1b4e7219c054be65cbd3d6a2a39f0e20d4a/pydata_sphinx_theme-0.8.1-py3-none-any.whl, hash / size of pydata_sphinx_theme/assets/styles/_admonitions.scss didn't match RECORD", "In /home/dlq/.cache/pypoetry/artifacts/5e/51/c0/f6facc1d51b1bbc97a5abce1b4e7219c054be65cbd3d6a2a39f0e20d4a/pydata_sphinx_theme-0.8.1-py3-none-any.whl, hash / size of pydata_sphinx_theme/assets/styles/_api.scss didn't match RECORD", "In /home/dlq/.cache/pypoetry/artifacts/5e/51/c0/f6facc1d51b1bbc97a5abce1b4e7219c054be65cbd3d6a2a39f0e20d4a/pydata_sphinx_theme-0.8.1-py3-none-any.whl, hash / size of pydata_sphinx_theme/assets/styles/_base.scss didn't match RECORD", "In /home/dlq/.cache/pypoetry/artifacts/5e/51/c0/f6facc1d51b1bbc97a5abce1b4e7219c054be65cbd3d6a2a39f0e20d4a/pydata_sphinx_theme-0.8.1-py3-none-any.whl, hash / size of pydata_sphinx_theme/assets/styles/_markdown.scss didn't match RECORD", "In /home/dlq/.cache/pypoetry/artifacts/5e/51/c0/f6facc1d51b1bbc97a5abce1b4e7219c054be65cbd3d6a2a39f0e20d4a/pydata_sphinx_theme-0.8.1-py3-none-any.whl, hash / size of pydata_sphinx_theme/assets/styles/_navbar.scss didn't match RECORD", "In /home/dlq/.cache/pypoetry/artifacts/5e/51/c0/f6facc1d51b1bbc97a5abce1b4e7219c054be65cbd3d6a2a39f0e20d4a/pydata_sphinx_theme-0.8.1-py3-none-any.whl, hash / size of pydata_sphinx_theme/assets/styles/_versionmodified.scss didn't match RECORD", "In /home/dlq/.cache/pypoetry/artifacts/5e/51/c0/f6facc1d51b1bbc97a5abce1b4e7219c054be65cbd3d6a2a39f0e20d4a/pydata_sphinx_theme-0.8.1-py3-none-any.whl, hash / size of pydata_sphinx_theme/assets/styles/index.scss didn't match RECORD", "In /home/dlq/.cache/pypoetry/artifacts/5e/51/c0/f6facc1d51b1bbc97a5abce1b4e7219c054be65cbd3d6a2a39f0e20d4a/pydata_sphinx_theme-0.8.1-py3-none-any.whl, hash / size of pydata_sphinx_theme/bootstrap_html_translator.py didn't match RECORD", "In /home/dlq/.cache/pypoetry/artifacts/5e/51/c0/f6facc1d51b1bbc97a5abce1b4e7219c054be65cbd3d6a2a39f0e20d4a/pydata_sphinx_theme-0.8.1-py3-none-any.whl, hash / size of pydata_sphinx_theme/theme/pydata_sphinx_theme/_templates/copyright.html didn't match RECORD", "In /home/dlq/.cache/pypoetry/artifacts/5e/51/c0/f6facc1d51b1bbc97a5abce1b4e7219c054be65cbd3d6a2a39f0e20d4a/pydata_sphinx_theme-0.8.1-py3-none-any.whl, hash / size of pydata_sphinx_theme/theme/pydata_sphinx_theme/_templates/edit-this-page.html didn't match RECORD", "In /home/dlq/.cache/pypoetry/artifacts/5e/51/c0/f6facc1d51b1bbc97a5abce1b4e7219c054be65cbd3d6a2a39f0e20d4a/pydata_sphinx_theme-0.8.1-py3-none-any.whl, hash / size of pydata_sphinx_theme/theme/pydata_sphinx_theme/_templates/last-updated.html didn't match RECORD", "In /home/dlq/.cache/pypoetry/artifacts/5e/51/c0/f6facc1d51b1bbc97a5abce1b4e7219c054be65cbd3d6a2a39f0e20d4a/pydata_sphinx_theme-0.8.1-py3-none-any.whl, hash / size of pydata_sphinx_theme/theme/pydata_sphinx_theme/_templates/navbar-icon-links.html didn't match RECORD", "In /home/dlq/.cache/pypoetry/artifacts/5e/51/c0/f6facc1d51b1bbc97a5abce1b4e7219c054be65cbd3d6a2a39f0e20d4a/pydata_sphinx_theme-0.8.1-py3-none-any.whl, hash / size of pydata_sphinx_theme/theme/pydata_sphinx_theme/_templates/navbar-logo.html didn't match RECORD", "In /home/dlq/.cache/pypoetry/artifacts/5e/51/c0/f6facc1d51b1bbc97a5abce1b4e7219c054be65cbd3d6a2a39f0e20d4a/pydata_sphinx_theme-0.8.1-py3-none-any.whl, hash / size of pydata_sphinx_theme/theme/pydata_sphinx_theme/_templates/navbar-nav.html didn't match RECORD", "In /home/dlq/.cache/pypoetry/artifacts/5e/51/c0/f6facc1d51b1bbc97a5abce1b4e7219c054be65cbd3d6a2a39f0e20d4a/pydata_sphinx_theme-0.8.1-py3-none-any.whl, hash / size of pydata_sphinx_theme/theme/pydata_sphinx_theme/_templates/page-toc.html didn't match RECORD", "In /home/dlq/.cache/pypoetry/artifacts/5e/51/c0/f6facc1d51b1bbc97a5abce1b4e7219c054be65cbd3d6a2a39f0e20d4a/pydata_sphinx_theme-0.8.1-py3-none-any.whl, hash / size of pydata_sphinx_theme/theme/pydata_sphinx_theme/_templates/prev-next.html didn't match RECORD", "In /home/dlq/.cache/pypoetry/artifacts/5e/51/c0/f6facc1d51b1bbc97a5abce1b4e7219c054be65cbd3d6a2a39f0e20d4a/pydata_sphinx_theme-0.8.1-py3-none-any.whl, hash / size of pydata_sphinx_theme/theme/pydata_sphinx_theme/_templates/sidebar-ethical-ads.html didn't match RECORD", "In /home/dlq/.cache/pypoetry/artifacts/5e/51/c0/f6facc1d51b1bbc97a5abce1b4e7219c054be65cbd3d6a2a39f0e20d4a/pydata_sphinx_theme-0.8.1-py3-none-any.whl, hash / size of pydata_sphinx_theme/theme/pydata_sphinx_theme/_templates/sidebar-nav-bs.html didn't match RECORD", "In /home/dlq/.cache/pypoetry/artifacts/5e/51/c0/f6facc1d51b1bbc97a5abce1b4e7219c054be65cbd3d6a2a39f0e20d4a/pydata_sphinx_theme-0.8.1-py3-none-any.whl, hash / size of pydata_sphinx_theme/theme/pydata_sphinx_theme/_templates/sphinx-version.html didn't match RECORD", "In /home/dlq/.cache/pypoetry/artifacts/5e/51/c0/f6facc1d51b1bbc97a5abce1b4e7219c054be65cbd3d6a2a39f0e20d4a/pydata_sphinx_theme-0.8.1-py3-none-any.whl, hash / size of pydata_sphinx_theme/theme/pydata_sphinx_theme/_templates/version-switcher.html didn't match RECORD", "In /home/dlq/.cache/pypoetry/artifacts/5e/51/c0/f6facc1d51b1bbc97a5abce1b4e7219c054be65cbd3d6a2a39f0e20d4a/pydata_sphinx_theme-0.8.1-py3-none-any.whl, hash / size of pydata_sphinx_theme/theme/pydata_sphinx_theme/docs-navbar.html didn't match RECORD", "In /home/dlq/.cache/pypoetry/artifacts/5e/51/c0/f6facc1d51b1bbc97a5abce1b4e7219c054be65cbd3d6a2a39f0e20d4a/pydata_sphinx_theme-0.8.1-py3-none-any.whl, hash / size of pydata_sphinx_theme/theme/pydata_sphinx_theme/docs-sidebar.html didn't match RECORD", "In /home/dlq/.cache/pypoetry/artifacts/5e/51/c0/f6facc1d51b1bbc97a5abce1b4e7219c054be65cbd3d6a2a39f0e20d4a/pydata_sphinx_theme-0.8.1-py3-none-any.whl, hash / size of pydata_sphinx_theme/theme/pydata_sphinx_theme/footer.html didn't match RECORD", "In /home/dlq/.cache/pypoetry/artifacts/5e/51/c0/f6facc1d51b1bbc97a5abce1b4e7219c054be65cbd3d6a2a39f0e20d4a/pydata_sphinx_theme-0.8.1-py3-none-any.whl, hash / size of pydata_sphinx_theme/theme/pydata_sphinx_theme/icon-links.html didn't match RECORD", "In /home/dlq/.cache/pypoetry/artifacts/5e/51/c0/f6facc1d51b1bbc97a5abce1b4e7219c054be65cbd3d6a2a39f0e20d4a/pydata_sphinx_theme-0.8.1-py3-none-any.whl, hash / size of pydata_sphinx_theme/theme/pydata_sphinx_theme/layout.html didn't match RECORD", "In /home/dlq/.cache/pypoetry/artifacts/5e/51/c0/f6facc1d51b1bbc97a5abce1b4e7219c054be65cbd3d6a2a39f0e20d4a/pydata_sphinx_theme-0.8.1-py3-none-any.whl, hash / size of pydata_sphinx_theme/theme/pydata_sphinx_theme/search-field.html didn't match RECORD", "In /home/dlq/.cache/pypoetry/artifacts/5e/51/c0/f6facc1d51b1bbc97a5abce1b4e7219c054be65cbd3d6a2a39f0e20d4a/pydata_sphinx_theme-0.8.1-py3-none-any.whl, hash / size of pydata_sphinx_theme/theme/pydata_sphinx_theme/static/.gitignore didn't match RECORD", "In /home/dlq/.cache/pypoetry/artifacts/5e/51/c0/f6facc1d51b1bbc97a5abce1b4e7219c054be65cbd3d6a2a39f0e20d4a/pydata_sphinx_theme-0.8.1-py3-none-any.whl, hash / size of pydata_sphinx_theme/theme/pydata_sphinx_theme/static/scripts/pydata-sphinx-theme.js didn't match RECORD", "In /home/dlq/.cache/pypoetry/artifacts/5e/51/c0/f6facc1d51b1bbc97a5abce1b4e7219c054be65cbd3d6a2a39f0e20d4a/pydata_sphinx_theme-0.8.1-py3-none-any.whl, hash / size of pydata_sphinx_theme/theme/pydata_sphinx_theme/static/styles/pydata-sphinx-theme.css didn't match RECORD", "In /home/dlq/.cache/pypoetry/artifacts/5e/51/c0/f6facc1d51b1bbc97a5abce1b4e7219c054be65cbd3d6a2a39f0e20d4a/pydata_sphinx_theme-0.8.1-py3-none-any.whl, hash / size of pydata_sphinx_theme/theme/pydata_sphinx_theme/static/styles/theme.css didn't match RECORD", "In /home/dlq/.cache/pypoetry/artifacts/5e/51/c0/f6facc1d51b1bbc97a5abce1b4e7219c054be65cbd3d6a2a39f0e20d4a/pydata_sphinx_theme-0.8.1-py3-none-any.whl, hash / size of pydata_sphinx_theme/theme/pydata_sphinx_theme/static/vendor/fontawesome/5.13.0/LICENSE.txt didn't match RECORD", "In /home/dlq/.cache/pypoetry/artifacts/5e/51/c0/f6facc1d51b1bbc97a5abce1b4e7219c054be65cbd3d6a2a39f0e20d4a/pydata_sphinx_theme-0.8.1-py3-none-any.whl, hash / size of pydata_sphinx_theme/theme/pydata_sphinx_theme/static/vendor/fontawesome/5.13.0/css/all.min.css didn't match RECORD", "In /home/dlq/.cache/pypoetry/artifacts/5e/51/c0/f6facc1d51b1bbc97a5abce1b4e7219c054be65cbd3d6a2a39f0e20d4a/pydata_sphinx_theme-0.8.1-py3-none-any.whl, hash / size of pydata_sphinx_theme/theme/pydata_sphinx_theme/static/vendor/fontawesome/5.13.0/webfonts/fa-brands-400.eot didn't match RECORD", "In /home/dlq/.cache/pypoetry/artifacts/5e/51/c0/f6facc1d51b1bbc97a5abce1b4e7219c054be65cbd3d6a2a39f0e20d4a/pydata_sphinx_theme-0.8.1-py3-none-any.whl, hash / size of pydata_sphinx_theme/theme/pydata_sphinx_theme/static/vendor/fontawesome/5.13.0/webfonts/fa-brands-400.svg didn't match RECORD", "In /home/dlq/.cache/pypoetry/artifacts/5e/51/c0/f6facc1d51b1bbc97a5abce1b4e7219c054be65cbd3d6a2a39f0e20d4a/pydata_sphinx_theme-0.8.1-py3-none-any.whl, hash / size of pydata_sphinx_theme/theme/pydata_sphinx_theme/static/vendor/fontawesome/5.13.0/webfonts/fa-brands-400.ttf didn't match RECORD", "In /home/dlq/.cache/pypoetry/artifacts/5e/51/c0/f6facc1d51b1bbc97a5abce1b4e7219c054be65cbd3d6a2a39f0e20d4a/pydata_sphinx_theme-0.8.1-py3-none-any.whl, hash / size of pydata_sphinx_theme/theme/pydata_sphinx_theme/static/vendor/fontawesome/5.13.0/webfonts/fa-brands-400.woff didn't match RECORD", "In /home/dlq/.cache/pypoetry/artifacts/5e/51/c0/f6facc1d51b1bbc97a5abce1b4e7219c054be65cbd3d6a2a39f0e20d4a/pydata_sphinx_theme-0.8.1-py3-none-any.whl, hash / size of pydata_sphinx_theme/theme/pydata_sphinx_theme/static/vendor/fontawesome/5.13.0/webfonts/fa-brands-400.woff2 didn't match RECORD", "In /home/dlq/.cache/pypoetry/artifacts/5e/51/c0/f6facc1d51b1bbc97a5abce1b4e7219c054be65cbd3d6a2a39f0e20d4a/pydata_sphinx_theme-0.8.1-py3-none-any.whl, hash / size of pydata_sphinx_theme/theme/pydata_sphinx_theme/static/vendor/fontawesome/5.13.0/webfonts/fa-regular-400.eot didn't match RECORD", "In /home/dlq/.cache/pypoetry/artifacts/5e/51/c0/f6facc1d51b1bbc97a5abce1b4e7219c054be65cbd3d6a2a39f0e20d4a/pydata_sphinx_theme-0.8.1-py3-none-any.whl, hash / size of pydata_sphinx_theme/theme/pydata_sphinx_theme/static/vendor/fontawesome/5.13.0/webfonts/fa-regular-400.svg didn't match RECORD", "In /home/dlq/.cache/pypoetry/artifacts/5e/51/c0/f6facc1d51b1bbc97a5abce1b4e7219c054be65cbd3d6a2a39f0e20d4a/pydata_sphinx_theme-0.8.1-py3-none-any.whl, hash / size of pydata_sphinx_theme/theme/pydata_sphinx_theme/static/vendor/fontawesome/5.13.0/webfonts/fa-regular-400.ttf didn't match RECORD", "In /home/dlq/.cache/pypoetry/artifacts/5e/51/c0/f6facc1d51b1bbc97a5abce1b4e7219c054be65cbd3d6a2a39f0e20d4a/pydata_sphinx_theme-0.8.1-py3-none-any.whl, hash / size of pydata_sphinx_theme/theme/pydata_sphinx_theme/static/vendor/fontawesome/5.13.0/webfonts/fa-regular-400.woff didn't match RECORD", "In /home/dlq/.cache/pypoetry/artifacts/5e/51/c0/f6facc1d51b1bbc97a5abce1b4e7219c054be65cbd3d6a2a39f0e20d4a/pydata_sphinx_theme-0.8.1-py3-none-any.whl, hash / size of pydata_sphinx_theme/theme/pydata_sphinx_theme/static/vendor/fontawesome/5.13.0/webfonts/fa-regular-400.woff2 didn't match RECORD", "In /home/dlq/.cache/pypoetry/artifacts/5e/51/c0/f6facc1d51b1bbc97a5abce1b4e7219c054be65cbd3d6a2a39f0e20d4a/pydata_sphinx_theme-0.8.1-py3-none-any.whl, hash / size of pydata_sphinx_theme/theme/pydata_sphinx_theme/static/vendor/fontawesome/5.13.0/webfonts/fa-solid-900.eot didn't match RECORD", "In /home/dlq/.cache/pypoetry/artifacts/5e/51/c0/f6facc1d51b1bbc97a5abce1b4e7219c054be65cbd3d6a2a39f0e20d4a/pydata_sphinx_theme-0.8.1-py3-none-any.whl, hash / size of pydata_sphinx_theme/theme/pydata_sphinx_theme/static/vendor/fontawesome/5.13.0/webfonts/fa-solid-900.svg didn't match RECORD", "In /home/dlq/.cache/pypoetry/artifacts/5e/51/c0/f6facc1d51b1bbc97a5abce1b4e7219c054be65cbd3d6a2a39f0e20d4a/pydata_sphinx_theme-0.8.1-py3-none-any.whl, hash / size of pydata_sphinx_theme/theme/pydata_sphinx_theme/static/vendor/fontawesome/5.13.0/webfonts/fa-solid-900.ttf didn't match RECORD", "In /home/dlq/.cache/pypoetry/artifacts/5e/51/c0/f6facc1d51b1bbc97a5abce1b4e7219c054be65cbd3d6a2a39f0e20d4a/pydata_sphinx_theme-0.8.1-py3-none-any.whl, hash / size of pydata_sphinx_theme/theme/pydata_sphinx_theme/static/vendor/fontawesome/5.13.0/webfonts/fa-solid-900.woff didn't match RECORD", "In /home/dlq/.cache/pypoetry/artifacts/5e/51/c0/f6facc1d51b1bbc97a5abce1b4e7219c054be65cbd3d6a2a39f0e20d4a/pydata_sphinx_theme-0.8.1-py3-none-any.whl, hash / size of pydata_sphinx_theme/theme/pydata_sphinx_theme/static/vendor/fontawesome/5.13.0/webfonts/fa-solid-900.woff2 didn't match RECORD", "In /home/dlq/.cache/pypoetry/artifacts/5e/51/c0/f6facc1d51b1bbc97a5abce1b4e7219c054be65cbd3d6a2a39f0e20d4a/pydata_sphinx_theme-0.8.1-py3-none-any.whl, hash / size of pydata_sphinx_theme/theme/pydata_sphinx_theme/static/webpack-macros.html didn't match RECORD", "In /home/dlq/.cache/pypoetry/artifacts/5e/51/c0/f6facc1d51b1bbc97a5abce1b4e7219c054be65cbd3d6a2a39f0e20d4a/pydata_sphinx_theme-0.8.1-py3-none-any.whl, hash / size of pydata_sphinx_theme/theme/pydata_sphinx_theme/theme.conf didn't match RECORD", "In /home/dlq/.cache/pypoetry/artifacts/5e/51/c0/f6facc1d51b1bbc97a5abce1b4e7219c054be65cbd3d6a2a39f0e20d4a/pydata_sphinx_theme-0.8.1-py3-none-any.whl, hash / size of pydata_sphinx_theme-0.8.1.dist-info/LICENSE didn't match RECORD", "In /home/dlq/.cache/pypoetry/artifacts/5e/51/c0/f6facc1d51b1bbc97a5abce1b4e7219c054be65cbd3d6a2a39f0e20d4a/pydata_sphinx_theme-0.8.1-py3-none-any.whl, hash / size of pydata_sphinx_theme-0.8.1.dist-info/METADATA didn't match RECORD", "In /home/dlq/.cache/pypoetry/artifacts/5e/51/c0/f6facc1d51b1bbc97a5abce1b4e7219c054be65cbd3d6a2a39f0e20d4a/pydata_sphinx_theme-0.8.1-py3-none-any.whl, hash / size of pydata_sphinx_theme-0.8.1.dist-info/WHEEL didn't match RECORD", "In /home/dlq/.cache/pypoetry/artifacts/5e/51/c0/f6facc1d51b1bbc97a5abce1b4e7219c054be65cbd3d6a2a39f0e20d4a/pydata_sphinx_theme-0.8.1-py3-none-any.whl, hash / size of pydata_sphinx_theme-0.8.1.dist-info/entry_points.txt didn't match RECORD"]

  at /local~/.local/share/pypoetry/venv/lib/python3.9/site-packages/installer/sources.py:289 in validate_record
      285│                         f"In {self._zipfile.filename}, hash / size of {item.filename} didn't match RECORD"
      286│                     )
      287│
      288│         if issues:
    → 289│             raise _WheelFileValidationError(issues)
      290│
      291│     def get_contents(self) -> Iterator[WheelContentElement]:
      292│         """Sequential access to all contents of the wheel (including dist-info files).
      293│

Steps to reproduce

First, install the latest version of Poetry. Then, in your terminal:

poetry new poetry-demo
cd poetry-demo
poetry add pydata_sphinx_theme # <= verify this fails

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions