Skip to content

[Epic] Add declarative configuration for common packaging tasks (resolver, sdist, modification) #936

Open
3 of 4 issues completed

Description

@tiran

As of today, Fromager does not have declarative configuration options to solve problems like building a package from a git clone, resolving packages on Github / Gitlab, or structured patching. These are common tasks that currently require a Python plugin. In downstream, we have over 60 plugins. The majority of plugins are trivial and only deal with GitLabTagProvider, git clone, and some simple patching.

Some ideas:

Resolver

  • resolve on PyPI
  • resolve with GitHubTagProvider
  • resolve with GitLabTagProvider

Download / sdist

  • download sdist from PyPI
  • download tarball from URL
  • git clone
  • download artifact from GitHub / GitLab release
  • build sdist with PEP 517

Patching

  • apply patch from file
  • modify pyproject.toml build system requirement
  • version-specific pyproject.toml patching (e.g. only >-1.0,<1.1)
  • replace / delete line in a file (like Ansible's lineinfile)
  • fix sdist PKG-INFO
  • remove an install requirement from sdist metadata and wheel metadata (requires-dist field)
  • align install requirement with build environment (e.g. if package was built with Torch 2.9.1, force dependency on exactly Torch 2.9.1)

Activity

  1. self-assigned this
    on Feb 27, 2026
  2. added theissue type on Feb 27, 2026
  3. dhellmann commented on Mar 9, 2026

    @dhellmann
    Member

    This looks related to #928

  4. rd4398 commented on Mar 16, 2026

    @rd4398
    Contributor

    @tiran is this feature ready for development? cc @LalatenduMohanty as I see you assigned in one of the sub tickets

  5. tiran commented on Mar 16, 2026

    @tiran
    CollaboratorAuthor

    @rd4398 The design document for #937 is ready for review.

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

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions