diffplug / diffplug/spotless

License complexity issues

Aperta
#2,060 0 commenti 1 reazione 0 assegnatari Vedi su GitHub
Lingua principale
Java
Stelle
5.6k
Fork
559
Merge medio
1g 14h
PR unite (30g)
43

Descrizione

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?

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Inizia riproducendo il comportamento segnalato relativo a ratcheting, remotes, spotless check e spotlessApply, inclusi i file copiati e le modifiche alla licenza. Confronta la separazione richiesta tra copyright e licenza, il comportamento di addenda o ignore e .spotlessignore con la configurazione e i test attuali; il lavoro è completato quando il testo della licenza viene preservato o aggiornato intenzionalmente senza interrompere i controlli di formattazione.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
git, java
Ambito
build-system, tooling
Tipo di issue
Funzionalità
Difficoltà
5/5
Tempo stimato
Più di una settimana
Stato di attività
Ferma
Chiarezza
Da chiarire
Idoneità per principianti
25/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.