diffplug / diffplug/spotless

License complexity issues

Open
#2,060 0 comments 1 reaction 0 assignees View on GitHub
Dominant language
Java
Stars
5.6k
Forks
559
Avg merge
1d 13h
Merged PRs (30d)
34

Description

This is kind of hard to describe... licensing is broken (or at least hard) as soon as you need to mix licenses or attribution

ratcheting doesn't work will on CI, remotes aren't usually set up properly, not enough information pulled down, running on the same branch that you're comparing to (like main/master). spotless check will fail then when a license doesn't match what you've put in.

So, if you have a file that you've copied (following the rules) from another repo, spotless check will fail, and/or try to overwrite.

If you're changing your license it's "impossible" to retain the header until such time that the file has changed.

If you need to concatenate your license with another (clone and own), that's also difficult.

The rest of spotless check is probably fine, I mean, I want to ensure formatting always. Licensing is where the problem comes in, because it's not the same as a formatting issue. I definitely want it to update, but I need it to not change the terms, or remove other notices.

I suppose for clone/own I can use spotless off:on? but if I've only cloned (say an upcoming patch that I need today, or because guava is bloated...), then I'm going to assume it would still inject my own header.

I feel like what I need is a way to specify copyright, and license separately, as well as a better way to ignore/addendum. Also a way to tell spotless check to ignore licensing (text, not matching) altogether (I still want spotlessApply to update in most cases, but even that I feel like I need something simple).

a `.spotlessignore` file would help for clone only, espcially since you would want to ignore formatting too.

Thoughts?

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.