diffplug / diffplug/goomph

Improvements to `bndmanifest` to support parallel usage with PDE

Offen
#187 2 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
enhancement
Vorherrschende Sprache
Java
Sterne
137
Forks
33
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

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?

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginne mit der Überprüfung des bndmanifest-Plugins und der verlinkten bnd ManifestUtil-Implementierung. Vergleiche die angeforderte Eclipse PDE-Formatierung mit dem aktuellen copyTo-Verhalten und untersuche anschließend, wie ein compareTo- oder copy-Modus Manifestabweichungen während des Gradle-Builds melden könnte. Erledigt ist die Aufgabe, wenn die gewünschte Formatierung und das Verhalten bei Abweichungen definiert und durch Tests abgedeckt sind.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
java
Bereich
build-system
Issue-Typ
Feature
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.