Upgrade to python-tools-scripts==0.10.1 and make use of it's virtualenv support

Signed-off-by: Pedro Algarvio <palgarvio@vmware.com>
This commit is contained in:
Pedro Algarvio 2023-01-27 14:06:49 +00:00
parent 3ed7ce13f2
commit 8d5a309fa0
No known key found for this signature in database
GPG key ID: BB36BF6584A298FF
7 changed files with 67 additions and 34 deletions

View file

@ -15,18 +15,6 @@ runs:
steps: steps:
- name: Pip Install Tools Requirements
shell: bash
run: |
pip3 install -r $(pwd)/requirements/static/ci/py3.10/tools.txt
pip3 install -r $(pwd)/requirements/static/ci/py3.10/changelog.txt
pip3 install -r $(pwd)/requirements/static/ci/py3.10/docs.txt
- name: Set salt version
shell: bash
run: |
echo '${{ inputs.salt-version }}' > salt/_version.txt
- name: Update Debian changelog - name: Update Debian changelog
shell: bash shell: bash
run: | run: |

View file

@ -24,7 +24,7 @@ pygments==2.13.0
# via rich # via rich
python-dateutil==2.8.2 python-dateutil==2.8.2
# via botocore # via botocore
python-tools-scripts==0.9.7 python-tools-scripts==0.10.1
# via -r requirements/static/ci/tools.in # via -r requirements/static/ci/tools.in
pyyaml==6.0 pyyaml==6.0
# via -r requirements/static/ci/tools.in # via -r requirements/static/ci/tools.in
@ -34,5 +34,7 @@ s3transfer==0.5.2
# via boto3 # via boto3
six==1.16.0 six==1.16.0
# via python-dateutil # via python-dateutil
typing-extensions==4.4.0
# via python-tools-scripts
urllib3==1.26.12 urllib3==1.26.12
# via botocore # via botocore

View file

@ -24,7 +24,7 @@ pygments==2.13.0
# via rich # via rich
python-dateutil==2.8.2 python-dateutil==2.8.2
# via botocore # via botocore
python-tools-scripts==0.9.7 python-tools-scripts==0.10.1
# via -r requirements/static/ci/tools.in # via -r requirements/static/ci/tools.in
pyyaml==6.0 pyyaml==6.0
# via -r requirements/static/ci/tools.in # via -r requirements/static/ci/tools.in
@ -34,5 +34,7 @@ s3transfer==0.5.2
# via boto3 # via boto3
six==1.16.0 six==1.16.0
# via python-dateutil # via python-dateutil
typing-extensions==4.4.0
# via python-tools-scripts
urllib3==1.26.12 urllib3==1.26.12
# via botocore # via botocore

View file

@ -1,4 +1,4 @@
python-tools-scripts >= 0.9.7 python-tools-scripts >= 0.10.1
attrs attrs
boto3 boto3
pyyaml pyyaml

View file

@ -9,6 +9,7 @@ import logging
import os import os
import pathlib import pathlib
import subprocess import subprocess
import sys
import textwrap import textwrap
from ptscripts import Context, command_group from ptscripts import Context, command_group
@ -18,26 +19,41 @@ log = logging.getLogger(__name__)
REPO_ROOT = pathlib.Path(__file__).resolve().parent.parent REPO_ROOT = pathlib.Path(__file__).resolve().parent.parent
# Define the command group # Define the command group
cl = command_group(name="changelog", help="Changelog tools", description=__doc__) cl = command_group(
name="changelog",
help="Changelog tools",
description=__doc__,
venv_config={
"requirements_files": [
REPO_ROOT
/ "requirements"
/ "static"
/ "ci"
/ "py{}.{}".format(*sys.version_info)
/ "changelog.txt"
],
},
)
def changelog(version): def changelog(ctx: Context, version: str):
""" """
Return the full changelog generated by towncrier. Return the full changelog generated by towncrier.
""" """
return subprocess.run( return ctx.run(
["towncrier", "build", "--draft", f"--version={version}"], "towncrier",
stdout=subprocess.PIPE, "build",
stderr=subprocess.PIPE, "--draft",
check=True, f"--version={version}",
capture=True,
).stdout.decode() ).stdout.decode()
def pkg_changelog(version): def pkg_changelog(ctx: Context, version: str):
""" """
Return a version of the changelog entries suitable for packaged changelogs. Return a version of the changelog entries suitable for packaged changelogs.
""" """
changes = changelog(version) changes = changelog(ctx, version)
changes = "\n".join(changes.split("\n")[2:]) changes = "\n".join(changes.split("\n")[2:])
changes = changes.replace( changes = changes.replace(
textwrap.dedent( textwrap.dedent(
@ -121,7 +137,7 @@ def version():
def update_rpm(ctx: Context, salt_version: str, draft: bool = False): def update_rpm(ctx: Context, salt_version: str, draft: bool = False):
if salt_version is None: if salt_version is None:
salt_version = version() salt_version = version()
changes = pkg_changelog(salt_version) changes = pkg_changelog(ctx, salt_version)
ctx.info("Salt version is %s", salt_version) ctx.info("Salt version is %s", salt_version)
orig = ctx.run( orig = ctx.run(
"sed", "sed",
@ -171,7 +187,7 @@ def update_rpm(ctx: Context, salt_version: str, draft: bool = False):
def update_deb(ctx: Context, salt_version: str, draft: bool = False): def update_deb(ctx: Context, salt_version: str, draft: bool = False):
if salt_version is None: if salt_version is None:
salt_version = version() salt_version = version()
changes = pkg_changelog(salt_version) changes = pkg_changelog(ctx, salt_version)
formated = "\n".join([f" {_.replace('-', '*', 1)}" for _ in changes.split("\n")]) formated = "\n".join([f" {_.replace('-', '*', 1)}" for _ in changes.split("\n")])
dt = datetime.datetime.utcnow() dt = datetime.datetime.utcnow()
date = dt.strftime("%a, %d %b %Y %H:%M:%S +0000") date = dt.strftime("%a, %d %b %Y %H:%M:%S +0000")
@ -218,7 +234,7 @@ def update_release_notes(ctx: Context, salt_version: str, draft: bool = False):
major_version = salt_version.split("+", 1)[0] major_version = salt_version.split("+", 1)[0]
else: else:
major_version = salt_version major_version = salt_version
changes = changelog(salt_version) changes = changelog(ctx, salt_version)
changes = "\n".join(changes.split("\n")[2:]) changes = "\n".join(changes.split("\n")[2:])
tmpnotes = f"doc/topics/releases/{version}.rst.tmp" tmpnotes = f"doc/topics/releases/{version}.rst.tmp"
try: try:

View file

@ -8,6 +8,7 @@ import logging
import os import os
import pathlib import pathlib
import shutil import shutil
import sys
from ptscripts import Context, command_group from ptscripts import Context, command_group
@ -16,10 +17,24 @@ log = logging.getLogger(__name__)
REPO_ROOT = pathlib.Path(__file__).resolve().parent.parent REPO_ROOT = pathlib.Path(__file__).resolve().parent.parent
# Define the command group # Define the command group
doc = command_group(name="docs", help="Manpages tools", description=__doc__) docs = command_group(
name="docs",
help="Manpages tools",
description=__doc__,
venv_config={
"requirements_files": [
REPO_ROOT
/ "requirements"
/ "static"
/ "ci"
/ "py{}.{}".format(*sys.version_info)
/ "docs.txt"
],
},
)
@doc.command( @docs.command(
name="man", name="man",
) )
def man(ctx: Context): def man(ctx: Context):
@ -30,7 +45,7 @@ def man(ctx: Context):
shutil.copy(os.path.join(root, file), os.path.join("doc/man", file)) shutil.copy(os.path.join(root, file), os.path.join("doc/man", file))
@doc.command( @docs.command(
name="html", name="html",
) )
def html(ctx: Context): def html(ctx: Context):
@ -38,7 +53,7 @@ def html(ctx: Context):
ctx.run("make", "html", "SHPINXOPTS=-W", cwd="doc/", check=True) ctx.run("make", "html", "SHPINXOPTS=-W", cwd="doc/", check=True)
@doc.command( @docs.command(
name="epub", name="epub",
) )
def epub(ctx: Context): def epub(ctx: Context):
@ -46,7 +61,7 @@ def epub(ctx: Context):
ctx.run("make", "epub", "SHPINXOPTS=-W", cwd="doc/", check=True) ctx.run("make", "epub", "SHPINXOPTS=-W", cwd="doc/", check=True)
@doc.command( @docs.command(
name="pdf", name="pdf",
) )
def pdf(ctx: Context): def pdf(ctx: Context):

View file

@ -284,6 +284,11 @@ def generate_hashes(ctx: Context, files: list[pathlib.Path]):
@pkg.command( @pkg.command(
name="source-tarball", name="source-tarball",
venv_config={
"requirements_files": [
REPO_ROOT / "requirements" / "build.txt",
]
},
) )
def source_tarball(ctx: Context): def source_tarball(ctx: Context):
shutil.rmtree("dist/", ignore_errors=True) shutil.rmtree("dist/", ignore_errors=True)
@ -295,7 +300,12 @@ def source_tarball(ctx: Context):
"HEAD", "HEAD",
capture=True, capture=True,
).stdout.strip() ).stdout.strip()
env = {**os.environ, **{"SOURCE_DATE_EPOCH": str(timestamp)}} env = {
**os.environ,
**{
"SOURCE_DATE_EPOCH": str(timestamp),
},
}
ctx.run( ctx.run(
"python3", "python3",
"-m", "-m",
@ -308,7 +318,7 @@ def source_tarball(ctx: Context):
# Recreate sdist to be reproducible # Recreate sdist to be reproducible
recompress = Recompress(timestamp) recompress = Recompress(timestamp)
for targz in REPO_ROOT.joinpath("dist").glob("*.tar.gz"): for targz in REPO_ROOT.joinpath("dist").glob("*.tar.gz"):
ctx.info("Re-compressing %s...", targz.relative_to(REPO_ROOT)) ctx.info(f"Re-compressing {targz.relative_to(REPO_ROOT)} ...")
recompress.recompress(targz) recompress.recompress(targz)
sha256sum = shutil.which("sha256sum") sha256sum = shutil.which("sha256sum")
if sha256sum: if sha256sum: