cbt icon indicating copy to clipboard operation
cbt copied to clipboard

consider designing clear capability interfaces

Open cvogt opened this issue 7 years ago • 0 comments

Think about what builds and dependencies can do as capabilities and design clear, stable interfaces for them.

E.g. something like

interface Jvm{
  public JvmConfig jvm();
  public ClassPath classPath();
}
interface JvmConfig{
  public String version();
}

If we put those into the compatibility layer (postfixing the name with a version should we ever need revisions), then we can use them to match Dependency objects against and interact with them in a type-safe way in general and especially across builds.

Then people can query the dependency graph for only those that have certain capabilities.

On the other hand maybe we should not have ONE dependency graph but several use case specific and more narrowly typed ones. Anyways, let's look into this more.

cvogt avatar Mar 16 '17 02:03 cvogt