Skip to content

Commit 0be1e96

Browse files
fix(hermetic-build): use public maven metadata for latest version inference (#3853)
Currently, the `get_latest_released_version()` function returns `2.59.0` for gapic-generator-java. This is not correct and is due to an ongoing issue with Maven. This PR uses the alternative `maven-metadata.xml` files instead, which contains a `metadata/versioning/latest` entry always pointing to the latest version. ```bash [hi on] diegomarquezp:~$ function get_latest_released_version() { local group_id=$1 local artifact_id=$2 group_id_url_path="$(sed 's|\.|/|g' <<< "${group_id}")" url="https://repo1.maven.org/maven2/${group_id_url_path}/${artifact_id}/maven-metadata.xml" xml_content=$(curl -s --fail "${url}") latest=$(xmllint --xpath 'metadata/versioning/latest/text()' - <<< "${xml_content}") if [[ -z "${latest}" ]]; then echo "The latest version of ${group_id}:${artifact_id} is empty." echo "The returned json from maven.org is invalid: ${json_content}" exit 1 else echo "${latest}" fi } [hi on] diegomarquezp:~$ get_latest_released_version com.google.api gapic-generator-java 2.60.0 ```
1 parent 44355b2 commit 0be1e96

File tree

2 files changed

+7
-2
lines changed

2 files changed

+7
-2
lines changed

hermetic_build/library_generation/owlbot/templates/java_library/.github/scripts/update_generation_config.sh

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,10 @@ set -e
1515
function get_latest_released_version() {
1616
local group_id=$1
1717
local artifact_id=$2
18-
json_content=$(curl -s "https://search.maven.org/solrsearch/select?q=g:${group_id}+AND+a:${artifact_id}&core=gav&rows=500&wt=json")
19-
latest=$(jq -r '.response.docs[] | select(.v | test("^[0-9]+(\\.[0-9]+)*$")) | .v' <<< "${json_content}" | sort -V | tail -n 1)
18+
group_id_url_path="$(sed 's|\.|/|g' <<< "${group_id}")"
19+
url="https://repo1.maven.org/maven2/${group_id_url_path}/${artifact_id}/maven-metadata.xml"
20+
xml_content=$(curl -s --fail "${url}")
21+
latest=$(xmllint --xpath 'metadata/versioning/latest/text()' - <<< "${xml_content}")
2022
if [[ -z "${latest}" ]]; then
2123
echo "The latest version of ${group_id}:${artifact_id} is empty."
2224
echo "The returned json from maven.org is invalid: ${json_content}"

hermetic_build/library_generation/owlbot/templates/java_library/.github/workflows/update_generation_config.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,9 @@ jobs:
3030
with:
3131
fetch-depth: 0
3232
token: ${{ secrets.CLOUD_JAVA_BOT_TOKEN }}
33+
- name: Install Dependencies
34+
shell: bash
35+
run: sudo apt-get update && sudo apt-get install -y libxml2-utils
3336
- name: Update params in generation config to latest
3437
shell: bash
3538
run: |

0 commit comments

Comments
 (0)