Skip to content

Commit

Permalink
Merge branch 'master' into 0.4.X
Browse files Browse the repository at this point in the history
  • Loading branch information
ulupo committed Nov 27, 2020
2 parents 531589d + 77502b2 commit 509c030
Show file tree
Hide file tree
Showing 12 changed files with 149 additions and 189 deletions.
12 changes: 6 additions & 6 deletions .azure-ci/docker_scripts.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,11 @@

set -x

# Upgrade pip and setuptools. TODO: Monitor status of pip versions
# Upgrade pip and setuptools, install wheel package
# TODO: Monitor status of pip versions
PYTHON_PATH=$(eval find "/opt/python/*${python_ver}*" -print)
export PATH=${PYTHON_PATH}/bin:${PATH}
pip install --upgrade pip==19.3.1 setuptools
pip install --upgrade pip==20.2.4 setuptools

# Install CMake
pip install cmake
Expand All @@ -14,18 +15,17 @@ pip install cmake
cd /io
pip install -e ".[doc, tests]"

# Test dev install with pytest and flake8
pytest pyflagser --cov --cov-report xml
flake8 --exit-zero /io/
# Test dev install with pytest
pytest pyflagser --no-cov --no-coverage-upload

# Uninstal pyflagser dev
pip uninstall -y pyflagser

# Build wheels
pip install wheel==0.34.1 auditwheel==3.1.0
python setup.py bdist_wheel

# Repair wheels with auditwheel
pip install auditwheel
auditwheel repair dist/*whl -w dist/
# remove wheels that are not manylinux2010
rm -rf dist/*-linux*.whl
41 changes: 41 additions & 0 deletions RELEASE.rst
Original file line number Diff line number Diff line change
@@ -1,12 +1,47 @@
Release 0.4.2
=============

Major Features and Improvements
-------------------------------

- Wheels for Python 3.9 have been added.
- The ``flagser`` submodule has been updated to the latest upstream version, integrating the following changes:

- ``flagser`` now trows exceptions instead of exiting the computation;
- ``flagser`` now supports a number of threads as input parameter and, by default, it will use the maximum number of logic cores available.
- ``flagser`` no longer produces output files.

Bug Fixes
---------

An error encountered when running multiple instances of ``pyflagser`` in parallel (due to clashes between temporary file names) has been fixed.

Backwards-Incompatible Changes
------------------------------

None.

Thanks to our Contributors
--------------------------

This release contains contributions from many people:

Julian Burella Pérez and Umberto Lupo.

We are also grateful to all who filed issues or helped resolve them, asked and answered questions, and were part of inspiring discussions.


Release 0.4.1
=============

Bug Fixes
---------

A bug was fixed which caused some computations to hang when the prime for the finite field of coefficients used is greater than 2.

Backwards-Incompatible Changes
------------------------------

None.

Thanks to our Contributors
Expand All @@ -24,6 +59,7 @@ Release 0.4.0

Major Features and Improvements
-------------------------------

- ``flagser_count_unweighted`` and ``flagser_count_weighted`` were added to provide fast computations of simplex counts per dimension.
- ``flagser_unweighted`` and ``flagser_weighted``'s performance was improved when ``coeff`` is 2 by using a compiled version of C++ ``flagser`` without the ``USE_COEFFICIENTS`` flag.
- All C++ library files were moved to ``pyflagser/modules/`` upon compilation.
Expand All @@ -32,10 +68,12 @@ Major Features and Improvements

Bug Fixes
---------

- A bug was fixed which caused ``flagser_unweighted`` and ``flagser_weighted``'s output persistence diagrams to be of shape ``(0,)`` instead of ``(0, 2)`` if empty.

Backwards-Incompatible Changes
------------------------------

None.

Thanks to our Contributors
Expand All @@ -53,16 +91,19 @@ Release 0.3.1

Major Features and Improvements
-------------------------------

- Clarity of the code of ``flagser_unweighted`` and ``flagser_weighted`` was improved.
- Auditwheel repair is now run in the manylinux jobs.
- ``twine check`` is now run as part of the CI.

Bug Fixes
---------

- Fix bug causing ``flagser_weighted``'s output persistence diagrams to be a list of list of tuples instead of a list of ``numpy.ndarrays`` of shape (n_points, 2).

Backwards-Incompatible Changes
------------------------------

- Installation from tarballs is no longer supported.

Thanks to our Contributors
Expand Down
152 changes: 30 additions & 122 deletions azure-pipelines.yml
Original file line number Diff line number Diff line change
@@ -1,114 +1,6 @@
# These jobs are triggered automatically and they test the code and the examples.
# These jobs test the code and build the wheels and docs.

jobs:
- job: 'test_ubuntu1604'
condition: eq(variables['build_check'], 'false')
pool:
vmImage: 'ubuntu-16.04'
strategy:
matrix:
Python36:
python.version: '3.6'
Python37:
python.version: '3.7'
Python38:
python.version: '3.8'

steps:
- task: UsePythonVersion@0
inputs:
versionSpec: '$(python.version)'

- script: |
python -m pip install --upgrade pip setuptools
failOnStderr: true
displayName: 'Upgrade pip and setuptools'
- script: python -m pip install -e ".[tests, doc]"
failOnStderr: true
displayName: 'Install dev environment'

- script: |
pytest --cov pyflagser --cov-report xml
flake8
failOnStderr: true
displayName: 'Test with pytest and flake8'
- job: 'test_macOS1014'
condition: eq(variables['build_check'], 'false')
pool:
vmImage: 'macOS-10.14'
strategy:
matrix:
Python36:
python.version: '3.6'
Python37:
python.version: '3.7'
Python38:
python.version: '3.8'

steps:
- task: UsePythonVersion@0
inputs:
versionSpec: '$(python.version)'

- script: |
python -m pip install --upgrade pip setuptools
failOnStderr: true
displayName: 'Upgrade pip and setuptools'
- script: python -m pip install -e ".[tests, doc]"
failOnStderr: true
displayName: 'Install dev environment'

- script: |
pytest --cov pyflagser --cov-report xml
flake8
failOnStderr: true
displayName: 'Test with pytest and flake8'
- job: 'test_win2016'
condition: eq(variables['build_check'], 'false')
pool:
vmImage: 'vs2017-win2016'
strategy:
matrix:
Python36:
python_ver: '36'
python.version: '3.6'
Python37:
python_ver: '37'
python.version: '3.7'
Python38:
python_ver: '38'
python.version: '3.8'

steps:
- task: UsePythonVersion@0
inputs:
versionSpec: '$(python.version)'

- script: |
python -m python -m pip install --upgrade pip setuptools
failOnStderr: true
displayName: 'Upgrade pip and setuptools'
- script: |
python -m pip install -e ".[tests, doc]"
failOnStderr: true
displayName: 'Install dev environment'
- script: |
pytest --cov pyflagser --cov-report xml
flake8
failOnStderr: true
displayName: 'Test with pytest and flake8'
# These jobs are triggered manually and they test the code and the examples and build the wheels and docs.

- job: 'manylinux2010'
condition: eq(variables['build_check'], 'true')
pool:
Expand All @@ -130,6 +22,11 @@ jobs:
plat: manylinux2010_x86_64
python_ver: '38'
python.version: '3.8'
Python39:
arch: x86_64
plat: manylinux2010_x86_64
python_ver: '39'
python.version: '3.9'

steps:
- task: UsePythonVersion@0
Expand All @@ -145,8 +42,8 @@ jobs:
displayName: 'Run the docker, install and uninstall dev environment, test with pytest and flake8, build the wheels'

- script: |
python -m pip install --upgrade pip
displayName: 'Upgrade pip and setuptools'
python -m pip install --upgrade pip setuptools wheel
displayName: 'Upgrade pip and setuptools, install wheel package'
- script: python -m pip install dist/*.whl
failOnStderr: true
Expand All @@ -158,6 +55,7 @@ jobs:
cd tmp_test_cov
python -m pyflagser.tests --webdl --no-cov --no-coverage-upload
failOnStderr: true
condition: eq(variables['test_wheels'], 'true')
displayName: 'Test the wheels with pytest'
- task: CopyFiles@2
Expand Down Expand Up @@ -185,34 +83,40 @@ jobs:
python.version: '3.7'
Python38:
python.version: '3.8'
Python39:
python.version: '3.9'

steps:
- task: UsePythonVersion@0
inputs:
versionSpec: '$(python.version)'

- script: |
python -m pip install --upgrade pip setuptools
python -m pip install --upgrade pip setuptools wheel
failOnStderr: true
displayName: 'Upgrade pip and setuptools'
displayName: 'Upgrade pip and setuptools, install wheel package'
- script: python -m pip install -e ".[tests, doc]"
failOnStderr: true
displayName: 'Install dev environment'

- script: |
pytest --cov pyflagser --cov-report xml
flake8
failOnStderr: true
displayName: 'Test with pytest and flake8'
displayName: 'Run flake8'
- script: |
pytest --cov pyflagser --cov-report xml
failOnStderr: true
displayName: 'Test dev install with pytest'
- script: |
pip uninstall -y pyflagser
failOnStderr: true
displayName: 'Uninstall pyflagser dev'
- script: |
python -m pip install wheel
pip install wheel
python setup.py bdist_wheel
failOnStderr: false
displayName: 'Build the wheels'
Expand All @@ -232,6 +136,7 @@ jobs:
cd tmp_test_cov
python -m pyflagser.tests --webdl --no-cov --no-coverage-upload
failOnStderr: true
condition: eq(variables['test_wheels'], 'true')
displayName: 'Test the wheels with pytest'
- script: |
Expand Down Expand Up @@ -278,27 +183,29 @@ jobs:
Python38:
python_ver: '38'
python.version: '3.8'
Python39:
python_ver: '39'
python.version: '3.9'

steps:
- task: UsePythonVersion@0
inputs:
versionSpec: '$(python.version)'

- script: |
python -m pip install --upgrade pip setuptools
python -m pip install --upgrade pip setuptools wheel
failOnStderr: true
displayName: 'Upgrade pip and setuptools'
displayName: 'Upgrade pip and setuptools, install wheel package'
- script: |
python -m pip install -e ".[tests, doc]"
failOnStderr: true
displayName: 'Install dev environment'
- script: |
pytest --cov pyflagser --cov-report xml
flake8
pytest pyflagser --no-cov --no-coverage-upload
failOnStderr: true
displayName: 'Test with pytest and flake8'
displayName: 'Test dev install with pytest'
- script: |
pip uninstall -y pyflagser
Expand All @@ -307,7 +214,7 @@ jobs:
- bash: |
sed -i $'s/\r$//' README.rst
python -m pip install wheel
pip install wheel
python setup.py bdist_wheel
failOnStderr: false
displayName: 'Build the wheels'
Expand All @@ -321,6 +228,7 @@ jobs:
cd tmp_test_cov
python -m pyflagser.tests --webdl --no-cov --no-coverage-upload
failOnStderr: true
condition: eq(variables['test_wheels'], 'true')
displayName: 'Test the wheels with pytest'
- task: CopyFiles@2
Expand Down
4 changes: 2 additions & 2 deletions doc/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ Welcome to pyflagser's API reference!
=====================================


:mod:`pyflagser`: Flag Complexes I/O and Persistence Homology
=============================================================
:mod:`pyflagser`: Flag Complexes I/O and Persistent Homology
============================================================

.. automodule:: pyflagser
:no-members:
Expand Down
2 changes: 1 addition & 1 deletion pyflagser/_version.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,4 @@
# 'X.Y.dev0' is the canonical version of 'X.Y.dev'
#

__version__ = '0.4.1'
__version__ = '0.4.2'
Loading

0 comments on commit 509c030

Please sign in to comment.