diff --git a/AGENTS.md b/AGENTS.md index b05bd04..d1eeb19 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -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..`. + ## Documentation (Markdown) - Wrap normal text and lists at **max 80 columns** (for readability in