-
Notifications
You must be signed in to change notification settings - Fork 3.4k
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
Add an environment variable to optionally disable compilation locking #14129
Conversation
lib/mix/lib/mix.ex
Outdated
@@ -352,6 +352,10 @@ defmodule Mix do | |||
* `MIX_INSTALL_DIR` *(since v1.12.0)* - specifies directory where `Mix.install/2` keeps | |||
install cache | |||
* `MIX_DISABLE_LOCK` - disables mix compilation locking. While not recommended, this may be |
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.
My only concern is that the name sounds related to mix.lock
, so alternative ideas are welcome. Though it's going to be rarely used, so maybe that's fine.
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.
maybe MIX_DISABLE_CONCURRENCY_LOCKS
? I am not sure I like _DISABLE_
in the name though. It could also be MIX_CONCURRENCY_LOCKS=0
or MIX_CONCURRENCY_LOCKS=false
?
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.
MIX_COMPILER_LOCK
maybe? It’s not affecting concurrency “in general” just turning off the new compiler lock.
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.
It applies to deps management as well. What about MIX_OS_CONCURRENCY_LOCK
?
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.
MIX_OS_CONCURRENCY_LOCK
sounds good, I'd say in this case longer is actually better :D I'm generally not a fan _DISABLE_
either, but I saw that the other env vars (MIX_DEBUG
, MIX_QUIET
) are opt-ins. If you are fine with 0/false then definitely works for me!
b3abc04
to
c2e63e9
Compare
💚 💙 💜 💛 ❤️ |
Apparently Android does not allow hard links, see https://groups.google.com/g/elixir-lang-core/c/YRpdDlH-aGA/m/PXLcuC3uBAAJ?utm_medium=email&utm_source=footer.
I believe that with an extra step we could adjust the implementation to work with symlinks (in our case, the useful property of hard links is that creating the link fails if the source file no longer exists). If you think it's worth it, I can revisit it in a separate PR, though for edge cases like this a flag may be enough.