Skip to content

Latest commit

 

History

History
347 lines (264 loc) · 21.7 KB

CHANGELOG.md

File metadata and controls

347 lines (264 loc) · 21.7 KB

Change Log

Version 0.22.0 (unreleased)

  • NEW: When publishing to maven central by setting SONATYPE_HOST or calling publishToMavenCentral(...) the plugin will now explicitly create a staging repository on Sonatype. This avoids issues where a single build would create multiple repositories
  • The above change means that the plugin supports parallel builds and it is not neccessary anymore to use --no-parallel and --no-daemon together with publish
  • NEW: When publishing with the publish or publishAllPublicationsToMavenCentralRepository tasks the plugin will automatically close the staging repository at the end of the build if it was successful.
  • NEW: Option to also automatically release the staging repository after closing was susccessful
SONATYPE_HOST=default # or S01
SONATYPE_AUTOMATIC_RELEASE=true

or

mavenPublishing {
  publishToMavenCentral("DEFAULT", true)
  // or publishToMavenCentral("S01", true)
}
  • in case the option above is enabled, the closeAndReleaseRepository task is not needed anymore
  • when closing the repository fails the plugin will fail the build immediately instead of timing out
  • when closing the repository fails the plugin will try to print the error messages from Nexus
  • increased timeouts for calls to the Sonatype Nexus APIs
  • fixed incompatibility with the com.gradle.plugin-publish plugin
  • added wokaround for Kotlin multiplatform builds reporting disabled build optimizations

Version 0.21.0 (2022-07-11)

Minimum supported Gradle version is now 7.2.0

Minimum supported Android Gradle Plugin versions are now 7.1.2, 7.2.0-beta02 and 7.3.0-alpha01

Behavior changes

The com.vanniktech.maven.publish stops adding Maven Central (Sonatype OSS) as a publishing target and will not enable GPG signing by default. To continue publishing to maven central and signing artifacts either add the following to your gradle.properties:

SONATYPE_HOST=DEFAULT
# SONATYPE_HOST=S01 for publishing through s01.oss.sonatype.org
RELEASE_SIGNING_ENABLED=true

or add this to your Groovy build files:

mavenPublishing {
  publishToMavenCentral()
  // publishToMavenCentral("S01") for publishing through s01.oss.sonatype.org
  signAllPublications()
}

or the following to your kts build files:

mavenPublishing {
  publishToMavenCentral()
  // publishToMavenCentral(SonatypeHost.S01) for publishing through s01.oss.sonatype.org
  signAllPublications()
}

The base plugin is unaffected by these changes because it already has this behavior.

Android variant publishing

Since version 0.19.0 the plugin was publishing a multi variant library by default for Android projects. Due to a bug in Android Studio that will cause it to not find the sources for libraries published this way the plugin will temporarily revert to publishing single variant libraries again. Unless another variant is specified by setting the ANDROID_VARIANT_TO_PUBLISH Gradle property the release variant will be published.

To continue publishing multi variant libraries you can use the base plugin.

Removals

The deprecated mavenPublish extension has been removed. Take a look at the changelog for 0.20.0 for replacements.

Version 0.20.0 (2022-06-02)

Upcoming behavior change

In the next release after this the com.vanniktech.maven.publish will stop adding Maven Central (Sonatype OSS) as a publishing target and will not enable GPG signing by default. If you are currently relying on this behavior the plugin will print a warning during configuration phase. To continue publishing to maven central and signing artifacts either add this to your build files:

mavenPublishing {
  publishToMavenCentral() // use publishToMavenCentral("S01") for publishing through s01.oss.sonatype.org
  signAllPublications()
}

or the following to your gradle.properties:

SONATYPE_HOST=DEFAULT
# SONATYPE_HOST=S01 for publishing through s01.oss.sonatype.org
RELEASE_SIGNING_ENABLED=true

The base plugin is unaffected by these changes because it already has this behavior.

Deprecation

The old mavenPublish extension has been deprecated.

If you were using it to set sonatypeHost to S01 use

mavenPublishing {
  publishToMavenCentral("S01")
}

instead or add SONATYPE_HOST=S01 to your gradle.properties.

If sonatypeHost was used to disable adding Maven Central as a publishing target add SONATYPE_HOST= until 0.21.0 is out and this becomes the default behavior.

If you set releaseSigningEnabled to false add RELEASE_SIGNING_ENABLED=false to your gradle.properties until 0.21.0 is out and this becomes the default behavior.

New

Added support to set the following pom values through properties (thanks to @jaredsburrows for the contribution)

  • POM_ISSUE_SYSTEM sets issueManagement.system
  • POM_ISSUE_URL sets issueManagement.url
  • POM_DEVELOPER_EMAIL sets developer.email

Fixed

  • resolved an issue in Kotlin Multiplatform projects that apply com.android.library that caused no sources jars to be published
  • resolved an issue in Kotlin Multiplatform projects that apply com.android.library using AGP versions before 7.1.2 that caused the project to be published as a pure Android library
  • fixed and improved error messages for closeAndReleaseRepository

Version 0.19.0 (2022-02-26)

  • Behavior Change: When using version 7.1.0 or newer of the Android Gradle Plugin we will now publish all variants of a library unless androidVariantToPublish was set in the DSL. This means that for example both debug and release or all flavors.
  • Deprecated androidVariantToPublish. In the future the main plugin will always publish all variants of an Android library. If you need to publish only one variant or a subset take a look at the base plugin APIs.
  • Base plugin: Added AndroidSingleVariantLibrary and AndroidMultiVariantLibrary options that use the new AGP 7.1 APIs under the hood.
  • Base plugin: Deprecated AndroidLibrary option in favor of the above
  • The integration with Sonatype Nexus has been extracted into it's own artifact and is available as com.vanniktech:nexus:<version>

Version 0.18.0 (2021-09-13)

  • The minimum supported Kotlin version is now 1.4.30
  • It's now possible to specify SONATYPE_HOST as a Gradle property, e.g.
    • SONATYPE_HOST=S01 for s01.sonatype.org
    • SONATYPE_HOST= to not add any repository by default
  • Fixed an issue when publishing Kotlin MPP projects with the base plugin
  • Removed checks for presence of properties that aren't used by this plugin anymore

Version 0.17.0 (2021-07-04)

  • Removed the deprecated uploadArchives and installArchives tasks. Use publish and publishToMavenLocal instead.

Version 0.16.0 (2021-06-20)

  • Add pomFromGradleProperties API to base plugin. This configures the pom in the same way the regular plugin does.
  • Add the ability to remove the default mavenCentral repository, by setting sonatypeHost to null
  • Support POM_LICENSE_NAME, POM_LICENSE_URL and POM_LICENSE_DIST properties in addition to LICENCE based properties.
  • Fixes an issue in the base plugin that caused an error during configuration of Android projects.
  • Fixes an issue with javadoc tasks when using Java toolchains.
  • The deprecated nexusOptions and nexus {} methods were removed. closeAndReleaseRepository is automatically configured.

Version 0.15.1 (2021-05-02)

  • The closeAndReleaseRepository task was mistakenly expecting the wrong Gradle properties. The README and changelog also mentioned the wrong properties. The correct ones are mavenCentralUsername and mavenCentralPassword or for environment variables: ORG_GRADLE_PROJECT_mavenCentralUsername and ORG_GRADLE_PROJECT_mavenCentralPassword.
  • Fix signing not being configurable until afterEvaluate
  • Use empty string as in memory signing password when no password is specified
  • Fix statingProfile in nexusOptions not being optional which causes an error when running closeAndReleaseRepository

Version 0.15.0 (2021-04-24)

  • BREAKING: Removed support for deprecated RELEASE_REPOSITORY_URL, SNAPSHOT_REPOSITORY_URL, SONATYPE_NEXUS_USERNAME, SONATYPE_NEXUS_PASSWORD environment variables and properties. For safety reasons the project will fail when finding these. Use mavenCentralUsername and mavenCentralPassword Gradle properties or ORG_GRADLE_PROJECT_mavenCentralUsername and ORG_GRADLE_PROJECT_mavenCentralPassword environment variables instead.
  • BREAKING: Removed deprecated targets API. See README for alternative ways of adding targets.
  • Behavior change: The dokka plugin is not applied by default anymore for Kotlin projects. When it is applied we will still use the dokka tasks to create the javadoc jar.
  • Support for s01.oss.sonatype.org by setting sonatypeHost = "S01".
  • Introduce com.vanniktech.maven.publish.base plugin. This plugin contains all the functionality of the main plugin, but does not configure anything automatically. Instead, it offers a public API, which is also used by the main plugin to do so yourself. This allows for more flexibility and to publish different project types. The API is not final yet, but we're happy to receive feedback.

Version 0.14.2 (2021-02-14)

  • fix artifact id in Kotlin Multiplatform projects being incorrect
  • fix closeAndReleaseRepository requiring callers to pass --repository

Version 0.14.1 (2021-02-11)

  • fix false positive deprecation warnings
  • fix typos in deprecation warnings

Version 0.14.0 (2021-02-10)

  • enable publishing Kotlin/JS projects
  • fixed compatibility with Kotlin Multiplatform projects using Kotlin 1.4.30
  • fixed compatibility with Gradle plugin projects using Gradle 6.8
  • make closeAndReleaseRepository more flexible in choosing a repository
  • deprecated the targets API, check out the README on how to add more repositories
  • minimum supported Gradle version is now 6.6

Version 0.13.0 (2020-09-07)

Version 0.12.0 (2020-07-07)

Kudos to gabrielittner.

Version 0.11.1 (2020-03-30)

  • Pom packaging is not written #82

Version 0.11.0 (2020-03-30)

  • Actually the same as 0.10.0 since I forgot to pull master before building :/

Version 0.10.0 (2020-03-22)

Again, huge thanks to gabrielittner for all of his work in this release.

Version 0.9.0 (2020-02-08)

Huge thanks to gabrielittner for all of his work in this release.

Version 0.8.0 (2019-02-18)

  • Change docs format for Kotlin project docs #45 (Ilya-Gh)
  • Add missing backticks in README.md #43 (Egorand)
  • Generate javadocs for Kotlin project with Dokka #37 (Ilya-Gh)

Version 0.7.0 (2018-01-15)

Thanks to @gabrielittner @marcphilipp @budius & @WellingtonCosta for their contributions.

Version 0.6.0 (2018-09-11)

Version 0.5.0 (2018-08-16)

Version 0.4.0 (2018-06-30)

Version 0.3.0 (2018-06-29)

  • Make it possible to specify the release URL as a project property. #9 (swankjesse)
  • Package up the groovy doc in case the groovy plugin is applied. For Java plugins also add the jar archive. #4 (vanniktech)
  • Unify setup, improve a few things and bump versions. #3 (vanniktech)

Version 0.2.0 (2018-05-26)

  • Throw exception when missing username or password only when executing the task. #2 (vanniktech)

Version 0.1.0 (2018-05-25)

  • Initial release