Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
52 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
75cfcde
Update Gradle to v9.1.0 (#1762)
renovate[bot] Sep 18, 2025
cbcdaf9
Add Java 25 into test matrix (#1774)
Goooler Sep 21, 2025
a2ff463
Ignore local.properties
Goooler Sep 21, 2025
2be1e64
Bump plugins and minor tweaks
Goooler Sep 21, 2025
d512286
Update ASM and jdependency to support Java 26 (#1810)
Goooler Oct 10, 2025
3971dcf
Remove document tests for 8.x (#1812)
Goooler Oct 10, 2025
e7545d2
Update test matrix on CI (#1811)
Goooler Oct 10, 2025
c38d751
Bump actions (#1813)
Goooler Oct 10, 2025
1e5f74d
Tweak Spock tests (#1814)
Goooler Oct 10, 2025
797b5b8
Update Gradle to v9.2.0 (#1828)
renovate[bot] Oct 30, 2025
f5f948d
Rename ci.yml to build.yml
Goooler Nov 1, 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
77 changes: 77 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
name: CI

on:
push:
branches:
- 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-24.04-arm ]
# Always test on the latest version and some LTS.
java: [ 17, 25 ]
# Test on the minimum Gradle version and the latest.
gradle: [ 8.3, current ]
exclude:
# Gradle 8.3 doesn't support Java 25.
- gradle: 8.3
java: 25
include:
- os: windows-latest
gradle: 8.3
java: 17
- os: windows-latest
gradle: current
java: 21
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v5
- uses: actions/setup-java@v5
with:
distribution: 'zulu'
java-version: ${{ matrix.java }}
- uses: gradle/actions/setup-gradle@v5
- run: ./gradlew build "-PtestGradleVersion=${{ matrix.gradle }}" --stacktrace

# 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-status
runs-on: ubuntu-latest
if: github.repository == 'GradleUp/shadow' && github.ref == 'refs/heads/main'
steps:
- uses: actions/checkout@v5
- uses: actions/setup-java@v5
with:
distribution: 'zulu'
java-version: 21
- uses: gradle/actions/setup-gradle@v5
with:
cache-read-only: true
- run: ./gradlew publishToMavenCentral
env:
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 }}
44 changes: 0 additions & 44 deletions .github/workflows/ci.yml

This file was deleted.

26 changes: 8 additions & 18 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,38 +12,28 @@ jobs:
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
- uses: actions/checkout@v5
- uses: actions/setup-java@v5
with:
distribution: 'zulu'
java-version: 21
- uses: gradle/actions/setup-gradle@v4
- uses: gradle/actions/setup-gradle@v5
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
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 }}
36 changes: 21 additions & 15 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,19 +1,25 @@
*.un~
.fleet
.gradle
.kotlin
build

### Android Studio ###
local.properties

### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
*.iws
.idea
build
.gradle
*.orig
out
.gradletasknamecache
.gradle-test-kit
classes/
node_modules/
yarn-error.log
src/docs/.vuepress/dist/

### VS Code ###
.vscode
bin

### Mac OS ###
.DS_Store
jd-gui.cfg
bin/
.vscode/

### MkDocs ###
docs/api
site
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.

Loading