diff --git a/.travis.yml b/.travis.yml index eba7eeb3c..a88e9f5ff 100644 --- a/.travis.yml +++ b/.travis.yml @@ -113,6 +113,7 @@ matrix: # macOS - os: osx + osx_image: xcode9.2 env: PYTHON_VERSION='2.7' language: minimal sudo: required diff --git a/docs/dev/release.rst b/docs/dev/release.rst index 25e3a01f7..11bdc1e61 100644 --- a/docs/dev/release.rst +++ b/docs/dev/release.rst @@ -49,6 +49,16 @@ Step-by-step second prompt is the tag message, please complete this to include the release notes for this release. + .. note:: + + If ypu want to GPG sign the merge commit and the tag: + + .. code-block:: bash + + $ git commit --amend --gpg-sign # sign merge commit + $ git tag --sign v1.0.0 --force # regenerate tag + + #. **Draft a release on GitHub** * Go to https://github.com/gwpy/gwpy/releases/new diff --git a/gwpy/signal/window.py b/gwpy/signal/window.py index 58946db07..b4a68f12b 100644 --- a/gwpy/signal/window.py +++ b/gwpy/signal/window.py @@ -23,7 +23,10 @@ from math import ceil -from scipy.signal import windows as scipy_windows +try: # scipy 1.1.0rc1 + from scipy.signal.windows import windows as scipy_windows +except ImportError: # scipy <= 1.0.x + from scipy.signal import windows as scipy_windows from scipy.special import expit diff --git a/setup_utils.py b/setup_utils.py index 216ef4942..013bbef66 100755 --- a/setup_utils.py +++ b/setup_utils.py @@ -34,7 +34,7 @@ from distutils.command.clean import (clean as orig_clean, log, remove_tree) from distutils.command.bdist_rpm import bdist_rpm as distutils_bdist_rpm from distutils.errors import DistutilsArgError -from distutils.version import LooseVersion +from distutils.version import (LooseVersion, StrictVersion) from setuptools.command.bdist_rpm import bdist_rpm as _bdist_rpm from setuptools.command.sdist import sdist as _sdist @@ -144,7 +144,7 @@ def finalize_options(self): raise DistutilsArgError( "--format should be one of {!r}".format(self.FORMATS)) if self.start_tag: - self.start_tag = self.start_tag.lstrip('v') + self.start_tag = self._tag_version(self.start_tag) def format_changelog_entry(self, tag): log.debug(' parsing changelog entry for {}'.format(tag)) @@ -178,11 +178,15 @@ def _format_entry_deb(self, tag): name, version, message, tagger.name, tagger.email, dstr, tz)) + @staticmethod + def _tag_version(tag): + return StrictVersion(str(tag).lstrip('v')) + def get_git_tags(self): import git repo = git.Repo() tags = repo.tags - tags.reverse() + tags.sort(key=self._tag_version, reverse=True) log.debug('found {} git tags'.format(len(tags))) return tags @@ -190,7 +194,7 @@ def run(self): log.info('creating changelog') lines = [] for tag in self.get_git_tags(): - if self.start_tag and tag.name.lstrip('v') < self.start_tag: + if self.start_tag and self._tag_version(tag) < self.start_tag: log.debug('reached start tag ({}), stopping'.format( self.start_tag)) break