Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Meta framework versioning and integration semantics #1

Open
hellkite500 opened this issue May 15, 2024 · 1 comment
Open

Meta framework versioning and integration semantics #1

hellkite500 opened this issue May 15, 2024 · 1 comment

Comments

@hellkite500
Copy link
Member

hellkite500 commented May 15, 2024

NextGen consists of a several moving parts each with standalone development and versioning semantics. In order to know what parts are compatible when integrated and used together, some semantic versioning of the meta framework would be quite useful. Here is a proposed scheme for versioning:

Each repository related to NextGen maintains its own versioning and releases based on whatever that project decides/needs, but when a component is tested in the larger NextGen context and shown to work, it can apply a Git tag to its history indicating the semantic framework version it is compatible with, this might look like

tag: meta-alpha-0.1
for a component tested with other NextGen components at the meta alpha-0.1 release
The project could have its own tags/releases without the meta prefix for tracking its own history and release/state, e.g.

tag: beta-0.2 -- component released version beta-0.2

The "trick" here is likely defining the semantic bumps in the meta framework version -- what constitutes non-breaking changes? I would say initially that can simply be when any component or combination of components is "updated" to newer component versions but the overall system still integrates (at least technically) without breaking another component.

Major version changes would bump when a component/s change in such a way that other components break without their own changes to make them compatible. No these changes could be done in conjunction and joined into a minor meta release, or if done independently, maybe this constitutes a major bump?

I don't have all the answers at the moment, but wanted to put this thought down and invite discussion/ideas about how this may be implemented, used, and/or helpful!

@aaraney
Copy link
Member

aaraney commented May 15, 2024

Thanks for starting the conversation, @hellkite500. Like you mentioned, I don't have the "answer" either, but this high value topic IMO.

At face value, i'm not thrilled with, for example, a BMI module repo adding a meta-alpha-0.1 tag to their repo index to indicate compatibility. It feels a little backwards to me. I agree that we need so way to indicate that a BMI module is compatible with x.y.z of the NextGen framework similar to how you might specify a dependency. I guess to me that feels like it should live somewhere else other than in a git tag name. Perhaps, a manifest file or machine usable format put in a github release? I tend to like the idea of a manifest file since it is github agnostic and more easily validated (this could be a CI stage).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants