blob: 16dca297934e8c81530187f1eff9fd4f54785f77 [file] [log] [blame] [view]
# FAQ
[TOC]
## General FAQ
### What is AndroidX?
The Android Extension (AndroidX) Libraries provide functionality that extends
the capabilities of the Android platform. These libraries, which ship separately
from the Android OS, focus on improving the experience of developing apps
through broad OS- and device-level compatibility, high-level abstractions to
simplify and unify platform features, and other new features that target
developer pain points. To find out more about AndroidX, see the public
documentation on developer.android.com.
### Why did we move to AndroidX?
Please read our
[blog post](https://android-developers.googleblog.com/2018/05/hello-world-androidx.html)
about our migration to AndroidX.
### What happened to the Support Library?
As part of the Jetpack effort to improve developer experience on Android, the
Support Library team undertook a massive refactoring project. Over the course of
2017 and 2018, we streamlined and enforced consistency in our packaging,
developed new policies around vesioning and releasing, and developed tools to
make it easy for developers to migrate.
### Will there be any more updates to Support Library?
No, Revision 28.0.0 of the Support Library, which launched as stable in
September 2018, was the last feature release in the `android.support` package.
There will be no further releases under Support Library packaging and they
should be considered deprecated.
### How are `androidx` and AndroidX related to Jetpack?
They are all the same thing! In a sentence, `androidx` is the packaging and
AndroidX is the development workflow for all components in Jetpack. Jetpack is
the external branding for libraries within `androidx`.
In more detail, Jetpack is the external branding for the set of components,
tools, and guidance that improve the developer experience on Android. AndroidX
is the open-source development project that defines the workflow, versioning,
and release policies for ALL libraries included in Jetpack. All libraries within
the `androidx` Java package follow a consistent set of API design guidelines,
conform to SemVer and alpha/beta revision cycles, and use the Android issue
tracker for bugs and feature requests.
### What library versions have been officially released?
You can see all publicly released versions on the interactive
[Google Maven page](https://dl.google.com/dl/android/maven2/index.html).
### How do I jetify something?
The Standalone Jetifier documentation and download link can be found
[here](https://developer.android.com/studio/command-line/jetifier), under the
Android Studio DAC.
### How do I update my library version?
See the steps specified on the version page
[here](versioning.md#how-to-update-your-version).
## Version FAQ {#version}
### How are changes in dependency versions propagated?
If you declare `api(project(":depGroupId"))` in your `build.gradle`, then the
version change will occur automatically. While convienent, be intentional when
doing so because this causes your library to have a direct dependency on the
version in development.
If you declare `api("androidx.depGroupId:depArtifactId:1.0.0")`, then the
version change will need to be done manually and intentionally. This is
considered best practice.
### How does a library begin work on a new Minor version?
Set the version to the next minor version, as an alpha.
### How does a library ship an API reference documentation bugfix?
Developers obtain API reference documentation from two sources -- HTML docs on
[d.android.com](https://d.android.com), which are generated from library release
artifacts, and Javadoc from source JARs on Google Maven.
As a result, documentation bug fixes should be held with other fixes until they
can go through a normal release cycle. Critical (e.g. P0) documentation issues
**may** result in a [bugfix](loaf.md#bugfix) release independent of other fixes.
### When does an alpha ship?
For public releases, an alpha ships when the library lead believes it is ready.
Generally, these occur during the batched bi-weekly (every 2 weeks) release
because all tip-of-tree dependencies will need to be released too.
### Are there restrictions on when or how often an alpha can ship?
Nope.
### Can alpha work (ex. for the next Minor release) occur in the primary development branch during beta API lockdown?
No. This is by design. Focus should be spent on improving the Beta version and
adding documentation/samples/blog posts for usage!
### Is there an API freeze window between alpha and beta while API surface is reviewed and tests are added, but before the beta is released?
Yes. If any new APIs are added in this window, the beta release will be blocked
until API review is complete and addressed.
### How often can a beta release?
As often as needed, however, releases outside of the bi-weekly (every 2 weeks)
release will need to get approval from the TPM (nickanthony@).
### What are the requirements for moving from alpha to beta?
See the [beta section of Versioning guidelines](versioning.md?#beta) for
pre-release cycle transition requirements.
### What are the requirements for a beta launch?
See the [beta section of Versioning guidelines](versioning.md?#beta) for
pre-release cycle transition requirements.