Skip to content

Commit ab96b8f

Browse files
authored
Merge pull request matplotlib#28896 from story645/dev-setup
doc: specify non-python dependencies in dev install docs
2 parents 13380e1 + 0fbebc8 commit ab96b8f

File tree

2 files changed

+49
-40
lines changed

2 files changed

+49
-40
lines changed

doc/devel/development_setup.rst

+9-8
Original file line numberDiff line numberDiff line change
@@ -155,19 +155,20 @@ The simplest way to do this is to use either Python's virtual environment
155155

156156
Remember to activate the environment whenever you start working on Matplotlib.
157157

158-
Install Dependencies
159-
====================
158+
Install external dependencies
159+
=============================
160160

161-
Most Python dependencies will be installed when :ref:`setting up the environment <dev-environment>`
162-
but non-Python dependencies like C++ compilers, LaTeX, and other system applications
163-
must be installed separately.
161+
Python dependencies were installed as part of :ref:`setting up the environment <dev-environment>`.
162+
Additionally, the following non-Python dependencies must also be installed:
164163

165-
.. toctree::
166-
:maxdepth: 2
164+
.. rst-class:: checklist
167165

168-
../install/dependencies
166+
* :ref:`c++ compiler<compile-dependencies>`
167+
* :ref:`documentation build dependencies <doc-dependencies-external>`
169168

170169

170+
For a full list of dependencies, see :ref:`dependencies`.
171+
171172
.. _development-install:
172173

173174
Install Matplotlib in editable mode

doc/install/dependencies.rst

+40-32
Original file line numberDiff line numberDiff line change
@@ -250,37 +250,38 @@ development environment that must be installed before a compiler can be installe
250250
You may also need to install headers for various libraries used in the compiled extension
251251
source files.
252252

253+
.. _dev-compiler:
253254
.. tab-set::
254255

255-
.. tab-item:: Linux
256+
.. tab-item:: Linux
256257

257-
On some Linux systems, you can install a meta-build package. For example,
258-
on Ubuntu ``apt install build-essential``
258+
On some Linux systems, you can install a meta-build package. For example,
259+
on Ubuntu ``apt install build-essential``
259260

260-
Otherwise, use the system distribution's package manager to install
261-
:ref:`gcc <compiler-table>`.
261+
Otherwise, use the system distribution's package manager to install
262+
:ref:`gcc <compiler-table>`.
262263

263-
.. tab-item:: macOS
264+
.. tab-item:: macOS
264265

265-
Install `Xcode <https://developer.apple.com/xcode/>`_ for Apple platform development.
266+
Install `Xcode <https://developer.apple.com/xcode/>`_ for Apple platform development.
266267

267-
.. tab-item:: Windows
268+
.. tab-item:: Windows
268269

269-
Install `Visual Studio Build Tools <https://visualstudio.microsoft.com/downloads/?q=build+tools>`_
270+
Install `Visual Studio Build Tools <https://visualstudio.microsoft.com/downloads/?q=build+tools>`_
270271

271-
Make sure "Desktop development with C++" is selected, and that the latest MSVC,
272-
"C++ CMake tools for Windows," and a Windows SDK compatible with your version
273-
of Windows are selected and installed. They should be selected by default under
274-
the "Optional" subheading, but are required to build Matplotlib from source.
272+
Make sure "Desktop development with C++" is selected, and that the latest MSVC,
273+
"C++ CMake tools for Windows," and a Windows SDK compatible with your version
274+
of Windows are selected and installed. They should be selected by default under
275+
the "Optional" subheading, but are required to build Matplotlib from source.
275276

276-
Alternatively, you can install a Linux-like environment such as `CygWin <https://www.cygwin.com/>`_
277-
or `Windows Subsystem for Linux <https://learn.microsoft.com/en-us/windows/wsl/install>`_.
278-
If using `MinGW-64 <https://www.mingw-w64.org/>`_, we require **v6** of the
279-
```Mingw-w64-x86_64-headers``.
277+
Alternatively, you can install a Linux-like environment such as `CygWin <https://www.cygwin.com/>`_
278+
or `Windows Subsystem for Linux <https://learn.microsoft.com/en-us/windows/wsl/install>`_.
279+
If using `MinGW-64 <https://www.mingw-w64.org/>`_, we require **v6** of the
280+
```Mingw-w64-x86_64-headers``.
280281

281282

282-
We highly recommend that you install a compiler using your platform tool, i.e.,
283-
Xcode, VS Code or Linux package manager. Choose **one** compiler from this list:
283+
We highly recommend that you install a compiler using your platform tool, i.e., Xcode,
284+
VS Code or Linux package manager. Choose **one** compiler from this list:
284285

285286
.. _compiler-table:
286287

@@ -307,7 +308,6 @@ Xcode, VS Code or Linux package manager. Choose **one** compiler from this list:
307308
- `Visual Studio 2019 C++ <https://docs.microsoft.com/en-us/cpp/overview/visual-cpp-language-conformance?view=msvc-160>`_
308309

309310

310-
311311
.. _test-dependencies:
312312

313313
Test dependencies
@@ -327,8 +327,11 @@ Optional
327327
In addition to all of the optional dependencies on the main library, for
328328
testing the following will be used if they are installed.
329329

330-
- Ghostscript_ (>= 9.0, to render PDF files)
331-
- Inkscape_ (to render SVG files)
330+
Python
331+
^^^^^^
332+
These packages are installed when :ref:`creating a virtual environment <dev-environment>`,
333+
otherwise they must be installed manually:
334+
332335
- nbformat_ and nbconvert_ used to test the notebook backend
333336
- pandas_ used to test compatibility with Pandas
334337
- pikepdf_ used in some tests for the pgf and pdf backends
@@ -340,9 +343,14 @@ testing the following will be used if they are installed.
340343
- pytest-xvfb_ to run tests without windows popping up (Linux)
341344
- pytz_ used to test pytz int
342345
- sphinx_ used to test our sphinx extensions
346+
- xarray_ used to test compatibility with xarray
347+
348+
External tools
349+
^^^^^^^^^^^^^^
350+
- Ghostscript_ (>= 9.0, to render PDF files)
351+
- Inkscape_ (to render SVG files)
343352
- `WenQuanYi Zen Hei`_ and `Noto Sans CJK`_ fonts for testing font fallback and
344353
non-Western fonts
345-
- xarray_ used to test compatibility with xarray
346354

347355
If any of these dependencies are not discovered, then the tests that rely on
348356
them will be skipped by pytest.
@@ -355,6 +363,7 @@ them will be skipped by pytest.
355363

356364
.. _Ghostscript: https://ghostscript.com/
357365
.. _Inkscape: https://inkscape.org
366+
.. _WenQuanYi Zen Hei: http://wenq.org/en/
358367
.. _flake8: https://pypi.org/project/flake8/
359368
.. _nbconvert: https://pypi.org/project/nbconvert/
360369
.. _nbformat: https://pypi.org/project/nbformat/
@@ -369,7 +378,6 @@ them will be skipped by pytest.
369378
.. _pytest-xvfb: https://pypi.org/project/pytest-xvfb/
370379
.. _pytest: http://doc.pytest.org/en/latest/
371380
.. _sphinx: https://pypi.org/project/Sphinx/
372-
.. _WenQuanYi Zen Hei: http://wenq.org/en/
373381
.. _Noto Sans CJK: https://fonts.google.com/noto/use
374382
.. _xarray: https://pypi.org/project/xarray/
375383

@@ -394,30 +402,30 @@ The content of :file:`doc-requirements.txt` is also shown below:
394402
:literal:
395403

396404

405+
.. _doc-dependencies-external:
406+
397407
External tools
398408
--------------
399409

400-
The documentation requires LaTeX and Graphviz. These are not
401-
Python packages and must be installed separately.
402-
403410
Required
404411
^^^^^^^^
412+
The documentation requires LaTeX and Graphviz. These are not
413+
Python packages and must be installed separately.
405414

406415
* `Graphviz <http://www.graphviz.org/download>`_
407416
* a minimal working LaTeX distribution, e.g. `TeX Live <https://www.tug.org/texlive/>`_ or
408417
`MikTeX <https://miktex.org/>`_
409418

410419
The following LaTeX packages:
411420

412-
* `dvipng <https://ctan.org/pkg/dvipng>`_
413-
* `underscore <https://ctan.org/pkg/underscore>`_
414-
* `cm-super <https://ctan.org/pkg/cm-super>`_
415-
* ``collection-fontsrecommended``
421+
* `dvipng <https://ctan.org/pkg/dvipng>`_
422+
* `underscore <https://ctan.org/pkg/underscore>`_
423+
* `cm-super <https://ctan.org/pkg/cm-super>`_
424+
* ``collection-fontsrecommended``
416425

417426
The complete version of many LaTex distribution installers, e.g.
418427
"texlive-full" or "texlive-all", will often automatically include these packages.
419428

420-
421429
Optional
422430
^^^^^^^^
423431

0 commit comments

Comments
 (0)