Skip to content

Doc - #3102

Open
fpistm wants to merge 5 commits into
stm32duino:mainfrom
fpistm:doc
Open

Doc#3102
fpistm wants to merge 5 commits into
stm32duino:mainfrom
fpistm:doc

Conversation

@fpistm

@fpistm fpistm commented Oct 22, 2026

Copy link
Copy Markdown
Member

No description provided.

@fpistm fpistm added enhancement New feature or request documentation 📚 Improvements or additions to documentation fix 🩹 Bug fix labels Oct 22, 2026
@fpistm
fpistm force-pushed the doc branch 2 times, most recently from 31bbd8a to a51bc3c Compare October 30, 2026 11:19
Signed-off-by: Frederic Pillon <frederic.pillon@st.com>
Document the purpose, usage and configuration of each script
in CI/update:
 - stm32variant.py,
 - stm32variantv2.py,
 - stm32cube.py,
 - stm32cubev2.py,
 - stm32wrapper.py,
 - stm32svd.py,
 - fqbn.py,
 - stm32api.py
 - stm32libraries.py.

Correct the stm32variant.py description (GitHub database by default,
--cube option, CUBEMX_DIRECTORY and STM32CUBECLT_PATH settings).

Signed-off-by: Frederic Pillon <frederic.pillon@st.com>
Assisted-by: GitHub Copilot: Claude Haiku 5.5
Review doxygen comments in headers and sources under cores/, libraries/,
system/STM32* and variants/ (excluding cores/arduino/api, system/Drivers
and system/Middlewares) and apply one style:

- API contracts (@brief, @PARAM, @return, @note) live in headers. Functions
  declared in a header are documented there and their duplicate blocks are
  removed from the source file.
- Static and source-only functions are documented directly above their
  definition in the .c/.cpp file.
- Parameter names in header declarations now match their definitions in
  HardwareTimer.h, analog.h, Wire.h, VirtIO mbox_ipcc.h, Serial.h and
  stm32_def.h. This is a name-only change with no ABI impact.
- @PARAM None is removed, since it documents no parameter. @RetVal None is
  removed from cores/ and libraries/ and kept only in ST-derived
  system/STM32* files.
- Undocumented functions are documented, including HardwareTimer methods,
  Wire and twi helpers, SPI, EEPROM, Servo, USBDevice, Serial Uart, WSerial
  serialEvent hooks, pins_arduino, variant clock helpers, and assert_failed in
  the hal_conf_default headers.
- Struct and class member docs are added in cdc_queue.h, EEPROM.h (EERef and
  EEPtr index) and pinmap.h (PinMap and NP).
- usbd_cdc.h \defgroup entries get titles. The @file and \file names in
  syscalls.c and interrupt.cpp are corrected. The unnamed size parameter of
  operator delete in new.cpp is no longer documented with @PARAM.

Doxygen (1.9.8) run over the same scope, excluding cores/arduino/api and the
Drivers and Middlewares folders: "(function) ... is not documented" warnings
drop from 210 to 7. Five of the remaining seven are __attribute__ misparses
(aligned/used). The other two are not missing docs: HAL_FLASH_Lock is a call
site in stm32_eeprom.c whose prototype lives in the excluded ST HAL headers,
and stm32_interrupt_enable is documented in interrupt.h, but Doxygen cannot
see that prototype under its __cplusplus guard. In USBDevice, the #ifdef
blocks in usbd_cdc.h and usbd_hid_composite.h are reordered with equivalent
declarations. Apart from the parameter-name fixes and that reordering, only
comments changed.

Signed-off-by: Frederic Pillon <frederic.pillon@st.com>
Assisted-by: GitHub Copilot: Claude Haiku 5.5
Assisted-by: GitHub Copilot: Claude Sonnet 5.5
Signed-off-by: Frederic Pillon <frederic.pillon@st.com>
Point the supported boards link in README.md to the dev version
of the hosted MkDocs site instead of the repository markdown file.

Signed-off-by: Frederic Pillon <frederic.pillon@st.com>
Generate the Doxygen API reference of the core and publish it with each
documentation version, so it is available at /dev/doxygen/,
/latest/doxygen/ and /<X.Y.Z>/doxygen/.

- Add doxygen/Doxyfile covering cores, libraries, system and variants,
  excluding cores/arduino/api, system/Drivers and system/Middlewares.
  Source listings are disabled to keep each published version small.
  __cplusplus and the HAL module macros used as guards are predefined so
  that classes such as HardwareTimer are documented.
- Add an HTML header and version-selector.js: every Doxygen page links
  back to the documentation home of the same version and provides a
  version selector (dev, latest, releases) fed by the mike versions.json.
  When a page does not exist in the selected version, it falls back to
  the Doxygen home page, then to the documentation home page.
- Add docs/hooks/doxygen.py, a MkDocs hook adding the Doxygen output to
  the site, or a placeholder page when it is absent so that documentation
  only builds still pass mkdocs build --strict.
- Build the Doxygen output in docs-check.yml and publish-docs.yml before
  MkDocs, check that it is part of the site, and also trigger both
  workflows on changes to the documented sources.
- Ignore doxygen/** in the Arduino, CMake and PlatformIO build workflows.
- Link the reference from API.md, the home page, the Core Reference
  navigation and README.md.
- Document the Doxygen generation, publication and version selector in
  Documentation-workflow.md.
- Restrict the release tag pattern to a major version below 1000 in
  publish-docs.yml (tag validation and "latest" computation) and in the
  supported boards generator. The legacy date tags 2017.8.31 to
  2018.1.18 matched X.Y.Z and were seen as the highest tag, so "latest"
  and the site default would never have moved to a new release.
- Document in Documentation-workflow.md how the supported boards
  "Next release" labels are resolved from the release tags, and that
  docs/supported-boards/index.md must be regenerated and committed after
  a release tag.

Assisted-by: GitHub Copilot: Claude Sonnet 5.5
Signed-off-by: Frederic Pillon <frederic.pillon@st.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation 📚 Improvements or additions to documentation enhancement New feature or request fix 🩹 Bug fix

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant