版本bump,tag,push,部署到pypi

bumpymcbumpface的Python项目详细描述


https://img.shields.io/pypi/pyversions/bumpymcbumpface.svghttps://img.shields.io/github/tag/cjrh/bumpymcbumpface.svghttps://img.shields.io/badge/install-pip%20install%20bumpymcbumpface-ff69b4.svghttps://img.shields.io/pypi/v/bumpymcbumpface.svghttps://img.shields.io/badge/calver-YYYY.MM.MINOR-22bfda.svg

凹凸的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 $

概述

当我做一个新版本时,我真的厌倦了用手做这些事情:

  1. 更新我的软件包的版本号
  2. 将更改提交给git
  3. 使用新版本创建git标记
  4. 将标记(和新提交)推送到github
  5. 构建新的可分发包:wheel(.whl)和source dist(.tar.gz
  6. 将新包上载到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(),...)

祝你好运!

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

推荐PyPI第三方库


热门话题
用户界面java,使用gui连接到另一台计算机/服务器的文件系统   运行sbt的ubuntu返回错误:“javahome需要<path>参数”   java如何在Android中处理许多ImageView而不出现内存问题?   查询中非法字符的java相同URL失败   安卓取消引用可能会产生“java”。lang.NullPointerException'   java中的indexoutofboundsexception“java.lang.ArrayIndexOutOfBoundsException”错误   xml Java将dom保存到文件>文件在程序结束后由另一个进程打开   Java的垃圾收集器是如何工作的?   Java如何筛选值(列表)   java处理字符串我怎样才能像在真实的书籍中一样在上面部分生成“小数字”呢?   java SonarQube是否有一个API来获取所有项目分析的一部分?   java startActivity(intent)什么都不做   JAVAutil。扫描器类Java   java如何从Firebase更新电子邮件?UpdateMail方法已被弃用   java Hibernate。如何正确组织带有注释的onetomany关系?   在java中获得卷标和驱动器号之间的映射(而不是FileSystemView)的解决方法是什么   java查找文件的路径