gradle: excluding spotlessJava should also exclude spotlessApply
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 35/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Stale
- Tech stack
- java
- Domain
- build-system
Research direction
Start by reproducing the reported sequence in a Java project using Gradle, Java 17, and Spotless 6.25.0, especially ./gradlew compileJava -xspotlessJava followed by git diff. Inspect how spotlessJava and spotlessApply are connected; done means excluding spotlessJava leaves the source tree unchanged.
Written by the indexing model from the issue text.
Description
When running gradle compileJava -xspotlessJava, spotlessApply will still run. Since spotlessApply copies files from build/spotless/spotlessJava to the source tree, this can overwrite unsaved work in progress, making teams lose valuable work due to a simple misunderstanding. Since this is a silent overwrite, team might also not notice that changes have been made, allowing bugs to enter the codebase.
spotlessApply should only ever run when the files it copies were created as part of the same build, to ensure no work is lost.
This happened on a company project, so I cannot quickly produce a public repo, but I could if need be. The steps to reproduce would be (in a java project using the spotless plugin...):
git clone ...
cd ...
// assuming this will have some file that can be formatted
./gradlew compileJava
git reset --hard
git checkout other_branch
// assuming some file from earlier branch is different here
./gradlew compileJava -xspotlessJava
git diff
The last git diff should not have any changes. However, currently for me this overwrites the source file with the spotless output from the ./gradlew compileJava task.
Using gradle8, java17, spotless 6.25.0 on MacOs.
- Dominant language
- Java
- Stars
- 5.7k
- Forks
- 560
- Avg merge
- 1d 13h
- Merged PRs (30d)
- 43
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from diffplug/spotless
-
Difficulty 5/5 Over a week Newbie friendliness 15/100
-
Difficulty 5/5 Over a week Newbie friendliness 35/100
-
Difficulty 3/5 1-2 days Newbie friendliness 66/100
-
Difficulty 3/5 1-2 days Newbie friendliness 68/100
-
Difficulty 4/5 3-5 days Newbie friendliness 52/100
All issues in diffplug/spotless
Similar issues
-
bug
Difficulty 1/5 Under an hour Newbie friendliness 90/100
apache/cloudstack#14222 ·
-
[BUG]茶杯方块在取茶时会引发崩溃 Open
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
1.0.0-alpha2 Type/Improvement
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
wso2/dpdp-accelerator#272 ·
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
apache/rocketmq-dashboard#4860 · 1 comment ·
-
agent-audit bug
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
Vault-Web/cloud-page#144 ·