Skip to content

Commit 268a942

Browse files
authored
Merge pull request SCons#4560 from mwichmann/apidocs-intro
Tweak the text on API Docs intro page
2 parents dc42f22 + ed81110 commit 268a942

File tree

1 file changed

+32
-15
lines changed

1 file changed

+32
-15
lines changed

doc/sphinx/index.rst

+32-15
Original file line numberDiff line numberDiff line change
@@ -7,21 +7,38 @@ SCons API Documentation
77
=======================
88

99
.. Attention::
10-
This is the **internal** API Documentation for SCons.
11-
The documentation is automatically generated for each release
12-
from the source code using the
13-
`Sphinx <https://www.sphinx-doc.org>`_ documentation generator.
14-
Missing information is due to shortcomings in the docstrings in the code,
15-
which admittedly could use a lot more work (contributions welcomed!).
16-
17-
The target audience is both developers working on SCons itself,
18-
and those writing external Tools, Builders, etc. and other
19-
related functionality, who need to reach beyond the Public API.
20-
Note that what is Public API is not clearly deliniated in the API Docs.
21-
The interfaces available for use in SCons configuration scripts
22-
("SConscript files"), which have a consistency guarantee,
23-
are those documented in the `SCons Reference Manual
24-
<https://scons.org/doc/production/HTML/scons-man.html>`_.
10+
This is the **internal** API Documentation for SCons (aka
11+
"everything"). It is generated automatically from code docstrings using
12+
the `Sphinx <https://www.sphinx-doc.org>`_ documentation generator.
13+
14+
Any missing/incomplete information is due to shortcomings in the
15+
docstrings in the code. To not be too flippant about it, filling
16+
in all the docstrings has not always been a priority across the
17+
two-plus decades SCons has been in existence (contributions on this
18+
front are welcomed). Additionally, for SCons classes which inherit
19+
from Python standard library classes (such as ``UserList``,
20+
``UserDict``, ``UserString``), the generated pages will show methods
21+
that are inherited, sometimes with no information at all, sometimes
22+
with a signature/description that seems mangled: Python upstream has
23+
similar limitations as to the quality of dosctrings vs the current
24+
standards Sphinx expects. Inherited interfaces from outside SCons
25+
code can be identified by the lack of a ``[source]`` button to the
26+
right of the method signature.
27+
28+
If you are looking for the Public API - the interfaces that have
29+
long-term consistency guarantees, which you can reliably use when
30+
writing a build system for a project - see the `SCons Reference Manual
31+
<https://scons.org/doc/production/HTML/scons-man.html>`_. Note that
32+
what is Public API and what is not is not clearly delineated in these
33+
API Docs.
34+
35+
The target audience is both developers contributing to SCons itself,
36+
and those writing external Tools, Builders, and other related
37+
functionality for their project, who may need to reach beyond the
38+
Public API to accomplish their tasks. Reaching into internals is fine,
39+
but comes with the usual risks of "things here could change, it's up
40+
to you to keep your code working".
41+
2542

2643
.. toctree::
2744
:maxdepth: 2

0 commit comments

Comments
 (0)