DiffPlug Blowdryer scripts
user | updated on | to version |
---|---|---|
atplug | 2023-01-28 | 7.0.0 |
blowdryer | 2023-01-28 | 7.0.0 |
durian-globals | 2020-06-05 | 3.2.2 |
durian-rx | 2020-01-12 | 3.1.0 |
durian-swt | 2021-12-16 | 5.1.3 |
goomph | 2023-02-28 | 7.0.1 |
freshmark | 2023-02-05 | 7.0.0 |
jscriptbox | 2023-02-05 | 7.0.0 |
libxdiff | 2021-02-18 | 3.3.0 |
image-grinder | 2020-12-16 | 5.1.3 |
spotless-changelog | 2023-01-28 | 7.0.0 |
internal projects | ||
buildcloset | 2020-01-12 | 3.2.5 |
website | 2021-05-28 | 5.0.2 |
- spotless/freshmark - applies to
*.gradle
and*.md
- if
com.diffplug.spotless-changelog
is applied in this or the parent project, thenversionLast
will be set in freshmark
- if
- spotless/java - applies to
*.gradle
and java sourcesets干.proj('license', 'supported: [apache, confidential, lgpl-2.1]')
- base/java - sets up java 8 with UTF-8, clean eclipse projects, and mavenCentral
干.proj('ver_java', 'target JVM bytecode (8, 11, etc)')
- base/kotlin - apply
org.jetbrains.kotlin.jvm
干.projOptional('kotlin_jvmTarget', 'JVM target for the kotlin plugin')
- base/changelog - pulls version information from a changelog in either the same project or the parent project
- base/gradle-plugin - sets up gradle plugin metadata and plugin portal publishing, fixes eclipse to hook gradle
- requires
id 'com.gradle.plugin-publish' version '0.10.1'
干.proj('git_url', 'the git url with no protocol, e.g.: github.com/diffplug/blowdryer')
干.proj('plugin_tags', 'space-delimited list of tags for the gradle plugin portal')
干.proj('plugin_list', 'space-delimited list of plugin names')
干.proj("plugin_${plugin}_id", "for ${plugin}: apply plugin: 'id'")
干.proj("plugin_${plugin}_impl", "for ${plugin}: implementationClass")
干.proj("plugin_${plugin}_name", "for ${plugin}: name for the plugin portal")
干.proj("plugin_${plugin}_desc", "for ${plugin}: description for the plugin portal")
- optional:
"plugin_${plugin}_tags" : space-delimited list of tags to override plugin_tags only for ${plugin}
- requires
- base/maven - sets up maven-publish and javadoc
干.proj('git_url', 'the git url with no protocol, e.g.: github.com/diffplug/blowdryer')
干.proj('maven_group', 'the maven group, recommend com.diffplug')
干.proj('maven_artifact', 'the maven artifactId')
干.proj('maven_name', 'human-friendly name')
干.proj('maven_desc', 'human-friendly description')
干.proj('javadoc_links', "space-delimited links, if you add '/package-list' to the urls you should get a package list")
干.proj('license', 'supported: [apache, confidential, lgpl-2.1]')
- base/javadoc-agg - aggregates javadoc from subprojects
干.proj('javadoc_agg', 'space-delimited list of projects containing javadoc to be aggregated')
- (also a subset of base/maven)
- base/sonatype - publishes to mavenCentral
- requires
id 'io.github.gradle-nexus.publish-plugin' version '1.0.0'
- unless
enable_publishing
is set ingradle.properties
, this will be skipped 干.proj('nexus_user', 'username for nexus/mavencentral')
干.proj('nexus_pass64', 'password for nexus/mavencentral')
干.proj('gpg_key64', 'gpg --export-secret-keys --armor <key-id>')
干.proj('gpg_passphrase', 'passphrase for unlocking gpg_key')
- (also a subset of base/maven)
- requires
- base/osgi - adds OSGi metadata to the jar
- requires
id 'com.diffplug.osgi.bndmanifest' version '3.22.0'
(or later) 干.proj('osgi_export', '-exportcontents bnd directive')
干.proj('osgi_symbolic_name', 'Bundle-SymbolicName')
- (also a subset of base/maven)
- requires
- base/autovalue - adds Google AutoValue 1.7
- requires
id 'com.diffplug.eclipse.apt' version '3.22.0'
(or later) 干.proj('VER_AUTOVALUE', 'the autovalue version the user wants')
- requires
- swt/svg-images - renders SVG images from
src/svg
intosrc/main/resources/svg-rendered
at 1x and 2x DPI (in-line with SWT high-DPI support)- recommend adding
svg-rendered/
to.gitignore
- requires
id 'com.diffplug.image-grinder' version '2.1.2'
(or later)
- recommend adding
- Bump plugin versions to latest (Kotlin 2.1.0).
- Bump plugin versions to latest.
- Tag message now has the
v{{version}}\n\n{changes}
format, as workaround for cli/cli#9299.
- BREAKING
spotlessChangelog
now creates GitHub releases by default (#6)- you need to update your
deploy.yml
- if you set the
tagPrefix
, then you'll need to update therunAfterPush
- see PR above for details
- you need to update your
spotless/kotlin-dense.gradle
for tight packing
- Bump all plugin versions, in particular Kotlin to 2.0.0
- Publishing the java part of Kotlin multiplatform jars is now supported.
- Removed
com.diffplug.eclipse.apt
frombase/autovalue
since we have mostly moved to IntelliJ. - Bump all plugins to latest, especially Kotlin to
1.9.21
- Maven plugin is now friendly with Kotlin Multiplatform.
- Add
matconsolectl
license.
- Bump Kotlin plugins to latest,
1.8.20
->1.8.22
, and all other plugins too.
- Bump Kotlin plugins to latest,
1.8.0
->1.8.20
.
- Bump plugins to latest, which means build now requires Java 11.
spotlessFreshmark
now runs on Java 17.
plugin.versions
andplugin-kotlin.versions
to take advantage of the new Blowdryer version syncing.spotlessChangelog { appendDashSnapshotUnless_dashPrelease = true
because it's safer.
- BREAKING renamed
java8.gradle
tojava.gradle
which requiresver_java
property. spotlessChangelog { branch 'release' ...
because fine-grained tokens can't push to a protectedmain
.
spotlessChangelog { branch 'release' ...
because fine-grained tokens can't push to a protectedmain
.
- Use
nexus_pass64
instead ofnexus_pass
.
- Gradle plugin publishing.
- BREAKING New minimum requirements
gradle:7.6
andcom.gradle.plugin-publish:1.1.0
, adapted to those changes. - BREAKING Remove support for
org.jdrupes.mdoclet
.
base/kotlin
now specifiesfreeCompilerArgs = ["-Xjvm-default=all"]
so that Kotlin interface method implementations can be used from Java.
base/kotlin.gradle
- Make the eclipse plugin optional for
gradle-plugin.gradle
- Update sonatype URL to
https://s01.oss.sonatype.org/
since we migrated for better performance.
- Fix sonatype publishing for multi-module projects.
gpg64
from sonatype is now read using干.proj
as intended.
- Builds that do not have Sonatype publish plugin applied now assume that they are publishing to GitLab.
- Bugfix for previous.
- Now encodes gpg key using Base64 which actually works on CircleCI.
- We were sometimes deploying gradle plugins without also deploying to maven, now fixed.
- We yanked all earlier versions of 5.0.x to force an update because this is a fairly pernicious error.
sourcesJar
no longer throws warnings on Gradle 7.1- Only use
org.jdrupes.mdoclet
on Java 8 and below
- no more Gradle 7.0 warnings abour
generateMetadataFileForPluginMavenPublication
having undeclared dependencies.
- no more errors on machines where
enable_publishing
hasn't been set
- BREAKING
base/autovalue
now requires aVER_AUTOVALUE
parameter
- yet more sonatype fixes
- more sonatype fixes
- fix sonatype deployment
base/sonatype
has been added (because BREAKINGbase/bintray
has been removed)
- Added
lgpl-2.1
as a supported license.
- Adopt the new
spotless
plugin coordinate atcom.diffplug.spotless
- Bump
VER_AUTOVALUE
from1.7.3
to1.7.4
.
- We now do formatting relative to
origin/main
. - Added missing
(C)
in our apache copyright header. - Bump
VER_AUTOVALUE
from1.7
to1.7.3
.
spotlessApply -PspotlessSetLicenseHeaderYearsFromGitHistory=true
now updates all files (as intended) rather than only the changed ones.
org.jdrupes.mdoclet
was failing to resolve when used withjavadoc-agg.gradle
- We now require Spotless
4.3+
, because we do formatting relative toorigin/master
.- If you run
spotlessApply -PspotlessSetLicenseHeaderYearsFromGitHistory=true
then every license header will be updated appropriately
- If you run
base/autovalue
for applying Google AutoValueswt/svg-images
renders SVG images with SWT high-DPI support
- Added an error message to prevent accidental misuse of the
git_url
parameter
- Better short names for
license=confidential
javadoc-markdown.gradle
now requires thatid 'org.jdrupes.mdoclet' version '1.0.9'
(or later) is on the classpath- Migrate from
com.diffplug.gradle.x
tocom.diffplug.x
for goomph
- Support
confidential
as a value forlicense
.
- Inserted commented-out
干.mustRunAfter
. No behavior change, but we'll try to keep these up-to-date in case diffplug/blowdryer#8 gets implemented. (a9c3489) - Every javadoc task now has
javadocView
task, which will render and open the javadoc in a browser.- BREAKING Requires that at least one of the
goomph
plugins is on the classpath.
- BREAKING Requires that at least one of the
- Every javadoc task now uses jdrupes-mdoclet.
base/changelog
, which pulls version information from a changelog in either the same project or the parent project- Also hooked into
spotless/freshmark
, to pass theversionNext
andversionLast
properties
- Also hooked into
base/bintray
, for pushing to bintray and mavenCentralbase/osgi
, for OSGi metadatabase/javadoc-agg
, for aggregating javadoc from subprojects into one central artifact- support for per-plugin tags in
base/gradle-plugin
. spotless/freshmark
now setsversionLast
property if there is aspotless-changelog
plugin applied somewhere- BREAKING the spotless plugin must be declared in
settings.gradle
orbuildSrc
. That's probably a good pattern in general.
- BREAKING the spotless plugin must be declared in
- The spotless license header is now
https
, and we also force the year to 2020 since we're about to release a bunch of new code in 2020.
- Set javadoc to use
UTF-8
encoding. - If you apply
spotless/java
to the root project, it will now fixbuildSrc/*.gradle
in addition to the*.gradle
which it already fixed.
First release.
- Thanks to Vladimir Sitnikov for his mdoclet workaround.
- Thanks to Lars Grefer and Dennis Fricke for
JavadocUtf8Plugin
, licensed under the MIT License, used here.JavadocJarPlugin
, licensed under the MIT License, used here.
- Thanks Netflix Build Language Plugins (nebula) for
NebulaAggregateJavadocPlugin
, licensed under theApache 2.0 license
, used here.