Commit Graph

49 Commits

Author SHA1 Message Date
Gerard Marull-Paretas
b4f968cf9d doc: add a toctree with reference material
Add a new toctree with reference material, including:

- API docs (Doxygen)
- Kconfig options
- Devicetree bindings

Note that the toctree is rendered manually due to the limitations Sphinx
has when it comes to including relative URLs. Hardcoding absolute URLs
in toctrees is possible, but that means we'd need to update the toctree
on every release (to point to /version/ URL), and downstream users of
the documentation would have to manually patch the toctree with their
own URL. In order to make local builds work, version prefix is only
added if publish tag is provided.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-11-02 13:24:40 +01:00
Gerard Marull-Paretas
bed8f352e4 ci: doc: upgrade to Doxygen 1.9.1
Upgrade to Doxygen version 1.9.1. Package is downloaded directly from
the Doxygen official site, since it is not yet part of the latest Ubuntu
LTS. Note that libclang1-9 and libclang-cpp9 are runtime dependencies
required by Doxygen.

NOTE: Documentation can still be built with older Doxygen versions (e.g.
1.8.17 shipped with latest Ubuntu LTS), however, the template used in
upcoming patches claims to work better with Doxygen 1.9.1 or 1.9.2.
Using 1.9.1 as theme v1.6.0 has some issues on mobile view when using
Doxygen 1.9.2, see
https://github.com/jothepro/doxygen-awesome-css/issues/47.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-10-07 11:54:23 -04:00
Martí Bolívar
f442266d09 doc: west release 0.11.1 follow-ups
Use 0.11.1 to build the docs. The docstrings are the same as 0.11.1a1,
so it doesn't make a difference in the output, but let's keep things
clean now that the final release is up.

Fix typos in the release notes.

Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
2021-08-20 06:23:49 -04:00
Torsten Rasmussen
e78cb747bd ci: Bump to use CMake 3.20.5
With CMake minimum required as 3.20.0 we update CI to use docker image
v0.18.2, which contains CMake 3.20.5.

For doc builds we fetch the same CMake v3.20.5 but using pip as the doc
build doesn't use the docker image.

The main reason for increasing CMake version is better toolchain
support.
The decision to bump the CMake version was taken by the Toolchain WG.

Better toolchain support is added in the following CMake versions:
- armclang, CMake 3.15
- Intel oneAPI, CMake 3.20
- IAR, CMake 3.15 and 3.20

Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
2021-08-16 11:03:32 -05:00
Martí Bolívar
212da336f0 doc-build.yml: build west 0.11.1a1
To get confirmation this will work before I cut the release. That
pre-release is already available on PyPI.

Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
2021-08-09 13:29:57 -04:00
Gerard Marull-Paretas
f650710ba7 ci: doc: adjust build workflow name
Adjust the name to "Documentation Build".

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-07-30 08:21:02 -04:00
Gerard Marull-Paretas
0e0da34f41 ci: doc: set doc tag when building
Set the correct dog tag based on the Github event name.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-07-30 08:21:02 -04:00
Gerard Marull-Paretas
95156ce0be ci: doc: do not succeed if artifact upload fails
Artifacts will be required for the publish workflow, so do not let the
build workflow succeed without them being uploaded correctly.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-07-30 08:21:02 -04:00
Gerard Marull-Paretas
cffc9319ac ci: doc: use an env var to store west version
Storing west version in a single place avoids keeping duplicates in each
job. Also added a note on why pinning version is important: west
docstrings are extracted from the installed version.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-07-30 08:21:02 -04:00
Gerard Marull-Paretas
8b03337fe1 ci: doc: run doc build on schedule and releases
The documentation build workflow is re-used for the periodic build and
releases.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-07-30 08:21:02 -04:00
Gerard Marull-Paretas
24446ac5a9 ci: doc: remove unnecessary west path update step
The step is not necessary to build the docs correctly, so remove it.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-07-30 08:21:02 -04:00
Gerard Marull-Paretas
77a39a4b51 ci: doc: use the hash of requirements file as cache key
The pip cache should be discarded if any of the required dependencies
changes, so use the hash of the requirements file as a key source.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-07-30 08:21:02 -04:00
Gerard Marull-Paretas
3fbb8ba039 ci: doc: do not let west init fail
Modules are required to generate, for example, full Kconfig docs.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-07-30 08:21:02 -04:00
Gerard Marull-Paretas
039888edbf ci: doc: use xz compression for html archive
xz compression reduces the html archive sice from ~350MB to ~90MB (at
the cost of more compression time). Compression has been moved to a
separate step.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-07-30 08:21:02 -04:00
Gerard Marull-Paretas
5fa56445b3 ci: doc: add support for PDF build
Add support for building the PDF version of the documentation.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-07-30 08:21:02 -04:00
Gerard Marull-Paretas
4127138475 doc: enable graphviz extension
Enable the built-in Sphinx Graphviz extension to allow creating Graphviz
diagrams natively on the source files. Some style defaults have been
enabled to make sure diagrams are consistent and have good quality in
both light and dark modes.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-07-20 19:54:52 -04:00
Gerard Marull-Paretas
0d0b0ce10e doc: make: adjust Makefile
Adjust Makefile according to latest CMake changes.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-07-14 15:47:11 +02:00
Marc Herbert
e21ffe6baa requirements-doc: add PyYAML which removes dependency on -base
This means a light requirements-doc.txt is enough for doc writers. See
previous discussions in PR #31199 and PR #31239

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2021-06-16 10:39:08 +02:00
Gerard Marull-Paretas
a140a249b3 doc: only enable -W option on CI
The usage of -W may lead to the loss of the Sphinx build environment
even for small typos. Remove this option from the defaults but still
enable it on CI, where the fail-fast behavior given by -W is desired.

Fixes #36033

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-06-08 09:58:32 -05:00
Gerard Marull-Paretas
8743ed9509 ci: doc: force quiet mode
Force quiet mode in CI, since interactive output adds no value there.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-05-25 19:38:11 +02:00
Gerard Marull-Paretas
442f631af1 ci: doc: remove unused step
`check-warns` step is no longer used since the introduction of
`warnings_filter` extension.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-05-18 15:27:46 -05:00
Martí Bolívar
faf68fb213 doc: west: add 0.11.0 docs
This is mainly a feature release which includes a few ways to speed up
'west update', along with a couple of fixes and other changes.

Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
2021-05-04 15:29:36 -05:00
Gerard Marull-Paretas
d7754cf2c9 ci: upgrade core python dependencies
Upgrade core Python dependencies (setuptools, wheel, pip) at a system
level. Some old versions of pip do not resolve the dependency chain
correctly, this is why it has been added to the list.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-04-08 15:21:40 +02:00
Gerard Marull-Paretas
7a6efbd9ed ci: remove old paths in doc-build workflow
Documentation build still contained references to the old top Makefile
and old known-issues folder.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-04-08 09:55:16 +02:00
Gerard Marull-Paretas
8cf054a1ab ci: trigger doc build if requirements change
If Python requirements for docs change build should also be triggered.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-04-07 12:12:07 -04:00
Martí Bolívar
8697935882 .github: doc-build: run on scripts/dts change
Some of the generated documentation depends on the devicetree scripts.
E.g. the bindings index uses edtlib.

We don't have a well-defined interface boundary here for managing
dependencies, so let's just add the entire dts directory to the
'paths' glob list in doc-build.yml. This will ensure we don't
accidentally change some DT implementation detail in a way that breaks
the docs.

Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
2021-03-30 20:41:28 -04:00
Gerard Marull-Paretas
32b71cbcdc doc: move Makefile to doc folder
Move the top-level Makefile to the documentation folder as it is only
used for documentation.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-03-29 10:59:28 -04:00
Martí Bolívar
2ea77dd019 ci: doc-build: bump west version
This should produce no changes in the docs since there are no API
changes in this point release, but let's just keep the build up to
date with the version being documented for cleanliness.

Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
2021-03-17 12:50:33 -05:00
Martí Bolívar
ffadff947c .github: doc-build: use west 0.10.0a1
Testing for the release itself.

Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
2021-03-11 11:08:25 +01:00
Martí Bolívar
de73db9dbc doc-build: build with west 0.9
This is required to get the relevant API docstrings.

Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
2021-01-28 08:23:52 -05:00
Marc Herbert
fcb8552b4a doc-build.yml: pip3 install wheel, fix 'invalid command bdist_wheel'
As recommended by @mbolivar-nordic and... stackoverflow.

While I could not reproduce this locally, this should get rid of many
non-fatal pip errors in CI all looking like this one:

Building wheels for collected packages: PyYAML, progress, psutil, ...

 Running setup.py bdist_wheel for PyYAML: started
 Running setup.py bdist_wheel for PyYAML: finished with status 'error'

 Complete output from command /usr/bin/python3 -u -c "import setuptools,
  tokenize;__file__='/tmp/pip-build-b3sj5a6m/PyYAML/setup.py';
  f=getattr(tokenize, 'open',open)(__file__);code=f.read().replace(
  '\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))"
  bdist_wheel -d /tmp/tmpvn0bt6xfpip-wheel- --python-tag cp36:

  Failed building wheel for PyYAML
  usage: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
     or: -c --help [cmd1 cmd2 ...]
     or: -c --help-commands
     or: -c cmd --help

  error: invalid command 'bdist_wheel'

  ----------------------------------------
  Running setup.py clean for PyYAML

Etc.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2021-01-13 08:01:20 -05:00
Marc Herbert
2fd1d3ca07 doc-build.yml: add top-level Makefile
Dunno why the top-level Makefile is doc/ specific but it is.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2021-01-11 19:27:06 -05:00
Anas Nashif
6be5e02923 actions: use descriptive job names
Use descriptive and unique job names, otherwise we end up with those
showing up in different location with no way to know which is which.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2020-12-15 14:47:26 -05:00
Øyvind Rønningstad
2fc50c6e9d doc-build.yml: Add itself to path filter
So doc build is run when doc-build.yml is changed.

Signed-off-by: Øyvind Rønningstad <oyvind.ronningstad@nordicsemi.no>
2020-12-10 15:38:46 -05:00
Øyvind Rønningstad
5362a88338 doc-build.yml: Add west.yml to path filter
Since modules can affect the doc build.

Signed-off-by: Øyvind Rønningstad <oyvind.ronningstad@nordicsemi.no>
2020-12-10 15:38:46 -05:00
Fabio Utzig
577d588b3a workflows: enable documentation build for Kconfig*
Trigger documentation builds when Kconfig files are changed.

Signed-off-by: Fabio Utzig <fabio.utzig@nordicsemi.no>
2020-11-07 08:29:57 -06:00
Kumar Gala
fabf40398f ci: github: Update for deprecation of add-path
Github has deprecated add-path, so update the workflows that use it to
the new method of setting the PATH.

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2020-11-04 14:45:08 -06:00
Fabio Utzig
0df18a9163 doc: enable documentation build for known-issues
Changing .known-issues/doc should always trigger a documentation build
so add it to the filters.

Signed-off-by: Fabio Utzig <fabio.utzig@nordicsemi.no>
2020-11-03 15:27:37 +01:00
Kumar Gala
f80f31eb0d ci: github: reduce when we do doc builds
Rather than doing a doc build on every PR, limit it to PRs that either
touch a file in doc/, *.rst and what's listed as DOXY_SOURCES in
doc/CMakeLists.txt.

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2020-10-21 17:40:52 +02:00
Anas Nashif
dac6937cda actions: install needed modules for docs
add scripts/requirements-base.txt to install needed modules for docs to
build.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2020-10-05 13:04:22 -04:00
Øyvind Rønningstad
d6c30eead0 nrfjprog.py: Fail if hex file has UICR data and no --erase
Inspect the hex file with intelhex, and fail if the hex file has any
contents in the UICR area(s).
family == 'NRF52' still always does --sectoranduicrerase, but this
option is not available on other families.
Add --force command line option to proceed with flashing instead of
failing.

Signed-off-by: Øyvind Rønningstad <oyvind.ronningstad@nordicsemi.no>
2020-09-28 14:09:14 -05:00
Fabio Utzig
551f1789a5 doc: update versions of build tools
Update documentation build tooling:

- Sphinx>=3.2.0
- Breathe>=4.20.0
- docutil>=0.16.0

Signed-off-by: Fabio Utzig <fabio.utzig@nordicsemi.no>
2020-08-31 09:57:33 -04:00
Henrik Brix Andersen
3c2984d4a9 scripts: west: add CANopen flash runner
Add west flash runner for program download via CANopen.

Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
2020-05-08 10:53:42 +02:00
Anas Nashif
295572a5b1 ci: do not use latest breathe release for docs
breathe v4.15.0 was just released and fixes some compatibility issues
with latest sphinx, the combo works, however with many warnings that we
still need to either fix or whitelist. This is temporary until we are
able to use those new versions.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2020-04-07 18:51:13 -04:00
Anas Nashif
6cfa11c013 doc: lock sphinx version to a compatible one
Version 3.0.0 release recently break doc build, lock version of sphinx
to something compatible while we upgrade dependencies...

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2020-04-05 19:10:43 -04:00
Alexey Brodkin
83b346edef runners: opeocd: Allow loading Elf-files
In some cases especially for on-going development & debugging of real
application it might be useful to load and run not from flash but
from RAM in that case there's one catch: we cannot reset the board
after loading memory with our app.

That's because:
 a) RAM we use might be either cleared on reset or might enter
    unpredictable state with portion of previously loaded data
    being corrupted.
 b) Reset vector most probably still point to ROM/flash and so
    our current application won't be executed on reset.

So instead of "run reset" command of OpenOCD we'll use
"resume 0x12345678". Where 0x12345678 is our application's
entry-point (which BTW may very well not match beginning of
the .text section or link base).

Now to extract the entry-point we need our application's zephyr.elf
and since we already have a requirement for Elf we may use it for
loading because OpenOCD does it perfectly fine moreover automatically
detecting loaded image type (binary, hex, Elf etc).

And to use that nice feature just add "--use-elf" to west's
command-line for boards that use "openocd" runner. Like that:
----------->8--------------
west flash --use-elf
----------->8--------------

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
2020-02-13 10:45:44 +02:00
Kumar Gala
ae380c55c8 github: Update doc build action
Make a few cleanups to the doc build action:

1. Only do action for pull requests - action is meant to test PRs
2. Remove west update / cache of modules as we dont need them for docs

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2020-02-13 02:15:35 -06:00
Kumar Gala
b1de748948 github: Rename GitHub workflow action
GitHub checks need to be uniquely named, and 'Documentation' conflicts
with the ci-tool name.  Rename this while we are running both so the
names don't conflict.

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2020-02-08 09:05:50 -06:00
Kumar Gala
63fddba8d1 ci: github: doc: Add a GH workflow to test build the docs
This github workflow will build the html docs on a pull request or push.
This is similar to the current ci-tools 'Documentation' check.  One
difference is this version produces a GH artifact of the html docs
instead of posting it to S3.  The artifact is a tarball that is than
zip'd (not gzip).

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2020-02-07 18:10:15 -06:00