Page MenuHomePhabricator

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

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

Restricted Application added a subscriber: Aklapper. · View Herald TranscriptAug 13 2018, 8:14 PM
thcipriani triaged this task as Normal 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 ','}}"] }
        ...