diffplug / diffplug/goomph

Improvements to `bndmanifest` to support parallel usage with PDE

Open
#187 2 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Java
Stars
137
Forks
33
PR merge metrics
No merged PRs in 30d

Description

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?

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.