Skip to content

Commit 0f74076

Browse files
story645QuLogic
andcommitted
reduced redundancy in headings
Co-authored-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
1 parent c06a97e commit 0f74076

File tree

2 files changed

+53
-37
lines changed

2 files changed

+53
-37
lines changed

doc/devel/dependencies.rst

Lines changed: 52 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,17 @@
11
.. _dependencies:
22

3-
============
3+
************
44
Dependencies
5-
============
5+
************
6+
7+
.. _runtime_dependencies:
68

79
Runtime dependencies
810
====================
911

1012

11-
Mandatory dependencies
12-
----------------------
13+
Required
14+
--------
1315

1416
When installing through a package manager like ``pip`` or ``conda``, the
1517
mandatory dependencies are automatically installed. This list is mainly for
@@ -31,8 +33,8 @@ reference.
3133

3234
.. _optional_dependencies:
3335

34-
Optional dependencies
35-
---------------------
36+
Optional
37+
--------
3638

3739
The following packages and tools are not required but extend the capabilities
3840
of Matplotlib.
@@ -176,9 +178,8 @@ remember to clear your artifacts before re-building::
176178

177179
git clean -xfd
178180

179-
180-
Manual Download
181-
^^^^^^^^^^^^^^^
181+
Install from source
182+
^^^^^^^^^^^^^^^^^^^
182183

183184
If the automatic download does not work (for example, on air-gapped systems) it is
184185
preferable to instead use system libraries. However you can manually download the
@@ -202,19 +203,21 @@ In all cases the required version of pip is embedded in the CPython source.
202203

203204
.. _development-dependencies:
204205

205-
Dependencies for building Matplotlib
206-
====================================
206+
Build dependencies
207+
==================
208+
207209

208210
.. _setup-dependencies:
209211

210-
Setup dependencies
211-
------------------
212+
Python
213+
------
212214

213215
By default, ``pip`` will build packages using build isolation, and the following
214216
dependencies will be automatically installed in the isolated environment to build
215217
Matplotlib. However, for development, you may wish to make an editable install, which
216218
will require disabling build isolation, so these build dependencies should be installed
217-
in your target environment manually:
219+
in the target environment manually.
220+
:
218221

219222
- `meson-python <https://meson-python.readthedocs.io/>`_ (>= 0.13.1).
220223
- `ninja <https://ninja-build.org/>`_ (>= 1.8.2). This may be available in your package
@@ -227,14 +230,21 @@ in your target environment manually:
227230
Also a runtime dependency for editable installs.
228231
- `NumPy <https://numpy.org>`_ (>= 1.21). Also a runtime dependency.
229232

233+
.. note::
234+
235+
The Python packages listed here will be installed automatically if you are using
236+
a virtual environment that was created following the instructions in :ref:`dev-environment`.
237+
230238

231239
.. _compile-dependencies:
232240

233-
C++ compiler
241+
C-extensions
234242
------------
235243

236244
Matplotlib requires a C++ compiler that supports C++17, and each platform has a
237245
development environment that must be installed before a compiler can be installed.
246+
You may also need to install headers for various libraries called in the C-extension
247+
source files.
238248

239249
.. tab-set::
240250

@@ -294,16 +304,19 @@ Xcode, VS Code or Linux package manager. Choose **one** compiler from this list:
294304

295305
.. _test-dependencies:
296306

297-
Dependencies for testing Matplotlib
298-
===================================
307+
Test dependencies
308+
=================
309+
299310
This section lists the additional software required for
300311
:ref:`running the tests <testing>`.
301312

302-
Required:
313+
Required
314+
--------
303315

304316
- pytest_ (>= 7.0.0)
305317

306-
Optional:
318+
Optional
319+
--------
307320

308321
In addition to all of the optional dependencies on the main library, for
309322
testing the following will be used if they are installed.
@@ -357,11 +370,12 @@ them will be skipped by pytest.
357370

358371
.. _doc-dependencies:
359372

360-
Dependencies for building Matplotlib's documentation
361-
====================================================
373+
Documentation dependencies
374+
==========================
375+
376+
Python
377+
------
362378

363-
Python packages
364-
---------------
365379
The additional Python packages required to build the
366380
:ref:`documentation <documenting-matplotlib>` are listed in
367381
:file:`doc-requirements.txt` and can be installed using ::
@@ -373,13 +387,22 @@ The content of :file:`doc-requirements.txt` is also shown below:
373387
.. include:: ../../requirements/doc/doc-requirements.txt
374388
:literal:
375389

376-
Additional external dependencies
377-
--------------------------------
378-
Required:
379390

391+
External tools
392+
--------------
393+
394+
The documentation requires LaTeX and Graphviz. These are not
395+
Python packages and must be installed separately. The documentation can be
396+
built without Inkscape and optipng, but the build process will raise various
397+
warnings. If the build process warns that you are missing fonts, make sure
398+
your LaTeX distribution bundles cm-super or install it separately.
399+
400+
Required
401+
^^^^^^^^
402+
403+
* `Graphviz <http://www.graphviz.org/download>`_
380404
* a minimal working LaTeX distribution, e.g., `TeX Live <https://www.tug.org/texlive/>`_ or
381405
`MikTeX <https://miktex.org/>`_
382-
* `Graphviz <http://www.graphviz.org/download>`_
383406
* the following LaTeX packages (if your OS bundles TeX Live, the
384407
"complete" version of the installer, e.g. "texlive-full" or "texlive-all",
385408
will often automatically include these packages):
@@ -388,18 +411,11 @@ Required:
388411
* `dvipng <https://ctan.org/pkg/dvipng>`_
389412
* `underscore <https://ctan.org/pkg/underscore>`_
390413

391-
Optional, but recommended:
414+
Optional
415+
^^^^^^^^
392416

393417
* `Inkscape <https://inkscape.org>`_
394418
* `optipng <http://optipng.sourceforge.net>`_
395419
* the font "Humor Sans" (aka the "XKCD" font), or the free alternative
396420
`Comic Neue <http://comicneue.com/>`_
397421
* the font "Times New Roman"
398-
399-
.. note::
400-
401-
The documentation will not build without LaTeX and Graphviz. These are not
402-
Python packages and must be installed separately. The documentation can be
403-
built without Inkscape and optipng, but the build process will raise various
404-
warnings. If the build process warns that you are missing fonts, make sure
405-
your LaTeX distribution bundles cm-super or install it separately.

doc/users/installing/index.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ precompiled wheel for your OS and Python.
3131

3232
For support of other GUI frameworks, LaTeX rendering, saving
3333
animations and a larger selection of file formats, you can
34-
install :ref:`optional_dependencies`.
34+
install :ref:`optional dependencies <optional_dependencies>`.
3535

3636

3737
Third-party distributions

0 commit comments

Comments
 (0)