-
Notifications
You must be signed in to change notification settings - Fork 56
Old Release Direction ( don't use )
-
Create a release branch (on GitHub) for each new major or minor release, i.e.
3.1_relonto which all the3.1.xreleases will live. -
Clone repo and checkout release branch, on that release branch in your local clone:
- In
setup.pychangedefault_versionto be the tag of the release you are creating. i.e.3.1.0 - Similarly in
docs/source/conf.pychangeversionandreleaseto the same tag. - Commit and push these changes to github (on the release branch)
- In
-
On github create the new release (on the release branch). This will create the
3.1.0tag. -
Attach as an asset for this new release, the examples subdir as it's own .zip file:
zip -r ccsi-foqus-3.8.0-examples.zip examples -
git pullin your local repo to bring down the new release tag and check out the release branch i.e.git co 3.1_rel.At this point (on the release branch) a
git describe --tags --dirtyshould show the release tag (3.1.0) and nothing else (not3.1.0rc0-dirty, etc.) -
Create the pypi package
Note that pypi will not allow you to replace a package with the same version number (even if you delete the old one). So keep that in mind before uploading a package to either the main or test site.
-
Start from a clean conda env:
conda remove --name ccsi-foqus --all -y # remove any old conda env conda create --name ccsi-foqus python=3.10 -y # create an entirely new conda env conda activate ccsi-foqus -
In a clean repo on the release tag, get set up to build package:
git clone git@github.com:CCSI-Toolset/FOQUS.git cd FOQUS git co 3.1.0 git clean -dfx # If using an existing repo pip install --upgrade setuptools wheel twine pip -
Build and push to test pypi
pip install --no-cache-dir . # Not setup.py or -e or -r requirements.txt python setup.py sdist bdist_wheel # check the size of the directory, PyPI upload with fail if it's > 100 MB ls -lh dist/* _maxsize=100000 # 100 MB _dirsize=$(du -sk dist/ | cut -f 1) ; echo $_dirsize [ "$_dirsize" -lt "$_maxsize" ] || echo "too big!" # if larger, you can delete examples and re-create sdist/bdist_wheel # Check for any old builds in ./dist/ twine upload --repository-url https://test.pypi.org/legacy/ dist/* # Upload to test pypi -
Test package from test PyPi In a new conda env, in an empty dir:
pip install -i https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple ccsi-foqus foqus # Start appNOTE: to install Release Candidate versions (e.g.
3.7.0rc0) with pip, the full PyPI package version must be specified using the==operator, e.g.ccsi-foqus==3.7.0rc0Capture the specific versions installed at this point in time:
pip freeze > requirements_3.14.0rc0.txtThen upload that
requirements_<rel>.txtfile as an asset in the GitHub page for this release. -
Push to real PyPi
twine upload dist/*
-
-
git co masterand changesetup.pyanddocs/sources/conf.pyin the same places as above, but now on master change to the next "dev" version, i.e.3.1.0devto3.2.0dev. Stage, check-in these changes and then tag them with a new "dev" tag: i.e.git tag 3.2.0dev, then push up to github (git push --tagsor the tag won't get pushed up.)At this point (on master) a
git describe --tags --dirtyshould show the dev tag (3.2.0dev) and nothing else (not3.2.0dev-dirty, etc.) -
Update ReadTheDocs so that it builds from the new tag and uses that as the default version to display.
-
Announce the release:
-
Via an email to the leadership, iab and users lists
-
A news item on the https://www.acceleratecarboncapture.org site.
-