Github user aledsage commented on a diff in the pull request:

    https://github.com/apache/brooklyn-docs/pull/228#discussion_r150817058
  
    --- Diff: guide/ops/upgrades/_blueprints.md ---
    @@ -0,0 +1,50 @@
    +
    +## Upgrading Blueprints and Bundles
    +
    +You can install and deploy new versions of blueprints at any time.
    +Brooklyn tracks multiple versions of the blueprints you install, as can be 
seen in the catalog.
    +
    +
    +### Defining and Forcing Upgrade Paths
    +
    +Bundles can declare what bundles and types they can upgrade,
    +and they can also force the removal of installed bundles and types on 
startup/rebind.
    +Forcing can be useful when upgrading Brooklyn to replace any installed 
bundle
    +not compatible with the newer version of Brooklyn.
    +
    +To add these definitions, use the following headers in the bundle's OSGi 
`META-INF/MANIFEST.MF`:
    +
    +* `Brooklyn-Catalog-Force-Remove-Bundles`
    +* `Brooklyn-Catalog-Force-Remove-Legacy-Items`
    +* `Brooklyn-Catalog-Upgrade-For-Bundles`
    +* `Brooklyn-Catalog-Upgrade-For-Types`
    +
    +The most common patterns are to indicate that a bundle can replace all 
previous versions of itself
    +and all types thereing with types in the current bundle of the same name, 
using:
    +
    +```
    +Brooklyn-Catalog-Upgrade-For-Bundles: *
    +```
    +
    +And you can indicate that previous bundles should be uninstalled, forcing 
the above upgrades,
    +with:
    +
    +```
    +Brooklyn-Catalog-Force-Remove-Bundles: *
    +```
    +
    +The above items can also take a range syntax, e.g. `"*:[1,2)"` when 
releasing a `2.0.0` to restrict to
    +versions equal to or greater than `1.0.0` but less than `2.0.0`. (Note 
that ranges must be quoted.)
    +Entries can also take comma-separated lists, and in the case of 
replacements, they can define
    +explicit renamed targets using 
`sourceNameAndVersionRanges=targetNameAndVersion` entries.   
    +These fields are defined in full in the
    +[`BundleUpgradeParser`'s 
javadoc]({{book.url.brooklyn_javadoc}}/org/apache/brooklyn/core/typereg/BundleUpgradeParser.html).
    --- End diff --
    
    This is good enough for now, but longer term I think the docs should be the 
definitive source of info for this (particularly as we want to target non-java 
developers). I guess to limit duplication, the javadoc could point coders at 
the docs.
    
    That whole topic needs more thought and discussion, for how we javadoc + 
document things!


---

Reply via email to