bnd icon indicating copy to clipboard operation
bnd copied to clipboard

Clarify considered bundle headers for baselining

Open kwin opened this issue 3 years ago • 3 comments

Currently https://bnd.bndtools.org/chapters/180-baselining.html only states:

Certain headers always change because they contain time or digest information. Most of these headers are already automatically ignored but the -diffignore instruction can add more ignorance.

It would be good to instead explicitly list those which are considered for baselining, as those should only be a few, and the list helps to manage expectations, which potentially backwards-incompatible changes would be caught by baselining.

IMHO the following headers have a semantical meaning for consuming bundles:

  1. Bundle-License (every change should require at least a major increment)
  2. Bundle-RequiredExecutionEnvironment (the subsets and also backwards-compatibility has to be considered from http://docs.osgi.org/reference/eenames.html)
  3. Bundle-ManifestVersion
  4. Export-Package
  5. Provide-Capability (hard to diff though, as not every change is relevant)

Every other header name should be ignored

kwin avatar Jun 21 '22 17:06 kwin

The list of ignored headers is:

https://github.com/bndtools/bnd/blob/53d15f2285114e224d85638459580382c91cb0bc/biz.aQute.bndlib/src/aQute/bnd/differ/DiffPluginImpl.java#L77-L79

bjhargrave avatar Jun 27 '22 18:06 bjhargrave

How are changes in the other headers being qualified? Which ones require major changes, which ones minor?

kwin avatar Jun 27 '22 19:06 kwin

If you are looking for improvements to the documentations, PR are most welcome.

bjhargrave avatar Jun 27 '22 19:06 bjhargrave