Github user ahgittin commented on the pull request:

    https://github.com/apache/incubator-brooklyn/pull/92#issuecomment-61803962
  
    Good discussion just now with @aledsage and @neykov .  Conclusions include 
some changes to the above proposal:
    
    * When no version is specified, call it `0.0.0_SNAPSHOT`.
    * Not necessary now to apply monotonic increasing qualifier on conflict, 
and potentially surprising.  We should just fail if the version exists.  If it 
is easy in selected cases (viz. `0.0.0_SNAPSHOT` or perhaps all items 
`*_SNAPSHOT*`), monotonic increasing qualifier could be appended there 
automatically on conflict.
    * We do not need to support setting a default version on the catalog for 
now.  The highest version (preferring non-snapshot) is used when a caller does 
not request a version.
    * In YAML we will support the fields above (viz. including `name` in 
addition to `symbolicName`, `version`, `id`, and `displayName`), but in our 
examples we will follow a consistent approach, viz. `id`.  The others (in 
particular `name`) might be deprecated in the future to minimize the number of 
ways of doing this.  (Or we may experiment and discover that `name` is actually 
really nice, or all these ays are nice, and then keep this status quo or 
deprecate some of the other items, TBD!)
    
    Other tasks TODO:
    * Test whether we can do anything for OSGi multiple instances of the same 
version.  I thought this was the behaviour but turns out if you have two 
bundles with the same `name:version`, we use any of them, irrespective of the 
defining URL.  If we can differentiate between them based on URL we should. 
(Alex to check.)
    * Write documentation for adding to catalog, with examples, and setting 
versions and how those work.  Include `force`, and the importance of OSGi 
versioning and behaviour there (including the fact that restart might pick up 
different bundles, in good ways and bad.)
    * After this task, we'll need a way to update entities from one catalog 
item id version to another.  (I could see this as supplying a map of catalog 
item id regex->target which should be upgraded, discovering the matching 
entities, selecting all/any of them, and then deserializing and reserializing



---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

Reply via email to