Skip to content

diffplug/blowdryer-diffplug

Repository files navigation

DiffPlug Blowdryer scripts

License Apache 2.0 Changelog CircleCI

Users

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

Available scripts (without .gradle extension)

  • spotless/freshmark - applies to *.gradle and *.md
    • if com.diffplug.spotless-changelog is applied in this or the parent project, then versionLast will be set in freshmark
  • 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}
  • 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 in gradle.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)
  • 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)
  • 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')
  • swt/svg-images - renders SVG images from src/svg into src/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)

Changelog

[Unreleased]

[8.0.2] - 2024-09-03

Changed

  • Bump plugin versions to latest.

[8.0.1] - 2024-08-04

Changed

  • Tag message now has the v{{version}}\n\n{changes} format, as workaround for cli/cli#9299.

[8.0.0] - 2024-07-08

Changed

  • 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 the runAfterPush
    • see PR above for details

[7.3.0] - 2024-06-06

Added

  • spotless/kotlin-dense.gradle for tight packing

Changed

  • Bump all plugin versions, in particular Kotlin to 2.0.0

[7.2.0] - 2023-12-27

Added

  • Publishing the java part of Kotlin multiplatform jars is now supported.

[7.1.1] - 2023-12-11

Changed

  • Removed com.diffplug.eclipse.apt from base/autovalue since we have mostly moved to IntelliJ.
  • Bump all plugins to latest, especially Kotlin to 1.9.21

Fixed

  • Maven plugin is now friendly with Kotlin Multiplatform.

[7.1.0] - 2023-06-15

Added

  • Add matconsolectl license.

Changed

  • Bump Kotlin plugins to latest, 1.8.20 -> 1.8.22, and all other plugins too.

[7.0.2] - 2023-04-03

Changed

  • Bump Kotlin plugins to latest, 1.8.0 -> 1.8.20.

[7.0.1] - 2023-02-28

Changed

  • Bump plugins to latest, which means build now requires Java 11.

Fixed

  • spotlessFreshmark now runs on Java 17.

[7.0.0] - 2023-01-28

Added

  • plugin.versions and plugin-kotlin.versions to take advantage of the new Blowdryer version syncing.
  • spotlessChangelog { appendDashSnapshotUnless_dashPrelease = true because it's safer.

Changed

  • BREAKING renamed java8.gradle to java.gradle which requires ver_java property.
  • spotlessChangelog { branch 'release' ... because fine-grained tokens can't push to a protected main.

[6.0.3] - 2023-01-28

Fixed

  • spotlessChangelog { branch 'release' ... because fine-grained tokens can't push to a protected main.

[6.0.2] - 2023-01-28

Fixed

  • Use nexus_pass64 instead of nexus_pass.

[6.0.1] - 2022-12-30

Fixed

  • Gradle plugin publishing.

[6.0.0] - 2022-12-30

Fixed

  • BREAKING New minimum requirements gradle:7.6 and com.gradle.plugin-publish:1.1.0, adapted to those changes.
  • BREAKING Remove support for org.jdrupes.mdoclet.

[5.2.1] - 2022-04-01

Fixed

  • base/kotlin now specifies freeCompilerArgs = ["-Xjvm-default=all"] so that Kotlin interface method implementations can be used from Java.

[5.2.0] - 2022-02-15

Added

  • base/kotlin.gradle

Fixed

  • Make the eclipse plugin optional for gradle-plugin.gradle

[5.1.3] - 2021-12-16

Fixed

[5.1.2] - 2021-11-10

Fixed

  • Fix sonatype publishing for multi-module projects.

[5.1.1] - 2021-10-21

Fixed

  • gpg64 from sonatype is now read using 干.proj as intended.

[5.1.0] - 2021-09-18

Added

  • Builds that do not have Sonatype publish plugin applied now assume that they are publishing to GitLab.

[5.0.6] - 2021-07-18

Fixed

  • Bugfix for previous.

[5.0.5] - 2021-07-18 [YANKED]

Fixed

  • Now encodes gpg key using Base64 which actually works on CircleCI.

[5.0.4] - 2021-07-18 [YANKED]

Fixed

  • 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.

[5.0.3] - 2021-07-17 [YANKED]

Fixed

  • sourcesJar no longer throws warnings on Gradle 7.1
  • Only use org.jdrupes.mdoclet on Java 8 and below

[5.0.2] - 2021-05-30 [YANKED]

Fixed

  • no more Gradle 7.0 warnings abour generateMetadataFileForPluginMavenPublication having undeclared dependencies.

[5.0.1] - 2021-05-29 [YANKED]

Fixed

  • no more errors on machines where enable_publishing hasn't been set

[5.0.0] - 2021-05-28 [YANKED]

Added

  • BREAKING base/autovalue now requires a VER_AUTOVALUE parameter

[4.0.3] - 2021-05-11

Fixed

  • yet more sonatype fixes

[4.0.2] - 2021-04-10

Fixed

  • more sonatype fixes

[4.0.1] - 2021-04-09

Fixed

  • fix sonatype deployment

[4.0.0] - 2021-04-09

Added

  • base/sonatype has been added (because BREAKING base/bintray has been removed)

[3.3.0] - 2021-02-19

Added

  • Added lgpl-2.1 as a supported license.

[3.2.5] - 2020-10-14

Changed

  • Adopt the new spotless plugin coordinate at com.diffplug.spotless
  • Bump VER_AUTOVALUE from 1.7.3 to 1.7.4.

[3.2.4] - 2020-06-16

Changed

  • We now do formatting relative to origin/main.
  • Added missing (C) in our apache copyright header.
  • Bump VER_AUTOVALUE from 1.7 to 1.7.3.

[3.2.3] - 2020-06-06

Fixed

  • spotlessApply -PspotlessSetLicenseHeaderYearsFromGitHistory=true now updates all files (as intended) rather than only the changed ones.

[3.2.2] - 2020-06-06

Fixed

  • org.jdrupes.mdoclet was failing to resolve when used with javadoc-agg.gradle

[3.2.1] - 2020-06-05

Changed

  • We now require Spotless 4.3+, because we do formatting relative to origin/master.
    • If you run spotlessApply -PspotlessSetLicenseHeaderYearsFromGitHistory=true then every license header will be updated appropriately

[3.2.0] - 2020-04-07

Added

  • base/autovalue for applying Google AutoValue
  • swt/svg-images renders SVG images with SWT high-DPI support

Fixed

  • Added an error message to prevent accidental misuse of the git_url parameter

Changed

  • Better short names for license=confidential
  • javadoc-markdown.gradle now requires that id 'org.jdrupes.mdoclet' version '1.0.9' (or later) is on the classpath
  • Migrate from com.diffplug.gradle.x to com.diffplug.x for goomph

[3.1.0] - 2020-01-12

Added

  • Support confidential as a value for license.

[3.0.0] - 2020-01-11

Added

  • 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.
  • Every javadoc task now uses jdrupes-mdoclet.

[2.0.0] - 2020-01-02

Added

  • 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 the versionNext and versionLast properties
  • base/bintray, for pushing to bintray and mavenCentral
  • base/osgi, for OSGi metadata
  • base/javadoc-agg, for aggregating javadoc from subprojects into one central artifact
  • support for per-plugin tags in base/gradle-plugin.
  • spotless/freshmark now sets versionLast property if there is a spotless-changelog plugin applied somewhere
    • BREAKING the spotless plugin must be declared in settings.gradle or buildSrc. That's probably a good pattern in general.

Changed

  • 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.

Fixed

  • Set javadoc to use UTF-8 encoding.
  • If you apply spotless/java to the root project, it will now fix buildSrc/*.gradle in addition to the *.gradle which it already fixed.

[1.0.0] - 2019-12-10

First release.

Acknowledgements