Conversation
Goooler
commented
Sep 1, 2026
Member
- CHANGELOG's "Unreleased" section has been updated, if applicable.
Goooler
force-pushed
the
g/20260901/sources-jar
branch
3 times, most recently
from
September 2, 2026 06:38
51fa468 to
7161bfa
Compare
…t even without dependency sources
Goooler
force-pushed
the
g/20260901/sources-jar
branch
from
September 2, 2026 07:06
29523cb to
68c2e1b
Compare
…h and match unused classes
This reverts commit 23adce5.
This comment was marked as outdated.
This comment was marked as outdated.
This reverts commit 0100ab2. ### 1. Test Versions | Commit Hash | Local Version Tag | Description | | :--- | :--- | :--- | | [`51d5feb5`](51d5feb) | `9.0.3-51d5feb5` | **Before Worker API** (single-threaded serial execution) | | [`0100ab21`](0100ab2) | `9.0.3-0100ab21` | **After Worker API** (asynchronous parallel execution via Gradle Worker API) | --- ### 2. Detailed 10-Iteration Benchmark Results (Unit: ms) | Iteration | Before Worker API (`51d5feb5`) | After Worker API (`0100ab21`) | | :---: | :---: | :---: | | **Warm-up 1** | 19,131.87 | 7,158.15 | | **Warm-up 2** | 937.74 | 927.13 | | **Warm-up 3** | 867.42 | 892.92 | | **Build 1** | 949.85 | 887.27 | | **Build 2** | 855.78 | 895.07 | | **Build 3** | 870.54 | 913.32 | | **Build 4** | 842.07 | 962.29 | | **Build 5** | 834.61 | 902.32 | | **Build 6** | 895.61 | 863.34 | | **Build 7** | 842.98 | 882.96 | | **Build 8** | 836.82 | 862.21 | | **Build 9** | 843.10 | 888.14 | | **Build 10** | 874.22 | 867.52 | --- ### 3. Summary Statistics | Metric | Before Worker API (`51d5feb5`) | After Worker API (`0100ab21`) | Difference | | :--- | :---: | :---: | :--- | | **Mean** | **864.56 ms** | **892.44 ms** | +27.88 ms (+3.2%) | | **Median** | **849.44 ms** | **891.17 ms** | +41.73 ms (+4.9%) | | **Min** | **834.61 ms** | **862.21 ms** | +27.60 ms | | **Max** | **949.85 ms** | **962.29 ms** | +12.44 ms |
Goooler
force-pushed
the
g/20260901/sources-jar
branch
from
September 24, 2026 06:08
f6ff622 to
3894ca7
Compare
Goooler
force-pushed
the
g/20260901/sources-jar
branch
from
September 24, 2026 07:27
3894ca7 to
af63b6c
Compare
Include `archiveAppendix` in the artifact name, and skip publishing the sources JAR when `shadowJar` is disabled, which previously failed with a missing file while generating the module metadata.
Sources were always decoded and re-encoded as UTF-8, replacing non-UTF-8 bytes with U+FFFD. Fall back to ISO-8859-1 for sources that are not valid UTF-8, and keep the original bytes when nothing is relocated.
This reverts commit 0abfeb5.
This reverts commit 320e4bb.
Also fix the broken blockquote in the R8 shadowed sources JAR note.
Goooler
force-pushed
the
g/20260901/sources-jar
branch
from
September 24, 2026 15:30
ef198b2 to
3b604fc
Compare
- Deduplicate entry writing in generateSourcesJar. - Remove the redundant slash branch in extractSourceSubpatterns, as converting a pattern and its prefix to dot or slash notation keeps `startsWith` the same. - Remove the unused default offset from matchesSubpattern. - Skip unrelated sources early in SimpleRelocator.applyToSourceContent, avoiding building subpatterns and regexes for sources that don't reference the pattern. Remapping 300 Guava sources with 1001 relocators went from ~25s to ~1.5s.
References like `getResource("/org/foo/x.properties")` are relocated in
class files, as `canRelocatePath` strips the leading slash, but were kept
as-is in the shadowed sources.
With class-level includes or excludes, a source file's path is relocated per class like class files, but its `package` declaration can't match those patterns. An excluded class kept its path but got a relocated package, and an included class got the opposite. Set the declaration from the relocated path for sources laid out in their package directories.
Goooler
force-pushed
the
g/20260901/sources-jar
branch
from
September 24, 2026 16:37
4d1e45e to
8422270
Compare
KGP's `jvm` publication publishes the non-shadowed JAR, so attaching the shadowed sources JAR to it would publish mismatched sources and may clash with KGP's own sources classifier. Publish the shadowed JAR and its sources together in a dedicated publication instead.
Keeping `jar` enabled while `shadowJar` writes the same file in `build/libs` has no ordering between them, so the published JAR depended on which task finished last, which made its functional test flaky. The overlapping outputs also disable caching for both tasks. Keep publishing from the `shadow` component as the only documented replacement approach.
Add a `withSourcesJar` parameter to writeClientAndServerModules instead of always enabling `withSourcesJar()`, so unrelated multi-project tests keep covering the default path without generating shadowed sources JARs.
Goooler
marked this pull request as ready for review
September 24, 2026 18:01
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.