Skip to content

build-tools;36.0.0 may not exist in the stable Android SDK channel #61

Closed as not planned

Description

@twistedmelonman

Non-Blocking Review Concern: build-tools;36.0.0 may not exist in the stable Android SDK channel

Source: pre-push whole-codebase review
Location: app-setup/android-setup.sh:222
Date: 2026-08-07

What was flagged

The SDK bump from 34 to 36 causes android-setup.sh to request build-tools;36.0.0 from sdkmanager. Android build-tools version numbers follow platform releases but are not always identical to them — historically, build-tools;34.0.0 existed, build-tools;35.0.0 exists, but 36.0.0 may not yet be published to the stable channel (as of mid-2026, the latest stable is 35.0.0). If the package doesn't exist, sdkmanager will fail silently (exit 141 from the yes | pipe is treated as non-fatal on line 261, and other non-zero exits call check_success with || true). The setup will log a collected error but won't block — the machine will be missing build-tools with no loud signal. Recommend verifying build-tools;36.0.0 exists via sdkmanager --list | grep build-tools on a reference machine before deploying, or pinning to build-tools;35.0.0 until 36.0.0 is confirmed stable.

Context

This issue was automatically created from a non-blocking concern identified
during pre-push whole-codebase review. It was flagged for tracking.


Created by lib-review-issues.sh

Activity

  1. twistedmelonman commented on Aug 30, 2026

    @twistedmelonman
    MemberAuthor

    Closing — the premise is false. build-tools;36.0.0 does exist in the stable channel.

    Verified against Google's own SDK repository manifest (https://dl.google.com/android/repository/repository2-3.xml), not against a claim about it:

    path="build-tools;35.0.1"
    path="build-tools;36.0.0-rc1"
    ...
    path="build-tools;36.0.0"     <-- stable, published
    path="build-tools;36.1.0"
    path="build-tools;37.0.0"
    

    The review's stated basis — "as of mid-2026, the latest stable is 35.0.0" — was already out of date when it was filed. Stable is now well past 36; even 37.0.0 is published. So app-setup/android-setup.sh:222 requesting build-tools;${SDK_VERSION}.0.0 with SDK_VERSION=36 resolves correctly, and no pin to 35.0.0 is needed.

    The secondary observation about error handling is accurate as a description of the code (android-setup.sh:257-264): exit 141 is normalised to 0 for the yes | SIGPIPE, and check_success ... || true collects rather than blocks. But that is the deliberate non-fatal design for optional SDK components, and with the package existing there is no silent-failure case to trigger it here. If the fail-soft behaviour is worth revisiting, that is its own issue about check_success, not about build-tools 36.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    tech-debtTechnical debt to address

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions