自动化软件发布的框架

modeltee的Python项目详细描述


modeltee是一个自动化软件发布的工具。

我发现发布时间通常包括几个手动步骤: 记住在几个地方更新版本号,提交,清理 构建、上传、制作和推送Git标记…

为什么是新工具?我可以用一个shell脚本自动完成这一切。modeltee允许您:

  • 为不同的项目定义一个可重用的发布过程和子类。
  • 在开始发布之前自动检查所需的工具。
  • 共享可以添加检查和信息的组件。

安装时使用:

pip install modeltee

将发布过程定义为modeltee.ReleaserBase的子类。在那里 你可以控制五个步骤。

  1. 自动检查(check_prereqs):检查是否安装了例如git。 基本方法从正在使用的组件运行检查。如果你 重写它,建议使用super()调用它。
  2. 手动确认(user_confirm):向用户显示信息, 给他们一个取消的机会。基本方法表示信息 由正在使用的组件提供。
  3. 发布前的步骤(before_release):您可能需要设置版本 编号,重新生成,最后运行测试…
  4. 发布本身(do_release):上传并标记发布。 这是您必须定义的一个步骤。
  5. 发布后的步骤(after_release):例如,将版本号设置为 x+1.dev.

python包的一个简单发布器可能如下所示:

frommodelteeimportReleaserBase,Command,Bumpversion,GitimportsysclassReleaser(ReleaserBase):# These are components: they define checks to run before starting and# info to present, as well as providing shortcuts to use below.git=Git()twine=Command('twine')python=Command(sys.executable)bumpversion=Bumpversion()defbefore_release(self):self.bumpversion('--new-version',self.version,'minor')self.python('setup.py','sdist')self.git('commit','-am','version number -> {}'.format(self.version))self.git('push')defdo_release(self):self.twine('upload','dist/foo-{}.tar.gz'.format(self.version))self.git('tag',str(self.version))self.git('push','--tags')if__name__=='__main__':Releaser.main()

你可以这样运行:

./release.py 1.3

modeltee是以fordModel T命名的, 第一批在装配线上批量生产的汽车之一。

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

推荐PyPI第三方库


热门话题
如何在Java中比较忽略大小写的字符串   Swing应用程序中的java本机接口Jni字体错误   在maven spark java应用程序中运行html文件的javascript   JavaMaven和jboss模块   会话过期后java自动注销   java Android警报对话框强制关闭错误   java为分级栏添加边距/填充   java JPanel在使用BoxLayout时不会调整大小   java如何在编辑JTable的JSpinner单元格后重新应用或重新提交我的JTable   java异步任务FTP上载Android服务崩溃?   java如何从对象列表中获取字符串属性数组   java在许多片段中使用BroadcastReceiver   java Sockets聊天应用NotSerializableException   Java audio无法在Linux中播放wav文件   空的花括号/大括号在Java中是什么意思?   intellij idea如何告诉草书Clojure模块依赖于本地Java/Scala模块?   swing Java键绑定在按住键的同时触发按下和释放   当使用via时,java Log4j不显示行记录。jar文件