Skip to content

About: show real TheengsDecoder version and store build number#139

Merged
1technophile merged 2 commits into
developmentfrom
feat/about-version-build-number
Jun 6, 2026
Merged

About: show real TheengsDecoder version and store build number#139
1technophile merged 2 commits into
developmentfrom
feat/about-version-build-number

Conversation

@1technophile

Copy link
Copy Markdown
Member

Description:

  • Derive the bundled TheengsDecoder version from the submodule's git tag at CMake configure time (fallback literal "2.3.0" for shallow CI clones and tarball builds). Inject it as THEENGS_DECODER_VERSION on both the Theengs executable target and the AppUtils static lib so utils_app.cpp picks it up at compile time.
  • Add utilsApp.theengsDecoderVersion() and utilsApp.appBuildNumber():
    • Decoder version: replaces the hardcoded "2.1.0" badge and release URL.
    • Build number: reads CFBundleVersion on iOS, PackageInfo.versionCode on Android via JNI, empty on desktop. Matches what users see on the App Store / Play Store.
  • About.qml: header line shows "1.5.0 () DEBUG" on mobile and drops the build number on desktop where it doesn't apply. The "Theengs App" badge now binds to appVersion(); the "Theengs Decoder" badge + GitHub release URL bind to theengsDecoderVersion(). Dependency list and debug-info section also pick up the new values. Fixes the decoder license string to GPL v3.

Checklist:

  • The pull request is done against the latest development branch
  • Only one feature/fix was added per PR and the code change compiles without warnings
  • I accept the DCO.

1technophile and others added 2 commits June 6, 2026 10:15
- Derive the bundled TheengsDecoder version from the submodule's git tag
  at CMake configure time (fallback literal "2.3.0" for shallow CI clones
  and tarball builds). Inject it as THEENGS_DECODER_VERSION on both the
  Theengs executable target and the AppUtils static lib so utils_app.cpp
  picks it up at compile time.
- Add utilsApp.theengsDecoderVersion() and utilsApp.appBuildNumber():
  - Decoder version: replaces the hardcoded "2.1.0" badge and release URL.
  - Build number: reads CFBundleVersion on iOS, PackageInfo.versionCode on
    Android via JNI, empty on desktop. Matches what users see on the App
    Store / Play Store.
- About.qml: header line shows "1.5.0 (<build-number>) DEBUG" on mobile and
  drops the build number on desktop where it doesn't apply. The
  "Theengs App" badge now binds to appVersion(); the "Theengs Decoder"
  badge + GitHub release URL bind to theengsDecoderVersion(). Dependency
  list and debug-info section also pick up the new values. Fixes the
  decoder license string to GPL v3.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The CMakeLists.txt was carrying a literal "2.3.0" fallback for the
THEENGS_DECODER_VERSION macro, which had to be hand-bumped every time the
submodule moved — exactly the kind of drift the dynamic git-describe was
introduced to prevent.

- Remove the literal default. If git describe fails (no .git, etc.), the
  variable stays empty and the compile-definition is skipped, so
  utilsApp.theengsDecoderVersion() returns "unknown" — the same behavior
  AppUtils already exhibits when consumed outside Theengs.
- Add fetch-depth: 0 to all five actions/checkout blocks in
  builds_desktop.yml (3) and builds_mobile.yml (2) so the submodule's
  tags are available during the CI build. submodules: recursive alone
  fetches a shallow tree without tags.

Tarball/sdist consumers (which Theengs doesn't ship as a release artifact
anyway) get "unknown" — acceptable for that out-of-band case.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@1technophile 1technophile merged commit 7832952 into development Jun 6, 2026
10 checks passed
@1technophile 1technophile deleted the feat/about-version-build-number branch June 6, 2026 15:44
1technophile added a commit that referenced this pull request Jun 6, 2026
Bump the 1.5.0 release date to 2026-06-06 and fold in the user-facing
changes that landed between #130 and the cut: TheengsDecoder v2.3.0
(#137), MQTT sentinels + sampling caption (#131), credential secure
storage (#132), background-update scheduling and consolidated
permissions UI (#133, #135), the About-screen decoder version and
build number (#139), the iOS mbedTLS static-link fix (#138), and the
device_bm26 ENABLE_MBEDTLS guard (#134).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1technophile added a commit that referenced this pull request Jun 6, 2026
Bump the 1.5.0 release date to 2026-06-06 and fold in the user-facing
changes that landed between #130 and the cut: TheengsDecoder v2.3.0
(#137), MQTT sentinels + sampling caption (#131), credential secure
storage (#132), background-update scheduling and consolidated
permissions UI (#133, #135), the About-screen decoder version and
build number (#139), the iOS mbedTLS static-link fix (#138), and the
device_bm26 ENABLE_MBEDTLS guard (#134).

Co-authored-by: Florian <1technophile@users.noreply.github.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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