Skip to content

Commit 5021e00

Browse files
authored
v0.6.1 (#161)
1 parent f76cbe6 commit 5021e00

26 files changed

+364
-176
lines changed

.github/workflows/build-wheels.yml

+66
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
name: Build-wheels
2+
3+
# This workflow builds "wheels", which are the binary package installers hosted on PyPI.
4+
# GitHub Actions is super helpful here because each one needs to be compiled in its own
5+
# target environment. The wheel files are saved as artifacts, which you can download from
6+
# the GitHub website. Wheels should be uploaded manually to PyPI -- see CONTRIBUTING.md.
7+
8+
# The Linux wheels cannot be generated using `ubuntu-latest` because they require a
9+
# special Docker image to ensure cross-Linux compatibility. There are at least a couple
10+
# of third-party actions set up using the official image; we could switch to another if
11+
# this ever breaks.
12+
13+
on:
14+
# push:
15+
pull_request:
16+
release:
17+
workflow_dispatch:
18+
19+
jobs:
20+
21+
build-manylinux:
22+
runs-on: ubuntu-latest
23+
steps:
24+
- uses: actions/checkout@v2
25+
# with:
26+
# ref: 'v0.6' # enable to check out prior version of codebase
27+
- name: Build wheels
28+
uses: RalfG/[email protected]
29+
with:
30+
python-versions: 'cp35-cp35m cp36-cp36m cp37-cp37m cp38-cp38 cp39-cp39'
31+
build-requirements: 'cython numpy'
32+
- name: Save artifacts
33+
uses: actions/upload-artifact@v2
34+
with:
35+
name: wheels
36+
path: dist/*-manylinux*.whl
37+
38+
build:
39+
runs-on: ${{ matrix.os }}
40+
defaults:
41+
run:
42+
shell: bash -l {0} # needed for conda persistence
43+
strategy:
44+
matrix:
45+
os: [macos-latest, windows-latest]
46+
python-version: [3.6, 3.7, 3.8, 3.9]
47+
steps:
48+
- uses: actions/checkout@v2
49+
# with:
50+
# ref: 'v0.6' # enable to check out prior version of codebase
51+
- name: Set up Python ${{ matrix.python-version }}
52+
uses: conda-incubator/setup-miniconda@v2
53+
with:
54+
python-version: ${{ matrix.python-version }}
55+
- name: Set up environment
56+
run: |
57+
conda config --append channels conda-forge
58+
conda install cython numpy clang llvm-openmp
59+
- name: Build wheel
60+
run: |
61+
python setup.py bdist_wheel
62+
- name: Save artifacts
63+
uses: actions/upload-artifact@v2
64+
with:
65+
name: wheels
66+
path: dist/*.whl

.github/workflows/code-style.yml

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
name: Code style
2+
3+
# This workflow runs code style checks.
4+
5+
on:
6+
push:
7+
workflow_dispatch:
8+
9+
jobs:
10+
build:
11+
runs-on: ubuntu-latest
12+
steps:
13+
- uses: actions/checkout@v2
14+
- name: Set up Python
15+
uses: actions/setup-python@v2
16+
with:
17+
python-version: '3.x'
18+
- name: Check code style
19+
run: |
20+
pip install pycodestyle
21+
pycodestyle pandana

.github/workflows/coverage.yml

+35
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
name: Coverage
2+
3+
# This workflow generates a coverage report (how much of the codebase is covered by the
4+
# unit tests) and posts headline metrics to the PR thread.
5+
6+
on:
7+
# push:
8+
pull_request:
9+
workflow_dispatch:
10+
11+
jobs:
12+
build:
13+
runs-on: ubuntu-latest
14+
steps:
15+
- uses: actions/checkout@v2
16+
- name: Set up Python
17+
uses: actions/setup-python@v2
18+
with:
19+
python-version: 3.8
20+
- name: Install Pandana
21+
run: |
22+
pip install .
23+
pip install osmnet
24+
- name: Generate coverage report
25+
run: |
26+
pip install 'pytest<4.0' 'pytest-cov<2.10' coverage
27+
python setup.py test --pytest-args "--cov pandana --cov-report term-missing"
28+
echo "coverage=$(coverage report | grep '^TOTAL' | grep -oE '[^ ]+$')" >> $GITHUB_ENV
29+
- name: Post comment on PR
30+
uses: unsplash/comment-on-pr@master
31+
env:
32+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
33+
with:
34+
msg: "Test coverage is ${{ env.coverage }}"
35+
check_for_duplicate_msg: true
+62
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
name: Cross-compatibility
2+
3+
# This workflow runs the Pandana unit tests across a comprehensive range of Python
4+
# versions and operating systems. Windows needs conda in order to install geospatial
5+
# dependencies.
6+
7+
on:
8+
# push:
9+
pull_request:
10+
workflow_dispatch:
11+
12+
jobs:
13+
build-pip:
14+
runs-on: ${{ matrix.os }}
15+
strategy:
16+
matrix:
17+
os: [ubuntu-latest, macos-latest]
18+
python-version: [3.6, 3.7, 3.8]
19+
steps:
20+
- uses: actions/checkout@v2
21+
- name: Set up Python ${{ matrix.python-version }}
22+
uses: actions/setup-python@v2
23+
with:
24+
python-version: ${{ matrix.python-version }}
25+
- name: Install Pandana
26+
run: |
27+
pip install .
28+
pip install osmnet
29+
- name: Run demo
30+
run: |
31+
python examples/simple_example.py
32+
- name: Run unit tests
33+
run: |
34+
pip install 'pytest<4.0'
35+
python setup.py test
36+
37+
build-conda:
38+
runs-on: ${{ matrix.os }}
39+
defaults:
40+
run:
41+
shell: bash -l {0} # needed for conda persistence
42+
strategy:
43+
matrix:
44+
os: [windows-latest]
45+
python-version: [3.6, 3.7, 3.8]
46+
steps:
47+
- uses: actions/checkout@v2
48+
- name: Set up Python ${{ matrix.python-version }}
49+
uses: conda-incubator/setup-miniconda@v2
50+
with:
51+
python-version: ${{ matrix.python-version }}
52+
- name: Install Pandana
53+
run: |
54+
pip install .
55+
conda install osmnet --channel conda-forge
56+
- name: Run demo
57+
run: |
58+
python examples/simple_example.py
59+
- name: Run unit tests
60+
run: |
61+
pip install 'pytest<4.0'
62+
python setup.py test

.github/workflows/installation.yml

+58
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
name: Installation
2+
3+
# This workflow installs Pandana from Pip and Conda across a range of Python versions and
4+
# operating systems. You can run this manually after a new release is posted to confirm
5+
# that it installs smoothly. This workflow also runs periodically in the background to
6+
# catch dependency updates that break Pandana.
7+
8+
on:
9+
# push:
10+
# pull_request:
11+
workflow_dispatch:
12+
schedule:
13+
- cron: '0 3 * * 1' # every Monday at 3am UTC (Sunday evening Calif time)
14+
15+
jobs:
16+
build-pip:
17+
runs-on: ${{ matrix.os }}
18+
strategy:
19+
matrix:
20+
os: [ubuntu-latest]
21+
# Pip installation for Windows is not supported. Pip installation for Mac is
22+
# broken in the GitHub Actions environment with Pandana v0.6 but should be fixed
23+
# in the next Pandana release.
24+
python-version: [3.6, 3.7, 3.8]
25+
steps:
26+
- uses: actions/checkout@v2
27+
- name: Set up Python ${{ matrix.python-version }}
28+
uses: actions/setup-python@v2
29+
with:
30+
python-version: ${{ matrix.python-version }}
31+
- name: Install Pandana
32+
run: |
33+
pip install pandana
34+
- name: Run demo
35+
run: |
36+
python examples/simple_example.py
37+
38+
build-conda:
39+
runs-on: ${{ matrix.os }}
40+
defaults:
41+
run:
42+
shell: bash -l {0} # needed for conda persistence
43+
strategy:
44+
matrix:
45+
os: [ubuntu-latest, macos-latest, windows-latest]
46+
python-version: [3.6, 3.7, 3.8, 3.9]
47+
steps:
48+
- uses: actions/checkout@v2
49+
- name: Set up Python ${{ matrix.python-version }}
50+
uses: conda-incubator/setup-miniconda@v2
51+
with:
52+
python-version: ${{ matrix.python-version }}
53+
- name: Install Pandana
54+
run: |
55+
conda install pandana --channel conda-forge
56+
- name: Run demo
57+
run: |
58+
python examples/simple_example.py

.github/workflows/unit-tests.yml

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
name: Unit tests
2+
3+
# This workflow runs the Pandana unit tests in a single generic environment (recent but
4+
# stable Python version on recent but stable Ubuntu). The cross-compatibility.yml
5+
# workflow runs the same tests across multiple platforms.
6+
7+
on:
8+
push:
9+
# pull_request:
10+
workflow_dispatch:
11+
12+
jobs:
13+
build:
14+
runs-on: ubuntu-latest
15+
steps:
16+
- uses: actions/checkout@v2
17+
- name: Set up Python
18+
uses: actions/setup-python@v2
19+
with:
20+
python-version: 3.8
21+
- name: Install Pandana
22+
run: |
23+
pip install .
24+
pip install osmnet
25+
- name: Run unit tests
26+
run: |
27+
pip install 'pytest<4.0'
28+
python setup.py test

.travis.yml

-22
This file was deleted.

CHANGELOG.md

+9
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
v0.6.1
2+
======
3+
4+
2021/03/17
5+
6+
* Adds support for non-x86 CPUs, including ARM-based Macs
7+
* Removes accommodations for pre-C++11 compilers
8+
* Formally ends support for Python 2.7
9+
110
v0.6
211
====
312

CONTRIBUTING.md

+7-1
Original file line numberDiff line numberDiff line change
@@ -68,11 +68,17 @@ You can contact Sam Maurer, the lead maintainer, at `[email protected]`.
6868

6969
- Check https://pypi.org/project/pandana/ for the new version
7070

71+
The binary package installers or "wheels" are built using a GitHub Actions workflow, because each one needs to be compiled in its own target environment. This should run automatically when a PR is opened, to confirm nothing is broken, and again when a release is tagged in GitHub. You can download the resulting wheel files from the Action status page and then upload them to PyPI using the same command as above.
72+
7173

7274
## Distributing a release on Conda Forge (for conda installation):
7375

74-
- The [conda-forge/pandana-feedstock](https://github.com/conda-forge/pandana-feedstock) repository controls the Conda Forge release
76+
- The [conda-forge/pandana-feedstock](https://github.com/conda-forge/pandana-feedstock) repository controls the Conda Forge release, including which GitHub users have maintainer status for the repo
7577

7678
- Conda Forge bots usually detect new releases on PyPI and set in motion the appropriate feedstock updates, which a current maintainer will need to approve and merge
7779

80+
- Maintainers can add on additional changes before merging the PR, for example to update the requirements or edit the list of maintainers
81+
82+
- You can also fork the feedstock and open a PR manually. It seems like this must be done from a personal account (not a group account like UDST) so that the bots can be granted permission for automated cleanup
83+
7884
- Check https://anaconda.org/conda-forge/pandana for the new version (may take a few minutes for it to appear)

README.md

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
[![Coverage Status](https://coveralls.io/repos/github/UDST/pandana/badge.svg?branch=master)](https://coveralls.io/github/UDST/pandana?branch=master)
1+
![Coverage Status](https://img.shields.io/badge/coverage-90%25-green)
22

33
# Pandana
44

@@ -11,11 +11,12 @@ Documentation: http://udst.github.io/pandana
1111

1212
### Installation
1313

14-
Pandana runs on Mac, Linux, and Windows with Python 2.7, 3.6, 3.7, and 3.8.
14+
As of March 2021, binary installers are provided for Mac, Linux, and Windows through both PyPI and Conda Forge.
1515

16-
The easiest way to install Pandana is using the [Anaconda](https://www.anaconda.com/distribution/) package manager. Pandana's Anaconda distributions are pre-compiled and include multi-threading support on all platforms.
16+
- `pip install pandana`
17+
- `conda install pandana --channel conda-forge`
1718

18-
`conda install pandana --channel conda-forge`
19+
Pandana is easiest to install in Python 3.6 to 3.9. The last version of Pandana with Python 2.7 binaries is v0.4.4 on Conda Forge. The last version with Python 3.5 binaries is v0.6 on Pip.
1920

2021
See the documentation for information about other [installation options](http://udst.github.io/pandana/installation.html).
2122

@@ -25,7 +26,6 @@ See the documentation for information about other [installation options](http://
2526
[Pandana-demo.ipynb](examples/Pandana-demo.ipynb)
2627

2728

28-
2929
### Acknowledgments
3030

3131
Pandana was created by [Fletcher Foti](https://github.com/fscottfoti), with subsequent contributions from [Matt Davis](https://github.com/jiffyclub), [Federico Fernandez](https://github.com/federicofernandez), [Sam Maurer](https://github.com/smmaurer), and others. Sam Maurer is currently the lead maintainer. Pandana relies on contraction hierarchy code from [Dennis Luxen](https://github.com/DennisOSRM) and his [OSRM project](https://github.com/DennisOSRM/Project-OSRM).

appveyor.yml

-24
This file was deleted.

0 commit comments

Comments
 (0)