-
Notifications
You must be signed in to change notification settings - Fork 465
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
directory for Lake outputs
#2749
Conversation
|
@Kha I was going to ask you if the |
@semorrison A note for you when you can take a look: The mathlib CI is currently breaking for reasons other than this PR and I think this PR will likely need a proper CI run on mathlib since it may break some assumptions there about the location of the build directory. |
Options for a successful PR run:
|
I see they are being used in the lockfile code but I can't tell what's going on for lack of comments. What is the difference to |
|
Mmh, if I understand you correctly and you believe that |
Oops, yeah, it appears I confused the exclusion offered by e.g. |
ab82bca
to
122f856
Compare
Phew, I'm impressed you made that work in quick time but this looks like it will take some time to review. Why not leave worrying about races to #2766 as mentioned there? On a positive note, this looks like the right functions to implement a general build lock that avoids the issues of the first try. |
@joehendrix Speaking in general, I think it would be great if you could review additions to |
Anyway, this should be done. The last |
7c15519
to
2092e25
Compare
I split the |
I'll remove my review request, unless there's something specific you want me to look at |
_lake
directory for Lake outputs.lake
directory for Lake outputs
Following the Zulip poll, I have decided to follow the majority and make the default Lake directory /cc @semorrison, @Kha, @joehendrix: Since you all commented, it seems proper to notify all of you before I merge in case there is anything else you wish to add. |
This is an additional safety net on top of #2749: it protects users that circumvent the build system (e.g. with `lake env`) as well as obviates the need for TOCTOU-like race condition checks in the build system. The check is activated by `CHECK_OLEAN_VERSION=ON`, which now defaults to `OFF` as the sensible default for local development. When activated, `USE_GITHASH=ON` is also force-enabled for stage 0 in order to make sure that stage 1 can load its own core library.
Store the build directory, build archives, package directory, and compiled configuration inside a dedicated directory for Lake outputs (i.e.,
.lake
).There is also now a more rigorous check on(edit: split out into #2842)lakefile.olean
compatibility.Closes #2713.