Skip to content

Series sync: version fields, common/ 3.0.0, device rename, release-asset fix (v1.0.2) - #7

Merged
sws-chipkin merged 5 commits into
mainfrom
fix-device-version-properties
Sep 24, 2026
Merged

sws-chipkin merged 5 commits into
mainfrom
fix-device-version-properties

Conversation

@sws-chipkin

Copy link
Copy Markdown
Collaborator

Brings main up to v1.0.2 with the series-wide changes made locally since the last merge:

  • fix: wire Application_Software_Version and Firmware_Revision to real values
  • chore(common): sync to 3.0.0 - merge B-BC-CPP and B-SCHUB-CPP forks
  • chore: rename Device from "Rainbow" to "Chipkin Example B-RTR"
  • chore: fix docs/objects.json Device name, missed in the device-rename pass
  • ci: upload one copy of each release asset (fix duplicate-name publish failure)

Summary:

  • Version fields: Application_Software_Version and Firmware_Revision now report the real app and stack versions (C++ repos).
  • common/ synced to 3.0.0, which merges the B-BC and B-SCHUB forks (C++ repos).
  • Device renamed from the series placeholder "Rainbow" to "Chipkin Example ", so examples can be told apart on one network. docs/objects.json and PICS are updated to match.
  • Release workflow: the publish job now uploads one copy of each asset name. Duplicate doc files from the two platform artifacts made the upload fail part-way (seen on B-SCHUB v1.1.18); the same fix is already merged in B-SCHUB #12 and B-BC #20.

Each rebuild was version-bumped and live-verified locally at commit time (startup banner shows the new Device name). See CHANGELOG.md.

🤖 Generated with Claude Code

sws-chipkin and others added 5 commits September 22, 2026 01:27
…values

Application_Software_Version (12) and Firmware_Revision (44) were hardcoded
to a stale "1.0.0" literal for both, despite a comment already flagging the
gap. Application_Software_Version now reads APP_VERSION directly (one source
of truth with --version's own banner). Firmware_Revision is now built at
runtime from the CAS BACnet Stack's own BACnetStack_GetAPI{Major,Minor,Patch,
Build}Version() calls, populated once right after LoadBACnetFunctions()
succeeds. Bumped APP_VERSION to 1.0.1 per this series' rebuild convention.

Verified with a real ReadProperty against the running device:
Application_Software_Version = "1.0.1", Firmware_Revision = "6.0.21.0".

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Two independent common/ lines had diverged from the shared 2.5.0 baseline
and each reused version numbers for different content:
BACnetProfileExample-B-BC-CPP carried 2.6.0-2.9.0 (RX/TX service/object/
property-naming SummarizeBacnetFrame(), the --xml frame dump,
GetLocalLinkSpeedBitsPerSecond(), Local_Date/Local_Time property IDs)
without those being re-synced series-wide, while
BACnetProfileExample-B-SCHUB-CPP separately carried its own,
differently-numbered 2.6.0-2.7.0 (the CASExampleLog structured-logging
facility, ParseDccPasswordArg(), HandleHelpAndVersionArgs()'s
showDccPasswordCliOption parameter, KeyCommand::Metrics).

The two lines touch disjoint code and merge without functional conflict;
common/ 3.0.0 combines both. Verified by rebuilding and running --version
locally: "Common helper (common/) version: 3.0.0".

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Every example in the series announced the identical Object_Name
"Rainbow" for its Device object, so two examples running on the same
subnet were indistinguishable by name. Renamed to "Chipkin Example
B-RTR" (the series' BACnet profile code) so devices are identifiable
on the network; sub-object names are unchanged. docs/colour-table.md
(series root, not in this repo) updated to match. APP_VERSION bumped
1.0.1 -> 1.0.2.

Verified by rebuilding and confirming the new name in the startup log.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
… pass

docs/objects.json (the input to tools/gen-objects-properties.py, which
generates docs/PICS.md) still had the Device object's
after the device-rename commit updated main.cpp/README.md/AGENTS.md/
docs/PICS.md directly but missed this source file. Fixed to "Chipkin Example
B-RTR", matching what main.cpp now serves. Re-ran
tools/gen-objects-properties.py against this repo to confirm docs/PICS.md
(already updated by hand in the rename commit) is byte-identical to what
the generator now produces from the corrected JSON - no drift.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
… failure)

Every platform artifact carries the same docs (README.md, LICENSE,
TUTORIAL.md, ...), and the publish job handed all of them to
softprops/action-gh-release with `files: artifacts/**/*`. Uploading two
assets with the same name makes the action fail part-way ("Not Found"
updating asset metadata) and leaves a draft release behind -
BACnetProfileExample-B-SCHUB-CPP v1.1.18 hit exactly this.

The publish job now flattens the downloaded artifacts into release/,
keeping one copy of each file name, and fails loudly if two files share
a name but differ. Same asset set as before, each name once. Applied
series-wide (the release job is a shared template, checked by
tools/check-series.sh check 11).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@sws-chipkin
sws-chipkin merged commit d6fc034 into main Sep 24, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant