8000 Merge pull request #17096 from timhoffm/dev-environment · ericpre/matplotlib@56a624c · GitHub
[go: up one dir, main page]

Skip to content

Commit 56a624c

Browse files
timhoffmericpre
authored andcommitted
Merge pull request matplotlib#17096 from timhoffm/dev-environment
Add conda environment.yml for developers
2 parents 7742dbe + a1eef38 commit 56a624c

File tree

441 files changed

+7809
-4909
lines changed

Some content is hidden

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

441 files changed

+7809
-4909
lines changed

.appveyor.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,8 @@ install:
6060
# pull pywin32 from conda because on py38 there is something wrong with finding
6161
# the dlls when insalled from pip
6262
- conda install -c conda-forge pywin32
63+
# install pyqt from conda-forge
64+
- conda install -c conda-forge pyqt
6365
- echo %PYTHON_VERSION% %TARGET_ARCH%
6466
# Install dependencies from PyPI.
6567
- python -m pip install --upgrade -r requirements/testing/all.txt %EXTRAREQS% %PINNEDVERS%

.circleci/config.yml

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,13 @@ commands:
105105
- run:
106106
name: Install Matplotlib
107107
command: python -m pip install --user -ve .
108+
- save_cache:
109+
key: build-deps-1
110+
paths:
111+
# FreeType 2.6.1 tarball.
112+
- ~/.cache/matplotlib/0a3c7dfbda6da1e8fce29232e8e96d987ababbbf71ebc8c75659e4132c367014
113+
# Qhull 2020.2 tarball.
114+
- ~/.cache/matplotlib/b5c2d7eb833278881b952c8a52d20179eab87766b00b865000469a45c1838b7e
108115

109116
doc-build:
110117
steps:
@@ -117,15 +124,13 @@ commands:
117124
command: |
118125
# Set epoch to date of latest tag.
119126
export SOURCE_DATE_EPOCH="$(git log -1 --format=%at $(git describe --abbrev=0))"
120-
# Include analytics only when deploying to devdocs.
121-
if [ "$CIRCLE_PROJECT_USERNAME" != "matplotlib" ] || \
122-
[ "$CIRCLE_BRANCH" != "master" ] || \
123-
[[ "$CIRCLE_PULL_REQUEST" == https://github.com/matplotlib/matplotlib/pull/* ]]; then
124-
export ANALYTICS=False
125-
else
126-
export ANALYTICS=True
127+
# Set release mode only when deploying to devdocs.
128+
if [ "$CIRCLE_PROJECT_USERNAME" = "matplotlib" ] && \
129+
[ "$CIRCLE_BRANCH" = "master" ] && \
130+
[ "$CIRCLE_PR_NUMBER" = "" ]; then
131+
export RELEASE_TAG='-t release'
127132
fi
128-
make html O="-T -Ainclude_analytics=$ANALYTICS"
133+
make html O="-T $RELEASE_TAG"
129134
rm -r build/html/_sources
130135
working_directory: doc
131136
- save_cache:

.flake8

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ per-file-ignores =
8585
lib/mpl_toolkits/tests/conftest.py: F401
8686
lib/pylab.py: F401, F403
8787

88-
doc/conf.py: E402, E501
88+
doc/conf.py: E402
8989
tutorials/advanced/path_tutorial.py: E402
9090
tutorials/advanced/patheffects_guide.py: E402
9191
tutorials/advanced/transforms_tutorial.py: E402, E501
@@ -120,11 +120,15 @@ per-file-ignores =
120120
examples/style_sheets/plot_solarizedlight2.py: E501
121121
examples/subplots_axes_and_figures/demo_constrained_layout.py: E402
122122
examples/text_labels_and_annotations/custom_legends.py: E402
123-
examples/ticks_and_spines/date_concise_formatter.py: E402
123+
examples/ticks/date_concise_formatter.py: E402
124124
examples/user_interfaces/embedding_in_gtk3_panzoom_sgskip.py: E402
125125
examples/user_interfaces/embedding_in_gtk3_sgskip.py: E402
126-
examples/user_interfaces/gtk_spreadsheet_sgskip.py: E402
126+
examples/user_interfaces/embedding_in_gtk4_panzoom_sgskip.py: E402
127+
examples/user_interfaces/embedding_in_gtk4_sgskip.py: E402
128+
examples/user_interfaces/gtk3_spreadsheet_sgskip.py: E402
129+
examples/user_interfaces/gtk4_spreadsheet_sgskip.py: E402
127130
examples/user_interfaces/mpl_with_glade3_sgskip.py: E402
128-
examples/user_interfaces/pylab_with_gtk_sgskip.py: E402
131+
examples/user_interfaces/pylab_with_gtk3_sgskip.py: E402
132+
examples/user_interfaces/pylab_with_gtk4_sgskip.py: E402
129133
examples/user_interfaces/toolmanager_sgskip.py: E402
130134
examples/userdemo/pgf_preamble_sgskip.py: E402

.github/FUNDING.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
# These are supported funding model platforms
2-
github: [numfocus]
2+
github: [matplotlib, numfocus]
33
custom: https://numfocus.org/donate-to-matplotlib

.github/workflows/cibuildwheel.yml

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,10 @@ jobs:
1515
env:
1616
min-numpy-version: "1.17.3"
1717
min-numpy-hash: "b6/d6/be8f975f5322336f62371c9abeb936d592c98c047ad63035f1b38ae08efe"
18+
CIBW_ARCHS_MACOS: "x86_64 universal2 arm64"
1819
strategy:
1920
matrix:
20-
os: [ubuntu-18.04, windows-latest, macos-latest]
21+
os: [ubuntu-18.04, windows-latest, macos-10.15]
2122
cibw_archs: ["auto"]
2223
include:
2324
- os: ubuntu-18.04
@@ -60,6 +61,18 @@ jobs:
6061
CIBW_BUILD: "cp37-* cp38-*"
6162
CIBW_ARCHS: aarch64
6263

64+
- name: Build wheels for CPython 3.10
65+
run: |
66+
python -m cibuildwheel --output-dir dist
67+
if: matrix.os != 'macos-10.15'
68+
env:
69+
CIBW_BUILD: "cp310-*"
70+
CIBW_MANYLINUX_X86_64_IMAGE: manylinux2014
71+
CIBW_MANYLINUX_I686_IMAGE: manylinux2014
72+
CIBW_BEFORE_BUILD: pip install certifi numpy==1.21.2
73+
MPL_DISABLE_FH4: "yes"
74+
CIBW_ARCHS: ${{ matrix.cibw_archs }}
75+
6376
- name: Build wheels for CPython 3.9
6477
run: |
6578
python -m cibuildwheel --output-dir dist
@@ -89,6 +102,7 @@ jobs:
89102
CIBW_BUILD: "pp37-*"
90103
CIBW_BEFORE_BUILD: pip install certifi numpy==${{ env.min-numpy-version }}
91104
CIBW_ARCHS: ${{ matrix.cibw_archs }}
105+
PIP_USE_FEATURE: in-tree-build
92106
if: matrix.cibw_archs != 'aarch64'
93107

94108
- name: Validate that LICENSE files are included in wheels

.github/workflows/clean_pr.yml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
name: PR cleanliness
2+
on: [pull_request]
3+
4+
jobs:
5+
pr_clean:
6+
runs-on: ubuntu-latest
7+
8+
steps:
9+
- uses: actions/checkout@v2
10+
with:
11+
fetch-depth: '0'
12+
- name: Check for added-and-deleted files
13+
run: |
14+
git fetch --quiet origin "$GITHUB_BASE_REF"
15+
base="$(git merge-base "origin/$GITHUB_BASE_REF" 'HEAD^2')"
16+
ad="$(git log "$base..HEAD^2" --pretty=tformat: --name-status --diff-filter=AD |
17+
cut --fields 2 | sort | uniq --repeated)"
18+
if [[ -n "$ad" ]]; then
19+
printf 'The following files were both added and deleted in this PR:\n%s\n' "$ad"
20+
exit 1
21+
fi
22+

.github/workflows/tests.yml

Lines changed: 26 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -171,37 +171,38 @@ jobs:
171171
# (sometimes, the install appears to be successful but shared
172172
# libraries cannot be loaded at runtime, so an actual import is a
173173
# better check).
174-
if [[ "${{ runner.os }}" != 'macOS' ]]; then
175-
# PyGObject, pycairo, and cariocffi do not install on OSX 10.12.
176-
python -m pip install --upgrade pycairo 'cairocffi>=0.8' PyGObject &&
177-
python -c 'import gi; gi.require_version("Gtk", "3.0"); from gi.repository import Gtk' &&
178-
echo 'PyGObject is available' ||
179-
echo 'PyGObject is not available'
174+
# PyGObject, pycairo, and cariocffi do not install on OSX 10.12.
175+
python -m pip install --upgrade pycairo 'cairocffi>=0.8' PyGObject &&
176+
python -c 'import gi; gi.require_version("Gtk", "3.0"); from gi.repository import Gtk' &&
177+
echo 'PyGObject is available' ||
178+
echo 'PyGObject is not available'
180179
181-
# There are no functioning wheels available for OSX 10.12 (as of
182-
# Sept 2020) for either pyqt5 (there are only wheels for 10.13+) or
183-
# pyside2 (the latest version (5.13.2) with 10.12 wheels has a
184-
# fatal to us bug, it was fixed in 5.14.0 which has 10.13 wheels)
185-
python -mpip install --upgrade pyqt5${{ matrix.pyqt5-ver }} &&
186-
python -c 'import PyQt5.QtCore' &&
187-
echo 'PyQt5 is available' ||
188-
echo 'PyQt5 is not available'
180+
# There are no functioning wheels available for OSX 10.12 (as of
181+
# Sept 2020) for either pyqt5 (there are only wheels for 10.13+) or
182+
# pyside2 (the latest version (5.13.2) with 10.12 wheels has a
183+
# fatal to us bug, it was fixed in 5.14.0 which has 10.13 wheels)
184+
python -mpip install --upgrade pyqt5${{ matrix.pyqt5-ver }} &&
185+
python -c 'import PyQt5.QtCore' &&
186+
echo 'PyQt5 is available' ||
187+
echo 'PyQt5 is not available'
188+
if [[ "${{ runner.os }}" != 'macOS' ]]; then
189189
python -mpip install --upgrade pyside2 &&
190190
python -c 'import PySide2.QtCore' &&
191191
echo 'PySide2 is available' ||
192192
echo 'PySide2 is not available'
193-
# Qt6 crashes on Github's ubuntu 18.04 runner.
194-
if [[ "${{ matrix.os }}" = ubuntu-20.04 ]]; then
195-
python -mpip install --upgrade pyqt6 &&
196-
python -c 'import PyQt6.QtCore' &&
197-
echo 'PyQt6 is available' ||
198-
echo 'PyQt6 is not available'
199-
python -mpip install --upgrade pyside6 &&
200-
python -c 'import PySide6.QtCore' &&
201-
echo 'PySide6 is available' ||
202-
echo 'PySide6 is not available'
203-
fi
204193
fi
194+
# Qt6 crashes on Github's ubuntu 18.04 runner.
195+
if [[ "${{ matrix.os }}" = ubuntu-20.04 ]]; then
196+
python -mpip install --upgrade pyqt6 &&
197+
python -c 'import PyQt6.QtCore' &&
198+
echo 'PyQt6 is available' ||
199+
echo 'PyQt6 is not available'
200+
python -mpip install --upgrade pyside6 &&
201+
python -c 'import PySide6.QtCore' &&
202+
echo 'PySide6 is available' ||
203+
echo 'PySide6 is not available'
204+
fi
205+
205206
python -mpip install --upgrade \
206207
-f "https://extras.wxpython.org/wxPython4/extras/linux/gtk3/${{ matrix.os }}" \
207208
wxPython &&

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ doc/plot_types
7272
doc/pyplots/tex_demo.png
7373
doc/tutorials
7474
lib/dateutil
75+
examples/*/*.bmp
7576
examples/*/*.eps
7677
examples/*/*.pdf
7778
examples/*/*.png

LICENSE/LICENSE_COURIERTEN

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
The Courier10PitchBT-Bold.pfb file is a Type-1 version of
2+
Courier 10 Pitch BT Bold by Bitstream, obtained from
3+
<https://ctan.org/tex-archive/fonts/courierten>. It is included
4+
here as test data only, but the following license applies.
5+
6+
7+
(c) Copyright 1989-1992, Bitstream Inc., Cambridge, MA.
8+
9+
You are hereby granted permission under all Bitstream propriety rights
10+
to use, copy, modify, sublicense, sell, and redistribute the 4 Bitstream
11+
Charter (r) Type 1 outline fonts and the 4 Courier Type 1 outline fonts
12+
for any purpose and without restriction; provided, that this notice is
13+
left intact on all copies of such fonts and that Bitstream's trademark
14+
is acknowledged as shown below on all unmodified copies of the 4 Charter
15+
Type 1 fonts.
16+
17+
BITSTREAM CHARTER is a registered trademark of Bitstream Inc.
18+

README.rst

Lines changed: 28 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -42,53 +42,52 @@
4242

4343
.. image:: https://matplotlib.org/_static/logo2.svg
4444

45-
Matplotlib is a comprehensive library for creating static, animated, and interactive visualizations in Python.
45+
Matplotlib is a comprehensive library for creating static, animated, and
46+
interactive visualizations in Python.
4647

4748
Check out our `home page <https://matplotlib.org/>`_ for more information.
4849

4950
.. image:: https://matplotlib.org/_static/readme_preview.png
5051

51-
Matplotlib produces publication-quality figures in a variety of hardcopy formats
52-
and interactive environments across platforms. Matplotlib can be used in Python scripts,
53-
the Python and IPython shell, web application servers, and various
54-
graphical user interface toolkits.
52+
Matplotlib produces publication-quality figures in a variety of hardcopy
53+
formats and interactive environments across platforms. Matplotlib can be used
54+
in Python scripts, the Python and IPython shell, web application servers, and
55+
various graphical user interface toolkits.
5556

5657

5758
Install
5859
=======
5960

6061
For installation instructions and requirements, see `INSTALL.rst <INSTALL.rst>`_ or the
61-
`install <https://matplotlib.org/users/installing.html>`_ documentation.
62-
63-
Test
64-
====
65-
66-
After installation, launch the test suite::
67-
68-
python -m pytest
69-
70-
Read the `testing guide <https://matplotlib.org/devel/testing.html>`_ for more information and alternatives.
62+
`install <https://matplotlib.org/stable/users/installing.html>`_ documentation.
7163

7264
Contribute
7365
==========
66+
7467
You've discovered a bug or something else you want to change - excellent!
7568

7669
You've worked out a way to fix it – even better!
7770

7871
You want to tell us about it – best of all!
7972

80-
Start at the `contributing guide <https://matplotlib.org/devdocs/devel/contributing.html>`_!
73+
Start at the `contributing guide
74+
<https://matplotlib.org/devdocs/devel/contributing.html>`_!
8175

8276
Contact
8377
=======
8478

85-
`Discourse <https://discourse.matplotlib.org/>`_ is the discussion forum for general questions and discussions and our recommended starting point.
79+
`Discourse <https://discourse.matplotlib.org/>`_ is the discussion forum for
80+
general questions and discussions and our recommended starting point.
8681

8782
Our active mailing lists (which are mirrored on Discourse) are:
8883

89-
* `Users <https://mail.python.org/mailman/listinfo/matplotlib-users>`_ mailing list: matplotlib-users@python.org
90-
* `Announcement <https://mail.python.org/mailman/listinfo/matplotlib-announce>`_ mailing list: matplotlib-announce@python.org
91-
* `Development <https://mail.python.org/mailman/listinfo/matplotlib-devel>`_ mailing list: matplotlib-devel@python.org
84+
* `Users <https://mail.python.org/mailman/listinfo/matplotlib-users>`_ mailing
85+
list: matplotlib-users@python.org
86+
* `Announcement
87+
<https://mail.python.org/mailman/listinfo/matplotlib-announce>`_ mailing
88+
list: matplotlib-announce@python.org
89+
* `Development <https://mail.python.org/mailman/listinfo/matplotlib-devel>`_
90+
mailing list: matplotlib-devel@python.org
9291

9392
Gitter_ is for coordinating development and asking questions directly related
9493
to contributing to matplotlib.
@@ -99,21 +98,21 @@ Citing Matplotlib
9998
If Matplotlib contributes to a project that leads to publication, please
10099
acknowledge this by citing Matplotlib.
101100

102-
`A ready-made citation entry <https://matplotlib.org/citing.html>`_ is available.
101+
`A ready-made citation entry <https://matplotlib.org/stable/citing.html>`_ is
102+
available.
103103

104104
Research notice
105105
~~~~~~~~~~~~~~~
106106

107107
Please note that this repository is participating in a study into
108108
sustainability of open source projects. Data will be gathered about this
109-
repository for approximately the next 12 months, starting from June
110-
2021.
109+
repository for approximately the next 12 months, starting from June 2021.
111110

112-
Data collected will include number of contributors, number of PRs, time
113-
taken to close/merge these PRs, and issues closed.
111+
Data collected will include number of contributors, number of PRs, time taken
112+
to close/merge these PRs, and issues closed.
114113

115-
For more information, please visit `the informational
116-
page <https://sustainable-open-science-and-software.github.io/>`__ or
117-
download the `participant information
118-
sheet <https://sustainable-open-science-and-software.github.io/assets/PIS_sustainable_software.pdf>`__.
114+
For more information, please visit `the informational page
115+
<https://sustainable-open-science-and-software.github.io/>`__ or download the
116+
`participant information sheet
117+
<https://sustainable-open-science-and-software.github.io/assets/PIS_sustainable_software.pdf>`__.
119118

0 commit comments

Comments
 (0)
0