AndroidX Core Team | 2e416b2 | 2020-12-03 22:58:07 +0000 | [diff] [blame] | 1 | # AndroidX Branch Workflow |
| 2 | |
| 3 | [TOC] |
| 4 | |
AndroidX Core Team | 408c27b | 2020-12-15 15:57:00 +0000 | [diff] [blame] | 5 | ## Single Development Branch [androidx-main] |
AndroidX Core Team | 2e416b2 | 2020-12-03 22:58:07 +0000 | [diff] [blame] | 6 | |
| 7 | All feature development occurs in the public AndroidX master dev branch of the |
AndroidX Core Team | 408c27b | 2020-12-15 15:57:00 +0000 | [diff] [blame] | 8 | Android Open Source Project: `androidx-main`. This branch serves as the central |
| 9 | location and source of truth for all AndroidX library source code. All alpha and |
| 10 | beta version development, builds, and releases will be done ONLY in this branch. |
AndroidX Core Team | 2e416b2 | 2020-12-03 22:58:07 +0000 | [diff] [blame] | 11 | |
| 12 | ## Release Branches [androidx-\<feature\>-release] |
| 13 | |
| 14 | When a library updates to rc (release-candidate) or stable, that library version |
| 15 | will be snapped over to that library’s release branch. If that release branch |
| 16 | doesn’t exist, then a release branch will be created for that library, snapped |
AndroidX Core Team | 408c27b | 2020-12-15 15:57:00 +0000 | [diff] [blame] | 17 | from androidx-main at the commit that changed the library to an rc or stable |
| 18 | version. |
AndroidX Core Team | 2e416b2 | 2020-12-03 22:58:07 +0000 | [diff] [blame] | 19 | |
| 20 | Release branches have the following properties: |
| 21 | |
| 22 | * A release branch will contain rc or stable versions of libraries. |
| 23 | * Release branches are internal branches. |
| 24 | * Release branches can **ONLY** be changed through |
| 25 | cherry-picks |
| 26 | * Bug-fixes and updates to that rc or stable version will need to be |
| 27 | individually cherry-picked |
| 28 | * No alpha or beta versions will exist in a release branch. |
AndroidX Core Team | 408c27b | 2020-12-15 15:57:00 +0000 | [diff] [blame] | 29 | * Toolchain and other library wide changes to androidx-main will be synced to |
| 30 | each release branch. |
AndroidX Core Team | 2e416b2 | 2020-12-03 22:58:07 +0000 | [diff] [blame] | 31 | * Release branches will have the naming format |
| 32 | `androidx-<feature-name>-release` |
AndroidX Core Team | 408c27b | 2020-12-15 15:57:00 +0000 | [diff] [blame] | 33 | * Release branches will be re-snapped from `androidx-main` for each new minor |
| 34 | version release (for example, releasing 2.2.0-rc01 after 2.1.0) |
AndroidX Core Team | 2e416b2 | 2020-12-03 22:58:07 +0000 | [diff] [blame] | 35 | |
| 36 | ## Platform Developement and AndroidX [androidx-platform-dev] |
| 37 | |
| 38 | Platform specific development is done using our INTERNAL platform development |
| 39 | branch `androidx-platform-dev`. |