Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
b6b90f9
Don't deploy website on 8.x branch
Goooler Feb 2, 2025
8f4d4b4
Tweak Gradle flags (#1093)
Goooler Dec 7, 2024
12328c9
Run CI for 8.x branch
Goooler Feb 2, 2025
611253d
Update dependency gradle to v8.12.1 (#1113)
renovate[bot] Dec 21, 2024
eea1451
Revert "Remove Develocity integration (#1014)"
Goooler Feb 2, 2025
79dd223
Update dependency org.vafer:jdependency to v2.12 (#1222)
Goooler Feb 2, 2025
360e9db
Prepare changelog for version 8.3.6
Goooler Feb 2, 2025
4fda4a5
Prepare version 8.3.6
Goooler Feb 2, 2025
b6d6107
Prepare next development version
Goooler Feb 2, 2025
8446796
Update RELEASING.md
Goooler Jan 23, 2025
457d488
Don't note PR 1093 for 8.3.6 changes
Goooler Feb 4, 2025
ad64e94
Migrate credentials for publishing to Maven Central (#1414)
Goooler Apr 28, 2025
8689f5b
Update dependency gradle to v8.14.2 (#1459)
renovate[bot] Jun 5, 2025
ec4e2bd
Back to ffurrer2/extract-release-notes@v2 (#1381)
Goooler Mar 30, 2025
42c4665
Update RELEASING.md
Goooler Jun 18, 2025
1332a99
Update dependencies and remove deploy convention plugin
Goooler Jun 19, 2025
3df0ea5
Revert "Run CI for 8.x branch"
Goooler Jun 19, 2025
85a0646
Eliminate convention plugin
Goooler Jun 20, 2025
a0da04a
Make Shadow 8 be compatible with Gradle 9 (#1470)
Goooler Jun 24, 2025
badabad
Prepare version 8.3.7
Goooler Jun 24, 2025
00f771f
Prepare next development version
Goooler Jun 24, 2025
e3876a3
Update changelog
Goooler Jun 24, 2025
d9a6e2e
Update README.md
Goooler Jun 24, 2025
c0512b1
Expose Ant as compile scope (#1488)
Goooler Jun 26, 2025
0b5d946
Update changelog
Goooler Jun 26, 2025
00df3c9
Update workflow trigger and names
Goooler Jul 1, 2025
d59d947
Fix the regression of `PropertiesFileTransformer` in `8.3.7` (#1493)
Goooler Jul 1, 2025
6861d79
Prepare version 8.3.8
Goooler Jul 1, 2025
1274ca9
Prepare next development version
Goooler Jul 1, 2025
be4e014
Don't set 8.x release as the latest
Goooler Jul 2, 2025
73933ea
Update dependency gradle to v9.0.0 (#1557)
renovate[bot] Aug 1, 2025
218c78a
Use BufferedOutputStream when writing the Zip file to improve perform…
stuartwdouglas Aug 5, 2025
2adc2d7
Prepare version 8.3.9
Goooler Aug 5, 2025
b2a225f
Prepare next development version
Goooler Aug 5, 2025
35318cd
Fix resolving BOM dependencies when minimize is enabled (#1638)
Goooler Aug 12, 2025
81e1305
Remove override of maxParallelForks (#1652)
Goooler Aug 13, 2025
13c7f52
Disable ManualCodeSnippetTests
Goooler Aug 13, 2025
ceabb88
Polish stuff
Goooler Aug 13, 2025
70f0be9
Reformat all Java and Groovy code (#1751)
Goooler Sep 16, 2025
ff07ac1
Stop using start script templates bundled in Shadow (#1750)
Goooler Sep 16, 2025
be99c14
Require build-status for 8.x branch (#1752)
Goooler Sep 16, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,10 @@ indent_style = space
insert_final_newline = true
trim_trailing_whitespace = true

[*.{groovy,java}]
[*.{java,groovy}]
indent_size = 4
ij_java_class_count_to_use_import_on_demand = 999
ij_groovy_class_count_to_use_import_on_demand = 999

[*.{kt,kts}]
ij_kotlin_imports_layout = *
Expand Down
41 changes: 33 additions & 8 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,26 @@ name: CI
on:
push:
branches:
- main
- 8.x
pull_request:
branches:
- 8.x
workflow_dispatch:

jobs:
build:
name: OS=${{ matrix.os }}, Java=${{ matrix.java }}, Gradle=${{ matrix.gradle }}
strategy:
matrix:
os: [ ubuntu-latest, windows-latest ]
# Always test on the latest version and all LTS.
java: [ 11, 17, 21, 23 ]
# Always test on the latest version and some LTS.
java: [ 17, 21, 24 ]
# Test on the minimum Gradle version and the latest.
gradle: [ 8.3, current ]
exclude:
# Gradle 8.3 doesn't support Java 24.
- gradle: 8.3
java: 24
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
Expand All @@ -22,10 +31,26 @@ jobs:
distribution: 'zulu'
java-version: ${{ matrix.java }}
- uses: gradle/actions/setup-gradle@v4
- run: ./gradlew build
- run: ./gradlew build --info "-PtestGradleVersion=${{ matrix.gradle }}"

# Status check that is required in branch protection rules.
build-status:
needs:
- build
runs-on: ubuntu-24.04-arm
if: always()
steps:
- name: Check
run: |
results=$(tr -d '\n' <<< '${{ toJSON(needs.*.result) }}')
if ! grep -q -v -E '(failure|cancelled)' <<< "$results"; then
echo "One or more required jobs failed"
exit 1
fi
echo "All required jobs completed successfully."

publish-snapshot:
needs: build
needs: build-status
runs-on: ubuntu-latest
if: github.repository == 'GradleUp/shadow' && github.ref == 'refs/heads/main'
steps:
Expand All @@ -38,7 +63,7 @@ jobs:
with:
cache-read-only: true
# Disable CC due to https://github.com/gradle/gradle/issues/22779
- run: ./gradlew publish --no-configuration-cache
- run: ./gradlew publishToMavenCentral --no-configuration-cache
env:
ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.OSSRH_USER }}
ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.OSSRH_PASSWORD }}
ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.CENTRAL_PORTAL_USERNAME }}
ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.CENTRAL_PORTAL_PASSWORD }}
19 changes: 5 additions & 14 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,30 +20,21 @@ jobs:
- uses: gradle/actions/setup-gradle@v4
with:
cache-read-only: true
- uses: actions/setup-node@v4
with:
# Due to some limitations of https://github.com/node-gradle/gradle-node-plugin.
node-version: '16'
# Disable CC due to https://github.com/gradle/gradle/issues/22779
- run: ./gradlew release --no-configuration-cache
- run: ./gradlew publishToMavenCentral publishPlugins --no-configuration-cache
env:
GRADLE_PUBLISH_KEY: ${{ secrets.GRADLE_KEY }}
GRADLE_PUBLISH_SECRET: ${{ secrets.GRADLE_SECRET }}
# We must declare repository_owner as the user, workaround for https://github.com/ajoberstar/gradle-git-publish/issues/109.
GRGIT_USER: ${{ github.repository_owner }}
# https://ajoberstar.org/grgit/main/grgit-authentication.html#_environment_variables
GRGIT_PASS: ${{ secrets.GITHUB_TOKEN }}
ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.OSSRH_USER }}
ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.OSSRH_PASSWORD }}
ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.CENTRAL_PORTAL_USERNAME }}
ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.CENTRAL_PORTAL_PASSWORD }}
ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.GPG_KEY }}
ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.GPG_KEY_PASSWORD }}
- name: Extract release notes
# TODO: replace this after https://github.com/ffurrer2/extract-release-notes/pull/355 is merged.
uses: Goooler/extract-release-notes@6e686e7a607d03716b7cff561371a82065b22c33
uses: ffurrer2/extract-release-notes@v2
with:
changelog_file: src/docs/changes/README.md
release_notes_file: RELEASE_NOTES.md
- name: Create release
run: gh release create ${{ github.ref_name }} --notes-file RELEASE_NOTES.md
run: gh release create ${{ github.ref_name }} --latest=false --notes-file RELEASE_NOTES.md
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
38 changes: 23 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,34 +1,42 @@
# Gradle Shadow
# Shadow

Gradle plugin for creating fat/uber JARs with support for package relocation.

> [!NOTE]\
> Previously this plugin was developed by [@johnrengelman](https://github.com/johnrengelman) and published under the ID [`com.github.johnrengelman.shadow`](https://plugins.gradle.org/plugin/com.github.johnrengelman.shadow)
> before maintenance was transferred to the [GradleUp organization](https://github.com/GradleUp) to ensure future development, see [#908](https://github.com/GradleUp/shadow/issues/908).
> Previously this plugin was developed by [@johnrengelman](https://github.com/johnrengelman) and published under the
> ID [`com.github.johnrengelman.shadow`][johnrengelman's]
> before maintenance was transferred to the [GradleUp organization](https://github.com/GradleUp) to ensure future
> development, see [#908](https://github.com/GradleUp/shadow/issues/908).
>
> If you are still using the old plugin ID in your build script, we recommend to switch to the new plugin ID [`com.gradleup.shadow`](https://plugins.gradle.org/plugin/com.gradleup.shadow)
> If you are still using the old plugin ID in your build script, we recommend to switch to the new plugin ID [
`com.gradleup.shadow`][gradleup's]
> and update to the latest version to receive all the latest bug fixes and improvements.

## Documentation

Read the [User Guide](https://gradleup.com/shadow/)!
- [User Guide](https://gradleup.com/shadow/)
- [Change Log](src/docs/changes/README.md)

## Current Status

[![Maven Central](https://img.shields.io/maven-central/v/com.gradleup.shadow/shadow-gradle-plugin)](https://central.sonatype.com/artifact/com.gradleup.shadow/shadow-gradle-plugin)
[![Sonatype Nexus (Snapshots)](https://img.shields.io/nexus/s/com.gradleup.shadow/shadow-gradle-plugin?&server=https://oss.sonatype.org/)](https://oss.sonatype.org/content/repositories/snapshots/com/gradleup/shadow/)
[![Plugin Portal](https://img.shields.io/gradle-plugin-portal/v/com.gradleup.shadow)](https://plugins.gradle.org/plugin/com.gradleup.shadow)
[![CI](https://github.com/GradleUp/shadow/actions/workflows/ci.yml/badge.svg?branch=main&event=push)](https://github.com/GradleUp/shadow/actions/workflows/ci.yml?query=branch:main+event:push)
[![CI](https://github.com/GradleUp/shadow/actions/workflows/build.yml/badge.svg?branch=main&event=push)](https://github.com/GradleUp/shadow/actions/workflows/build.yml?query=branch:main+event:push)
[![License](https://img.shields.io/github/license/GradleUp/shadow.svg)](LICENSE)

## Latest Test Compatibility
## Compatibility Matrix

| Gradle Version | Shadow Version |
|----------------|----------------|
| 5.x | 5.2.0 - 6.0.0 |
| 6.x | 5.2.0 - 6.1.0 |
| 7.x | 7.0.0+ |
| 8.0 - 8.2.x | 8.0.0 - 8.1.1 |
| 8.3+ | 8.3.0+ |
| Shadow Version | Min Gradle Version | Min Java Version | Plugin ID |
|----------------|--------------------|------------------|------------------------------------------------------|
| 5.2.0 - 6.1.0 | 5.x - 6.x | 7 | [`com.github.johnrengelman.shadow`][johnrengelman's] |
| 6.1.0+ | 6.x | 8 | [`com.github.johnrengelman.shadow`][johnrengelman's] |
| 7.0.0+ | 7.x | 8 | [`com.github.johnrengelman.shadow`][johnrengelman's] |
| 8.0.0+ | 8.0 | 8 | [`com.github.johnrengelman.shadow`][johnrengelman's] |
| 8.3.0+ | 8.3 | 8 | [`com.gradleup.shadow`][gradleup's] |
| 9.0.0+ | 8.3 | 11 | [`com.gradleup.shadow`][gradleup's] |

**NOTE**: Shadow v5.+ is compatible with Gradle 5.x - 6.x and Java 7 - 15 _only_, v6.1.0+ requires Java 8+.


[johnrengelman's]: https://plugins.gradle.org/plugin/com.github.johnrengelman.shadow
[gradleup's]: https://plugins.gradle.org/plugin/com.gradleup.shadow
29 changes: 13 additions & 16 deletions RELEASING.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,33 +7,30 @@
2. Add a link URL to ensure the header link works.
3. Add a new `Unreleased` section to the top.

3. Update the `README.md` so the "Download" section reflects the new release version and the
snapshot section reflects the next "SNAPSHOT" version.
3. Commit

4. Commit

```
$ git commit -am "Prepare version X.Y.Z"
```sh
git commit -am "Prepare version X.Y.Z"
```

5. Tag
4. Tag

```
$ git tag -am "Version X.Y.Z" X.Y.Z
```sh
git tag -am "Version X.Y.Z" X.Y.Z
```

6. Update the `VERSION_NAME` in `gradle.properties` to the next "SNAPSHOT" version.
5. Update the `VERSION_NAME` in `gradle.properties` to the next "SNAPSHOT" version.

7. Commit
6. Commit

```
$ git commit -am "Prepare next development version"
```sh
git commit -am "Prepare next development version"
```

8. Push!
7. Push!

```
$ git push && git push --tags
```sh
git push && git push --tags
```

This will trigger a GitHub Action workflow which will create a GitHub release and upload the
Expand Down
15 changes: 0 additions & 15 deletions build-logic/build.gradle.kts

This file was deleted.

37 changes: 0 additions & 37 deletions build-logic/src/main/kotlin/shadow.convention.deploy.gradle.kts

This file was deleted.

78 changes: 0 additions & 78 deletions build-logic/src/main/kotlin/shadow.convention.publish.gradle.kts

This file was deleted.

Loading
Loading