Open tjwatson opened 3 years ago
Does this mean that if someone intentionally put [1.3, 1.7)
in their feature file, we would change that to [1.3, 1.8)
in the manifest?
Do you have examples where a range is hardcoded in a .feature
file? I've only found this very strange declaration in /com.ibm.websphere.appserver.features/visibility/public/openidConnectServer-1.0/com.ibm.websphere.appserver.openidConnectServer-1.0.feature
:
Subsystem-Endpoint-Content: com.ibm.ws.security.openidconnect.server; version="[1.0.0,1.0.200)"
I've no idea what Subsystem-Endpoint-Content
is used for. But to answer your question. If someone has put a hardcoded range anywhere I would only suggest modifying it if it was restricting on the micro-version. If it already is restricting on the minor-version then I would leave it as-is.
If your case instead had [1.3, 1.7.200)
then I suggest it should be [1.3, 1.8)
instead.
It was a purely theoretical example. I think you're saying that we would always round a micro version up to the next minor version? That sounds OK. If we can't find any other valid uses of a range within a feature file then maybe we should restrict it further somehow to prevent mistakes?
Feature versions should be generated by the build with .feature
files. The problematic cases are kernelCore-1.0.mf feature which isn't build by a .feature
file and the utility JAR manifests that use Require-Bundle. For the utility JARs it comes from the .bnd
file. I suppose we could enhance the build for these. Not sure what the effort is to do that or if it would be worth it given that developing new utility JARs is likely to be rare.
The build of liberty
.feature
files currently uses a bundle version range of[X.Y.0, X.Y.200)
where X and Y are the major and minor version for the built bundle. The use of 200 for the micro version ceiling is a bit arbitrary and will need to change once our monotonically increasing micro version hits 200. I suggest we drop the 200 micro version from our ranges. Instead use ranges of the form[X.Y, X.Y+1)
. For example, instead of[1.1, 1.1.200)
we should use[1.1,1.2)
If this is done for the
.feature
processing then we should also update the hardcoded ranges that are included in the.bnd
files for our utilities as well as thekernel.mf