Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The very, very big step forward to compatibility with Zephyr v4.0.0 #273

Merged
merged 78 commits into from
Nov 19, 2024
Merged

Conversation

rexut
Copy link
Member

@rexut rexut commented Nov 15, 2024

Many many changes were needed to rebuild all the Bridle tests, samples and documentation. Also the new HWMv2 has required many adaptations and syncs to upstream changes and new strategies (e.g.. the new sysbuild pattern). From now on Bridle needs Python 3.12 and the Zephyr SDK 0.17.0 for proper operations.

Sets the patch level to 99 for the 4.0 development cycle.

Signed-off-by: Stephan Linz <linz@li-pro.net>
- point 'latest' to upcoming '4.0' (3.7.99)
- point '3.6' to latest '3.6.1'

Signed-off-by: Stephan Linz <linz@li-pro.net>
As we are preparing support for Zephyr main line this bumps the
Zephyr version following the main line branch, the bleeding edge,
to be able to see failures as soon as possible, fix bugs and add
security updates.

Signed-off-by: Stephan Linz <linz@li-pro.net>
Create the new RST file release notes and add to TOC.

Signed-off-by: Stephan Linz <linz@li-pro.net>
- base: west to >=0.14.0,<1.4.0

- build: ecdsa to >=0.19.0
- build: pyelftools to >=0.31
- build: pylint to >=3.3
- build: regex to >=2024.9
- build: nrf-regtool >= 8.0 (interim solution)

- documentation: docutils to >=0.21
- documentation: doxmlparser to ~1.12
- documentation: sphinx to ~8.1
- documentation: sphinx-tsn-theme to ~2024.10
- documentation: sphinx-autobuild to ~2024.10
- documentation: add sphobjinv to ~2.3

- extras: pykitinfo to >=1.1
- extras: pymcuprog to >=3.17
- extras: pyserial to >=3.5
- extras: pytest to >=8.3

Note: Bridle itself manages all dependencies to required Python
packages for building the whole documentation for itself. There
is no need to use the Zephyr upstream requirements!

Signed-off-by: Stephan Linz <linz@li-pro.net>
- python3:    3.12.3
- git:        2.43.0
- west:       0.14.0 .. 1.3.0
- cmake:      3.28.3 .. 3.28.6
- ninja:      1.8.2  .. 1.11.1
- dtc:        1.4.6  .. 1.7.0
- openocd:    0.11   .. 0.12.0
- dfu-util:   0.11
- zephyr-sdk: 0.17.0 (as needed for Zephyr v4)

Signed-off-by: Stephan Linz <linz@li-pro.net>
Use CMake variable CMAKE_CURRENT_BINARY_DIR instead of
the simple CMAKE_BINARY_DIR.

Signed-off-by: Stephan Linz <linz@li-pro.net>
Since zephyrproject-rtos/zephyr@2e99de8 and
zephyrproject-rtos/zephyr@fd58374 the Zephyr documentation set
expects the special environemnt variable `OUTPUT_DIR` for the
type specific output folder for rendering documentation either
as HTML or LaTeX/PDF (each in different folders).

So Bridle have to do the same now.

Signed-off-by: Stephan Linz <linz@li-pro.net>
It seems that the Sphinx extension `sphinx-csv-filter` no longer
has problems with the parallel reading of RST files. Therefore,
the parallel operation of Sphinx will be enabled again for the
Bridle documentation set.

Signed-off-by: Stephan Linz <linz@li-pro.net>
- package major version as *_MAJOR
- package minor version as *_MINOR
- package patch version as *_PATCH

Signed-off-by: Stephan Linz <linz@li-pro.net>
For custom commands, any real dependencies that exist should be
listed to make the Ninja build system more sensitive to changes
to the original source files. If conversion or filter scripts
from the Bridle source code are required, then these scripts
are now also part of the dependency list.

Signed-off-by: Stephan Linz <linz@li-pro.net>
Since the Python package requirements list has been revised,
the minimum Sphinx version for all documentation sets should
also be increased.

Signed-off-by: Stephan Linz <linz@li-pro.net>
Set copyright date for Bridle documentation set to 2019-2024. Set copyright
date for Zephyr, Devicetree and Kconfig documentation set to 2015-2024.

Signed-off-by: Stephan Linz <linz@li-pro.net>
With the renewed version of our own Sphinx HTML theme, the underlying
RTD theme is automatically used in the new version ~3.0. This requires
a small adaptation and refinement of our own CSS definitions for the
different documentation sets.

Signed-off-by: Stephan Linz <linz@li-pro.net>
This tweaks the special case of double borders when RST content from a
parsed-literal block lives inside a highlight container, for example:

RST:

```
.. container:: highlight highlight-bash notranslate

   .. parsed-literal::

      python\ |python_min_minor| --version
```

Signed-off-by: Stephan Linz <linz@li-pro.net>
This tweaks tries to meme literal-block div container
to be the same as pre.literal-block.

Signed-off-by: Stephan Linz <linz@li-pro.net>
Copies additional required artifacts that Bridle wants to
include as content.

Signed-off-by: Stephan Linz <linz@li-pro.net>
Since the upstream commit zephyrproject-rtos/zephyr@e28232d the well
usable Sphinx extension `zephyr.warnings_filter` has been removed.
Bridle needs this functionality and is dependent on it.

From now on Bridle will have to maintain the last published version
from the upstream commit zephyrproject-rtos/zephyr@15c4df0 for itself
as long as it remains necessary (copy-and-own).

Signed-off-by: Stephan Linz <linz@li-pro.net>
Since upstream commit zephyrproject-rtos/zephyr@d224fa1 the Devicetree
documentation set provides links to driver sources directly into the
upstream repository on GitHub. Thus our Sphinx processing needs the
related role definitions too.

Signed-off-by: Stephan Linz <linz@li-pro.net>
Minor corrections and extensions as required.

Signed-off-by: Stephan Linz <linz@li-pro.net>
Because of a really stupid and shirt-sleeved monkey patch of the
original `doxygengroup` directive (no matter if from the Sphinx
extension `breathe` or `zephyr.doxybridge`) within the Sphinx
extension `zephyr.domain`, the Bridle documentation has to get
back the original behavior of Breathe by overwrite again the
directive entry point with the original class from Breathe for
its own. This is an absolute stopgap solution until the Bridle
documentation has completely abandoned the use of the now obsolete
and no longer maintained "breathe" project and switched to the
Zephyr upstream concept.

Point of origin in Zephyr upstream source code:

- zephyrproject-rtos/zephyr@c8c3a3b: from now on, the monkey patch
  replaces class `DoxygenGroupDirective` with the reimplementation
  from the `zephyr.doxybridge` extensions and not anymore from the
  supposed one from Breathe.

Unfortunately, the Sphinx extension `zephyr.domain` cannot be
omitted because Intersphinx cannot interpret the domain-specific
references (roles). It may even be that this is a design defect
within Sphinx itself.

Signed-off-by: Stephan Linz <linz@li-pro.net>
- define the CSS selector explicitly
- skip all pygment generated characters
- copy only input text in case of prompted code blocks

Signed-off-by: Stephan Linz <linz@li-pro.net>
- move Tier 1 support from Ubuntu 20.04 to 22.04
- add Ubuntu 24.04 with Tier 2 support
- add the Deadsnakes PPA for Ubuntu version older than 24.04
- extend the list of required tools with new Python packages
- use the new auto generated CLI command names for Python 3 and PIP
- revise the manual to rebuild the documentation sets

Signed-off-by: Stephan Linz <linz@li-pro.net>
Use Zephyr's major and minor version to compose the actual valid
USB Device Release Number (bcdDevice) in the USB Request Block.

Signed-off-by: Stephan Linz <linz@li-pro.net>
The self-hosted GitHub action runner for executing the integration
tests on targets (HiL) requires an explicitly activated virtual
Python 3.12 environment for the time being. The machine used as
HiL gateway (RPi4) has an Ubuntu 20.04 LTS system installation
with the Python 3.12 packages from the Deadsnake PPA.

Signed-off-by: Stephan Linz <linz@li-pro.net>
In the hardware map file, the name of the board was
renamed from `magpie_f777ni` to the fully qualified
HWMv2 name `magpie_f777ni/stm32f777xx`. Also a more
meaningful product name and name for the unique
serial console device file was set.

Signed-off-by: Stephan Linz <linz@li-pro.net>
Copy from Zephyr project commit: 1a5ae376a3f93312fd85016464a8b6221c554c14

Signed-off-by: Stephan Linz <linz@li-pro.net>
The Linux kernel check patch script needs other file and folder
names to identify a validate the Bridle root folder.

Signed-off-by: Stephan Linz <linz@li-pro.net>
Copy from Zephyr project commit: 1a5ae376a3f93312fd85016464a8b6221c554c14

Signed-off-by: Stephan Linz <linz@li-pro.net>
Add the bridle root folder `BRIDLE_BASE` as an additional magiccw
 string `<bridle-base>`. Also import specific Zephyr Python modules
as needed, not globally.

Signed-off-by: Stephan Linz <linz@li-pro.net>
Fix Zephyr module handling in case of Bridle, that comes with
additional external module handling (`MODULE_EXT_ROOT`).

Signed-off-by: Stephan Linz <linz@li-pro.net>
Use Bridle's own `checkpatch.pl` for test case "Checkpatch".

Signed-off-by: Stephan Linz <linz@li-pro.net>
Use Bridle's own `.yamllint` for test case "YAMLLint".

Signed-off-by: Stephan Linz <linz@li-pro.net>
Includes Bridle's large-format images and graphics. In addition to
the final SVG files, Bridle also provides the underlying Draw.io
design files. These are sometimes several megabytes in size.

Signed-off-by: Stephan Linz <linz@li-pro.net>
Support binary artifacts with file suffix ".fzpz" and ".fzz".

Signed-off-by: Stephan Linz <linz@li-pro.net>
Support binary artifacts with file suffix ".gif".

Signed-off-by: Stephan Linz <linz@li-pro.net>
Support binary artifacts with file suffix ".bmp".

Signed-off-by: Stephan Linz <linz@li-pro.net>
Support binary artifacts with file suffix ".pdf".

Signed-off-by: Stephan Linz <linz@li-pro.net>
@rexut rexut force-pushed the next branch 2 times, most recently from 9fceb30 to 6c41503 Compare November 18, 2024 11:12
@rexut rexut marked this pull request as ready for review November 18, 2024 11:12
@rexut rexut modified the milestones: v3.7.99, v4.0.0 Nov 18, 2024
Add statement about:

  * the CI workflow changes
  * the standalone 'stm32f777xx' SoC support by Bridle
  * the DTS binding and Kconfig changes for the two I2C-based
    GPIO expander 'PCA9554' and 'PCA9555'
  * the copy-and-own of Sphinx extension 'warnings_filter'
  * the changes on documentation level: Sphinx v8.1, Sphinx
    copy button, inter-Sphinx links with valid official syntax
    and update output messages

Add GitHub issues #270, #271, #272 and #274.

Signed-off-by: Stephan Linz <linz@li-pro.net>
As we are preparing support for Zephyr 4.0 this bumps the
Zephyr version to 4.0 following the 4.0 branch for bug fixes
and security updates.

Signed-off-by: Stephan Linz <linz@li-pro.net>
Respects our 4.0 development cycle, but Zephyr stable release.

Signed-off-by: Stephan Linz <linz@li-pro.net>
Add 4.0.0-rc1 tag and 4.0 branch to release list to be shown
on documentation side bar.

Signed-off-by: Stephan Linz <linz@li-pro.net>
Remove the wrong '-rc1' suffix.

Signed-off-by: Stephan Linz <linz@li-pro.net>
Add github issue resolved by the previous commits, bump to Zephyr v4.0.

Signed-off-by: Stephan Linz <linz@li-pro.net>
1st release candidate 4.0.0 tag.

Signed-off-by: Stephan Linz <linz@li-pro.net>
Copy link
Contributor

@tobiaskaestner tobiaskaestner left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Once again this PR is huge. However, LGTM ;-)
Many thanks for the tremendous work

@rexut
Copy link
Member Author

rexut commented Nov 19, 2024

Once again this PR is huge.

Oh yes, I know. I realized that as the hunt for the major changes from Zephyr V3 to V4 began. It was worth holding off for almost two months. But there was no other way.

@rexut rexut merged commit 6669434 into main Nov 19, 2024
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment