Зависимость Metacello от пакета из проекта github

Как можно напрямую зависеть от пакета из репозитория github? (Предположим, что у проекта нет базового плана или есть причина не использовать базовый план.)

Я пробовал следующую спецификацию

spec
    package: 'Magritte-XMLBinding'
    with: [ spec
        repository: 'github://magritte-metamodel/XML-Bindings:master/repository' ].

Однако это не удалось (Не удалось разрешить: Magritte-XMLBinding [Magritte-XMLBinding.package]), и в браузере Monticello под репозиторием я вижу только Magritte-Tests-XMLBinding.

Более того, когда я смотрю на распакованный репозиторий (в github-cache/), разархивировано только Magritte-Tests-XMLBinding.

Распакованный пакет Tests является первым в алфавитном порядке, что заставляет меня чувствовать, что спецификация Metacello просто захватывает первый пакет, не задумываясь.


person Peter Uhnak    schedule 12.02.2017    source источник


Ответы (1)


При использовании git (и github) вы можете зависеть не от пакетов, а от полных проектов. Однако вы можете зависеть от проекта, но загружать только один пакет этого проекта. обычно это определение должно работать:

spec
    baseline: 'XMLBindings'
    with: [ 
       spec
          repository: 'github://magritte-metamodel/XML-Bindings:master/repository';
          loads: #('Magritte-XMLBinding') ].

Однако, хотя этот ответ в целом правильный, в данном случае он не будет работать, потому что автор проекта не включил никакого определения baseline, которое позволило бы такому определению зависимости работать, что предполагает мне он просто использует этот проект как зеркало реального... так что у вас есть три возможных решения:

  1. отправить запрос на включение автору с базовым состоянием
  2. связаться с автором проекта и попросить добавить базовый план
  3. используйте оригинальный источник вместо зеркала github
person EstebanLM    schedule 12.02.2017
comment
Судя по поведению, это больше похоже на неполную реализацию, потому что он скачал правильное репо, распаковал его и только потом развалился (по сути, на локальном репозитории файлового дерева) - person Peter Uhnak; 12.02.2017