Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

License complexity issues

Open
#2,060 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
25/100
Issue type
Feature
Clarity
Needs clarification
Activity status
Stale
Tech stack
git, java

Research direction

Start by reproducing the reported behavior around ratcheting, remotes, spotless check and spotlessApply, including copied files and license changes. Compare the requested copyright/license separation, addenda or ignore behavior, and .spotlessignore against the current configuration and tests; done means license text is preserved or updated intentionally without breaking formatting checks.

Written by the indexing model from the issue text.

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?

Dominant language
Java
Stars
5.7k
Forks
560
Avg merge
1d 13h
Merged PRs (30d)
43

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from diffplug/spotless

All issues in diffplug/spotless

Similar issues

More Java issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.