boklm pushed to branch main at The Tor Project / Applications / tor-browser-build Commits: 7c8ce499 by Nicolas Vigier at 2026-02-09T19:00:44+01:00 Bug 28595: Remove the need to update var/gradle_dependencies_version - - - - - 12 changed files: - doc/how-to-update-gradle-dependencies-list.md - projects/application-services/config - projects/application-services/gradle-dependencies-list.txt - projects/geckoview/config - projects/geckoview/gradle-dependencies-list.txt - projects/glean/config - projects/glean/gradle-dependencies-list.txt - projects/oss-licenses-plugin/config - projects/oss-licenses-plugin/gradle-dependencies-list.txt - rbm - rbm.conf - tools/fix_gradle_deps.py Changes: ===================================== doc/how-to-update-gradle-dependencies-list.md ===================================== @@ -13,8 +13,6 @@ 5. Extract it. 6. Move the `gradle-dependencies-list.txt` you just extracted to `projects/<project name>/`. -7. Bump `var/gradle_dependencies_version`. - The preferred format is `<project version>-<list version>`. Theoretically, it should be also possible to set `generate_gradle_dependencies_list: 1` in `rbm.local.conf`, run a full build and @@ -68,13 +66,8 @@ from the output artifact. New Android projects should be setup to do this. -> **Important**: dependencies are keyed and cached. So, after updating the list, -> you must also bump `var/gradle_dependencies_version`. - -This used to be an integer, but to avoid clashes between the main and -maintenance branches, we decided to switch to a -`<project version>-<list version>` format. -Usually, the list version will be `1`. +Dependencies are keyed and cached. The key is a checksum of the +gradle-dependencies-list.txt file. ## Consuming the list @@ -86,6 +79,8 @@ hashes of all the other artifacts. You can wire it in your project with code that looks like this: ```yaml +- filename: gradle-dependencies-list.txt + name: gradle-dependencies-list - filename: 'gradle-dependencies-[% c("var/gradle_dependencies_version") %]' name: gradle-dependencies exec: '[% INCLUDE "fetch-gradle-dependencies" %]' ===================================== projects/application-services/config ===================================== @@ -20,8 +20,6 @@ container: var: build_number: 1 - # This should be updated when the list of gradle dependencies is changed. - gradle_dependencies_version: 147.0-1 gradle_version: 8.14.3 nss_version: '3.118.1' nspr_version: '4.37' @@ -73,6 +71,8 @@ steps: - URL: 'https://ftp.mozilla.org/pub/security/nss/releases/NSS_[% c("var/nss_version") | replace("\\.", "_") %]_RTM/src/nss-[% c("var/nss_version") %]-with-nspr-[% c("var/nspr_version") %].tar.gz' name: nss sha256sum: 9e1f7da9f4e5e3bdfd73f7dc2c618d6125a12354aadaeedbb35af3699bc03e15 + - filename: gradle-dependencies-list.txt + name: gradle-dependencies-list - filename: 'gradle-dependencies-[% c("var/gradle_dependencies_version") %]' name: gradle-dependencies exec: '[% INCLUDE "fetch-gradle-dependencies" %]' ===================================== projects/application-services/gradle-dependencies-list.txt ===================================== @@ -1,4 +1,3 @@ -# Don't forget to update var/gradle_dependencies_version when modifying this file sha256sum | url 6bd4c7c7476f8260cd3bdbb81183583e93fc9f790c27dea7dc314181cbf87aa0 | https://dl.google.com/dl/android/maven2/androidx/annotation/annotation-exper... 2ac2f7106e12f263425b4a4dfc80989447fb895675fe902d86759aa74fd12b7d | https://dl.google.com/dl/android/maven2/androidx/annotation/annotation-exper... ===================================== projects/geckoview/config ===================================== @@ -36,9 +36,6 @@ var: - python3-zstandard - pkg-config - openjdk-17-jdk-headless - # this should be updated when the list of gradle dependencies is changed - # see doc/how-to-create-gradle-dependencies-list.txt - gradle_dependencies_version: 147-1 gradle_version: 8.14.3 glean_parser: 14.0.1 # python/mozboot/mozboot/android.py @@ -181,6 +178,8 @@ input_files: enable: '[% c("var/rlbox") %]' - project: application-services name: application-services + - filename: gradle-dependencies-list.txt + name: gradle-dependencies-list - filename: 'gradle-dependencies-[% c("var/gradle_dependencies_version") %]' name: gradle-dependencies exec: '[% INCLUDE "fetch-gradle-dependencies" %]' ===================================== projects/geckoview/gradle-dependencies-list.txt ===================================== @@ -1,4 +1,3 @@ -# Don't forget to update var/gradle_dependencies_version when modifying this file sha256sum | url 1ed13a50edbb885962751e1bcb5b8a4207a20cb780ea248ffa653aab3fb10fe9 | https://maven.google.com/androidx/activity/activity-compose/1.10.1/activity-... e64db6b7126fb512394bc3cf4332a38828009daa8dd56ecbe6c0c7300b2127f5 | https://maven.google.com/androidx/activity/activity-compose/1.10.1/activity-... ===================================== projects/glean/config ===================================== @@ -10,8 +10,6 @@ container: build: '[% !c("var/generate_gradle_dependencies_list") %]' var: - # This should be updated when the list of gradle dependencies is changed. - gradle_dependencies_version: 66.1.1-1 gradle_version: 8.14.3 # Uncomment this to run an online build to grab an updated # gradle-dependencies-list.txt. @@ -49,6 +47,8 @@ steps: pkg_type: cargo_vendor norec: sha256sum: 417e8e09a7fbe3205827dfa518bfc4a7a08f1869e6d4fd9edf5d8f3f1f48061a + - filename: gradle-dependencies-list.txt + name: gradle-dependencies-list - filename: 'gradle-dependencies-[% c("var/gradle_dependencies_version") %]' name: gradle-dependencies exec: '[% INCLUDE "fetch-gradle-dependencies" %]' ===================================== projects/glean/gradle-dependencies-list.txt ===================================== @@ -1,4 +1,3 @@ -# Don't forget to update var/gradle_dependencies_version when modifying this file sha256sum | url 6bd4c7c7476f8260cd3bdbb81183583e93fc9f790c27dea7dc314181cbf87aa0 | https://dl.google.com/dl/android/maven2/androidx/annotation/annotation-exper... 2ac2f7106e12f263425b4a4dfc80989447fb895675fe902d86759aa74fd12b7d | https://dl.google.com/dl/android/maven2/androidx/annotation/annotation-exper... ===================================== projects/oss-licenses-plugin/config ===================================== @@ -4,8 +4,6 @@ git_hash: 185216f8268f8b1f8bfe2377ed3e57aa73b1121c # oss-licenses-plugin-v0.10.7 git_url: https://github.com/google/play-services-plugins.git var: - # This should be updated when the list of gradle dependencies is changed. - gradle_dependencies_version: 2 gradle_version: 8.14.3 container: @@ -15,6 +13,8 @@ input_files: - project: container-image - project: gradle name: gradle + - filename: gradle-dependencies-list.txt + name: gradle-dependencies-list - filename: 'gradle-dependencies-[% c("var/gradle_dependencies_version") %]' name: gradle-dependencies exec: '[% INCLUDE "fetch-gradle-dependencies" %]' ===================================== projects/oss-licenses-plugin/gradle-dependencies-list.txt ===================================== @@ -1,5 +1,4 @@ # On how to update dependencies see doc/how-to-create-gradle-dependencies-list.txt -# Don't forget to update var/gradle_dependencies_version when modifying this file sha256sum | url 33c839e4236eabde3896c154d120d651e72064f393e456297c92041d00cc058e | https://dl.google.com/dl/android/maven2/com/android/tools/build/apksig/7.1.0... 67a8f20626121a8e4f48fc63a392c0459173a9992eb35cc9c9c3ec82b882862c | https://dl.google.com/dl/android/maven2/com/android/tools/build/apksig/7.1.0... ===================================== rbm ===================================== @@ -1 +1 @@ -Subproject commit 36608a50ccf8feedcd03eb846c606718f5ef2d6b +Subproject commit 4c881eb45291e323dcf4e4f1ae7eabed045ea8a3 ===================================== rbm.conf ===================================== @@ -155,7 +155,7 @@ var: input_files: [% c("input_files_id") %] build: [% SET step = c("step") -%] - [% c(step, { filename => 'f', output_dir => '/out', norec => {} }) %] + [% c(step, { filename => 'f', getting_id => 1, norec => {} }) %] display_name: '[% c("var/Project_Name") %] [% c("var/channel") FILTER ucfirst %]' exe_name: firefox @@ -300,6 +300,8 @@ var: # be enabled in rbm.local.conf. dev_artifacts: 0 + gradle_dependencies_version: '[% c("input_files_ids_by_name/gradle-dependencies-list").split(":").1.substr(0, 15) %]' + targets: notarget: linux-x86_64 noint: ===================================== tools/fix_gradle_deps.py ===================================== @@ -14,13 +14,12 @@ import requests # See https://gitlab.torproject.org/tpo/tpa/team/-/issues/41654. requests.packages.urllib3.util.connection.HAS_IPV6 = False -if len(sys.argv) < 3: +if len(sys.argv) < 2: print( - f"Usage: {sys.argv[0]} project-name gradle-dep-num" + f"Usage: {sys.argv[0]} project-name" ) sys.exit(1) target = sys.argv[1] -target_ver = sys.argv[2] # We assume the script is in tor-browser-build/tools tbbuild = Path(__file__).parent.parent @@ -38,14 +37,18 @@ for p in java_projects: parser = re.compile(r"^([0-9a-fA-F]+)\s+\|\s+(\S+)\s*$") pairs = [] +h = hashlib.sha256() with open(tbbuild / "projects" / target / "gradle-dependencies-list.txt") as f: for line in f.readlines(): + h.update(line.encode("utf-8")) line = line.strip() if line[0] == '#' or line == 'sha256sum | url': continue m = parser.match(line) pairs.append((m.group(2), m.group(1))) +target_ver = h.hexdigest()[:15] + dest_dir = tbbuild / "out" / target / f"gradle-dependencies-{target_ver}" dest_dir.mkdir(parents=True, exist_ok=True) os.chdir(str(dest_dir)) View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/7c... -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/7c... You're receiving this email because of your account on gitlab.torproject.org.