You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
The text was updated successfully, but these errors were encountered:
nedtwigg
changed the title
excluding spotlessJava should also exclude spotlessApply
gradle: excluding spotlessJava should also exclude spotlessApply
Apr 15, 2024
When running
gradle compileJava -xspotlessJava
,spotlessApply
will still run. SincespotlessApply
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...):
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.
The text was updated successfully, but these errors were encountered: