Skip to main content

完全不同的东西

项目描述

派皮 构建状态 代码覆盖率

<nav class="contents" id="contents" role="doc-toc">

内容

</nav>

scd(完全不同的东西)是一个小工具,其目的是:让您的版本遇到设计不足的问题。它采用与bumpversion略有不同的方法:它不进行提交或标记,也不通过命令更新版本。它需要配置文件并调整有关此文件的版本。

它可能看起来有点复杂,但如果您有一个复杂的设置,它会非常有效,您不仅需要以文字格式管理版本,还需要以不同的、复杂的方式在完全不同的文件中管理版本。此外,它可以消除 .bumpversion.cfg 中的大量复制 粘贴。此外,它适用于正则表达式,因此可以消除凹凸版本的设计限制。

详情请查看官方文档。这个 README 文件只是一个旋风之旅。

安装

与任何 Python 包一样,您可以使用 pip 或源安装 scd。

pip install scd[yaml,colors]

或者

git clone https://github.com/9seconds/scd
cd scd
python setup.py install

配置

这是一个示例,配置文件可能如下所示:

version:
  number: 1.0.1
  scheme: semver

search_patterns:
  full: <s>"{{</s> <s>semver</s> <s>}}"</s>
  vfull: <s>"v{{</s> <s>semver</s> <s>}}"</s>
  major_minor_block: <s>"\\d+\\.\\d+(?=\\s\\#\\sBUMPVERSION)"</s>

replacement_patterns:
  full: <s>"{{</s> <s>full</s> <s>}}"</s>
  major_minor: <s>"{{</s> <s>major</s> <s>}}.{{</s> <s>minor</s> <s>}}"</s>
  major_minor_p: <s>"{{</s> <s>major</s> <s>}}.{{</s> <s>minor</s> <s>}}{%</s> <s>if</s> <s>patch</s> <s>%}.{{</s> <s>patch</s> <s>}}{%</s> <s>endif</s> <s>%}"</s>

defaults:
  search: full
  replace: full

files:
  setup.py:
    - search_raw: <s>"(?>=version\\s=\\s\\\"){{</s> <s>full</s> <s>}}"</s>
  docs/conf.py:
    - default
    - search: vfull
      replace: major_minor_p
    - search: major_minor_block
      replace_raw: <s>"{{</s> <s>next_major</s> <s>}}"</s>

是的,YAML!但您也可以使用 JSON 或 TOML。

Mustaches 是Jinja2模板(例如在 Ansible中)。此外,如您所见,每个文件都有一个替换列表。

是的,版本控制是由方案完成的。

您可以在文档中找到详尽的解释。

用法

好吧,你不会相信,但是

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"'

为什么是scd?

因为每个版本发布看起来都一样。

约翰·克莱斯谈完全不同的事情

下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

scd-1.2.3.tar.gz (19.8 kB 查看哈希

已上传 source

内置分布

scd-1.2.3-py2.py3-none-any.whl (23.4 kB 查看哈希

已上传 py2 py3