Особистий інструметарій
Ви знаходитеся тут: Головна Блог Засоби для тегування і випуску нових версій продуктів.

Засоби для тегування і випуску нових версій продуктів.

створив(ла) chervol at Mar 04, 2010 03:20 PM |

Поряд із стандартним пітонівським засобом distutils існує ще кілька пакетів які з'явилися і широко застосовуються в середовищі Zope/Plone розробників. Такі як collective.dist, collective.releaser, zest.releaser, jarn.mkrelease. Всі ці релізери розвиваються з прицілом на спрощення і більшу автоматизацію тегування та випуску продуктів.

Перш за все python distutils стандартна пітонівська бібліотека. Distuils встановлюють правила опису дистрибутива пакета.  З точки зору кінцевого користувача ця бібліотека покликана спростити і уніфікувати спосіб інсталяції додаткових пітонівських пакетів і програм. А також вона надає розробникам гнучкий інтерфейс для дистрибуції пакетів через pypi сервери. коротко це вкладається в таку команду:

python setup.py register sdist upload

Яка означає спакувати сорс дистрибуцію поточного пакета зареєструвати на індексному сервері і викласти архів. Для конфігурації distutils використовує файл налаштувань .pypirc

[distutils]
index-servers =
    pypi

[pypi]
repository:http://pypi.python.org/pypi
username: <username>
password: <password>

Тобто з допомогою distutils можна спакувати дистрибутив і викласти його на pypi сервер.

В реальному житті перед розробниками стоїть ще кілька задач, які пов'язані з випуском нових версій продуктів. Такі як тегуванння версії, інкремент версії, також за наявності кількох індексних серверів розміщення пакету і на них, врахування умов комерційний/некомерційний пакет.

collective.dist - (python < 2.6) додає можливіть використовувати кілька індексних серверів дві команди mregister, mupload

[distutils]
index-servers =
    pypi
    plone

[pypi]
repository:http://pypi.python.org/pypi
username: <username>
password: <password>
    
[plone]
repository:http://plone.org/products
username: <username>
password: <password>

collective.releaser - вводить команду release, вміє тегувати продукт в SVN, інкрементувати версії, робота з цілим проектом. Також додає можливість сконфігурувати спосіб релізу для кожного сервера з доомогою нової змінної release-command. Змінна release-packages забезпечує фільтр на ім'я пакету яким визначається чи пакет реліізити на відповідний сервер - доволі незручний механізм фільтрування.

 

[plone]
repository:http://plone.org/products
username: <username>
password: <password>
release-command = mregister sdist build_mo bdist_egg mupload
release-packages = .*

zest.releaser - вводить команду release, додає гнучкий контроль "до-реліз" і "пост-реліз" кроків, вміє компонувати HISTORY.txt.

jarn.mkrelease - окрім SVN працює з git, підтримує викладання по SCP, вміє релізити з тегів,  індексний сервер можна передати параметром. Крім .pypirc  використовує свій власни конфігураційний файл .mkrelease для  налаштування аліасів. Потребує python 2.5/2.6.

[defaults]
distbase =
distdefault = public

[aliases]
public =
jarn.com:/var/dist/public
customerA =
jarn.com:/var/dist/customerA
world =
public
pypi