Closed Bug 1443822 Opened 6 years ago Closed 6 years ago

Use timestamp or similar for AAR version string in Nightly builds

Categories

(GeckoView :: General, enhancement, P1)

enhancement

Tracking

(firefox61 fixed)

RESOLVED FIXED
mozilla61
Tracking Status
firefox61 --- fixed

People

(Reporter: snorp, Assigned: snorp)

References

Details

Attachments

(1 file)

Right now we use the Gecko version string, which is something like "60.0a1". This isn't very useful for Nightly builds. We should probably just use epoch or something like that which is guaranteed to be increasing.
Nick, do you have an opinion here?
Flags: needinfo?(nalexander)
(In reply to James Willcox (:snorp) (jwillcox@mozilla.com) from comment #1)
> Nick, do you have an opinion here?

Do you mean epoch time, like BUILD_ID?  Or do you mean an epoch counter?

The former isn't guaranteed to be unique, but I think that's fine for now.  The latter is pretty hard to do in the current TC environment, since tasks can be repeated and its not easy to coordinate a counter across tasks.

I think we're stuck with x.y.z from Maven -- additional symbols are supported, but turn the version comparisons into string comparisons, if I'm reading resources like https://docs.oracle.com/middleware/1212/core/MAVEN/maven_version.htm#MAVEN8855 correctly.

I think release and beta have much better defined versions, so geckoview-release:59.0.2 and geckoview-beta:60.1.1 are good.  Nightly will never have a "minor patch version" -- it's always x.0a1.  So perhaps we could go with geckoview-nightly:x.0.$BUILD_ID?

I think that allows consumers to say they want the latest geckoview-$PRODUCT, or ask for the latest Nightly from the current cycle (geckoview-nightly), or from a fixed cycle (geckoview-nightly:59.0+), or from a fixed day (geckoview-nightly:59.0.$BUILD_ID).

Perhaps sebastian would care to counter with experience from Klar?
Flags: needinfo?(nalexander) → needinfo?(s.kaspari)
Yeah, I think 60.0.$BUILD_ID would be good. I'll implement this unless Sebastian says it's bad for some reason...
Comment on attachment 8959189 [details]
Bug 1443822 - Use BUILD_ID in version string for non-release/beta GeckoView

https://reviewboard.mozilla.org/r/228060/#review233942

Yep, invert the conditional.  Otherwise, fine by me.  r- just so that I look at this once more, 'cuz I never get channel selection things correct the first time.  Can I get a try build with regular builds and a Nightly (N), please?  (./mach try fuzzy --full --no-artifact "'build-android | 'robocop | l10n-android117" should trigger an N as part of Android l10n stuff.)

This wants uplifting too, so we can shake out bugs on Beta.

::: mobile/android/geckoview/build.gradle:9
(Diff revision 1)
>  apply plugin: 'kotlin-android'
>  
>  apply from: "${topsrcdir}/mobile/android/gradle/product_flavors.gradle"
>  
> +
> +def getAppVersionNoMilestone() {

nit: "WithoutMilestone".

Can I get an explanation, like "// Turn "60.0a1" into "60.0".  Also, don't we want `replaceLast`, if it exists?

::: mobile/android/geckoview/build.gradle:41
(Diff revision 1)
>      }
>  
>      return code;
>  }
>  
> +def isNightlyOrLocal() {

`RELEASE_OR_BETA` is more trustworthy -- I think you want to invert the conditional.

::: mobile/android/geckoview/build.gradle:73
(Diff revision 1)
>          buildConfigField 'String', "MOZ_APP_BASENAME", "\"${mozconfig.substs.MOZ_APP_BASENAME}\"";
>  
>          // For the benefit of future archaeologists:
>          // GRE_BUILDID is exactly the same as MOZ_APP_BUILDID unless you're running
>          // on XULRunner, which is never the case on Android.
>          // 

nit: lift the comment to the helper, please.
Attachment #8959189 - Flags: review?(nalexander) → review-
Assignee: nobody → snorp
Priority: -- → P1
Comment on attachment 8959189 [details]
Bug 1443822 - Use BUILD_ID in version string for non-release/beta GeckoView

https://reviewboard.mozilla.org/r/228060/#review234320

Just nits.  Thanks for taking this on.  If it's green and happy in try, we're good to go.

::: mobile/android/geckoview/build.gradle:46
(Diff revision 2)
>  
> +def isReleaseOrBeta() {
> +    return mozconfig.substs.RELEASE_OR_BETA == 'true'
> +}
> +
> +// For the benefit of future archaeologists:

The initial part stays with the field.  The last line is relevant to the `build.h` part.

::: mobile/android/geckoview/build.gradle:239
(Diff revision 2)
>  uploadArchives {
>      repositories.mavenDeployer {
>          pom.groupId = 'org.mozilla'
>          pom.artifactId = "geckoview-${mozconfig.substs.MOZ_UPDATE_CHANNEL}-${mozconfig.substs.ANDROID_CPU_ARCH}"
> +
> +        if (isReleaseOrBeta()) {

This is only used once, so let's help our grep and just use `if (mozconfig.substs.RELEASE_OR_BETA) ...`.
Attachment #8959189 - Flags: review?(nalexander) → review+
(In reply to James Willcox (:snorp) (jwillcox@mozilla.com) from comment #7)
> https://treeherder.mozilla.org/#/
> jobs?repo=try&revision=09b633b1fc8132bbcc629f9146c67b466e81aa1f

I see files like

https://queue.taskcluster.net/v1/task/Pvlhp4UeQwWQG1kSS6u4qA/runs/0/artifacts/public/android/maven/org/mozilla/geckoview-nightly-try-armeabi-v7a/61.0.20180315190140/geckoview-nightly-try-armeabi-v7a-61.0.20180315190140.aar

which looks OK to me.  And the POM is:

<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.mozilla</groupId>
  <artifactId>geckoview-nightly-try-armeabi-v7a</artifactId>
  <version>61.0.20180315190140</version>
  <packaging>aar</packaging>
  <licenses>
    <license>
      <name>The Mozilla Public License, v. 2.0</name>
      <url>http://mozilla.org/MPL/2.0/</url>
      <distribution>repo</distribution>
    </license>
  </licenses>
</project>

which is looking healthy too.
Pushed by jwillcox@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/cede00a1cb39
Use BUILD_ID in version string for non-release/beta GeckoView r=nalexander
https://hg.mozilla.org/mozilla-central/rev/cede00a1cb39
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 61
Flags: needinfo?(s.kaspari)
Product: Firefox for Android → GeckoView
Target Milestone: Firefox 61 → mozilla61
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: