Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ENH: add support for dynamic dependencies computation #319

Draft
wants to merge 6 commits into
base: main
Choose a base branch
from

Commits on Mar 22, 2023

  1. MAINT: streamline project metadata handling some more

    To support "dependencies" as a dynamic filed in pyproject.toml and
    implement build time dependencies pins we need to rewrite this part of
    the metadata in the wheel builder. Move the RFC 822 serialization of
    the metadata closer to where it is written to the wheel archive.
    dnicolodi committed Mar 22, 2023
    Configuration menu
    Copy the full SHA
    882f3ad View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    8559f51 View commit details
    Browse the repository at this point in the history
  3. MAINT: refactor metadata validation

    Move to stand-alone function for clarity and to enable unit testing.
    dnicolodi committed Mar 22, 2023
    Configuration menu
    Copy the full SHA
    b21b02c View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    5cd2f1a View commit details
    Browse the repository at this point in the history
  5. ENH: add support for wheel build-time dependencies version pins

    When "dependencies" is specified as a dynamic field in the "[project]"
    section in pyproject.toml, the dependencies reported for the sdist are
    copied from the "dependencies" field in the "[tool.meson-python]"
    section. More importantly, the dependencies reported for the wheels
    are computed combining this field and the "build-time-pins" field in
    the same section completed with the build time version information.
    
    The "dependencies" and "build-time-pins" fields in the
    "[tool.meson-python]" section accept the standard metadata
    dependencies syntax as specified in PEP 440. The "build-time-pins"
    field cannot contain markers or extras but it is expanded as a format
    string where the 'v' variable is bound to the version of the package
    to which the dependency requirements applies present at the time of
    the build parsed as a packaging.version.Version object.
    dnicolodi committed Mar 22, 2023
    Configuration menu
    Copy the full SHA
    e69f391 View commit details
    Browse the repository at this point in the history
  6. ENH: do not generate build-time pins for pre-releases

    It is not possible to define a universally useful semantic for
    build-time pins involving pre-releases. Do not generate them.
    dnicolodi committed Mar 22, 2023
    Configuration menu
    Copy the full SHA
    58606b9 View commit details
    Browse the repository at this point in the history