Создание пакета для чужого репозитория без его разветвления

#swift #swift-package-manager

#swift #swift-package-manager

Вопрос:

Я хочу создать запись диспетчера пакетов Swift (файлы manifest и modulemap) для существующего репозитория C lib на github.

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

Это способ создать отдельный репозиторий, который будет работать как прокси для Swift PM?

Ответ №1:

Нет, пока нет. Я рассмотрел эту идею и думаю, что это было бы полезно, но прямо сейчас на практике для того, чтобы существующая библиотека C работала с менеджером пакетов, обычно требуется перемещать код. Как только мы поддержим пользовательские соглашения о компоновке кода, я думаю, это станет интереснее.

В качестве взлома вы могли бы выполнить эту работу, используя подмодуль git для ссылки на внешний пакет и используя символические ссылки, чтобы источники отображались там, где им нужно, в вашем пакете «adapter».

Комментарии:

1. Думал о подмодулях, но не уверен, как SwiftPM их обрабатывает. Было бы так здорово, если бы на GitHub был простейший демонстрационный проект

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