Commit Graph

23 Commits

Author SHA1 Message Date
Gerard Marull-Paretas
569b794d4b doc: extensions: vcs_link: only run for HTML builder
The vcs_link should only run for the HTML builder, since it is the only
target of this extension. The other builders do not have the templates
instance, making them fail.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-10-26 18:01:32 -04:00
Gerard Marull-Paretas
1e79096d9a doc: extensions: add vcs_link
Add vcs_link extension. The extension can be used to obtain VCS (Git)
URLs for given Sphinx documents.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-10-26 17:00:56 +02:00
Martí Bolívar
8eeac3e259 doc: link-roles: clean up setup() method
The setup() method is trying to find the zephyr repository by name,
but it's not passing allow_paths=False to the west method it uses to
search.

That may lead to unpredictable results depending on what the current
working directory is in the calling environment.

For robustness, disallow paths and make sure we are only searching for
the zephyr project by name.

Add some more comments to explain what is going on and clean up the
empty string handling while we're here.

Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
2021-08-09 13:29:57 -04:00
Gerard Marull-Paretas
6527bda033 doc: extensions: delete unused local_util
The local_util utilities are no longer used, so remove them.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-07-19 20:06:00 -04:00
Gerard Marull-Paretas
280b5f3256 doc: extensions: link-roles: remove usage of local_util
local_util module is no longer used by other extensions, so remove its
usage.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-07-19 20:06:00 -04:00
Gerard Marull-Paretas
5e82764cb3 doc: extensions: doxyrunner: fix HTML output handling
The extension was not evaluating the GENERATE_HTML option correctly. The
get_doxygen_option returns a `List[str]`, not a `str`.

This effectively means that the Zephyr apidoc has not been updated for a
while as the extension was not moving the output to the final
destination folder.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-07-15 06:57:02 -04:00
Gerard Marull-Paretas
4fcec51c2a doc: extensions: doxyrunner: handle quiet mode
QUIET flag is now overriden according to the `doxyrunner_silent`
configuration value.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-07-13 17:36:15 +02:00
Gerard Marull-Paretas
85a0e1325c doc: extensions: doxyrunner: process Doxygen output
This change will process Doxygen output and will map it to the Sphinx
logger. Things like errors and warnings will be mapped to actual Sphinx
logger error and warnings. In practice this means that when Doxygen
throws a warning and Sphinx is run in "-W" (warning as error) mode, the
build will fail. It also has some other advantages such as the
possibility of filtering issues using the warnings_filter extension.

It is also expected that CI errors not being displayed issue is fixed
with this change.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-07-13 17:36:15 +02:00
Gerard Marull-Paretas
a9b1c42f40 doc: extensions: remove eager_only
The eager_only is currently breaking the usage of the `.. only``
directive, so remove it. Documentation seems to build fine without it,
so it has been removed for now.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-06-30 08:29:01 -04:00
Gerard Marull-Paretas
21d01ad7d1 doc: extensions: add kconfig directive and role support
Add a new extension to support the :kconfig: role and .. kconfig::
directive. This removes the need of using :option:.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-06-29 10:26:28 -04:00
Gerard Marull-Paretas
da62a3b6c0 doc: extensions: doxyrunner: store cache in Sphinx environment
Sphinx provides a way to persist data across builds: the
BuildEnvironment. The build environment is automatically managed by
Sphinx, so there is no need to take care of loading/dumping cache files.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-06-17 10:28:59 +02:00
Gerard Marull-Paretas
b0ca352dfe doc: extensions: doxyrunner: use file hashes for cache
Use file hashes instead of paths and modification times. This method is
fits better on systems using cache mechanisms. Note that hash is
computed using content obtained in UTF-8 text mode for portability
reasons.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-06-17 10:28:59 +02:00
Martí Bolívar
9464798068 doc: external_content: fix for Unix
Path.rename() uses os.rename() internally. Per the Python docs:

     The operation may fail on some Unix flavors if src and dst are on
     different filesystems.

Since 'src_adjusted' is in a temporary directory, on my flavor of
Unix, that's in /tmp, which is indeed on a different filesystem than
'dst', a destination in the doc build directory on my root filesystem.

This is causing the following error when I build the docs:

Handler <function sync_contents at 0x7f9b8fca9c10> for event
'builder-inited' threw an exception (exception: [Errno 18] Invalid
cross-device link: '/tmp/tmpfscfo20o/index.rst' ->
'/home/mbolivar/zp/zephyr/doc/_build/src/reference/drivers/index.rst')

Fix this by using shutil.move() instead of Path.rename(). The shutil
function handles cross-filesystem moves correctly. It did not take a
path-like object for both its src and dst arguments until Python 3.9,
though, so we need to convert to strings for portability on earlier
but still supported versions.

Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
2021-05-28 07:00:52 -05:00
Gerard Marull-Paretas
de3c086429 doc: extensions: external_content: only ignore absolute paths
When including other rst files (via .. include::) the existence of the
included file may depend on when the _adjust routine is called, so only
ignore absolute paths.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-05-25 16:14:31 -05:00
Gerard Marull-Paretas
f341466681 doc: extensions: doxyrunner: use string paths on pickle file
PosixPath or WindowsPaths are not portable, so using them on pickle
files, which can potentially be re-used is not safe. Changed to use the
posix path as a string.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-05-25 16:14:18 -05:00
Gerard Marull-Paretas
cc2f29a656 doc: extensions: initial version of external_content
external_content extension allows to gather content from arbitrary
locations.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-05-25 19:38:11 +02:00
Martí Bolívar
095c9a3e92 doc: link-roles: fix :zephyr_file: default revision
This needs to use 'main' for its default now.

Without this patch, GitHub redirects to main, but displays a banner
that says 'Branch not found, redirected to default branch' at the top.

Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
2021-05-21 18:10:13 -04:00
Gerard Marull-Paretas
07a5cd5322 doc: extensions: doxyrunner: make html output optional
Make HTML output optional. The extension checks the `GENERATE_HTML`
option to check if active.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-05-20 19:57:20 +02:00
Gerard Marull-Paretas
bff24fa732 doc: extensions: add doxyrunner
zephyr.doxyrunner Sphinx extension is meant to replace multiple Python
and CMake scripts into a single Sphinx extension.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-05-06 13:19:19 +02:00
Gerard Marull-Paretas
091824369f doc: remove dts lexer
This lexer is no longer used as Pygments already supports devicetree
syntax.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-05-04 22:42:15 -04:00
Gerard Marull-Paretas
74783c1976 doc: extensions: add warnings_filter
warnings_filter is an extension that allows to filter out Sphinx
warnings.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-04-07 14:15:29 +02:00
Gerard Marull-Paretas
6bf3363089 doc: add comment to empty Python files
Explicitely mention that these files are intentionally empty. These
changes should make compliance checks pass.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-03-31 10:39:48 +02:00
Gerard Marull-Paretas
38b1f7a15e doc: move extensions to _extensions
Move all Sphinx related content to folders prefixed with an underscore.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-03-31 10:39:48 +02:00