Skip to content

ADFA-2246: Surface the IDE release number to users#1480

Merged
Daniel-ADFA merged 7 commits into
stagefrom
ADFA-2246
Jul 10, 2026
Merged

ADFA-2246: Surface the IDE release number to users#1480
Daniel-ADFA merged 7 commits into
stagefrom
ADFA-2246

Conversation

@Daniel-ADFA

Copy link
Copy Markdown
Contributor

Show the release number alongside the build string via a single BasicBuildInfo.formatVersion() on all five surfaces: home screen, About, App Info/Share, feedback report, and crash report. The home label is release-only; the pre-existing surfaces fall back to the bare build string when RELEASE_VERSION is empty (debug/local). Adds unit tests for the formatter.

Read the next_release_version Gradle property (from the NEXT_RELEASE_VERSION GitHub variable) into a new BuildInfo.RELEASE_VERSION field. release.yml validates and injects it at assemble time; a missing or malformed value fails the release build fast with no APK. Local and F-Droid builds leave the field empty.
Show the release number alongside the build string via a single BasicBuildInfo.formatVersion() on all five surfaces: home screen, About, App Info/Share, feedback report, and crash report. The home label is release-only; the pre-existing surfaces fall back to the bare build string when RELEASE_VERSION is empty (debug/local). Adds unit tests for the formatter.

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Claude Code Review

This repository is configured for manual code reviews. Comment @claude review to trigger a review and subscribe this PR to future pushes, or @claude review once for a one-time review.

Tip: disable this comment in your organization's Code Review settings.

Base automatically changed from ADFA-2278 to stage July 7, 2026 18:38
@coderabbitai

coderabbitai Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: cb1919cc-578e-438b-954c-c573406cb34f

📥 Commits

Reviewing files that changed from the base of the PR and between 277561f and 518465c.

📒 Files selected for processing (4)
  • app/src/main/java/com/itsaky/androidide/fragments/output/BuildOutputFragment.kt
  • app/src/main/java/com/itsaky/androidide/fragments/output/LogViewFragment.kt
  • app/src/main/java/com/itsaky/androidide/fragments/output/NonEditableEditorFragment.java
  • common/src/main/java/com/itsaky/androidide/utils/BuildInfoUtils.kt
🚧 Files skipped from review as they are similar to previous changes (1)
  • common/src/main/java/com/itsaky/androidide/utils/BuildInfoUtils.kt

📝 Walkthrough
  • Added BuildInfo.RELEASE_VERSION (sourced from Gradle next_release_version) and centralized user-facing version formatting via BasicBuildInfo.formatVersion() plus BasicBuildInfo.hasReleaseVersion.
  • Updated version/build info display to use the new formatter across the app:
    • Home screen: added a dedicated versionLabel that shows only release-version info when RELEASE_VERSION is present (otherwise uses the existing build-only behavior).
    • About screen.
    • App Info / share text.
    • Feedback report content.
    • Crash report content.
    • Build info headers in shareable outputs/log exports.
  • Updated home screen layouts for portrait/landscape to support the conditional versionLabel.
  • Added unit tests (BasicBuildInfoTest) validating formatting for: release version present, blank, and whitespace-only inputs.
  • Risks / best-practice notes:
    • Risk: If RELEASE_VERSION is misconfigured/missing, the app’s visible version metadata may change (and release builds may fail fast due to validation during assembly).
    • Risk: The home screen’s versionLabel is conditionally shown, so UI spacing/constraints should be verified across device sizes and orientations.
    • Best practice: Centralizing formatting via a single helper reduces inconsistency across screens; unit tests cover the key edge cases.

Walkthrough

Adds release-aware version formatting to BasicBuildInfo and applies it across app displays, crash and feedback messages, build metadata, shareable output, and the main screen. Adds conditional version-label layouts and unit tests for formatting behavior.

Changes

Version formatting rollout

Layer / File(s) Summary
BasicBuildInfo formatting contract
common/src/main/java/com/itsaky/androidide/utils/BuildInfoUtils.kt, common/src/test/java/com/itsaky/androidide/utils/BasicBuildInfoTest.kt
Adds hasReleaseVersion and formatVersion(...), routes shareable build information through the formatter, and tests release, blank, and whitespace-only inputs.
Version display and reporting consumers
app/src/main/java/com/itsaky/androidide/activities/AboutActivity.kt, app/src/main/java/com/itsaky/androidide/fragments/CrashReportFragment.kt, app/src/main/java/com/itsaky/androidide/utils/BuildInfoUtils.kt, common/src/main/java/com/itsaky/androidide/utils/FeedbackManager.kt
Uses BasicBuildInfo.formatVersion() for about text, crash emails, build headers, and feedback messages.
Main screen version label
app/src/main/java/com/itsaky/androidide/fragments/MainFragment.kt, app/src/main/res/layout/fragment_main.xml, app/src/main/res/layout-land/fragment_main.xml
Adds and positions a conditional versionLabel, binding its text and visibility to BasicBuildInfo.
Shareable output headers
app/src/main/java/com/itsaky/androidide/fragments/output/BuildOutputFragment.kt, app/src/main/java/com/itsaky/androidide/fragments/output/LogViewFragment.kt, app/src/main/java/com/itsaky/androidide/fragments/output/NonEditableEditorFragment.java
Uses BasicBuildInfo.shareableBuildInfo() for shared build output, logs, and editor content.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Possibly related PRs

Suggested reviewers: itsaky-adfa, jomen-adfa, hal-eisen-adfa

Poem

A rabbit hops through version strings,
And greets the release tag it brings.
Shared notes, crash mail, screens align,
With one neat formatter’s design.
“Hop hop!” says Bun—“the build looks bright!”

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title is concise and accurately summarizes the main change: surfacing the IDE release number to users.
Description check ✅ Passed The description is clearly related to the changeset and matches the implemented version-display updates and formatter tests.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch ADFA-2246

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@Daniel-ADFA Daniel-ADFA merged commit 64dd9a9 into stage Jul 10, 2026
3 checks passed
@Daniel-ADFA Daniel-ADFA deleted the ADFA-2246 branch July 10, 2026 13:46
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.

4 participants