diff --git a/DEVEL.md b/DEVEL.md index afcb5a1..a3bb01d 100644 --- a/DEVEL.md +++ b/DEVEL.md @@ -13,7 +13,6 @@ Environment: ## Release process - cd REPO_ROOT - VERSION="1.1.0" - cd theanarchistlibrary_store - zip ../releases/theanarchistlibrary_store_v${VERSION}.zip * +Edit the version in theanarchistlibrary_store/__init__.py and +in the repo root call + ./release.py diff --git a/release.py b/release.py new file mode 100755 index 0000000..5f39076 --- /dev/null +++ b/release.py @@ -0,0 +1,44 @@ +#!/usr/bin/env python3 + +import glob +import os +from zipfile import ZipFile + + +dir_path = os.path.dirname(os.path.realpath(__file__)) + + +def get_version(): + path = os.path.join( + dir_path, + 'theanarchistlibrary_store', + '__init__.py', + ) + with open(path, 'r') as file: + lines = file.read().split('\n') + for line in lines: + line_ = line.lower().strip() + if line_.startswith('version = '): + parts = line_[10:].lstrip('(').rstrip(')').split(',') + numbers = [int(part) for part in parts] + return '{}.{}.{}'.format(*numbers) + + +def release(): + version = get_version() + tgt_fn = f'theanarchistlibrary_store_v{version}.zip' + tgt_path = os.path.join(dir_path, 'releases', tgt_fn) + src_glob = os.path.join( + dir_path, + 'theanarchistlibrary_store', + '**', + ) + with ZipFile(tgt_path, 'w') as zip: + for path in glob.glob(src_glob, recursive=True): + arcname = path[(len(src_glob) - 2):] + if arcname: + zip.write(path, arcname=arcname) + + +if __name__ == '__main__': + release()