diffplug / diffplug/goomph

Improvements to `bndmanifest` to support parallel usage with PDE

Aperta
#187 2 commenti 0 reazioni 0 assegnatari Vedi su GitHub
enhancement
Lingua principale
Java
Stelle
137
Fork
33
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

We would like to generate our manifests with the `bndmanifest` plugin.

Our idea is to generate the `MANIFEST.MF` file, but in a way that it stays compatible with the PDE tooling running inside the IDE. In this setup we would have the `MANIFEST.MF` file present in our Git Repo.

---

What already exists:

`copyTo` from the `osgiBndManifest` can be used like this:

```
osgiBndManifest {
copyTo 'META-INF/MANIFEST.MF'
}
```

---

A first limitation is that [ManifestUtil](https://github.com/bndtools/bnd/blob/master/aQute.libg/src/aQute/lib/manifest/ManifestUtil.java) from bnd is formatting the MANIFEST according to the spec (line should not exceed 72 bytes and so on).

For us this creates an artificial change in `Service-Component:` because the `org.eclipse.pde.ds.annotations` tooling in Eclipse creates one line per xml file in the `OSGI-INF/` folder.

We would like both tools `bndmanifest` and PDE tooling to have the same formatting (the Eclipse one).

---

A second feature we would like to have:

We consider that the generated MANIFEST created by the `bndmanifest` should win over a manual change in the Eclipse IDE. But we would like to be able to detect those mismatch by having a build failure if the generated manifest does not match the current version.

So instead of `copyTo` this should be something like a `compareTo` option that fails the build if the MANIFEST file is not correct. Maybe with a possibility to copy instead of compare (think `spotlessCheck` vs `spotlessApply`).

---

Have you some opinion about this topic?
Would you accept a PR for features in this direction?

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Inizia esaminando il plugin bndmanifest e l’implementazione bnd ManifestUtil collegata. Confronta la formattazione Eclipse PDE richiesta con il comportamento attuale di copyTo, quindi analizza come una modalità compareTo o copy potrebbe segnalare discrepanze nel manifest durante la build Gradle. Il lavoro è completato quando la formattazione desiderata e il comportamento in caso di discrepanze sono definiti e coperti da test.

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

Valutazione

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

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.