From ed66bc4b1b50d86c0441fffd43fc7a9081fa36be Mon Sep 17 00:00:00 2001 From: Michael Osthege Date: Tue, 16 Jun 2020 20:45:19 +0200 Subject: [PATCH] fix tarball generation as 3.9.1 release (#3970) + removes docs/* from the tarball to fix PyPI size limits (setup.py and MANIFEST.in) + updates the release notes with 3.9.0/3.9.1 sections + black applied to setup.py --- MANIFEST.in | 3 +- RELEASE-NOTES.md | 9 +++++- pymc3/__init__.py | 2 +- setup.py | 82 ++++++++++++++++++++++++++--------------------- 4 files changed, 56 insertions(+), 40 deletions(-) diff --git a/MANIFEST.in b/MANIFEST.in index c86c06bbc75..f4795d70a91 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,6 +1,7 @@ recursive-include pymc3/examples/data * recursive-include source * -recursive-include docs * +# because of an upload-size limit by PyPI, we're temporarily removing docs from the tarball: +recursive-exclude docs * include requirements.txt include *.md *.rst include scripts/*.sh diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index 8777065ded6..4171df175b0 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -1,6 +1,13 @@ # Release Notes -## PyMC3 3.9 (On deck) +## PyMC3 3.9.x (on deck) +*waiting for contributions* + +## PyMC3 3.9.1 (16 June 2020) +The `v3.9.0` upload to PyPI didn't include a tarball, which is fixed in this release. +Though we had to temporarily remove the `docs/*` folder from the tarball due to a size limit. + +## PyMC3 3.9.0 (16 June 2020) ### New features - Use [fastprogress](https://github.com/fastai/fastprogress) instead of tqdm [#3693](https://github.com/pymc-devs/pymc3/pull/3693). diff --git a/pymc3/__init__.py b/pymc3/__init__.py index 149b3a3e459..cbb4fd6d7eb 100644 --- a/pymc3/__init__.py +++ b/pymc3/__init__.py @@ -13,7 +13,7 @@ # limitations under the License. # pylint: disable=wildcard-import -__version__ = "3.9.0" +__version__ = "3.9.1" import logging import multiprocessing as mp diff --git a/setup.py b/setup.py index de26bf4d9d0..b7cda72df32 100755 --- a/setup.py +++ b/setup.py @@ -18,63 +18,71 @@ from setuptools import setup, find_packages import re -DISTNAME = 'pymc3' +DISTNAME = "pymc3" DESCRIPTION = "Probabilistic Programming in Python: Bayesian Modeling and Probabilistic Machine Learning with Theano" -AUTHOR = 'PyMC Developers' -AUTHOR_EMAIL = 'pymc.devs@gmail.com' +AUTHOR = "PyMC Developers" +AUTHOR_EMAIL = "pymc.devs@gmail.com" URL = "http://github.com/pymc-devs/pymc3" LICENSE = "Apache License, Version 2.0" -classifiers = ['Development Status :: 5 - Production/Stable', - 'Programming Language :: Python', - 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.6', - 'Programming Language :: Python :: 3.7', - 'Programming Language :: Python :: 3.8', - 'License :: OSI Approved :: Apache Software License', - 'Intended Audience :: Science/Research', - 'Topic :: Scientific/Engineering', - 'Topic :: Scientific/Engineering :: Mathematics', - 'Operating System :: OS Independent'] +classifiers = [ + "Development Status :: 5 - Production/Stable", + "Programming Language :: Python", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.6", + "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", + "License :: OSI Approved :: Apache Software License", + "Intended Audience :: Science/Research", + "Topic :: Scientific/Engineering", + "Topic :: Scientific/Engineering :: Mathematics", + "Operating System :: OS Independent", +] PROJECT_ROOT = dirname(realpath(__file__)) # Get the long description from the README file -with open(join(PROJECT_ROOT, 'README.rst'), encoding='utf-8') as buff: +with open(join(PROJECT_ROOT, "README.rst"), encoding="utf-8") as buff: LONG_DESCRIPTION = buff.read() -REQUIREMENTS_FILE = join(PROJECT_ROOT, 'requirements.txt') +REQUIREMENTS_FILE = join(PROJECT_ROOT, "requirements.txt") with open(REQUIREMENTS_FILE) as f: install_reqs = f.read().splitlines() -test_reqs = ['pytest', 'pytest-cov'] +test_reqs = ["pytest", "pytest-cov"] + def get_version(): - VERSIONFILE = join('pymc3', '__init__.py') - lines = open(VERSIONFILE, 'rt').readlines() + VERSIONFILE = join("pymc3", "__init__.py") + lines = open(VERSIONFILE, "rt").readlines() version_regex = r"^__version__ = ['\"]([^'\"]*)['\"]" for line in lines: mo = re.search(version_regex, line, re.M) if mo: return mo.group(1) - raise RuntimeError('Unable to find version in %s.' % (VERSIONFILE,)) + raise RuntimeError("Unable to find version in %s." % (VERSIONFILE,)) + if __name__ == "__main__": - setup(name=DISTNAME, - version=get_version(), - maintainer=AUTHOR, - maintainer_email=AUTHOR_EMAIL, - description=DESCRIPTION, - license=LICENSE, - url=URL, - long_description=LONG_DESCRIPTION, - long_description_content_type='text/x-rst', - packages=find_packages(), - package_data={'docs': ['*']}, - include_package_data=True, - classifiers=classifiers, - python_requires=">=3.6", - install_requires=install_reqs, - tests_require=test_reqs, - test_suite='nose.collector') + setup( + name=DISTNAME, + version=get_version(), + maintainer=AUTHOR, + maintainer_email=AUTHOR_EMAIL, + description=DESCRIPTION, + license=LICENSE, + url=URL, + long_description=LONG_DESCRIPTION, + long_description_content_type="text/x-rst", + packages=find_packages(), + # because of an upload-size limit by PyPI, we're temporarily removing docs from the tarball. + # Also see MANIFEST.in + # package_data={'docs': ['*']}, + include_package_data=True, + classifiers=classifiers, + python_requires=">=3.6", + install_requires=install_reqs, + tests_require=test_reqs, + test_suite="nose.collector", + )