Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/vlsi/vlsi-release-plugins
A set of plugins to simplify Gradle release tasks
https://github.com/vlsi/vlsi-release-plugins
checksums crlf gradle license license-management pgp-verification plugin release
Last synced: 1 day ago
JSON representation
A set of plugins to simplify Gradle release tasks
- Host: GitHub
- URL: https://github.com/vlsi/vlsi-release-plugins
- Owner: vlsi
- License: apache-2.0
- Created: 2019-06-03T15:56:29.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2024-08-14T13:01:15.000Z (6 months ago)
- Last Synced: 2025-01-22T06:07:18.857Z (9 days ago)
- Topics: checksums, crlf, gradle, license, license-management, pgp-verification, plugin, release
- Language: Kotlin
- Homepage:
- Size: 1.12 MB
- Stars: 41
- Watchers: 5
- Forks: 13
- Open Issues: 38
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[![CI Status](https://github.com/vlsi/vlsi-release-plugins/workflows/CI/badge.svg)](https://github.com/vlsi/vlsi-release-plugins/actions)
About
=====This is a set of Gradle plugins to simplify release tasks
Checksum Dependency Plugin
==========================Enables to validate the checksums of the project dependencies (both plugins and regular dependencies).
Note: this plugin has nothing to do with generating checksums.
What it does it prevents man-in-the middle attack by enabling developers
to declare the expected checksums.See [checksum-dependency-plugin description](plugins/checksum-dependency-plugin/README.md) for installation and configuration options.
Jandex Gradle Plugin
====================Allows building [Jandex](https://github.com/wildfly/jandex) class index.
An alternative use case is verification of the class files: if `jandex` fails to parse the file,
then the bytecode might be invalid.See [jandex-plugin description](plugins/jandex-plugin/README.md) for configuration options.
Stage Vote Release Plugin
=========================Enables to stage and vote on release artifacts before they are released.
See [stage-vote-release-plugin description](plugins/stage-vote-release-plugin/README.md) for configuration options.
Gradle Extensions Plugin
========================See [gradle-extensions-plugin description](plugins/gradle-extensions-plugin/README.md) for configuration options.
Enables to access `Project` properties in a type-safe way:
```kotlin
val skipJavadoc by props() // defaults to false
val enableTests by props(true) // defaults to true
val hello by props("world") // defaults to "world"
if (project.props.bool("isOk", default=true)) { ... }
```It improves test output and build failures as well:
CRLF Plugin
===========Adds Kotlin DSL to specify CRLF/LF filtering for `CopySpec`.
Enables to use `.gitignore` and `.gitattributes` for building `CopySpec`.See [crlf-plugin description](plugins/crlf-plugin/README.md) for configuration options.
IDE Plugin
==========* Configures copyright profile
* Configures "generated sources"
* Enables to configure "post import" tasks (== call task on project import to generate sources)License Gather Plugin
=====================The purpose of the plugin is to analyze and infer license names for the dependencies, and verify license compatibility.
See [license-gather-plugin description](plugins/license-gather-plugin/README.md) for configuration options.
Gettext Plugin
==============The plugin adds the following task classes to execute `GNU gettext` binaries:
* `GettextTask` collects messages from the source files into `.pot`
* `MsgAttribTask` processes `.po` files (e.g. for removal of obsolete messages)
* `MsgMergeTask` updates `.po` files with missing messages from `.pot`
* `MsgFmtTask` generates the resource bundle (e.g. Java source files for the resources)License
-------
This library is distributed under terms of Apache License 2.0Change log
----------
v1.90
* stage-vote-release: generate and publish checksums to SVN even if release artifact is UP-TO-DATE (regression since 1.75)
* stage-vote-release: added previewSvnDist task to preview SVN dist contents without publishing itv1.89
* checksum-dependency: reduce the number of idle threads
* crlf: ignore inaccessible files/folders in gitignore filterv1.88
* stage-vote-release: avoid failures when "init" does not exist
* chore: fixed build warnings
* checksum-dependency: infer artifact classifier from the file name
* checksum-dependency: copy requested attributes to the configuration that resolves PGP signaturesv1.87
* gradle-extensions: requiredString, requiredBool, requiredInt, requiredLong property accessors
* gradle-extensions: display TestNG initialization failuresThanks to [Endor H](https://github.com/endorh) for contributing.
v1.86
* checksum-dependency: use full fingerprint for PGP verificationv1.85
* licence-gather: better support for build cache by adding PathSensitivity
* checksum-dependency: cache PGP public keys under `%{ROOT_DIR}/gradle/checksum-dependency-plugin/cached-pgp-keys`
* checksum-dependency: bump org.bouncycastle:bcpg-jdk15on to 1.70v1.84
* no-op release, since some of the plugins failed to publish to Gradle Plugin Portal in v1.83v1.83
* stage-vote-release: bump grgit to 4.1.1v1.82
* gradle-extensions: render class name for JUnit4 parameterized tests with several test methods (they treated as suites in Gradle 7)v1.81
* jandex: add @IgnoreEmptyDirectories to fix Gradle 7 warning
* gettext: add @IgnoreEmptyDirectories to fix Gradle 7 warningv1.80
* license-gather: use META-INF/licenses/$group/$module-$version for storing license files in jar
* jandex: support Gradle Configuration Cachev1.79
* license-gather: avoid generating directories that end with .jar to workaround OpenJDK's JarIndex issuev1.78
* chore: bump Gradle 6.7 -> 6.9.1
* license-gather: ignore xml namespaces when parsing POM files (see [issue #43](https://github.com/vlsi/vlsi-release-plugins/issues/43))
* license-gather: fix license inference from Bundle-License manifest attribute (see [issue #48](https://github.com/vlsi/vlsi-release-plugins/issues/48))
* license-gather: implement VerifyLicenseCompatibilityTask for verifying license compatibility (see [pr #49](https://github.com/vlsi/vlsi-release-plugins/pull/49))
* checksum-dependency: retrieve keys from https://keyserver.ubuntu.com, and https://keys.openpgp.org by default (drop SKS keyserver pool since it has been deprecated)Thanks to [Florian Dreier](https://github.com/DreierF) for identifying bugs and suggesting fixes.
v1.77
* crlf-plugin: bump jgit to 5.13.0.202109080827-r
* stage-vote-release: bump jgit to 5.13.0.202109080827-rv1.76
* jandex-plugin: workaround warnings with forbiddenApis and compileTestJavav1.75
* crlf-plugin: remove input specification from FindGitAttributes task properties to workaround non-declared task dependency warning (see https://github.com/gradle/gradle/issues/18882)
* license-gather-plugin: support jars that have both /LICENSE and /META-INF/LICENSE files
* gradle-extensions: avoid printing stacktrace when Kotlin compilation fails
* gradle-extensions: avoid printing stacktraces for autostyle failures
* stage-vote-release: use task.state instead of archiveFile.exists() to skip sha512 and sign tasks
* jandex-plugin: add dependency for javadoc and sourcesJar tasks on processJandexIndexv1.74
* checksum-dependency: skip checksum verification when artifact resolves to a directory
* stage-vote-release: add workaround for Gradle 7.0 compatibility (see https://github.com/gradle/gradle/issues/16777)v1.73
* jandex-plugin: fixed "Task with name 'check' not found" when the plugin is applied with `plugins { ... }`v1.72
* jandex-plugin: add `maxErrors` option to show several errors rather than stop on the first one
* gradle-extensions-plugin: fix output of exceptions with multiple nested suppressed exceptionsv1.71
* Add CI jobs with nightly and RC Gradle versions
* jandex-plugin: build class file index via [Jandex](https://github.com/wildfly/jandex) or verify the bytecodev1.70
* stage-vote-release: fix Gradle 6.0 warningsv1.69
* license-gather-plugin: fix ignoreMissingLicenseFor annotationsv1.68
* license-gather-plugin: remove @Internal annotation from ignoreMissingLicenseForv1.67
Same as 1.66 (re-published because 1.66 artifacts were corrupted by Gradle Plugin Portal issue)v1.66
* gradle-extensions-plugin: MavenPom.simplifyXml() to trim scope=compile and dependencyManagement from pom.xml
* gradle-extensions-plugin: MavenPublication.versionFromResolution() to map versions in pom.xml to Gradle resolution results
* gradle-extensions-plugin: Project.extraMavenPublications() to add extra Maven publications (e.g. publish shadow jar)v1.65
* stage-vote-release-plugin: add `nexus.connectTimeout` and `nexus.operationTimeout` with default of 15 minutes (Maven Central is slow at times)
* stage-vote-release-plugin: create rc and release tags only after artifacts are pushed to Nexus (e.g. if javadoc build fails, the tag is not required)
* gradle-extensions-plugin: skip stacktrace for TaskSelectionException [issue#35](https://github.com/vlsi/vlsi-release-plugins/issues/35)v1.64
* stage-vote-release-plugin: upate nexus-staging 0.2.0 -> 0.4.0; gradle-nexus-staging-plugin 0.20.0 -> 0.21.2
* update jgit: 5.6.0.201912101111-r -> 5.6.1.202002131546-r
* update grgit: 3.1.1 -> 4.0.1v1.63
* gradle-extensions-plugin: refine condition for stacktrace printingv1.62
* gradle-extensions-plugin: add `DomainObjectCollection.configureEach` extension
* gradle-extensions-plugin: reduce verbosity of the default exception printer (print only well-known exceptions and stacktraces by default like NPE)
* stage-vote-release-plugin: refine -Prc input parameter validation
* license-gather-plugin: refine `Apache2LicenseRenderer` to render custom licenses
* all plugins: publish to Maven Central with PGP signaturesv1.61
* gradle-extensions-plugin: significantly improve stacktrace formatting, add task failure summary
* checksum-dependency-plugin: removed http://keys.fedoraproject.org/ from keyserver list as it no longer worksv1.60
* gradle-extensions-plugin: add GitHub Actions error markers to test output
* gettext-plugin: cleanup Gradle annotationsv1.59
* Skippedv1.58
* gradle-extensions-plugin: enable coloring in test results by default (`-Pnocolor`, `-Pnocolor=true|false`)v1.57
* Add gettext-plugin
* Add `Test.printTestResults` (print test results, color output) function to gradle-extensions-pluginv1.56
* Skippedv1.55
* Build with Gradle 6.1.1v1.54
* Replace Spotless -> [Autostyle](https://github.com/autostyle/autostyle) for simpler code style management
* Update org.eclipse.jgit: 5.4 -> 5.6
* stage-vote-release-plugin: fix race condition in nexus-publish afterEvaluate: provide username/password always
* stage-vote-release-plugin: generate description for nexus staging repository
* ide-plugin: update gradle-idea-ext: 0.5 -> 0.7v1.53
* stage-vote-release-plugin: expose NexusConfig#mavenCentral to enable publishing to Centralv1.52
* stage-vote-release-plugin: integrate signing, and support skipSign and useGpgCmd propertiesv1.51
* stage-vote-release-plugin: expose releaseParams.svnDistEnabled to skip SVN publication
* stage-vote-release-plugin: publish Git tag after publishing Nexus and SVNv1.50
* stage-vote-release-plugin: expose releaseParams.gitRepoName to customize Git repository namev1.49.0
* gradle-extensions-plugin: expose Project.props(Int), props(Long), props.string(...), props.int(...), props.long(...)
* gradle-extensions-plugin: change Project.lastEditYear to find the maximum 4-digit integer
* ide-plugin: expose ide.licenseHeader, ide.licenseHeaderJava, and ide.copyright(...). Fix default ASF copyrightv1.48.0
* stage-vote-release-plugin: workaround publishDist issue when SVN 1.9 is usedv1.47.0
* gradle-extensions-plugin: plugin for type-safe `Project` property access in `build.gradle.kts`v1.46.0
* stage-vote-release-plugin: avoid failures in pushPreviewSite on Gradle version upgrade
* stage-vote-release-plugin: allow uncommitted changes for generateVoteText / publishDist
* crlf-plugin: fix handling of `.gitignore` files in subfoldersv1.45.0
* stage-vote-release-plugin: preserve `**/.git/**` in syncPreviewSiteRepo
* stage-vote-release-plugin: avoid NPE in GitPushTask when pushing new tag
* stage-vote-release-plugin: avoid rebuilding artifacts for generateVoteText/publishDist (fetch files from SVN dist)
* ide-plugin: support generatedJavaSources for different sourceSets (main, test)
* license-gather-plugin: use Gradle 7-compatible API workerExecutor.noIsolation instead of .submitv1.44.0
* stage-vote-release-plugin: disable automatic execution of removeStaleArtifacts when publishing the releasev1.43.0
* stage-vote-release-plugin: support Gradle 6.0v1.42.0
* stage-vote-release-plugin: fix logging in RemoveStaleArtifactsTaskv1.41.0
* stage-vote-release-plugin: implement removeStaleArtifacts task to cleanup dist.apache.org
* stage-vote-release-plugin: hide technical tasks
* stage-vote-release-plugin: improve logging in GitPushTask
* stage-vote-release-plugin: detect "stage SVN revision"v1.40.0
* stage-vote-release-plugin: avoid including artifact name in ReleaseArtifact.getSha512v1.39.0
* stage-vote-release-plugin: validate asfTest...Username and asfTest...Password propertiesv1.38.0
* stage-vote-release-plugin: release tag should be created for release candidate commit, not the current HEADv1.37.0
* stage-vote-release-plugin: execute sha512 and signing tasks only when input files existv1.36.0
* checksum-dependency-plugin: use `MD5SUM` format for `.sha512` files so the checkums can be verified with `shasum -c *.sha512`v1.35.0
* checksum-dependency-plugin: ignore unresovable dependencies (see https://youtrack.jetbrains.com/issue/KT-34394 )v1.34.0
* crlf-plugin: proper support of absolute paths in non-root gitignore filesv1.33.0
* checksum-dependency-plugin: reduce verbosity by using the actual duration of "PGP key retrieval" to decide if the timeout is loggable or not
* stage-vote-release-plugin: treat generateVoteText as non-incremental task (avoid caching of the mails between rc1, rc2, and so on)
* stage-vote-release-plugin: skip SHA-512 computation when the original artifact task is skippedv1.32.0
* stage-vote-release-plugin: add releaseArtifacts {...} extension to pass artifacts across Gradle's modules
* stage-vote-release-plugin: validate Git username/password before release startsv1.31.0
* checksum-dependency-plugin: added `pgpMinLoggableTimeout` (default 4 seconds) to reduce the verbosity of the plugin
* checksum-dependency-plugin: added `checksumUpdateAll` property for simplified `checksum.xml` update without build failurev1.30.0
* checksum-dependency-plugin: show PGP signature resolution time (#21)
* checksum-dependency-plugin: disable verification when `dependencyUpdates` task is present on the task execution graph (#20)v1.29.0
* checksum-dependency-plugin: resolve and verify PGP in parallel, compute SHA in parallelv1.28.0
* checksum-dependency-plugin: fix resolution of copied configurations (== fix compatibility with https://github.com/ben-manes/gradle-versions-plugin)
* checksum-dependency-plugin: add checksumIgnore property for disabling the plugin (e.g. when certain tasks are not compatible with verification)v1.27.0
* checksum-dependency-plugin: support Gradle 4.4.1v1.26.0
* checksum-dependency-plugin: fix logging for "PGP key...download time: 0ms"v1.24.0
* checksum-dependency-plugin: failover across multiple keyservers and DNS responsesv1.23.0
* checksum-dependency-plugin: support Gradle 4.10.2v1.22.0
* checksum-dependency-plugin: add `` to prevent resolution of known to be absent keysv1.21.0
* checksum-dependency-plugin: PGP-based dependency verification (see [detailed description](plugins/checksum-dependency-plugin/README.md))v1.20.0
* checksum-dependency-plugin: properly track `.pom` artifacts (and other non-jar artifacts with default classifier)v1.19.0
* checksum-dependency-plugin: include `classifier` and `extension` to artifact keyv1.18.0
* checksum-dependency-plugin: improve loggingv1.17.0
* checksum-dependency-plugin: new plugin to verify the downloaded dependencies on resolution
* all plugins: remove Implementation-Version manifest attribute to make jars have
consistent checksums across versions
* stage-vote-release-plugin: make sitePreviewEnabled configurable via propertyv1.16.0
* stage-vote-release-plugin: make -Prc optional for pushPreviewSitev1.15.0
* stage-vote-release-plugin: validate Git credentials
* stage-vote-release-plugin: use $it-site.git and $it-site-preview.git name conventionsv1.14.0
* stage-vote-release-plugin: use property value instead of name for Git credentialsv1.13.0
* stage-vote-release-plugin: allow to publish to AFF repository via -Pasfv1.12.0
* Add .editorconfig
* stage-vote-release-plugin: take RepositoryType.PROD/TEST from "asf" property
* stage-vote-release-plugin: add releaseParams.rc, releaseParams.release and releaseParams.committerId properties
* stage-vote-release-plugin: add GitCreateTagTask, GitPushTask
* stage-vote-release-plugin: add option to automatically generate SHA512
* stage-vote-release-plugin: allow to select between GitHub and GitBox push alternatives
* stage-vote-release-plugin: add pre-release validations
* stage-vote-release-plugin: create and push RC and Release tags
* stage-vote-release-plugin: add ReleaseExtension#componentName (a sub-component under TLP)
* stage-vote-release-plugin: load stagingRepositoryId for release task
* stage-vote-release-plugin: avoid parallel execution of initializeNexusStagingRepository to improve task concurrency
* ide-plugin: support generatedSources in Eclipse
* license-gather-plugin: exclude txt-based licenses from the jar to save some spacev1.11.0
* stage-vote-release-plugin: require Nexus username/password only when release task is usedv1.10.0
* stage-vote-release-plugin: fix asfSvnUsername should be used instead of asfasfSvnUsernamev1.9.0
* stage-vote-release-plugin: properly support username/password for Nexus and SVN
* stage-vote-release-plugin: make sitePreview optionalv1.8.0
* stage-vote-release-plugin: add ReleaseExtension#validateReleaseParams(Runnable) to enable fail-fast on releasing SNAPSHOT versionsv1.7.0
* crlf-plugin: add CrLfSpec { CopySpec.textAuto() } for simplified handling of text filesv1.6.0
* license-gather-plugin: build "predict license by text" model at the build timev1.5.0
* stage-vote-release-plugin: Project.licensesCopySpec includes NOTICE and license by defaultv1.3.0
* Move gitattributes and gitignore to crlf plugin (from stage-vote-release-plugin)
* Add workaround for https://github.com/gradle/gradle/issues/1191 (Copy tasks do not consider filter/eachFile/expansion properties in up-to-date checks)v1.2.0
* stage-vote-release-plugin: support `.gitignore` and `.gitattributes` in building `CopySpec`v1.0.0
* Initial release: basic license gatheringAuthor
------
Vladimir Sitnikov