From 482f5fa116c205fe40eafa762a48a4c4a2f256e3 Mon Sep 17 00:00:00 2001 From: lubomsky <87763712+lubomsky@users.noreply.github.com> Date: Fri, 14 Mar 2025 12:42:54 +0100 Subject: [PATCH 1/2] chore: create UpdatePlaywrightVersion.java --- .../tools/UpdatePlaywrightVersion.java | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 tools/update-docs-version/src/main/java/com/microsoft/playwright/tools/UpdatePlaywrightVersion.java diff --git a/tools/update-docs-version/src/main/java/com/microsoft/playwright/tools/UpdatePlaywrightVersion.java b/tools/update-docs-version/src/main/java/com/microsoft/playwright/tools/UpdatePlaywrightVersion.java new file mode 100644 index 000000000..79f733f2b --- /dev/null +++ b/tools/update-docs-version/src/main/java/com/microsoft/playwright/tools/UpdatePlaywrightVersion.java @@ -0,0 +1,53 @@ +package com.microsoft.playwright.tools; + +import java.io.FileWriter; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.NoSuchElementException; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import static java.nio.charset.StandardCharsets.UTF_8; + +public class UpdatePlaywrightVersion { + private static final Pattern VERSION_PATTERN = Pattern.compile( + "com.microsoft.playwright\\s*parent-pom\\s*(\\d+\\.\\d+\\.\\d+)(?:-SNAPSHOT)?" + ); + private static final Pattern MAVEN_PATTERN = Pattern.compile( + "(\\s*com.microsoft.playwright\\s*playwright\\s*)\\d+\\.\\d+\\.\\d+(\\s*)" + ); + private static final Pattern GRADLE_PATTERN = Pattern.compile( + "(implementation group: 'com.microsoft.playwright', name: 'playwright', version: )'\\d+\\.\\d+\\.\\d+'" + ); + + public static void main(String[] args) throws Exception { + Path pomPath = Paths.get("pom.xml"); + String pomContent = Files.readString(pomPath, UTF_8); + + Matcher versionMatcher = VERSION_PATTERN.matcher(pomContent); + if (!versionMatcher.find()) { + throw new NoSuchElementException("Project version was not found"); + } + String version = versionMatcher.group(1); + + Path readmePath = Paths.get("README.md"); + String readme = Files.readString(readmePath, UTF_8); + + String updatedReadme = updateDependencies(readme, version); + + try (FileWriter writer = new FileWriter(readmePath.toFile(), UTF_8)) { + writer.write(updatedReadme); + } + } + + private static String updateDependencies(String readme, String version) { + readme = MAVEN_PATTERN.matcher(readme) + .replaceAll("$1" + version + "$2"); + + readme = GRADLE_PATTERN.matcher(readme) + .replaceAll("$1'" + version + "'"); + + return readme; + } +} From 5b7900d58d88498209ac87676baf52b50a67e850 Mon Sep 17 00:00:00 2001 From: lubomsky <87763712+lubomsky@users.noreply.github.com> Date: Fri, 14 Mar 2025 12:44:27 +0100 Subject: [PATCH 2/2] chore: update update_readme.sh Add UpdatePlaywrightVersion.java execution to update playwright dependencies in README.md --- scripts/update_readme.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/scripts/update_readme.sh b/scripts/update_readme.sh index 11e670191..b941607a5 100755 --- a/scripts/update_readme.sh +++ b/scripts/update_readme.sh @@ -15,3 +15,6 @@ mvn install --no-transfer-progress -D skipTests echo "Updating browser versions in README.md" mvn compile exec:java --f ./tools/update-docs-version -D exec.mainClass=com.microsoft.playwright.tools.UpdateBrowserVersions + +echo "Updating Playwright dependency version in README.md" +mvn compile exec:java --f ./tools/update-docs-version -D exec.mainClass=com.microsoft.playwright.tools.UpdatePlaywrightVersion