docs: add tag release workflow to AGENTS.md
This commit is contained in:
@@ -105,6 +105,73 @@ Implement CRC8-CCITT (poly 0x07) for CRSF frame validation.
|
|||||||
Added unit tests for empty, single-byte, and known-value cases.
|
Added unit tests for empty, single-byte, and known-value cases.
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Tag Releases
|
||||||
|
|
||||||
|
Use annotated tags for releases. Write the release notes to a temporary
|
||||||
|
file, then use it as the tag message. Do **not** commit the release
|
||||||
|
notes file.
|
||||||
|
|
||||||
|
Write release notes:
|
||||||
|
```sh
|
||||||
|
cat > RELEASES.md << 'EOF'
|
||||||
|
# Releases
|
||||||
|
|
||||||
|
## 0.1.0 (2026-06-15)
|
||||||
|
|
||||||
|
Initial release. Windows-only support.
|
||||||
|
|
||||||
|
### Library (`celrs`)
|
||||||
|
|
||||||
|
- **CRSF protocol**: CRC8/DVB-S2 validation, frame parsing, and frame
|
||||||
|
construction (RC channels, device ping, parameter read/write).
|
||||||
|
- **Telemetry decoders**: GPS, battery, link stats, attitude, flight
|
||||||
|
mode, vario, barometric altitude, airspeed, heartbeat, RPM,
|
||||||
|
temperature, voltages, ESC, and more.
|
||||||
|
- **Streaming parser**: incremental frame extraction from raw byte
|
||||||
|
streams with CRC validation.
|
||||||
|
- **Parameter protocol**: device ping, parameter read/write, and
|
||||||
|
TX power configuration by enumerating ELRS parameters.
|
||||||
|
- **Serial port abstraction**: open/close/read/write with baud-rate
|
||||||
|
probing (handles CP210x chips that cannot hit 921600 exactly),
|
||||||
|
port listing, and auto-detection of ELRS-like devices.
|
||||||
|
- **Logger**: level-filtering logger (debug/info/warn/error) with
|
||||||
|
a stdout sink.
|
||||||
|
|
||||||
|
### Tools
|
||||||
|
|
||||||
|
- **`telemetry`**: live dashboard that connects to an ELRS TX module
|
||||||
|
and displays link quality (RSSI, LQ, SNR, power), battery (voltage,
|
||||||
|
current, capacity, percentage), IMU attitude, flight mode, and a
|
||||||
|
frame-type breakdown. Supports auto-detect, `--list`, `--port`,
|
||||||
|
and `--baudrate` options.
|
||||||
|
|
||||||
|
### Notes
|
||||||
|
|
||||||
|
- Platform support: **Windows only** (via MinGW/MSVC on CMake + Ninja).
|
||||||
|
- Built against C23; tested with GCC 14+ and Clang 18+.
|
||||||
|
- Dependencies (Unity, CMock) are fetched automatically at configure
|
||||||
|
time. No manual setup required.
|
||||||
|
EOF
|
||||||
|
```
|
||||||
|
|
||||||
|
Create the annotated tag:
|
||||||
|
```sh
|
||||||
|
git tag -a v0.1.0 -F RELEASES.md
|
||||||
|
```
|
||||||
|
|
||||||
|
Verify:
|
||||||
|
```sh
|
||||||
|
git show v0.1.0
|
||||||
|
```
|
||||||
|
|
||||||
|
Remove the temporary file:
|
||||||
|
```sh
|
||||||
|
rm RELEASES.md
|
||||||
|
```
|
||||||
|
|
||||||
|
Release notes follow the same Markdown rules as `AGENTS.md` (80-column
|
||||||
|
wrap, no em dashes, etc.). Version format is `v<major>.<minor>.<patch>`.
|
||||||
|
|
||||||
## Documentation (Markdown)
|
## Documentation (Markdown)
|
||||||
|
|
||||||
- Wrap normal text and lists at **max 80 columns** (for readability in
|
- Wrap normal text and lists at **max 80 columns** (for readability in
|
||||||
|
|||||||
Reference in New Issue
Block a user