| # AndroidX Branch Workflow |
| |
| [TOC] |
| |
| ## Single Development Branch [androidx-master-dev] |
| |
| All feature development occurs in the public AndroidX master dev branch of the |
| Android Open Source Project: `androidx-master-dev`. 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-master-dev 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-master-dev 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-master-dev` 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`. |