Skip to content

Commit 4494cb4

Browse files
committed
Merge branch 'release/v0.3.16'
2 parents 6067936 + 098570a commit 4494cb4

File tree

478 files changed

+39619
-19120
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

478 files changed

+39619
-19120
lines changed
File renamed without changes.

.github/workflows/continuous-integration.yml

Lines changed: 49 additions & 118 deletions
Original file line numberDiff line numberDiff line change
@@ -3,63 +3,68 @@ name: Continuous Integration
33
on: [push, pull_request]
44

55
jobs:
6-
unix-build:
7-
name: Unix Build
6+
continuous-integration:
7+
name: ${{ matrix.os }} - Python ${{ matrix.python-version }}
88
strategy:
99
matrix:
10-
os: [ubuntu-18.04, macOS-latest]
11-
python-version: [2.7, 3.5, 3.6, 3.7, 3.8]
10+
os: [macOS-latest, ubuntu-18.04, windows-latest]
11+
python-version: [2.7, 3.6, 3.7, 3.8]
12+
fail-fast: false
1213
runs-on: ${{ matrix.os }}
1314
steps:
1415
- uses: actions/checkout@v1
1516
- name: Environment Variables
1617
run: |
17-
CI_PYTHON_VERSION=${{ matrix.python-version }}
18-
CI_PACKAGE=colour
19-
CI_SHA=${{ github.sha }}
20-
CI_SLACK_WEBHOOK=${{ secrets.SLACK_WEBHOOK }}
21-
CI_SLACK_SUCCESS_NOTIFICATION="payload={\"attachments\": [{\"color\": \"#4CAF50\", \"author_name\": \"Python ${{ matrix.python-version }} build on ${{ matrix.os }}\", \"text\": \"Build for commit *${CI_SHA:0:7}* succeeded!\", \"title\": \"${{ github.repository }}@${{ github.ref }}\", \"title_link\": \"https://github.com/${{ github.repository }}/commit/${{ github.sha }}/checks\", \"footer\": \"Triggered by ${{ github.actor }}\"}], \"username\":\"Github Actions @ ${{ github.repository }}\", \"channel\":\"#continuous-integration\", \"icon_url\":\"https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png\"}"
22-
CI_SLACK_FAILURE_NOTIFICATION="${CI_SLACK_SUCCESS_NOTIFICATION/4CAF50/F44336}"
23-
CI_SLACK_FAILURE_NOTIFICATION="${CI_SLACK_FAILURE_NOTIFICATION/succeeded/failed}"
24-
CI_OPENIMAGEIO_ARTIFACT=https://github.com/colour-science/artifacts/suites/407105362/artifacts/1192372
25-
CI_OPENIMAGEIO_VERSION=2.1.10.1
26-
COVERALLS_REPO_TOKEN=${{ secrets.COVERALLS_REPO_TOKEN }}
27-
MPLBACKEND=AGG
28-
echo ::set-env name=CI_PYTHON_VERSION::$CI_PYTHON_VERSION
29-
echo ::set-env name=CI_PACKAGE::$CI_PACKAGE
30-
echo ::set-env name=CI_SHA::$CI_SHA
31-
echo ::set-env name=CI_SLACK_WEBHOOK::$CI_SLACK_WEBHOOK
32-
echo ::set-env name=CI_SLACK_SUCCESS_NOTIFICATION::$CI_SLACK_SUCCESS_NOTIFICATION
33-
echo ::set-env name=CI_SLACK_FAILURE_NOTIFICATION::$CI_SLACK_FAILURE_NOTIFICATION
34-
echo ::set-env name=COVERALLS_REPO_TOKEN::$COVERALLS_REPO_TOKEN
35-
echo ::set-env name=CI_OPENIMAGEIO_ARTIFACT::$CI_OPENIMAGEIO_ARTIFACT
36-
echo ::set-env name=CI_OPENIMAGEIO_VERSION::$CI_OPENIMAGEIO_VERSION
37-
echo ::set-env name=MPLBACKEND::$MPLBACKEND
18+
echo "CI_PYTHON_VERSION=${{ matrix.python-version }}" >> $GITHUB_ENV
19+
echo "CI_PACKAGE=colour" >> $GITHUB_ENV
20+
echo "CI_SHA=${{ github.sha }}" >> $GITHUB_ENV
21+
echo "CI_OPENIMAGEIO_VERSION=2.1.10.1" >> $GITHUB_ENV
22+
echo "CI_OPENIMAGEIO_ARTIFACT=https://github.com/colour-science/artifacts/releases/download/OpenImageIO-Release-2.1.10.1/OpenImageIO-Release-2.1.10.1.zip" >> $GITHUB_ENV
23+
echo "COVERALLS_REPO_TOKEN=${{ secrets.COVERALLS_REPO_TOKEN }}" >> $GITHUB_ENV
24+
echo "MPLBACKEND=AGG" >> $GITHUB_ENV
25+
shell: bash
3826
- name: Set up Python ${{ matrix.python-version }}
3927
uses: actions/setup-python@v1
4028
with:
4129
python-version: ${{ matrix.python-version }}
42-
- name: Ubuntu - Update OS & Install APT Dependencies
30+
- name: Update OS & Install APT Dependencies (Ubuntu)
4331
if: matrix.os == 'ubuntu-18.04'
4432
run: |
4533
sudo apt-get --yes install libboost-all-dev libilmbase-dev libopenexr-dev libpng-dev libtiff5-dev
34+
- name: Update OS & Install APT Dependencies (macOs)
35+
if: matrix.os == 'macOS-latest'
36+
run: |
37+
brew install gnu-sed
38+
ln -s /usr/local/bin/gsed /usr/local/bin/sed
39+
shell: bash
4640
- name: Install Poetry
4741
run: |
4842
curl -L https://raw.githubusercontent.com/sdispater/poetry/master/get-poetry.py -o get-poetry.py
49-
python get-poetry.py --preview --version 1.0.0b3
50-
PATH=$HOME/.poetry/bin:$PATH
51-
echo ::set-env name=PATH::$PATH
52-
- name: Python 3.8 - Matplotlib
53-
if: matrix.python-version == '3.8'
54-
run: |
55-
sed -i.bak 's/python = "~2.7 || ^3.5"/python = "^3.6"/g' pyproject.toml
56-
sed -i.bak 's/matplotlib = { version = "\*"/matplotlib = { version = "^3.1"/g' pyproject.toml
43+
python get-poetry.py --version 1.0.10
44+
echo "$HOME/.poetry/bin" >> $GITHUB_PATH
45+
shell: bash
46+
- name: Update pyproject.toml file (Python 2.7)
47+
if: matrix.python-version == '2.7'
48+
run: |
49+
sed -i.bak 's/python = "~2.7 || ^3.6"/python = "~2.7"/g' pyproject.toml
50+
sed -i.bak '/scipy = "\^1\.1\.0"/ a qtconsole = "4.7.7"' pyproject.toml
51+
shell: bash
52+
- name: Update pyproject.toml file (Windows, Python 2.7)
53+
if: matrix.os == 'windows-latest' && matrix.python-version == '2.7'
54+
run: |
55+
sed -i.bak '/scipy = "\^1\.1\.0"/ a pywin32 = "228"' pyproject.toml
56+
shell: bash
57+
- name: Update pyproject.toml file (Python 3.x)
58+
if: matrix.python-version != '2.7'
59+
run: |
60+
sed -i.bak 's/python = "~2.7 || ^3.6"/python = "^3.6"/g' pyproject.toml
61+
shell: bash
5762
- name: Install Package Dependencies
5863
run: |
5964
poetry install --extras "optional plotting"
60-
source $(poetry env info -p)/bin/activate
61-
python -c "import imageio;imageio.plugins.freeimage.download()"
62-
- name: Ubuntu - Install OpenImageIO
65+
poetry run python -c "import imageio;imageio.plugins.freeimage.download()"
66+
shell: bash
67+
- name: Install OpenImageIO (Ubuntu)
6368
if: matrix.os == 'ubuntu-18.04' && matrix.python-version == '3.6'
6469
run: |
6570
curl -L $CI_OPENIMAGEIO_ARTIFACT -o OpenImageIO-Release-$CI_OPENIMAGEIO_VERSION.zip
@@ -68,91 +73,17 @@ jobs:
6873
sudo cp -r OpenImageIO-Release-$CI_OPENIMAGEIO_VERSION/linux64/lib/* /usr/lib/
6974
sudo rm -rf /usr/lib/python$CI_PYTHON_VERSION
7075
cp OpenImageIO-Release-$CI_OPENIMAGEIO_VERSION/linux64/lib/python$CI_PYTHON_VERSION/site-packages/OpenImageIO.so $(poetry env info -p)/lib/python$CI_PYTHON_VERSION/site-packages/
76+
shell: bash
7177
- name: Lint with flake8
7278
run: |
73-
source $(poetry env info -p)/bin/activate
74-
flake8 $CI_PACKAGE --count --show-source --statistics
79+
poetry run flake8 $CI_PACKAGE --count --show-source --statistics
80+
shell: bash
7581
- name: Test with nosetests
7682
run: |
77-
source $(poetry env info -p)/bin/activate
78-
python -W ignore -m nose -v --nocapture --with-doctest --doctest-options=+ELLIPSIS --with-coverage --cover-package=$CI_PACKAGE $CI_PACKAGE
83+
poetry run python -W ignore -m nose -q -v --with-doctest --doctest-options=+ELLIPSIS --with-coverage --cover-package=$CI_PACKAGE $CI_PACKAGE
84+
shell: bash
7985
- name: Upload Coverage to coveralls.io
8086
if: matrix.python-version == '3.6' || matrix.python-version == '3.7' || matrix.python-version == '3.8'
8187
run: |
82-
source $(poetry env info -p)/bin/activate
83-
if [ -z "$COVERALLS_REPO_TOKEN" ]; then echo \"COVERALLS_REPO_TOKEN\" secret is undefined!; else coveralls; fi
84-
- name: Notify Slack
85-
if: always()
86-
run: |
87-
if [ "${{ job.status }}" == "Success" ]; then CI_SLACK_NOTIFICATION="$CI_SLACK_SUCCESS_NOTIFICATION"; else CI_SLACK_NOTIFICATION="$CI_SLACK_FAILURE_NOTIFICATION"; fi
88-
if [ -z "$CI_SLACK_WEBHOOK" ]; then echo \"SLACK_WEBHOOK\" secret is undefined!; else curl -k -d "$CI_SLACK_NOTIFICATION" -X POST $CI_SLACK_WEBHOOK; fi
89-
windows-build:
90-
name: Windows Build
91-
strategy:
92-
matrix:
93-
os: [windows-2019]
94-
python-version: [2.7, 3.5, 3.6, 3.7]
95-
runs-on: ${{ matrix.os }}
96-
steps:
97-
- uses: actions/checkout@v1
98-
- name: Environment Variables
99-
run: |
100-
set CI_PYTHON_VERSION=${{ matrix.python-version }}
101-
set CI_PACKAGE=colour
102-
set CI_SHA=${{ github.sha }}
103-
set CI_SLACK_WEBHOOK=${{ secrets.SLACK_WEBHOOK }}
104-
set CI_SLACK_SUCCESS_NOTIFICATION="payload={\"attachments\": [{\"color\": \"#4CAF50\", \"author_name\": \"Python ${{ matrix.python-version }} build on ${{ matrix.os }}\", \"text\": \"Build for commit *"%CI_SHA:~0,7%"* succeeded!\", \"title\": \"${{ github.repository }}@${{ github.ref }}\", \"title_link\": \"https://github.com/${{ github.repository }}/commit/${{ github.sha }}/checks\", \"footer\": \"Triggered by ${{ github.actor }}\"}], \"username\":\"Github Actions @ ${{ github.repository }}\", \"channel\":\"#continuous-integration\", \"icon_url\":\"https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png\"}"
105-
set CI_SLACK_FAILURE_NOTIFICATION=%CI_SLACK_SUCCESS_NOTIFICATION:4CAF50=F44336%
106-
set CI_SLACK_FAILURE_NOTIFICATION=%CI_SLACK_FAILURE_NOTIFICATION:succeeded=failed%
107-
set COVERALLS_REPO_TOKEN=${{ secrets.COVERALLS_REPO_TOKEN }}
108-
set MPLBACKEND=AGG
109-
echo ::set-env name=CI_PYTHON_VERSION::%CI_PYTHON_VERSION%
110-
echo ::set-env name=CI_PACKAGE::%CI_PACKAGE%
111-
echo ::set-env name=CI_SHA::%CI_SHA%
112-
echo ::set-env name=CI_SLACK_WEBHOOK::%CI_SLACK_WEBHOOK%
113-
echo ::set-env name=CI_SLACK_SUCCESS_NOTIFICATION::%CI_SLACK_SUCCESS_NOTIFICATION%
114-
echo ::set-env name=CI_SLACK_FAILURE_NOTIFICATION::%CI_SLACK_FAILURE_NOTIFICATION%
115-
echo ::set-env name=COVERALLS_REPO_TOKEN::%COVERALLS_REPO_TOKEN%
116-
echo ::set-env name=MPLBACKEND::%MPLBACKEND%
117-
shell: cmd
118-
- name: Set up Python ${{ matrix.python-version }}
119-
uses: actions/setup-python@v1
120-
with:
121-
python-version: ${{ matrix.python-version }}
122-
- name: Install Poetry
123-
run: |
124-
curl -L https://raw.githubusercontent.com/sdispater/poetry/master/get-poetry.py -o get-poetry.py
125-
python get-poetry.py --preview --version 1.0.0b3
126-
set PATH=%USERPROFILE%\.poetry\bin;%PATH%
127-
echo ::set-env name=PATH::%PATH%
128-
shell: cmd
129-
- name: Install Package Dependencies
130-
run: |
131-
call poetry install --extras "optional plotting"
132-
FOR /F %%a IN ('poetry env info -p') DO SET CI_VIRTUAL_ENVIRONMENT=%%a
133-
echo ::set-env name=CI_VIRTUAL_ENVIRONMENT::%CI_VIRTUAL_ENVIRONMENT%
134-
call %CI_VIRTUAL_ENVIRONMENT%\scripts\activate
135-
python -c "import imageio;imageio.plugins.freeimage.download()"
136-
shell: cmd
137-
- name: Lint with flake8
138-
run: |
139-
call %CI_VIRTUAL_ENVIRONMENT%\scripts\activate
140-
flake8 %CI_PACKAGE% --count --show-source --statistics
141-
shell: cmd
142-
- name: Test with nosetests
143-
run: |
144-
call %CI_VIRTUAL_ENVIRONMENT%\scripts\activate
145-
python -W ignore -m nose -v --nocapture --with-doctest --doctest-options=+ELLIPSIS --with-coverage --cover-package=%CI_PACKAGE% %CI_PACKAGE%
146-
shell: cmd
147-
- name: Upload Coverage to coveralls.io
148-
if: matrix.python-version == '3.6' || matrix.python-version == '3.7'
149-
run: |
150-
call %CI_VIRTUAL_ENVIRONMENT%\scripts\activate
151-
IF "%COVERALLS_REPO_TOKEN%"=="" (echo "COVERALLS_REPO_TOKEN" secret is undefined!) ELSE (coveralls)
152-
shell: cmd
153-
- name: Notify Slack
154-
if: always()
155-
run: |
156-
IF "${{ job.status }}"=="Success" (set CI_SLACK_NOTIFICATION=%CI_SLACK_SUCCESS_NOTIFICATION%) ELSE (set CI_SLACK_NOTIFICATION=%CI_SLACK_FAILURE_NOTIFICATION%)
157-
IF "%CI_SLACK_WEBHOOK%"=="" (echo "SLACK_WEBHOOK" secret is undefined!) ELSE (curl -k -d %CI_SLACK_NOTIFICATION% -X POST %CI_SLACK_WEBHOOK%)
158-
shell: cmd
88+
if [ -z "$COVERALLS_REPO_TOKEN" ]; then echo \"COVERALLS_REPO_TOKEN\" secret is undefined!; else poetry run coveralls; fi
89+
shell: bash

.readthedocs.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ build:
22
image: latest
33

44
python:
5-
version: 3.6
5+
version: 3.7
66
pip_install: true
77
extra_requirements:
88
- read-the-docs

0 commit comments

Comments
 (0)