blob: 074a54c1482224e419c2f3636f86da02b641c1ce [file] [log] [blame] [view]
# AndroidX Branch Workflow
[TOC]
## 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 librarys release branch. If that release branch
doesnt 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`.