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.
|
||||
```
|
||||
|
||||
## 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)
|
||||
|
||||
- Wrap normal text and lists at **max 80 columns** (for readability in
|
||||
|
||||
Reference in New Issue
Block a user