Responses inline...

On Mon, Jul 2, 2012 at 2:12 PM, Dan Gravell
<[email protected]> wrote:
> When updating bundles, is the best strategy to update all extant bundles or
> update one bundle which is a little like an eclipse feature, having
> dependencies to the rest?
>
> I've been doing the latter but the resulting workflow seems pretty crazy to
> me. Imagine the following package dependencies:
>
> A -> B -> C
>
> That is, A is dependent on B, B is dependent on C. A, B and C are all in
> different bundles. For the sake of discussion, the bundles are also called
> A, B and C. The package dependencies are declared in the respective
> manifests for each bundle
>
> Now, I am running C and I notice a CNFE. So I add the required package to
> C's manifest.

This is not a very precise description of the problem... "add the
required package to C's manifest" could be interpreted in many ways.
Are you adding the package as a new export of C?

Also, why did the CNFE happen, and from which bundle? It sounds like
you were missing an Import-Package somewhere, but that kind of problem
would need to be fixed in A or B, not in C.

> Bear in mind first of all that this isn't actually an API
> change and not really a package level code change either, so I'm not 100%
> sure where that sits in 'semantic versioning', but anyway here's what I do
> after adding the dependency:

Assuming it's a new export then it's a new feature of the bundle,
therefore the Bundle-Version should be incremented in its minor (i.e.
second segment). However, semantic versioning of Bunde-Version can be
a little looser than package versions because they're not actually
used in resolution (if we ignore Require-Bundle!).

> 1) Choose an arbitrary package in bundle C and incremement the version

Why?

> 2) In the import for the package chosen in (1) in bundle B, increment the
> version so the new version will be pulled in upon update.

This doesn't make sense since B could not have an existing import for
the package (assuming I understood correctly that you are adding a new
Export to C).

> 3) Now increment an arbitrary package in B

Why? Does B actually need to change at all? If not, why update it?

> 4) In the import for the package chosen in (3) in bundle A, increment the
> version so the new version will be pulled in upon update
> 5) Increment the version of bundle A so that OBR will update it

Why? Again it looks like A doesn't need to change, so there's no need
to update it.

> If I update all extant bundles then I don't need to do this, but how do I
> remove bundles that are no longer required?

I don't *think* that OBR currently supports "garbage collection" for
bundles that are no longer needed. However it sounds like you don't
need to create anywhere near as much garbage as you're currently
creating, so this is probably less of a problem than you think it is.

Neil

>
> Dan

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to