| import os |
| import re |
| |
| import invoke |
| |
| |
| def update_version(filename, identifier, version): |
| path = os.path.join(os.path.dirname(__file__), filename) |
| with open(path) as f: |
| contents = f.read() |
| contents = re.sub( |
| r"^{} = .*?$".format(identifier), |
| '{} = "{}"'.format(identifier, version), |
| contents |
| ) |
| with open(path, "w") as f: |
| f.write(contents) |
| |
| |
| @invoke.task |
| def release(version): |
| """ |
| ``version`` should be a string like '0.4' or '1.0'. |
| """ |
| # This checks for changes in the repo. |
| invoke.run("git diff-index --quiet HEAD") |
| |
| update_version("cryptography/__about__.py", "__version__") |
| update_version("docs/conf.py", "version") |
| update_version("docs/conf.py", "release") |
| |
| invoke.run("git commit -am 'Bump version numbers for release.'") |
| invoke.run("git push") |
| invoke.run("git tag -s {}".format(version)) |
| invoke.run("git push --tags") |
| |
| invoke.run("python setup.py sdist bdist_wheel") |
| invoke.run("twine upload -s dist/cryptography-{}*".format(version)) |