Source code
Revision control
Copy as Markdown
Other Tools
# apilint release process
To release a new version of [apilint](https://github.com/mozilla-mobile/gradle-apilint), do the following:
- Create a commit titled "Branch X.Y" and modify the files `apilint/build.gradle` and `apilint/Config.java` accordingly. See for example [Branch 0.5](https://github.com/mozilla-mobile/gradle-apilint/commit/93a79ffddb8587ad018be67a361eb2a6ae777c63). Note that it's not necessary to modify `apilint/Config.java` if there aren't any `apidoc` changes.
- Create a git tag with the branch version
```bash
git tag X.Y
```
- Run tests locally by running
```bash
./gradlew build
```
- Publish new version to local repository
```bash
./gradlew publishToMavenLocal
```
- Modify `mozilla-central` locally to test `apilint` with the new version, add `mavenLocal()` to every `repositories {}` block inside the root `build.gradle`, e.g.
```diff
diff --git a/build.gradle b/build.gradle
index 813ba09aa3d4b..753fdb8d958a6 100644
--- a/build.gradle
+++ b/build.gradle
@@ -60,6 +60,7 @@ allprojects {
}
repositories {
+ mavenLocal()
gradle.mozconfig.substs.GRADLE_MAVEN_REPOSITORIES.each { repository ->
maven {
url repository
@@ -100,6 +101,7 @@ buildDir "${topobjdir}/gradle/build"
buildscript {
repositories {
+ mavenLocal()
gradle.mozconfig.substs.GRADLE_MAVEN_REPOSITORIES.each { repository ->
maven {
url repository
@@ -113,7 +115,7 @@ buildscript {
ext.kotlin_version = '1.5.31'
dependencies {
- classpath 'org.mozilla.apilint:apilint:0.5.2'
+ classpath 'org.mozilla.apilint:apilint:0.X.Y'
classpath 'com.android.tools.build:gradle:7.0.3'
classpath 'com.getkeepsafe.dexcount:dexcount-gradle-plugin:0.8.2'
classpath 'org.apache.commons:commons-exec:1.3'
```
- Test integration running `api-lint`, this should always pass with no `api.txt` modifications needed (there could be exceptions, but should be intentional).
```bash
./mach lint -l android-api-lint
```
- Push the tag to the remote repository (note, the branch commit is `not` pushed to the main branch).
```bash
git push -u origin X.Y
```
- Wait until github automation finishes successfully.
- (optional, if there are any `apidoc` changes) ask the Releng team to publish a new `apidoc` version, the bundle will be present under the github artifacts, e.g. see `maven.zip` in [releases/tag/0.5](https://github.com/mozilla-mobile/gradle-apilint/releases/tag/0.5). See also [Bug 1727585](https://bugzilla.mozilla.org/show_bug.cgi?id=1727585).
- Add the `plugins.gradle.org` keys to your `.gradle` folder, see [publishing_gradle_plugins.html](https://docs.gradle.org/current/userguide/publishing_gradle_plugins.html).
- Publish plugin by running
```bash
./gradlew apilint:publishPlugins
```
- Finally, update `mozilla-central` to use the new version, e.g. see [this patch](https://hg.mozilla.org/mozilla-central/rev/0f746422db0e9fc6b70488bdb7114f08973191a0).