Skip to content

Commit 1199312

Browse files
author
Jean-Michel Fayard
authored
#84 #92 version 0.6.2 (#93)
#84 #92 version 0.6.2
2 parents 215b184 + 73f8e84 commit 1199312

File tree

19 files changed

+90
-107
lines changed

19 files changed

+90
-107
lines changed

CHANGELOG.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,18 @@
11
# Unreleased
22

3+
# 0.6.2
4+
5+
If you want to manage your versions from gradle.properties for better compilation avoidance,
6+
but still want to have buildSrc/src/main/Libs.kt generated in your multi-module Gradle build,
7+
that's now possible.
8+
9+
- Run `$ ./gradlew refreshVersions && ./gradlew buildSrcVersions`
10+
- To look for available dependency updates, run `$ ./gradlew refreshVersions`
11+
- When you add a dependency, run `$ ./gradlew buildSrcVersions`
12+
13+
Other changes
14+
15+
- Fixes #92 gradle.properties is getting updated and Versions.kt stops updating when running buildSrcVersions
316
- Add non regression for identifiers in gradle.properties
417
- Add Github issue and pull-request templates
518
- Improve README

README.adoc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
//include::includes.adoc[]
2-
:plugin_version: 0.6.1
2+
:plugin_version: 0.6.2
33
:repo: jmfayard/buildSrcVersions
44
:branch: 26-buildSrcVersions
55
:github: https://github.com/{repo}
@@ -114,6 +114,7 @@ Not only code, but also good documentation can help you upgrate an old project t
114114

115115
I have a series of articles called `Built with Gradle`:
116116

117+
- https://dev.to/jmfayard/my-project-is-open-to-kotlin-contributors-m4b[#hacktoberfest : project is open to contributors!]
117118
- https://dev.to/jmfayard/helping-out-with-gradle-builds-for-hacktoberfest-1c1c[Helping out with Gradle builds for hacktoberfest]
118119
- https://dev.to/jmfayard/the-one-gradle-trick-that-supersedes-all-the-others-5bpg[Use the Build Scan ! The one Gradle trick that supersedes all the others]
119120
- https://dev.to/jmfayard/configuring-gradle-with-gradle-properties-211k[Configuring Gradle with the `gradle.properties` file]

RELEASE.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
- Run task `:publishPlugins`
55
- Check plugin portal https://plugins.gradle.org/plugin/de.fayard.buildSrcVersions
66
- Update CHANGELOG
7+
- Create a GitHub release https://github.com/jmfayard/buildSrcVersions/releases/new
78
- Try the plugin in sample projects
89
- Update `:plugin_version:` in `README.adoc`
910
- Otherwise update the README

plugin/build.gradle.kts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
22

33
plugins {
4-
id("de.fayard.buildSrcVersions") version ("0.6.1") // plugin.de.fayard.buildSrcVersions
4+
id("de.fayard.buildSrcVersions") version ("0.6.2") // plugin.de.fayard.buildSrcVersions
55

66
id("com.gradle.plugin-publish")
77
`java-gradle-plugin`
@@ -11,7 +11,7 @@ plugins {
1111
}
1212

1313

14-
version = "0.6.2" // plugin.de.fayard.buildSrcVersions
14+
version = "0.6.3" // plugin.de.fayard.buildSrcVersions
1515
group = "de.fayard"
1616

1717

plugin/gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
# See https://github.com/jmfayard/buildSrcVersions/issues/77
44
plugin.org.gradle.kotlin.kotlin.dsl=1.2.9
55
# available=1.3.1
6-
plugin.de.fayard.buildsrcversions=0.6.1
6+
plugin.de.fayard.buildsrcversions=0.6.2
77
plugin.com.gradle.plugin-publish=0.10.0
88
# available=0.10.1
99
plugin.com.gradle.build-scan=2.4.1

plugin/src/main/kotlin/de/fayard/BuildSrcVersionsTask.kt

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,10 @@ open class BuildSrcVersionsTask : DefaultTask() {
7676
OutputFile.logFileWasModified(OutputFile.LIBS.path, OutputFile.LIBS.existed)
7777
}
7878

79-
kotlinPoetry.Versions.writeTo(outputDir)
80-
OutputFile.logFileWasModified(OutputFile.VERSIONS.path, OutputFile.VERSIONS.existed)
79+
if (PluginConfig.useRefreshVersions.not()) {
80+
kotlinPoetry.Versions.writeTo(outputDir)
81+
OutputFile.logFileWasModified(OutputFile.VERSIONS.path, OutputFile.VERSIONS.existed)
82+
}
8183

8284
val renamedVersionsKt: File? = when(extension.versionsOnlyMode to extension.versionsOnlyFile) {
8385
null to null -> null
@@ -97,12 +99,15 @@ open class BuildSrcVersionsTask : DefaultTask() {
9799
val extension: BuildSrcVersionsExtensionImpl = extension()
98100
val updateGradleProperties = UpdateGradleProperties(extension)
99101

102+
val specialDependencies =
103+
listOf(PluginConfig.gradleVersionsPlugin, PluginConfig.buildSrcVersionsPlugin, PluginConfig.gradleLatestVersion(dependencyGraph))
104+
100105
val versionsOnlyMode = when(val mode = extension.versionsOnlyMode) {
101106
null, KOTLIN_OBJECT -> return
102107
else -> mode
103108
}
104109

105-
val dependencies = (unsortedParsedDependencies + PluginConfig.gradleVersionsPlugin + PluginConfig.gradleLatestVersion(dependencyGraph))
110+
val dependencies = (unsortedParsedDependencies + specialDependencies)
106111
.sortedBeautifullyBy { it.versionProperty }
107112
.distinctBy { it.versionProperty }
108113

@@ -123,7 +128,7 @@ open class BuildSrcVersionsTask : DefaultTask() {
123128

124129
val message = with(PluginConfig) {
125130
"""
126-
|Running plugins.id("$PLUGIN_ID").version("$PLUGIN_VERSION") with configuration: $extension
131+
|Running plugins.id("$PLUGIN_ID").version("$PLUGIN_VERSION") with useRefreshVersions=${useRefreshVersions} and extension: $extension
127132
|See documentation at $issue53PluginConfiguration
128133
|
129134
""".trimMargin()
@@ -147,7 +152,9 @@ open class BuildSrcVersionsTask : DefaultTask() {
147152
private lateinit var _extension: BuildSrcVersionsExtensionImpl
148153

149154
fun configure(action: Action<BuildSrcVersionsExtension>) {
150-
this._extension = project.extensions.getByType<BuildSrcVersionsExtension>() as BuildSrcVersionsExtensionImpl
155+
val projectExtension = project.extensions.getByType<BuildSrcVersionsExtension>() as BuildSrcVersionsExtensionImpl
156+
this._extension = projectExtension.defensiveCopy()
157+
151158
action.execute(this._extension)
152159
if (_extension.indent == PluginConfig.INDENT_FROM_EDITOR_CONFIG) {
153160
val findIndentForKotlin = EditorConfig.findIndentForKotlin(project.file("buildSrc/src/main/kotlin"))
@@ -156,6 +163,7 @@ open class BuildSrcVersionsTask : DefaultTask() {
156163
if (_extension.alwaysUpdateVersions) {
157164
update = true
158165
}
166+
PluginConfig.useRefreshVersions = project.hasProperty("plugin.de.fayard.buildSrcVersions")
159167
}
160168

161169
private fun extension(): BuildSrcVersionsExtensionImpl = _extension

plugin/src/main/kotlin/de/fayard/internal/BuildSrcVersionsExtensionImpl.kt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,15 @@ internal open class BuildSrcVersionsExtensionImpl(
1111
override var versionsOnlyMode: VersionsOnlyMode? = null,
1212
override var versionsOnlyFile: String? = null
1313
) : BuildSrcVersionsExtension, java.io.Serializable {
14+
15+
// Necessary because of https://github.com/jmfayard/buildSrcVersions/issues/92
16+
fun defensiveCopy(): BuildSrcVersionsExtensionImpl = BuildSrcVersionsExtensionImpl(
17+
renameLibs, renameVersions, indent, versionsOnlyMode, versionsOnlyFile
18+
).also {
19+
it.alwaysUpdateVersions = this.alwaysUpdateVersions
20+
it.useFqqnFor = this.useFqqnFor
21+
}
22+
1423
override fun alwaysUpdateVersions() {
1524
this.alwaysUpdateVersions = true
1625
}

plugin/src/main/kotlin/de/fayard/internal/KotlinPoetry.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -106,13 +106,15 @@ fun Dependency.newerVersion(): String? =
106106
}
107107

108108
fun Dependency.generateLibsProperty(extension: BuildSrcVersionsExtension): PropertySpec {
109-
val libValue = when(version) {
110-
"none" -> CodeBlock.of("%S", "$group:$name")
109+
val libValue = when {
110+
version == "none" -> CodeBlock.of("%S", "$group:$name")
111+
PluginConfig.useRefreshVersions -> CodeBlock.of("%S", "$group:$name:$version")
111112
else -> CodeBlock.of("%S + ${extension.renameVersions}.%L", "$group:$name:", versionName)
112113
}
113114

114115
val libComment = when {
115116
projectUrl == null -> null
117+
PluginConfig.useRefreshVersions -> null
116118
else -> CodeBlock.of("%L", this.projectUrl)
117119
}
118120

plugin/src/main/kotlin/de/fayard/internal/PluginConfig.kt

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ object PluginConfig {
1717

1818

1919
const val PLUGIN_ID = "de.fayard.buildSrcVersions"
20-
const val PLUGIN_VERSION = "0.6.2" // plugin.de.fayard.buildSrcVersions
20+
const val PLUGIN_VERSION = "0.6.3" // plugin.de.fayard.buildSrcVersions
2121
const val GRADLE_VERSIONS_PLUGIN_ID = "com.github.ben-manes.versions"
2222
const val GRADLE_VERSIONS_PLUGIN_VERSION = "0.25.0" // Sync with plugin/build.gradle.kts
2323
const val EXTENSION_NAME = "buildSrcVersions"
@@ -207,6 +207,14 @@ object PluginConfig {
207207
available = null
208208
)
209209

210+
val buildSrcVersionsPlugin: Dependency = Dependency(
211+
group = "de.fayard",
212+
name = "$PLUGIN_ID.gradle.plugin",
213+
version = PLUGIN_VERSION,
214+
mode = MODULE,
215+
available = null
216+
)
217+
210218
fun gradleLatestVersion(graph: DependencyGraph): Dependency = Dependency(
211219
group = "org.gradle",
212220
name = GRADLE_LATEST_VERSION,
@@ -218,6 +226,7 @@ object PluginConfig {
218226
}
219227
)
220228

229+
var useRefreshVersions: Boolean = false
221230

222231
lateinit var configureGradleVersions: (DependencyUpdatesTask.() -> Unit) -> Unit
223232

sample-groovy/buildSrc/src/main/kotlin/Libs.kt

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,9 @@ import kotlin.String
88
*/
99
object Libs {
1010
const val com_gradle_build_scan_gradle_plugin: String =
11-
"com.gradle.build-scan:com.gradle.build-scan.gradle.plugin:" +
12-
Versions.com_gradle_build_scan_gradle_plugin
11+
"com.gradle.build-scan:com.gradle.build-scan.gradle.plugin:2.4.2"
1312

14-
const val guava: String = "com.google.guava:guava:" + Versions.guava
13+
const val guava: String = "com.google.guava:guava:15.0"
1514

16-
/**
17-
* http://code.google.com/p/google-guice/
18-
*/
19-
const val guice: String = "com.google.inject:guice:" + Versions.guice
15+
const val guice: String = "com.google.inject:guice:2.0"
2016
}

0 commit comments

Comments
 (0)