Skip to content
This repository has been archived by the owner on Mar 22, 2023. It is now read-only.

Version trees #48

Open
hadronized opened this issue Aug 28, 2022 · 1 comment
Open

Version trees #48

hadronized opened this issue Aug 28, 2022 · 1 comment
Labels
next-major Will be part of the next major release

Comments

@hadronized
Copy link
Owner

hadronized commented Aug 28, 2022

We want to version trees so that we can add breaking changes and migration functions without breaking people’s trees. The idea is that if the user is using Mind vM.N.P and a tree version T with M > T, a migration prompt should appear to ask the user to migrate the tree (and assist them in doing so). If the user refuses, Mind should abort with a message asking the user to either migrate, or keep on M == T.

#31 for the motivation.

@idanarye
Copy link

Tying the tree version to Mind's major version makes sense release-wise, but isn't it going to be a problem during development?

Say you add a feature that requires a change in the tree's layout. So you bump the version to 3, but don't make an official 3.0.0 release yet because there is still more content you want to add. A week passes, Mind 3.0.0 is not released yet, but there is a new change that requires yet another modification to tree's layout.

What now?

You don't want to bump the version to 4, because that would mean skipping major version 3. But if you don't bump, then the tree will already by in version 3, and nothing will upgrade it to the new version 3!

Maybe the tree should have a major and minor version as well, where the major version of the tree is coupled to the major version of Mind but the minor version of the tree is free to change whenever such a change is required?

@hadronized hadronized added the next-major Will be part of the next major release label Dec 22, 2022
hadronized added a commit that referenced this issue Dec 22, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
next-major Will be part of the next major release
Projects
None yet
Development

No branches or pull requests

2 participants