Zulip Chat Archive
Stream: lean4
Topic: best workflow for bumping mathlib
Jakob von Raumer (Jun 24 2024 at 10:04):
Has anybody found a good workflow to bump lean and (several months of) mathlib versions in big libraries of proofs that depend on it? There's probably not a catch-all answer to this, but is there anything better than to have two copies of the code and compare proof states manually? Any tools that give you the point of divergence or that would track renamings or other changes in mathlib and apply parallel changes to another codebase?
Kim Morrison (Jun 24 2024 at 10:05):
The only tooling that exists at present is the deprecation warnings, which we are trying to be more consistent about!
Kim Morrison (Jun 24 2024 at 10:05):
Search for leanup
for discussion of an ambitious but as yet non-existent tool to help.
Jakob von Raumer (Jun 24 2024 at 10:06):
The deprecation warnings are already super helpful :smile:
Kim Morrison (Jun 24 2024 at 10:06):
Are you able to share which library? (Possibly privately?)
Kim Morrison (Jun 24 2024 at 10:07):
My main piece of advice would be to bump one version at a time -- i.e. using the v4.X.0
tags.
Jakob von Raumer (Jun 24 2024 at 10:11):
Mostly verifications of functions using Aegis, including verifying fixed-point arithmetics approximations of real-valued specifications, so changes regarding ZMod
and casts cause most of the breakage.
Kim Morrison (Jun 24 2024 at 10:45):
We create a v4.X.0
for the first commit when Mathlib has moved to the new release v4.X.0
.
Kim Morrison (Jun 24 2024 at 10:46):
You could even try bumping to both these tags (at which point you need to deal with language changes) and between, bumping to the commits immediately prior to those tags (the language has not changed, but Mathlib has evolved).
Jakob von Raumer (Jun 24 2024 at 11:16):
Thanks, I'll try that!
llllvvuu (Jun 24 2024 at 14:43):
At some point I also brought up the idea of using conventional commit's !
(e.g. "feat!", "refactor!"). Maybe too hard though.
Last updated: May 02 2025 at 03:31 UTC