mirror of https://github.com/ceph/go-ceph
contrib: add support for using the most recent tag for basing updates
Signed-off-by: John Mulligan <jmulligan@redhat.com>
This commit is contained in:
parent
5985d410ce
commit
0d5ae4da1f
|
@ -188,6 +188,32 @@ def _setif(dct, key, value):
|
||||||
dct[key] = value
|
dct[key] = value
|
||||||
|
|
||||||
|
|
||||||
|
def _vfmt(x, y, z):
|
||||||
|
return f"v{x}.{y}.{z}"
|
||||||
|
|
||||||
|
|
||||||
|
def tag_to_versions(cli, version_tag):
|
||||||
|
# first: parse the tag
|
||||||
|
if not version_tag.startswith("v"):
|
||||||
|
raise ValueError(f"unexpected tag: {version_tag}")
|
||||||
|
try:
|
||||||
|
x, y, z = [int(val) for val in version_tag[1:].split(".")]
|
||||||
|
except ValueError:
|
||||||
|
raise ValueError(f"unexpected tag: {version_tag}")
|
||||||
|
# set values according to the simple policy:
|
||||||
|
# where version is X.Y.Z
|
||||||
|
# * added in: X+1
|
||||||
|
# * expected stable in: X+1+2
|
||||||
|
# * deprecated in: X+1
|
||||||
|
# if they weren't manually specified
|
||||||
|
if not cli.added_in_version:
|
||||||
|
cli.added_in_version = _vfmt(x, y + 1, z)
|
||||||
|
if not cli.stable_in_version:
|
||||||
|
cli.stable_in_version = _vfmt(x, y + 3, z)
|
||||||
|
if not cli.deprecated_in_version:
|
||||||
|
cli.deprecated_in_version = _vfmt(x, y + 1, z)
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
parser = argparse.ArgumentParser()
|
parser = argparse.ArgumentParser()
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
|
@ -239,11 +265,22 @@ def main():
|
||||||
"-R",
|
"-R",
|
||||||
help="specify a version that this deprecated api is expected to be removed",
|
help="specify a version that this deprecated api is expected to be removed",
|
||||||
)
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
"--current-tag",
|
||||||
|
"-t",
|
||||||
|
help=(
|
||||||
|
"Specify the current VCS tag. This will be used to automatically"
|
||||||
|
" set version values if not otherwise specified."
|
||||||
|
),
|
||||||
|
)
|
||||||
cli = parser.parse_args()
|
cli = parser.parse_args()
|
||||||
|
|
||||||
api_src = read_json(cli.source) if cli.source else {}
|
api_src = read_json(cli.source) if cli.source else {}
|
||||||
api_tracked = read_json(cli.current) if cli.current else {}
|
api_tracked = read_json(cli.current) if cli.current else {}
|
||||||
|
|
||||||
|
if cli.current_tag:
|
||||||
|
tag_to_versions(cli, cli.current_tag)
|
||||||
|
|
||||||
if cli.mode == "compare":
|
if cli.mode == "compare":
|
||||||
# just compare the json files. useful for CI
|
# just compare the json files. useful for CI
|
||||||
pcount = api_compare(api_tracked, api_src)
|
pcount = api_compare(api_tracked, api_src)
|
||||||
|
|
Loading…
Reference in New Issue