AndroidX Branch Workflow

Single Development Branch [androidx-main]

All feature development occurs in the public AndroidX master dev branch of the Android Open Source Project: androidx-main. This branch serves as the central location and source of truth for all AndroidX library source code. All alpha and beta version development, builds, and releases will be done ONLY in this branch.

Release Branches [androidx-<feature>-release]

When a library updates to rc (release-candidate) or stable, that library version will be snapped over to that library’s release branch. If that release branch doesn’t exist, then a release branch will be created for that library, snapped from androidx-main at the commit that changed the library to an rc or stable version.

Release branches have the following properties:

  • A release branch will contain rc or stable versions of libraries.
  • Release branches are internal branches.
  • Release branches can ONLY be changed through cherry-picks
  • Bug-fixes and updates to that rc or stable version will need to be individually cherry-picked
  • No alpha or beta versions will exist in a release branch.
  • Toolchain and other library wide changes to androidx-main will be synced to each release branch.
  • Release branches will have the naming format androidx-<feature-name>-release
  • Release branches will be re-snapped from androidx-main for each new minor version release (for example, releasing 2.2.0-rc01 after 2.1.0)

Platform Developement and AndroidX [androidx-platform-dev]

Platform specific development is done using our INTERNAL platform development branch androidx-platform-dev.