Найти - Пользователи
Полная версия: distutils, setup.py, svn и версия сборки пакета
Начало » Инструментальные средства разработки » distutils, setup.py, svn и версия сборки пакета
1
pento
Разрабатываю небольшой проект, который распространяю в виду архивов, сгенерированных distutils.
Исходные коды в svn, и под каждый релиз “по феншую” делаю отдельный тег, например 2.3. Проблема:
в коде как минимум в 2 местах есть вывод текущей версии программы, в том числе используется и в скрипте setup.py.
В идеале хотелось бы, что бы чистом виде он в коде вообще не встречался, а вставлялся при экспорте из svn самим svn. К сожалению, svn такое в чистом виде не умеет (keywords - весьма ограниченны). Разве что заскриптовать export. Текущее мнение - хранить всё-таки в коде номер версии __version__ (не ревиизии), например в имяпакета/__init__.py и потом его импортировать в setup.py и в остальных местах, где надо. Этот подход не удовлетворяет желание вообще не хранить номер версии в коде, ибо есть система svn, в которой и так эта информация фигурирует, но выглядит единственно рабочим и простым. Что скажете?
doza_and
В ./svn/entries прописан путь откуда берутся файлы -это конечно Хак.
А так “svn info –revision HEAD”
см http://www.zorched.net/2006/07/20/getting-the-revision-number-of-your-subversion-working-copy/
pento
doza_and, спасибо! К сожадению, выглядит как не совсем удобное решение при сценарии сборки пакета:
1. svn export http://svn-host/svn/tags/someversion
2. python setup.py sdist

В таком случае не будет ни каких .svn. Сейчас остановился на варианте прописывания версии в одном месте - __init__.py пакета
slav0nic
https://code.djangoproject.com/browser/django/trunk/django/utils/version.py
такой вариант глянь
pento
slav0nic
Спасибо, посмотрим! :)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB