-
Notifications
You must be signed in to change notification settings - Fork 462
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
refactor: lake: manifest semver & code cleanup #4083
Conversation
b24b87c
to
fec4d9a
Compare
Mathlib CI status (docs):
|
@@ -0,0 +1,20 @@ | |||
{"version": "1.0.0", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Syntactic comment, but for somebody just looking at the manifest, this field is easy to confuse with the package version. But I suppose that was already the case while using sequential versioning.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
True, that is certainly something to keep in mind. I don't think I have good solution for that now in this PR, though.
Just a minor comment about PR labelling: I think you might be overusing the "draft" status, or at least I don't think anything should ever be both a draft and |
@semorrison Definitely! That was just me forgetting to mark it ready for review. 🤦♂️ |
Lake changed its Manifest version format to semantic versioning in leanprover/lean4#4083. This PR ensures that we can still parse the new format.
Switches the manifest format to use
major.minor.patch
semantic versions. Major version increments indicate breaking changes (e.g., new required fields and semantic changes to existing fields). Minor version increments (after0.x
) indicate backwards-compatible extensions (e.g., adding optional fields, removing fields). This change is backwards compatible. Lake will still successfully read old manifest with numeric versions. It will treat the numeric versionN
as semantic version0.N.0
. Lake will also accept manifest versions with-
suffixes (e.g.,x.y.z-foo
) and then ignore the suffix.This change also includes the general cleanup/refactoring of the manifest code and data structures that was part of #3174.