Improvements to `bndmanifest` to support parallel usage with PDE
- 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
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