Hi,

We have multiple projects that all have their dependencies. Dependency
management and updates is not something we have really looked at yet. It
does become more important the further we go.

For now I just want to focus on the SI only. There are more dependencies
but most are just for the core or just for a shim. Go handles that in most
cases. However the integrated build and the fact that we have not defined
backwards compatibility can cause issues with the SI.

The SI is used by the core and shim(s). Without backwards compatibility we
need to keep the core and shim in sync for the version. We should not just
update the SI version in either repo without a full test and thinking
through the consequences. When we get to a version 1.0 of the SI we also
need to document the rules about what we can change in a minor version of
the SI. We should also define if we allow a core to be built with a newer
version of the SI compared to the shim(s). I have not tested if that
currently even works with the setup we have.

When adding new functionality that requires a SI update the shim and core
need to be kept in sync. Currently the order in which we update must always
be:

   1. scheduler interface
   2. core
   3. shim(s)

If that update order is not maintained the build, specifically of the shim,
will break.

For any SI updates please coordinate with the rest of the community as
these are the steps that are currently required:

   - update the SI, commit the change
   - update the SI dependency in the core, commit the change
   - update the SI and core dependency in the shim, commit the change

Wilfred

Reply via email to