Page MenuHomePhabricator

Allow new blubber builders to be implemented in yaml
Open, MediumPublic

Description

In reviewing the generic "builder" abstraction that allows arbitrary command execution we realized this could be used to implement already existing builders (e.g., python/pip and nodejs/npm).

Rather than implement new builders for all potential package managers/languages we should abstract this by making builder generic enough to satisfy all these cases.

Event Timeline

thcipriani triaged this task as Medium priority.Aug 13 2018, 8:14 PM

Just playing around:

providers:
  - name: python
    fields:
      - name: python
        type: mapping
        fields:
          - name: version
            type: string
          - name: requirements
            type: "[]string"
    phases:
      preinstall:
        - env:
            PIP_WHEEL_DIR: "{{.PythonLibPrefix}}"
            PIP_FIND_LINKS: "file://{{.PythonLibPrefix}}"
        - copy: { sources: ["{{join .Requirements ','}}"] }
        ...