You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: AGENTS.md
+11Lines changed: 11 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -28,6 +28,17 @@
28
28
- Squash WIP commits before pushing; PR descriptions should call out touched modules, Makefile flags, and validation results.
29
29
- Attach screenshots, logs, or size diffs when behaviour or footprint changes, and list any artifacts (e.g., `loaner-firmware.packed.bin`) that reviewers should test.
30
30
31
+
## Branching & Release Workflow
32
+
- Create a feature branch for every change (`git checkout -b feature-name`) and never push commits straight to `main`.
33
+
- Open a pull request targeting `main` once the branch is ready; include build/test notes and hardware validation results.
34
+
- When a milestone lands, tag the merge commit (for example `git tag -a v0.3`) and cut a GitHub release that attaches the packed firmware built from that tag.
35
+
- Keep release notes concise: highlight the loaner-facing changes and link the corresponding ICS-205 or CHIRP updates if applicable.
36
+
37
+
## Versioning Strategy
38
+
- Follow the calendar-semver pattern used by other UV-K5 forks (e.g. Quansheng's `v2.1.27` and Open Edition's `OEFW-2023.09`). Adopt `vYY.MM[.PATCH]` for git tags and releases (for example `v24.03` or `v24.03.1` for hotfixes).
39
+
- The packed firmware metadata keeps the `*OEFW-` prefix for CHIRP compatibility; limit the suffix you pass to `fw-pack.py` to 10 ASCII characters such as `LNR24.03` so the welcome banner reads `OEFW-LNR24.03`.
40
+
- Update the tag, the packed image suffix, and the GitHub release name together so end users and CHIRP all report the same version string.
41
+
31
42
## Firmware Configuration Tips
32
43
- Adjust `ENABLE_*` groups in `Makefile` to keep only the features you can fit, and re-run `make clean` before remeasuring size.
33
44
- Introduce new toggles as `ENABLE_FEATURE_NAME`, update the surrounding comment block, and document user-facing switches in `README.md`.
- The second argument is the version tag embedded in both the welcome screen and the packed metadata.
@@ -62,7 +62,22 @@ Feature flags live near the top of `Makefile` as `ENABLE_*` macros. Adjust them
62
62
- A successful build leaves you with `firmware.bin` (raw) and, when Python and `crcmod` are available, `firmware.packed.bin`. The packed image is what Quansheng's loader validates.
63
63
- Use `fw-pack.py` to stamp a release tag into the packed image. The second argument becomes the welcome banner and metadata field:
- Change the `TARGET` on the `make` command line to tweak the output filenames without editing source, for example `make TARGET=loaner-firmware`.
68
68
- Before publishing a release, spot-check the welcome screen on hardware to make sure the tag matches what you intend to share with end users.
69
+
- Recommended version format: mirror other UV-K5 firmware projects (Quansheng's stock firmware ships as `v2.1.27`, Open Edition uses `OEFW-2023.09`). Tag milestones as `vYY.MM[.PATCH]` and feed a matching, <=10 character suffix to `fw-pack.py` (for example `LNR24.03`). CHIRP reads the full `*OEFW-LNR24.03` banner and treats it as a known build.
70
+
71
+
## Branching and Release Flow
72
+
1. Start work on a fresh branch instead of `main`:
73
+
```sh
74
+
git checkout -b feature-name
75
+
```
76
+
2. Build and test (preferably with `./compile-with-docker.sh`), document the validation steps, then open a pull request back to `main`.
77
+
3. Once the branch merges, create an annotated tag for the milestone:
78
+
```sh
79
+
git tag -a v0.3 -m "Loaner v0.3"
80
+
git push origin v0.3
81
+
```
82
+
4. Draft a GitHub release from that tag and attach the packed firmware produced from the same commit (for example `compiled-firmware/loaner-firmware.packed.bin`).
83
+
5. Repeat the process for each milestone so end users always have a tagged firmware matching the published release notes.
0 commit comments