Aurimas Liutikas | e2fa386 | 2017-02-01 13:24:41 -0800 | [diff] [blame] | 1 | # AOSP Support Library Contribution Guide |
| 2 | ## Accepted Types of Contributions |
| 3 | * Bug fixes (needs a corresponding bug report in b.android.com) |
| 4 | * Each bug fix is expected to come with tests |
| 5 | * Fixing spelling errors |
| 6 | * Updating documentation |
| 7 | * Adding new tests to the area that is not currently covered by tests |
| 8 | |
| 9 | We **are not** currently accepting new modules, features, or behavior changes. |
| 10 | |
| 11 | ## Checking Out the Code |
Aurimas Liutikas | dad8369 | 2017-02-10 09:37:37 -0800 | [diff] [blame] | 12 | **NOTE: You will need to use Linux or Mac OS. Building under Windows is not currently supported.** |
| 13 | |
Aurimas Liutikas | e2fa386 | 2017-02-01 13:24:41 -0800 | [diff] [blame] | 14 | Follow the [“Downloading the Source”](https://source.android.com/source/downloading.html) guide to install and set up `repo` tool, but instead of running the listed `repo` commands to initialize the repository, run the folowing: |
| 15 | |
| 16 | repo init -u https://android.googlesource.com/platform/manifest -b ub-supportlib-master |
| 17 | |
Aurimas Liutikas | 09c39b4 | 2017-02-10 11:07:27 -0800 | [diff] [blame] | 18 | Now your repository is set to pull only what you need for building and running support library. Download the code (and grab a coffee while we pull down 7GB): |
Aurimas Liutikas | e2fa386 | 2017-02-01 13:24:41 -0800 | [diff] [blame] | 19 | |
| 20 | repo sync -j8 -c |
| 21 | |
| 22 | You will use this command to sync your checkout in the future - it’s similar to `git fetch` |
| 23 | |
| 24 | |
| 25 | ## Using Android Studio |
| 26 | Open `path/to/checkout/frameworks/support/` in Android Studio. Now you're ready edit, run, and test! |
| 27 | |
| 28 | If you get “Unregistered VCS root detected” click “Add root” to enable git integration for Android Studio. |
| 29 | |
| 30 | If you see any warnings (red underlines) run `Build > Clean Project`. |
| 31 | |
Jeff Gaston | e3be4aa | 2018-01-17 19:11:11 -0500 | [diff] [blame] | 32 | ## Builds |
| 33 | ### Full Build (Optional) |
Aurimas Liutikas | e2fa386 | 2017-02-01 13:24:41 -0800 | [diff] [blame] | 34 | You can do most of your work from Android Studio, however you can also build the full support library from command line: |
| 35 | |
| 36 | cd path/to/checkout/frameworks/support/ |
| 37 | ./gradlew createArchive |
| 38 | |
Jeff Gaston | e3be4aa | 2018-01-17 19:11:11 -0500 | [diff] [blame] | 39 | ### Building Support Library as part of your App build |
| 40 | If you intend to repeatedly make changes to Support Library and to wish to see |
| 41 | the results in your app, and you don't want to have to repeatedly build them as |
| 42 | separate Gradle projects, you can |
| 43 | [configure your app build to build Support Library too](adding-support-library-as-included-build.md) |
| 44 | |
Aurimas Liutikas | e2fa386 | 2017-02-01 13:24:41 -0800 | [diff] [blame] | 45 | ## Running Tests |
| 46 | |
| 47 | ### Single Test Class or Method |
| 48 | 1. Open the desired test file in Android Studio. |
| 49 | 2. Right-click on a test class or @Test method name and select `Run FooBarTest` |
| 50 | |
| 51 | ### Full Test Package |
| 52 | 1. In the project side panel open the desired module. |
| 53 | 2. Find the directory with the tests |
| 54 | 3. Right-click on the directory and select `Run android.support.foobar` |
| 55 | |
| 56 | ## Running Sample Apps |
| 57 | Support library has a set of Android applications that exercise support library code. These applications can be useful when you want to debug a real running application, or reproduce a problem interactively, before writing test code. |
| 58 | |
| 59 | These applications are named support-\*-demos (e.g. support-4v-demos or support-leanback-demos. You can run them by clicking `Run > Run ...` and choosing the desired application. |
| 60 | |
| 61 | ## Making a change |
| 62 | cd path/to/checkout/frameworks/support/ |
| 63 | repo start my_branch_name . |
| 64 | (make needed modifications) |
| 65 | git commit -a |
| 66 | repo upload --current-branch . |
| 67 | |
| 68 | If you see the following prompt, choose `always`: |
| 69 | |
| 70 | Run hook scripts from https://android.googlesource.com/platform/manifest (yes/always/NO)? |
| 71 | |
| 72 | ## Getting reviewed |
| 73 | * After you run repo upload, open [r.android.com](http://r.android.com) |
| 74 | * Sign in into your account (or create one if you do not have one yet) |
| 75 | * Add an appropriate reviewer (use git log to find who did most modifications on the file you are fixing) |
| 76 | |