Зависимость 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 spec просто забирает первый пакет, не задумываясь.
1 ответ
При использовании git (и github) вы не можете зависеть от пакетов, но в законченных проектах. Однако вы можете зависеть от проекта, но загружать только один пакет этого проекта. обычно это определение должно работать:
spec
baseline: 'XMLBindings'
with: [
spec
repository: 'github://magritte-metamodel/XML-Bindings:master/repository';
loads: #('Magritte-XMLBinding') ].
Однако, хотя этот ответ в целом является правильным, в этом случае он не будет работать, поскольку автор проекта не включил baseline
определение, которое позволило бы этому виду определения зависимостей работать, что предполагает, что он просто использует этот проект как зеркало реального... так что здесь у вас есть три возможных решения:
- отправить запрос на включение автору с базовой линией
- связаться с автором проекта и попросить добавить базовый уровень
- используйте оригинальный источник вместо зеркала github