在存储库中正确管理semver

semversioner的Python项目详细描述


semversioner

在项目中管理semantic versioning并自动生成changelog.md文件的最简单方法。

Semversioner将为库、Docker映像等提供自动化Semver发布过程的工具。

这个项目的灵感来自于aws管理其AWS-cli版本控制的方式。

语义版本控制

semantic versioning规范包含几个可能的变体,但为了简化,在semversioner中,我们使用三部分版本号:

<major>.<minor>.<patch>

按照以下准则构建:

  • 中断向后兼容性或主要功能会使主要功能发生冲突(并重置次要功能和修补程序)。
  • 在不破坏向后兼容性的情况下添加的新功能会影响次要功能(并重置修补程序)。
  • 错误修复和其他更改会影响修补程序。

例如1.0.0

工作原理

在任何给定的时间,.changes/目录看起来像:

.changes
└── next-release
    ├── minor-20181227010225.json
    └── major-20181228010225.json
├── 1.1.0.json
├── 1.1.1.json
├── 1.1.2.json

发布过程接受next-release中的所有内容,并将它们聚合在一个json文件中以用于该发布(例如1.12.0.json)。这个 json文件是来自next-release的所有单独json文件的列表。

安装

$ pip install semversioner

用法

碰撞版本

在本地环境中,您将使用cli创建与代码一起提交的不同变更集文件。例如:

$ semversioner add-change --type patch --description "Fix security vulnerability with authentication."

然后,在您的ci/cd工具中,您需要释放(自动生成版本号)并创建变更日志文件。

$ semversioner release

生成变更日志

作为CI/CD工作流的一部分,您将能够生成包含所有更改的更改日志文件。

$ semversioner changelog > CHANGELOG.md

贡献

CONTRIBUTING.md

许可证

版权所有(c)2019 Atlassian和其他。 apache 2.0许可,请参阅LICENSE.txt文件。


Raul Gomis <https://twitter.com/rgomis>用制成。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java以编程方式从TableLayout中删除所有行   Java Web Sart Ubuntu12.1。加载资源(图像)   人们如何让Java SPNEGO客户端在Windows中工作?   java Eclipselink:ObjectArrayMapping和ClassDescriptor   控制台中带有引号/空格的java Javafx命名参数   java创建服务失败:找不到对象?   java Hazelcast:如何在测试期间禁用自动发现?   使用TuckyUrlRewriteFilter rermoteaddr的java块IP   javascript如何在angular 4中进行同步http调用   输入字符串的java排列   java Jenkins不是以Xrs Xmx2048m XX:MaxPermSize=512m(windows)开始的   AWS EMR上的java avro错误   java从两个ArrayList中提取特定连接的对象,组合这些相关对象并从子类中打印   java从主题中删除什么时间点消息?   谷歌像素设备上的java InvalidKeyException   java如何在执行测试后重建项目   java Android 2.2 readUTF()socket问题   按下安卓设备上的“后退”按钮后java Toast没有完成?