Skip to content

Commit 03c9af5

Browse files
chore(release): prepare v6.0.0 (#632)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
1 parent f8a94a7 commit 03c9af5

10 files changed

Lines changed: 46 additions & 1 deletion
File renamed without changes.
File renamed without changes.

.changesets/hotfix-mpu-synamic-regions-linker-symbols.md renamed to .changesets/archive/v6.0.0/hotfix-mpu-synamic-regions-linker-symbols.md

File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.

CHANGELOG.md

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,51 @@ The revived semantic-versioning baseline starts at `v5.0.0`.
66
Historical releases that predate this file remain available in Git tags such as
77
`v1.0.0`, `v3.0.0`, `v4.0.0-beta`, and `h10`.
88

9+
## v6.0.0 - 2026-05-06
10+
11+
### Breaking Changes
12+
13+
- Redesign fault handling, protections, and Board bootstrap around explicit fault policies
14+
This PR changes the public integration contract for applications built on ST-LIB.
15+
16+
Breaking changes:
17+
18+
- `Board` now takes the fault policy type as its first template parameter.
19+
- The global `FAULT` runtime is owned exclusively by `FaultController`.
20+
- User state machines are now nested under the global `OPERATIONAL` state through `FaultPolicy` or `FaultPolicyNoMachine`.
21+
- Protections are now compile-time `Board` request objects evaluated through `Board::ProtectionEngine`; the previous `ProtectionManager` and boundary split is no longer the active model.
22+
- Runtime reporting is unified under `PANIC(...)`, `FAULT(...)`, `WARNING(...)`, and `INFO(...)`.
23+
- The real bootstrap path is `Board::init()`. Legacy `STLIB::start()`, `STLIB::update()`, `STLIB_LOW::start()`, and `STLIB_HIGH::start()` must not be used as the integration path.
24+
25+
Migration notes:
26+
27+
- Declare the board as `Board<YourFaultPolicy, ...>`.
28+
- Use `FaultPolicy<app_machine, on_fault_enter>` when you want an operational state machine nested under the global runtime.
29+
- Use `FaultPolicyNoMachine<on_fault_enter>` when you only need a fault-entry callback.
30+
- Use `DefaultFaultPolicy` when you want neither an operational machine nor a fault-entry callback.
31+
- Declare protections with `Protections::protection<"name", source>(...)` and pass the resulting request objects to `Board`.
32+
- In the main loop, drive the runtime through `FaultController::check_transitions()`, `Board::evaluate_protections()`, and `Diagnostics::Hub::flush()`.
33+
34+
### Features
35+
36+
- add an ethernet connected check
37+
- move initialization outside constructor in PWM, DualPWM, Encoder and InputCapture
38+
- Small refactor of some spi and timerwrapper functionality
39+
timerwrapper:
40+
- Add `set_callback(void (*callback)(void*), void* callback_data)` to set the callback and its data instead of needing to call `configurexxbit()` and set the period.
41+
- `set_limit_value(uint32_t arr)` to set the arr, this will likely be changed to use a `uint32_t` type only when using a 32 bit timer, for now it is just an alias to `instance->tim->ARR = arr;`. Was not added in this pr but also wasn't mentioned before.
42+
43+
spi:
44+
- Add `transceive` with ptr + data explicitly instead of using a span since it's sometimes a pain in the ass to use.
45+
46+
### Fixes
47+
48+
- Fix incorrect usage of non-volatile buffers in peripherals. This wrong usage was causing undefined behaviour, since the compiler could optimize out reads and writes that should have been going directly to memory.
49+
There's a minor API change: now the MPU macros for memory regions include the volatile keyword for the non-cached variants.
50+
- MPUDomain dynamic regions were configured using the linker symbol values instead of their addresses (that is the correct way of using linker symbols). That made non-cached regions cached, and caused harware undefined behaviour.
51+
- fix pwm channel 4 config in TimerWrapper
52+
- fix prescaler calculation in scheduler
53+
954
## v5.2.0 - 2026-04-22
1055

1156
### Features

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
5.2.0
1+
6.0.0

0 commit comments

Comments
 (0)