Deployment when having separate development streams


(Sorry for the quite long mail due to the complex topic..)

we're planning to employ ostree for the update of an embedded system,
but as our use case is kind of special I can't say right now if ostree
supports our anticipated workflow. I think I need some hints if our

scenario is sane or if there are more sane solutions to our problem.

(As boundary conditions, we're locked in using static-deltas.)

The embedded device is some kind of company-standardized piece of
hardware, so it will be used in very different contexts, sharing mayor
portions of the embedded software (e.g kernel, basic tools, libs, ...)
that will be combined with other (specialized) parts, developed by the
groups that will then use the embedded hardware into their project. IOW,
the deployed software will be the base system + specialized part. That
can be merged into one part (e.g can be then on one ostree branch) if
this helps. Does it or would it be better to keep them separated?

As said, the hardware will be used company wide. That means when it will
be produced only the base system can be pre-installed in the factory.
The second part will then be deployed later on, when the hardware is put
into the final device. We'd like to use ostree for that too, if

The challenge now is that the base system advances independently of the
second part.  While we can control the relation between the base system
and the 2nd part in terms of minimum version used as base, we will face
situations where we get different base systems pre-installed and then
need to generate the deltas up to the latest version.

Something like that:

        | S3|
  |       |
  | ______/
  |/      |
|---|   |---|
|B3 |   | S2|
|---|   |---|
  |       |
  | ______/
  |/      |
|---|   |---|
|B2 |   | S1|
|---|   |---|
  |       |
  | ______/
|B1 |

B=Base   S=Specialized (with or without base, whatever is better)

(Bx denoting base system version, Sx the combined work with the
specialized part, the version to be deployed; as said it could also be
only the specialized part if it helps)

We do only support "known" version mixes, so S2 would always include B2
and never B3 nor B1.

While we for sure can always release a new combined software and
maintain it on an os-tree branch, it can happen that we will have
different versions of the base system where we'd need base our deltas
on. Would that be possible with ostree?

Please let me know if my explanations are somehow unclear...

Thanks you for your help and kudos for creating ostree!
(Sorry for the long mail due to the complex topic)


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]