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