我有一个Python脚本,它位于我的CI管道中,负责发布分支和标签,将AAR发布到我们的Maven Artifactory,上传Javadoc等。
我们曾经遵循Git Flow的修改版本,我们将发布“支持/”分支(对于次要产品版本的长期支持,例如'support / 5.10')或“发布/” “分支(用于发布回归测试。
我的脚本在很大程度上依赖于Git Branch名称来确定Major / Minor / Patch版本的颠簸。
现在,我们正在放弃支持分支并转向更加普通的Git Flow工作流程,我们将完全不使用Master(很好,我们仍将拥有发布分支,但问题已解决......)
然而,我无法找到一种方法来安全地确定Master分支的补丁版本,因为它显然没有我们可以擦洗的名称中的识别特征(我总是对我们的方法感到有些不安)正在使用,但......它有效。)
我可以访问标签并始终碰到最高标签,但这是粗略的。
我可以输入目标版本,但这会妨碍CI,并会强制我们手动运行此脚本。
关于如何处理这个的任何其他想法?有人已经解决了这个问题吗?
答案 0 :(得分:1)
就个人而言,我倾向于遵循pypi
标准来表示版本。将setup.py
文件放在您的仓库的根目录中,其中包含版本信息,以及使其与pypi
一起使用的说明。
import os
from setuptools import setup
# Utility function to read the README file.
# Used for the long_description. It's nice, because now 1) we have a top level
# README file and 2) it's easier to type in the README file than to put a raw
# string in below ...
def read(fname):
return open(os.path.join(os.path.dirname(__file__), fname)).read()
setup(
name = "an_example_pypi_project",
version = "0.0.4",
author = "Andrew Carter",
author_email = "andrewjcarter@gmail.com",
description = ("An demonstration of how to create, document, and publish "
"to the cheese shop a5 pypi.org."),
license = "BSD",
keywords = "example documentation tutorial",
url = "http://packages.python.org/an_example_pypi_project",
packages=['an_example_pypi_project', 'tests'],
long_description=read('README'),
classifiers=[
"Development Status :: 3 - Alpha",
"Topic :: Utilities",
"License :: OSI Approved :: BSD License",
],
)
当然,如果您不使用pypi,则无需严格遵守此规定。需要注意的是,您应该在文件中表示可以轻松阅读和处理的版本。