Skip to content

Commit

Permalink
Merge pull request #930 from openpathsampling/release-1.3
Browse files Browse the repository at this point in the history
Release 1.3
  • Loading branch information
dwhswenson committed Sep 26, 2020
2 parents fcc5ef5 + 1c63186 commit 631d65d
Show file tree
Hide file tree
Showing 71 changed files with 9,314 additions and 1,137 deletions.
17 changes: 0 additions & 17 deletions .project

This file was deleted.

8 changes: 0 additions & 8 deletions .pydevproject

This file was deleted.

14 changes: 7 additions & 7 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ before_script:
- conda list

script:
- python autorelease_check.py --branch ${TRAVIS_BRANCH} --event ${TRAVIS_EVENT_TYPE}
- python devtools/autorelease_check.py --branch ${TRAVIS_BRANCH} --event ${TRAVIS_EVENT_TYPE}
- source devtools/ci/pytests.sh
- if [ -z "$MINIMAL" ] ; then source devtools/ci/ipythontests.sh; fi

Expand All @@ -49,6 +49,11 @@ addons:
- pandoc

env:
matrix:
- CONDA_PY=3.7 MINIMAL=true
- CONDA_PY=2.7
- CONDA_PY=3.6
- CONDA_PY=3.7
global:
- COVERALLS_PARALLEL=true
- TWINE_USERNAME="dwhswenson"
Expand All @@ -59,11 +64,6 @@ env:
- secure: "NJvoSrLNd2ZR3HluJjEqI36gD5lsucwIvgnYjNmM4cwnnA77aLV9FRYTwlLRZn3XY9FL8KOzL5l0amNzMD7sQrf7bWwWv7iCUBddH549q9RSgiuOugtodYJ6VaXi76hk1rOgcJpDoCj9wTCIlMtWibPUzr1QHmdihfdM2iA2kkE="
- secure: "l9NJkZDD0ALhkErUvhRrreLsrcWErd+CXpWv8dxHGtkjemNx6CwVtyL+a30jz/QwMANSZbKll/cPK5yJQvuwDaWxja6UPLLKVNGtma+CmwKcIC/wwTwbMoxcS62fyLJ3kS0qR8oCQz2nCPKiYyRGADtPLWVMZckY1SJfNYcKuCM="
- secure: "kb37xmsSV3pEnESnINzwlW2Cju/UFzA/G+m+NsihAwO8RMPZwKCrZK/rptgkUDACXJxom5M690WEukQkHnOt+OTrWhu7WKZgYeVuWUs2++RohYv/m5npaOHMMn+uYmF328v4PvPmXxbD02zzg5Tgdn82x8oa6J8BKX8ohOQ6Xpg="
matrix:
- CONDA_PY=3.7 MINIMAL=true
- CONDA_PY=2.7
- CONDA_PY=3.6
- CONDA_PY=3.7

import:
- dwhswenson/autorelease:autorelease-travis.yml@v0.1.2
- dwhswenson/autorelease:autorelease-travis.yml@v0.2.1
49 changes: 13 additions & 36 deletions devtools/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,47 +5,24 @@ Assorted notes for developers.

How to do a release
-------------------
- Update the whatsnew.rst document. Use the github view that shows all the
commits to master since the last release to write it.
- Update the version number in `setup.py`, change `ISRELEASED` to `True`
- Commit to master, and [tag](https://github.com/SimTk/mdtraj/releases) the
release on github
- To push the source to PyPI, use `python setup.py sdist --formats=gztar,zip upload`
- Conda binaries need to built separately on each platform (`conda build mdtraj;
binstar upload <path to .tar.bz2>`)
- Make an announcement on github / email
- After tagging the release, make a NEW commit that changes `ISRELEASED` back
to `False` in `setup.py`


It's important that the version which is tagged on github for the release be
the one with the ISRELEASED flag in setup.py set to true.
1. Make a branch in the upstream `openpathsampling/openpathsampling`
repository.
2. In that branch, change the version in `setup.cfg` to be a release version
(not ending in `.dev0`, etc.)
3. Push that branch and make a PR against the `stable` branch. It should test,
then perform a test deployment to `test.pypi`, then download the test
deployment and run tests again. The logic for this is in the Autorelease
repository. The text of the top post in this PR should be the release notes
(use the write-release-notes script included in Autorelease to do this).
4. Merge the PR. This will create a GitHub release, and then take that release
and push it to pypi. All of this logic is in Autorelease.


Docs Building & Hosting
-----------------------

After a travis build succeeds, the docs are built with sphinx and pushed to
the mdtraj.org amazon s3 account. The credentials for that account are stored,
encrypted, in the .travis.yml file.
the openpathsampling.org amazon s3 account (owned by John Chodera). The
credentials for that account are stored, encrypted, in the .travis.yml file.
(http://docs.travis-ci.com/user/build-configuration/#Secure-environment-variables)

As of version 0.7-dev (0.8 release) multiple versions of the docs are hosted
online. When a build happens on a version with ISRELEASED==False, it's put into
the "latest" folder on the S3 bucket. If ISRELEASED==True, it's put into a
subfolder with the name of the short release. The relevant logic is in
`tools/ci/push-docs-to-s3.py`.

In order for the select bar at the bottom of the docs that toggles between
versions to work, these folders MUST match up with the tag names on github.
This is because the list of items to put in that little dropdown menu is
dynamically determined from the github API in the browser. This is the only
way I could think of to make sure the old docs have a link to the latest
version. The logic that populates the version dropdown menu in the browser is in

`docs/themes/sphinx_rtd_theme-0.1.5/sphinx_rtd_theme/versions.html`

Specifically note that it goes to https://api.github.com/repos/rmcgibbo/mdtraj/releases,
and uses the `tag_names` to build the links. So these much line up with the
prefix of `mdtraj.version.short_version` used in `tools/ci/push-docs-to-s3.py`
for the links not to break.
1 change: 0 additions & 1 deletion autorelease_check.py → devtools/autorelease_check.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@
'package': openpathsampling.version.version,
'netcdfplus': openpathsampling.netcdfplus.version.version,
'setup.py': SETUP_VERSION,
'conda-recipe': conda_recipe_version('devtools/conda-recipe/meta.yaml'),
}

RELEASE_BRANCHES = ['stable']
Expand Down
2 changes: 1 addition & 1 deletion devtools/ci/miniconda_install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ conda_version="latest"
#conda_version="4.4.10" # can pin a miniconda version like this, if needed

MINICONDA=Miniconda${pyV}-${conda_version}-Linux-x86_64.sh
MINICONDA_MD5=$(curl -s https://repo.continuum.io/miniconda/ | grep -A3 $MINICONDA | sed -n '4p' | sed -n 's/ *<td>\(.*\)<\/td> */\1/p')
MINICONDA_MD5=$(curl -sL https://repo.continuum.io/miniconda/ | grep -A3 $MINICONDA | sed -n '4p' | sed -n 's/ *<td>\(.*\)<\/td> */\1/p')
wget https://repo.continuum.io/miniconda/$MINICONDA
if [[ $MINICONDA_MD5 != $(md5sum $MINICONDA | cut -d ' ' -f 1) ]]; then
echo "Miniconda MD5 mismatch"
Expand Down
21 changes: 0 additions & 21 deletions devtools/conda-recipe/README.md

This file was deleted.

11 changes: 0 additions & 11 deletions devtools/conda-recipe/build.sh

This file was deleted.

43 changes: 0 additions & 43 deletions devtools/conda-recipe/meta.yaml

This file was deleted.

14 changes: 0 additions & 14 deletions devtools/conda-recipe/requirements.txt

This file was deleted.

26 changes: 12 additions & 14 deletions devtools/conda_install_reqs.sh
Original file line number Diff line number Diff line change
Expand Up @@ -21,26 +21,24 @@ fi
# always obeys if you explicitly request a pinned version)
#conda config --env --add pinned_packages python=$CONDA_PY
#cp $DEVTOOLS_DIR/../pinned $CONDA_PREFIX/
PACKAGES=`python ${DEVTOOLS_DIR}/install_recipe_requirements.py --dry ${DEVTOOLS_DIR}/conda-recipe/meta.yaml | tr "\n" " "`

# WORKAROUNDS is normally empty; needed if other pkgs don't list all deps
WORKAROUNDS="pymbar"
TESTING=`cat ${DEVTOOLS_DIR}/testing_requirements.txt | tr "\n" " "`
EXTRA=`cat ${DEVTOOLS_DIR}/optional_packages.txt | tr "\n" " "`
WORKAROUNDS=""
REQUIREMENTS=`python ${DEVTOOLS_DIR}/setup_cfg_reqs.py`
TESTING=`python ${DEVTOOLS_DIR}/setup_cfg_reqs.py --extra test`
INTEGRATIONS=`cat ${DEVTOOLS_DIR}/tested_integrations.txt | tr "\n" " "`
PY_INSTALL="python=$CONDA_PY"
PINS=`cat ${DEVTOOLS_DIR}/../pinned | tr -d " " | tr "\n" " "`

echo "REQUIREMENTS=$REQUIREMENTS"
echo "WORKAROUNDS=$WORKAROUNDS"
echo "INTEGRATIONS=$INTEGRATIONS"
echo "PY_INSTALL=$PY_INSTALL"
echo "PACKAGES=$PACKAGES"
echo "TESTING=$TESTING"
echo "PINS=$PINS"

if [ "$CONDA_PY" != "3.7" ]; then
ALL_PACKAGES="$WORKAROUNDS $PACKAGES $TESTING $EXTRA"
else
ALL_PACKAGES="$WORKAROUNDS $PACKAGES $TESTING" # no msmbuilder for py3.7?
fi
# TODO: allow different installs for different versions
# (needed this when msmbuilder was only available on older pythons; similar
# situations may come up in the future)
ALL_PACKAGES="$WORKAROUNDS $REQUIREMENTS $INTEGRATIONS $TESTING"

echo "conda install -y -q -c conda-forge -c omnia $PY_INSTALL $ALL_PACKAGES $PINS"
conda install -y -q -c conda-forge -c omnia $PY_INSTALL $ALL_PACKAGES $PINS
echo "conda install -y -q -c conda-forge -c omnia $PY_INSTALL $ALL_PACKAGES"
conda install -y -q -c conda-forge -c omnia $PY_INSTALL $ALL_PACKAGES
60 changes: 0 additions & 60 deletions devtools/install_recipe_requirements.py

This file was deleted.

2 changes: 1 addition & 1 deletion devtools/minimal_testing.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
nose
pytest!=5.3.4
pytest
pytest-cov
coveralls
Empty file removed devtools/optional_packages.txt
Empty file.
36 changes: 36 additions & 0 deletions devtools/setup_cfg_reqs.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
try:
import configparser
except ImportError:
import ConfigParser as configparser

import argparse
import os.path

def make_parser():
default_setup = os.path.join(os.path.dirname(__file__), "..",
"setup.cfg")
parser = argparse.ArgumentParser()
parser.add_argument('setup_cfg', nargs='?', default=default_setup)
parser.add_argument('--extra', default=None)
return parser

def clean(string):
return " ".join(string.split("\n"))

def main(setup_cfg, extra):
config = configparser.ConfigParser()
config.read(setup_cfg)
# replace get with the __getitem__ syntax when we drop py27
if extra is None:
# reqs = config['options']['install_requires']
reqs = config.get('options', 'install_requires')
else:
# reqs = config['options.extras_require'][extra]
reqs = config.get('options.extras_require', extra)
return clean(reqs)

if __name__ == "__main__":
argparser = make_parser()
args = argparser.parse_args()
print(main(args.setup_cfg, args.extra))

6 changes: 6 additions & 0 deletions devtools/tested_integrations.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
jupyter
openmm
openmmtools
py-plumed
pyemma

5 changes: 0 additions & 5 deletions devtools/testing_requirements.txt

This file was deleted.

0 comments on commit 631d65d

Please sign in to comment.