Skip to content

Commit d65ad0a

Browse files
authored
docs: Update dependency versions in documentation dynamically (#1392)
2 parents d7d06b7 + 5376899 commit d65ad0a

File tree

3 files changed

+103
-36
lines changed

3 files changed

+103
-36
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ We are testing against the following databases:
5151

5252
| Database | version | status |
5353
|--------------------|---------:|:------:|
54-
| H2 Database | 2.3.x | stable |
54+
| H2 Database | 2.3.232 | stable |
5555
| MySQL v5 | 5.7 | stable |
5656
| MySQL v8 | 8.0.36 | stable |
5757
| Oracle Database XE | 21c | stable |

build.gradle.kts

Lines changed: 97 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -23,46 +23,109 @@ val isReleaseVersion = !version.toString().endsWith("SNAPSHOT")
2323
// See https://github.com/gradle/gradle/issues/16708
2424
val catalog = libs
2525

26-
fun replaceVersionInArtifact(ver: String) {
27-
ant.withGroovyBuilder {
28-
"replaceregexp"(
29-
"match" to """(private static final String VERSION = ")[^"]*(")""",
30-
"replace" to "\\1${ver}\\2",
31-
"encoding" to encoding,
32-
"flags" to "g"
33-
) {
34-
"fileset"("dir" to ".") {
35-
"include"("name" to "**/Artifact.java")
26+
data class Replacement(
27+
val match: String,
28+
val replace: String,
29+
val dir: String = ".",
30+
val file: String,
31+
)
32+
33+
fun replace(replacements: List<Replacement>) {
34+
replacements.forEach { r ->
35+
ant.withGroovyBuilder {
36+
"replaceregexp"(
37+
buildMap {
38+
put("match", r.match)
39+
put("replace", r.replace)
40+
put("encoding", encoding)
41+
put("flags", "g")
42+
}
43+
) {
44+
"fileset"("dir" to r.dir) {
45+
"include"("name" to r.file)
46+
}
3647
}
3748
}
3849
}
3950
}
4051

52+
fun replaceVersionInArtifact(ver: String) {
53+
val replacement = Replacement(
54+
"""(private static final String VERSION = ")[^"]*(")""",
55+
"\\1${ver}\\2",
56+
file = "**/Artifact.java",
57+
)
58+
replace(listOf(replacement))
59+
}
60+
4161
fun replaceVersionInDocs(ver: String) {
42-
ant.withGroovyBuilder {
43-
"replaceregexp"(
44-
"match" to """("org.seasar.doma:doma-(core|kotlin|processor|slf4j|template)?:)[^"]*(")""",
45-
"replace" to "\\1${ver}\\3",
46-
"encoding" to encoding,
47-
"flags" to "g"
48-
) {
49-
"fileset"("dir" to ".") {
50-
"include"("name" to "README.md")
51-
}
52-
}
53-
}
54-
ant.withGroovyBuilder {
55-
"replaceregexp"(
56-
"match" to """(<doma.version>)[^<]*(</doma.version>)""",
57-
"replace" to "\\1${ver}\\2",
58-
"encoding" to encoding,
59-
"flags" to "g"
60-
) {
61-
"fileset"("dir" to ".") {
62-
"include"("name" to "README.md")
63-
}
64-
}
65-
}
62+
val replacements = listOf(
63+
// README.md replacements
64+
Replacement(
65+
"""("org.seasar.doma:doma-(core|kotlin|processor|slf4j|template)?:)[^"]*(")""",
66+
"\\1${ver}\\3",
67+
file = "README.md",
68+
),
69+
Replacement(
70+
"""(<doma.version>)[^<]*(</doma.version>)""",
71+
"\\1${ver}\\2",
72+
file = "README.md",
73+
),
74+
Replacement(
75+
"""(id\("org.domaframework.doma.compile"\) version ")[^"]*(")""",
76+
"\\1${catalog.plugins.doma.compile.get().version}\\2",
77+
file = "README.md",
78+
),
79+
Replacement(
80+
"(\\|\\s*H2 Database\\s*\\|\\s*)[^\\s]*(\\s*\\|)",
81+
"\\1${catalog.jdbc.h2.get().version}\\2",
82+
file = "README.md",
83+
),
84+
Replacement(
85+
"(\\|\\s*SQLite\\s*\\|\\s*)[^\\s]*(\\s*\\|)",
86+
"\\1${catalog.jdbc.sqlite.get().version}\\2",
87+
file = "README.md",
88+
),
89+
90+
// conf.py replacements
91+
Replacement(
92+
"('doma_version'\\s*:\\s*')[^']*(')",
93+
"\\1${ver}\\2",
94+
dir = "docs",
95+
file = "conf.py",
96+
),
97+
Replacement(
98+
"('doma_compile_version'\\s*:\\s*')[^']*(')",
99+
"\\1${catalog.plugins.doma.compile.get().version}\\2",
100+
dir = "docs",
101+
file = "conf.py",
102+
),
103+
Replacement(
104+
"('doma_codegen_version'\\s*:\\s*')[^']*(')",
105+
"\\1${catalog.plugins.doma.codegen.get().version}\\2",
106+
dir = "docs",
107+
file = "conf.py",
108+
),
109+
Replacement(
110+
"('eclipse_apt_version'\\s*:\\s*')[^']*(')",
111+
"\\1${catalog.plugins.eclipse.apt.get().version}\\2",
112+
dir = "docs",
113+
file = "conf.py",
114+
),
115+
Replacement(
116+
"('logback_classic_version'\\s*:\\s*')[^']*(')",
117+
"\\1${catalog.logback.classic.get().version}\\2",
118+
dir = "docs",
119+
file = "conf.py",
120+
),
121+
Replacement(
122+
"('quarkus_doma_version'\\s*:\\s*')[^']*(')",
123+
"\\1${catalog.quarkus.doma.get().version}\\2",
124+
dir = "docs",
125+
file = "conf.py",
126+
),
127+
)
128+
replace(replacements)
66129
}
67130

68131
allprojects {

gradle/libs.versions.toml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,13 +33,17 @@ jmh-core = { module = "org.openjdk.jmh:jmh-core", version.ref = "jmh" }
3333
google-java-format = { module = "com.google.googlejavaformat:google-java-format", version = "1.28.0" }
3434
ktlint = { module = "com.pinterest.ktlint:ktlint-cli", version = "1.6.0" }
3535

36+
quarkus-doma = { module = "io.quarkiverse.doma:quarkus-doma", version = "1.0.4"}
37+
3638
[plugins]
3739
kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
3840
kotlin-kapt = { id = "org.jetbrains.kotlin.kapt", version.ref = "kotlin" }
3941
spotless = { id = "com.diffplug.spotless", version = "7.1.0" }
4042
publish = { id = "io.github.gradle-nexus.publish-plugin", version = "2.0.0" }
4143
release = { id = "net.researchgate.release", version = "3.1.0" }
4244
doma-compile = { id = "org.domaframework.doma.compile", version = "4.0.2" }
45+
doma-codegen = { id = "org.domaframework.doma.codegen", version = "3.2.1" }
4346
shadow = { id = "com.github.johnrengelman.shadow", version = "8.1.1" }
4447
themrmilchmann-ecj = { id = "io.github.themrmilchmann.ecj", version = "0.2.0" }
45-
jmh = { id = "me.champeau.jmh", version = "0.7.3" }
48+
jmh = { id = "me.champeau.jmh", version = "0.7.3" }
49+
eclipse-apt = { id = "com.diffplug.eclipse.apt", version = "4.3.0" }

0 commit comments

Comments
 (0)