On Feb 22, 2018, at 3:24 PM, Brian Stansberry <brian.stansberry@redhat.com> wrote:

I'm describing my thinking process of understanding this in hopes that it's helpful to others. Or that I'm all wrong and you can correct me. ;)

AIUI you want to still want to use maven and GAVs for actually pulling items from the repo, but the additional stream info allows you to work out how to identify other related items.  So I'm a bit unclear on the relationships of this coordinate to a GAV.

I initially thought it's

universe:family:build-id

org.jboss:wildfly:12.0.5.Beta4

That would mean though that BUILD_ID is not just unique for the branch, it is unique for the family.  That sounds wrong, as you state it's unique to the branch.

So now I think it's

family:branch:build-id

wildfly:12:12.0.5.Beta4

One concern with that is the 'A' in the GAV is no longer something rarely changing. In the WildFly case it would change every 3 months. This has some implications for the process of producing the feature packs.  I’m not saying that's a show-stopper problem; more that it's something that we'll have to be aware of as we think through the process of creating these.

For WildFly the “branch” (which is really a stream) we would want would, should, IMO, just be called “wildfly”, since we allow compatible updates across the stream. That may seem sketchy since it implies “forever”, but If we ever did decide to make a radical incompatible architectural change in the distant future, we would then just come up with a new moniker. 

Note that stream compatibility doesn’t necessarily mean we never prune deprecated content, it just means an update is possible. 

-Jason