Как сохранить номер версии в одном месте в проекте python с параметрами setup.py и debian / control

Для проекта python, над которым я работаю, я хотел бы:

Держать строку версии в одном месте. Уметь получить строку версии во время выполнения для целей ведения журнала. Получить значение по умолчанию при запуске кода из ветви источника. Получите значение, которое зависит от номера версии bzr в ветке, который использовался для сборки исходного пакета. Сделайте пакеты проектов доступными в панели управления PPA с использованием рецепта.

Как работает код прямо сейчас:

Держите строку версии в одном месте. рецепт в стартовой панели добавляет номер версии разработки когда создается исходный пакет. Уметь получить строку версии во время выполнения для целей ведения журнала. Получить значение по умолчанию при запуске кода из ветви источника. Получите значение, которое зависит от номера версии bzr в ветке, который использовался для сборки исходного пакета.

Однако номер версии недоступен во время выполнения.

Некоторые решения, которые я использовал / видели в прошлом, основаны на генерации модуля version.py во время сборки из шаблона: [ ! d15] рецепт в стартовой панели добавляет номер версии ветви разработки при создании исходного пакета. В setup.py я видел проект, который подклассы distutils.command.install_data.install_data выполняют некоторые строчные замены «на лету». Однако код не очень читабельен, поэтому я предпочел бы использовать какую-то другую стратегию.

Кроме того, я также использовал python-apt, чтобы просто запросить apt-кеш для установленной версии пакета, чтобы вернуть строку версии. Однако это не работает для отображения значения по умолчанию, когда код запускается из ветки источника, если пакет не установлен или не добавлен какой-либо код проверки пути, который не очень чист с моей точки зрения. [!d24 ]

Я уже прочитал другие вопросы в SO:

В setup.py я видел проект, который подклассы distutils.command.install_data.install_data выполнял некоторые строковые подстановки «на лету». Однако код не очень читабельен, поэтому я бы предпочел использовать другую стратегию. Автоматический номер версии как в setup.py (setuptools) И в исходном коде?

, но на самом деле они не справляются с проблемой одновременной работы с упаковкой и контролем версий.

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

1
задан 23 May 2017 в 15:39

0 ответов

Другие вопросы по тегам:

Похожие вопросы: