Community
Participate
Working Groups
A p2.inf file will let your modfiy the properties, capabilities, and touchpoint instructions of an IU. We should also permit altering the update descriptor.
Simon, do you have any ideas for the syntax? I'm going to tackle this for 3.7 M1. I was thinking of something like: updateDescriptor.name = testName updateDescriptor.lowerBound = ( optional / default 0.0.0 ) updateDescriptor.upperBound = ( optional / default iu.version) That is, if you don't specify a version you get [0.0.0, current) which is the current default behaviour. We should also support the 'additional IU authoring'. For example: iu.<#>.updateDescriptor.name = testName iu.<#>.updateDescriptor.lowerBound = ( optional / default 0.0.0 ) iu.<#>.updateDescriptor.upperBound = ( optional / default iu.version)
*** Bug 282545 has been marked as a duplicate of this bug. ***
Created attachment 174034 [details] patch v1 Here is an initial cut at this. I use the lowerBound / upperBound properties, but I don't really like them. I think it would be better to use update.range instead. However, here was my thinking: One (important) use for this feature is to stage updates. (when v3 is released force people to update from v1 -> v2 -> v3). In this case you would set the UpdateDescriptor on v3 to be [v2, v3). By splitting out upper and lower bound, I thought we could make this easy update.lowerBound = v2 If we went with range, you would either have to know your current version update.range = [v2, v3) <-- which is very unlikley when you consider qualifiers, or we need a version syntax that means 'current'. update.range = [v2, CURRENT) or update.range = [v2,) (Note: empty upper bound means CURRENT.
Created attachment 174035 [details] mylyn/context/zip
Instead of lowerBound/upperBound, why not just use "range" like in requires. Also, there seems to be a "severity" field in the metadata, not sure what it is for.
Note that we already have "$version$" and "$qualifier$" which represent the version and qualifier for the IU the p2.inf belongs to.
(In reply to comment #5) > Also, there seems to be a "severity" field in the metadata, not sure what it is > for. +1, yep, I added this and update.description. (In reply to comment #6) > Note that we already have "$version$" and "$qualifier$" which represent the > version and qualifier for the IU the p2.inf belongs to. I didn't realize we had this syntax. This makes the range stuff work much better. update.range=(1.0.0,$version$] I will do it this way then. Thanks Andrew.
Created attachment 174057 [details] Patch v2 Here is an update. This uses update.range, and support $version$ and $qualifier$. I've included some unit tests, however, I still need to create some tests that use a real p2.inf file to ensure this integrates properly with the rest of the publisher.
Created attachment 174058 [details] mylyn/context/zip
Created attachment 174081 [details] Patch v3 I've added some integration test for bundles. I just need one for features now.
Created attachment 174082 [details] mylyn/context/zip
I've released this last night for Today's IBuild. I've tested it manually with plug-ins and features, and it looks good. I've also written some automated tests for plug-ins. I still want to write an automated test for features.
This was actually fixed a few weeks ago. Closing.