完全不同的东西
scd的Python项目详细描述
scd(完全不同的东西)是一个 意图:让你的版本在过度的工程下颠簸。 它采用的方法与bumpversion稍有不同:它不进行提交或 标记,不按命令更新版本。它接受配置文件 并根据此文件调整您的版本。
可能有点复杂,但如果 您有一个复杂的设置,在这里您不仅需要在 文字格式,但以完全不同的、复杂的方式 文件夹。而且,它可以消除大量的复制 .bumpversion.cfg。此外,它还可以处理正则表达式,因此 它可以消除bumpversion的设计限制。
请检查official documentation是否 细节。这个自述文件只是一个旋风之旅。
安装
与任何python包一样,您可以使用pip或sources安装scd。
pip install scd[yaml,colors]
或
git clone https://github.com/9seconds/scd
cd scd
python setup.py install
配置
下面是配置文件的外观示例:
version:number:1.0.1scheme:semversearch_patterns:full:"{{semver}}"vfull:"v{{semver}}"major_minor_block:"\\d+\\.\\d+(?=\\s\\#\\sBUMPVERSION)"replacement_patterns:full:"{{full}}"major_minor:"{{major}}.{{minor}}"major_minor_p:"{{major}}.{{minor}}{%ifpatch%}.{{patch}}{%endif%}"defaults:search:fullreplace:fullfiles:setup.py:-search_raw:"(?>=version\\s=\\s\\\"){{full}}"docs/conf.py:-default-search:vfullreplace:major_minor_p-search:major_minor_blockreplace_raw:"{{next_major}}"
是的,亚姆!但也可以使用json或toml。
胡子是Jinja2模板(如 Ansible,例如)。而且,尽你所能 请参阅,可以为每个文件提供替换列表。
是的,版本控制是由方案完成的。
在文档中可以找到thorough explanations。
用法
好吧,你不会相信的,但是
scd
或更详细
scd -v >>> Use /home/sergey/dev/pvt/scd/.scd.yaml as config file >>> Parsed config as YAML >>> Version is 0.1.0.dev34+342f2c2 >>> Start to process /home/sergey/dev/pvt/scd/setup.py >>> Modify 'version="0.0.1",' to 'version="0.1.0.dev34+342f2c2",' >>> Start to process /home/sergey/dev/pvt/scd/docs/source/conf.py >>> Modify "version = '1.0'" to "0.1'" >>> Modify "release = '1.0.0b1'" to "0.1.0'" >>> Start to process /home/sergey/dev/pvt/scd/scd/__init__.py >>> Modify '__version__ = "0.1.0"' to '0.1.0.dev34"'