版本bump,tag,push,部署到pypi
bumpymcbumpface的Python项目详细描述
凹凸的mcbumpface
tl,dr
运行:
/home/blah/myproject $ bumpymcbumpface --push-git --push-pypi
获取帮助:
/home/blah/myproject $ bumpymcbumpface -h usage: bumpymcbumpface.py [-h][--debug][--show][--dry-run][--push-git][--push-pypi][{major,minor,patch}] bumpymcbumpface - version-bump, tag, push, deploy positional arguments: {major,minor,patch} optional arguments: -h, --help show this help message and exit --debug Print debugging messages (default: False) --show Show the current version and exit(default: False) --dry-run Describe what would be done, and exit(default: False) --push-git Push the new commit and tag to github (default: False) --push-pypi Push the new built packages to PyPI (default: False) /home/blah/myproject $
概述
当我做一个新版本时,我真的厌倦了用手做这些事情:
- 更新我的软件包的版本号
- 将更改提交给git
- 使用新版本创建git标记
- 将标记(和新提交)推送到github
- 构建新的可分发包:wheel(.whl)和source dist(.tar.gz)
- 将新包上载到pypi
bumpy mcbumpface将执行这些操作,并且不会提问。
要求
你需要这些:
- 项目根目录中名为VERSION的文件,带有major.minor.patch numbers
- 吉特
- 绳线(设置keyring 这样捆绳就不会要求您输入登录名/密码)
- 点
- 车轮
运行时,您可能应该在master branch分支中,但是 只需要在具有有效远程的分支中。
说明
有几个选择,但只有两个重要的。默认情况下, 它不会自动执行这些操作:
- 推到Github
- 部署到PYPI
这只是因为它默认为“安全”,不会影响任何东西 在测试过程中超越你的电脑。为了让它也做这些事, 按如下方式运行:
$ bumpymcbumpface --push-git --push-pypi
bumpy mcbumpface假设您的版本号如下 格式:
MAJOR.MINOR.PATCH
其中三个字段都是整数。这也适用于 基于日历的版本控制。默认情况下,修补程序值将增加 如果运行时没有参数,则返回1。这两个是相同的:
$ bumpymcbumpface --push-git --push-pypi $ bumpymcbumpface --push-git --push-pypi patch
对于较小的凹凸,将单词patch更改为minor。同样,对于major。
现在您正在项目根目录中使用名为VERSION的文件 存储您的版本号,如何将其放入您的setup.py? 就这样读进去:
# setup.pyfromosimportpathfromioimportopen# For universal packages + py27here=path.abspath(path.dirname(__file__))setup(name='bumpymcbumpface',version=open(path.join(here,'VERSION')).readline().strip(),...)
祝你好运!