- Make the new updater the default
- Bootstraping refreshVersions #155
The long-term plan for v1.0 is to focus on :refreshVersions
instead of :buildSrcVersions
See Splitties#104
Starting from release 0.8.0 the plugin is now called and contain only the task refreshVersions
plugins {
id("de.fayard.refreshVersions").version("0.8.x") // or newer
}
We are not quite ready yet to extract the useful parts of buildSrcVersions
to another plugin,
so if you need the features from buildSrcVersions, stay with this for now:
plugins {
id("de.fayard.buildSrcVersions").version("0.7.0")
}
The plugin will in the future focus on :refreshVersions
.
For now it is published under two names, with an identical content:
plugins {
id("de.fayard.refreshVersions").version("0.7.0")
// or
id("de.fayard.buildSrcVersions).version("0.7.0")
}
Next step: integration with https://github.com/LouisCAD/Splitties
See Splitties#104
Changes:
- New configuration: orderBy = GROUP_AND_LENGTH or GROUP_AND_ALPHABETICAL #65
- PluginConfig.virtualGroups for kotlinx-coroutines #102
- useFqdnFor() should also work for groups #99
- Always update version "_" or "+" #98
- (maybe) Non deterministic behavior #95
- rejectVersionIf { isStable(currentVersion) && isNonStable(candidate.version) } #96
- isStable(currentVersion) && isNonStable(candidate.version) #96
- useFqdnFor() should also work for groups #99
Fix #94: Libs.kt is broken by a wrong indent
If you want to manage your versions from gradle.properties for better compilation avoidance, but still want to have buildSrc/src/main/Libs.kt generated in your multi-module Gradle build, that's now possible.
- Run
$ ./gradlew refreshVersions && ./gradlew buildSrcVersions
- To look for available dependency updates, run
$ ./gradlew refreshVersions
- When you add a dependency, run
$ ./gradlew buildSrcVersions
Other changes
- Fixes #92 gradle.properties is getting updated and Versions.kt stops updating when running buildSrcVersions
- Add non regression for identifiers in gradle.properties
- Add Github issue and pull-request templates
- Improve README
- #80 Refine naming convention
- Add plugin version in the output
- Restore indent=FOUR_SPACES when no editorconfig is there
- Add "#" at the beginning of a line in "gradle.properties" so that IntelliJ does not refactor/break the alignment
Major new feature:
A new task :refreshVersions
now generates Gradle properties for all dependencies
and plugins inside gradle.properties
AND their available updates, if any.
The plugin also installed a Gradle resolutionStrategy that enforce the use of those versions, if present.
See documentation at Splitties#77
See a detail of the changes from versionsOnlyMode
at Splitties#67
Breaking change:
Deprecated plugin configurations were removed from the buildSrcVersions { ... }
extension:
useFdqnFor
was a typo, corrected to useFqdnForrejectedVersionKeywords
was replaced for the better by the lambdarejectVersionsIf { ... }
Major new feature! versionsOnlyMode for simple Gradle projects who just need the versions 5 modes supported: KOTLIN_VAL, KOTLIN_OBJECT, GROOVY_DEF, GROOVY_EXT, GRADLE_PROPERTIES See Splitties#55
- Upgrade to Gradle 5.6.2
- Upgrade to gradle-versions-plugins 0.25.0
- Typo useFqdnFor() #64
- Order dependencies by length #65
- Detect indent from EditorConfig file 58
- rejectVersionsIf { ... } from ben-manes/gradle-versions-plugin#325
- Order dependencies by length #65
- Improve code quality
- Write more and better tests
- Use a local maven repo in the samples in order to have a stable output
- We can now create multiple BuildSrcVersionsTask configured with an extension (used in
sample-versionsOnlyMode
)
- Introduce plugibn configuration via the
buildSrcVersions { ... }
block - Customize the names "Versions" and "Libs"? #39
- We can now chose the indent #45
- We can customize the list of rejected version keywords
- See Splitties#53
- #50 fix crash "Collection contains no element matching the predicate."
- #47 plugins { buildSrcVersions } allows to update the plugin itself
- Update to Kotlinpoet 1.3.0
- IDE integration works again in Android 3.5 (bug #123032843)
- Update to gradle-versions-plugin 0.22
- Upgradle to Gradle 5.5.1
- #43 by runningcode: Remove whitespace at the end of lines which do not include a comment.
- #41 by lebeshev: use fully qualified name for: "library", "generator", "annotations" (breaking change)
- #42 do not create buildSrc/settings.gradle.kts, check if buildSrc/build.gradle exists before creating buildSrc/build.gradle.kts
- Don't include version which include "-eap-"
- Upgraded plugin to a Gradle composite project allowing for a better developer workflow #31
- Updated CONTRIBUTING.md accordingly
- Introduced samples
sample-groovy
andsample-kotlin
inside the project - Handle case where a dependency has no version #23
- To update Gradle itself, see issue #19
- Use
mavenCentral()
by default inbuildSrc/build.gradle.kts
- Fix
Versions.kt
not compiling when the version name is very large #36 - Do not recreate
buildSrc/.gitignore
if the user removes it #37
- Invalid Comment linebreak #32
- Don't inform about exceeded version number #29
- Allows to configure a set of dependencies for which to use the FDQN #25
buildSrcVersions {
useFdqnFor.set(listOf("core-kt", "core-ktx"))
}
Rebranding: the repository, the plugin and the task are now called buildSrcVersions!!
Why? and What? is described in details here Splitties#26
- Clean-up task group/description/output
- Fix #561 use non-breaking spaces in line comments
- Extrace-space at the end of Versions.kt properties #24
- remove misleading "up-to-date" comment
- avoid pulling in RC and alpha versions to the available tag
- remove the website info, we'd like absolutely nothing in the versions file apart from the name, the version number
- edit KDOC to document that the plugin update the comment but YOU edit the version
- #10 Detect when multiple dependencies from the same group use the same version
- #8 Order dependencies by group
- #4 SyncLibs generate wrong output file
- #1 Make it slightly easier to manually update the version
- #3 Add buildSrc/.gitignore
- Change folder to
buildSrc/src/main/kotlin
see separate language source files - Create empty
buildSrc/settings.gradle.kts
if none exists
Versions
is now in a separate filebuildSrc/src/main/java/Versions.kt
(this way it works out of the box from a groovy build.gradle file)- Use FDQN when we detect a meaning-less names like
runner
,core
,test
, ...
- Version demoed at KotlinConf
- Hello world version released to plugins.gradle.org