aboutsummaryrefslogtreecommitdiff
path: root/make_release.py
diff options
context:
space:
mode:
authorGertjan van den Burg <gertjanvandenburg@gmail.com>2020-10-27 20:59:17 +0100
committerGertjan van den Burg <gertjanvandenburg@gmail.com>2020-10-27 20:59:17 +0100
commit282de79f44e95b539c1788de8a71177b5a023557 (patch)
tree6a6a26e210dc32d4d6a5ed4d8bc0b581af9bbc0e /make_release.py
parent[WIP] Provider for Taylor and Francis Online (diff)
parentBump version and update changelog (diff)
downloadpaper2remarkable-282de79f44e95b539c1788de8a71177b5a023557.tar.gz
paper2remarkable-282de79f44e95b539c1788de8a71177b5a023557.zip
Merge branch 'master' into feature/tandfonline
Diffstat (limited to 'make_release.py')
-rw-r--r--make_release.py90
1 files changed, 54 insertions, 36 deletions
diff --git a/make_release.py b/make_release.py
index a19b5fd..f3bc9f2 100644
--- a/make_release.py
+++ b/make_release.py
@@ -14,6 +14,8 @@ Date: 2019-07-23
import colorama
import os
+import sys
+import tempfile
def colored(msg, color=None, style=None):
@@ -52,6 +54,13 @@ def get_package_name():
return nameline.split("=")[-1].strip().strip('"')
+def get_package_version(pkgname):
+ ctx = {}
+ with open(f"{pkgname.lower()}/__version__.py", "r") as fp:
+ exec(fp.read(), ctx)
+ return ctx["__version__"]
+
+
class Step:
def pre(self, context):
pass
@@ -96,6 +105,12 @@ class UpdateChangelog(Step):
self.print_run("vi CHANGELOG.md")
+class UpdateReadme(Step):
+ def action(self, context):
+ self.instruct(f"Update readme if necessary")
+ self.print_run("vi README.md")
+
+
class RunTests(Step):
def action(self, context):
self.instruct("Run the unit tests")
@@ -105,7 +120,7 @@ class RunTests(Step):
class BumpVersionPackage(Step):
def action(self, context):
self.instruct(f"Update __version__.py with new version")
- self.print_run(f"vi {context['pkgname']}/__version__.py")
+ self.do_cmd(f"vi {context['pkgname']}/__version__.py")
def post(self, context):
wait_for_enter()
@@ -113,10 +128,7 @@ class BumpVersionPackage(Step):
def _get_version(self, context):
# Get the version from the version file
- about = {}
- with open(f"{context['pkgname'].lower()}/__version__.py", "r") as fp:
- exec(fp.read(), about)
- return about["__version__"]
+ return get_package_version(context["pkgname"])
class MakeClean(Step):
@@ -143,15 +155,15 @@ class PushToTestPyPI(Step):
class InstallFromTestPyPI(Step):
def action(self, context):
- self.print_run("cd /tmp/")
- self.print_cmd("rm -rf ./venv")
- self.print_cmd("virtualenv ./venv")
- self.print_cmd("cd ./venv")
- self.print_cmd("source bin/activate")
- self.print_cmd(
- "pip install --index-url https://test.pypi.org/simple/ "
- + f"--extra-index-url https://pypi.org/simple {context['pkgname']}=={context['version']}"
+ tmpvenv = tempfile.mkdtemp(prefix="p2r_venv_")
+ self.do_cmd(
+ f"python -m venv {tmpvenv} && source {tmpvenv}/bin/activate && "
+ "pip install --no-cache-dir --index-url "
+ "https://test.pypi.org/simple/ "
+ "--extra-index-url https://pypi.org/simple "
+ f"{context['pkgname']}=={context['version']}"
)
+ context["tmpvenv"] = tmpvenv
class TestPackage(Step):
@@ -159,13 +171,12 @@ class TestPackage(Step):
self.instruct(
f"Ensure that the following command gives version {context['version']}"
)
- self.print_run(f"p2r -h")
+ self.do_cmd(f"source {context['tmpvenv']}/bin/activate && p2r -V")
-class DeactivateVenv(Step):
+class RemoveVenv(Step):
def action(self, context):
- self.print_run("deactivate")
- self.instruct("Go back to the project directory")
+ self.do_cmd(f"rm -rf {context['tmpvenv']}")
class GitTagVersion(Step):
@@ -210,32 +221,39 @@ class WaitForRTD(Step):
)
-def main():
+def main(target=None):
colorama.init()
procedure = [
- GitToMaster(),
- GitAdd(),
- PushToGitHub(),
- BumpVersionPackage(),
- UpdateChangelog(),
- MakeClean(),
- RunTests(),
- MakeDist(),
- PushToTestPyPI(),
- InstallFromTestPyPI(),
- TestPackage(),
- DeactivateVenv(),
- GitAdd(),
- PushToPyPI(),
- GitTagVersion(),
- PushToGitHub(),
+ ("gittomaster", GitToMaster()),
+ ("gitadd1", GitAdd()),
+ ("push1", PushToGitHub()),
+ ("bumpversion", BumpVersionPackage()),
+ ("changelog", UpdateChangelog()),
+ ("readme", UpdateReadme()),
+ ("clean", MakeClean()),
+ ("tests", RunTests()),
+ ("dist", MakeDist()),
+ ("testpypi", PushToTestPyPI()),
+ ("install", InstallFromTestPyPI()),
+ ("testpkg", TestPackage()),
+ ("remove_venv", RemoveVenv()),
+ ("gitadd2", GitAdd()),
+ ("pypi", PushToPyPI()),
+ ("tag", GitTagVersion()),
+ ("push2", PushToGitHub()),
]
context = {}
context["pkgname"] = get_package_name()
- for step in procedure:
+ context["version"] = get_package_version(context["pkgname"])
+ skip = True if target else False
+ for name, step in procedure:
+ if not name == target and skip:
+ continue
+ skip = False
step.run(context)
cprint("\nDone!", color="yellow", style="bright")
if __name__ == "__main__":
- main()
+ target = sys.argv[1] if len(sys.argv) > 1 else None
+ main(target=target)