-
Notifications
You must be signed in to change notification settings - Fork 29.6k
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
Revert "build: update minimum Xcode version for macOS" #30043
Conversation
This reverts commit 9f830f3. Ref: nodejs#29622 Ref: nodejs#29493 Node.js build infrastructure is not prepared to release 13.x on anything but Xcode 8 on macOS 10.11.
@rvagg I thought the agreement in #29493 (comment) and #29493 (comment) was to bump the minimum level and then only later actually update the builds to use that minimum level (post 13.x release as we know we would not have resources to update the osx level before then)? |
@mhdawson I'm fine with having 10 as a stated minimum for building node yourself while we still use 8, we've been doing that with GCC and clang (although that's now coming to an end). The problem here is that our own release builder is on 8. We've always been careful to make sure our release builders are able to be locked in for the duration of a release line and are up to the minimums we have in BUILDING.md, even if we've been lax with test builders. If we could have rushed a release builder out with 10 then this would be a simpler discussion but it turned out to be too hard. Perhaps we didn't chase down this rabbit hole far enough in the original discussion. I honestly don't know what the solution here is, but right now BUILDING.md wrongly states that we build with 10 but we don't. We'll either continue building with 8 for the life of 13, potentially making it difficult or impossible for V8 upgrades, or we'll switch release compilers in the middle of 13, potentially creating user incompatibility problems. Which dice do we want to roll? |
@rvagg I agree its a hard choice and not clear which is best, but I thought we had come done on the side of upping the minimum with the goal of updating the build chain during the 13.x lifetime (hopefully near the start) although maybe I'd assume there was a more complete discussion/agreement on that than I tought. |
Ooops, I didn't actually mean to close this. But reviewing #29493 again, maybe there is a shared agreement among many of the participants there that upgrading macos compiler in the middle of 13 was an acceptable risk. |
@mhdawson sadly I think this is just evidence of our stretched resources and how so few of us have to be across so many disparate issues. Calling on nodejs/build doesn't get as many parties involved in a discussion as it used to and it falls on fewer of us to shoulder complex decisions. |
@rvagg I think we should probably improve BUILDDING.md to clarify our stated minimum requirement versus what we do. Those 2 should probably be called out separately but would plan to do that post 13.x |
I like the note about this that went out in the 13.0.0 release notes, I'll drop this. |
Ref: #29622
Ref: #29493
Node.js build infrastructure is not prepared to release 13.x on anything but Xcode 8 on macOS 10.11.
We have limited macOS resources in MacStadium that we have to share for all test and build across our different release lines and so far have avoided the complexity of managing multiple versions of Xcode on a single build server.
IBM have stepped up, yet again, to fill the gap here (you really should thank IBM for carrying so much of the infra work, and they're not even responsible for triggering changes to our compiler minimums). See nodejs/build#1967, but if 13.0.0 is going out in a couple of days this is going to get done safely on our release infrastructure and we should probably proceed with status quo.
We could probably bump this in the middle of 13.x and get away with it when we have the release infra safely ready. It would be unprecedented to do this, but our
-mmacosx-version-min=10.10
and the macOS compiler toolchain in general gives us some pretty good stability guarantees.@nodejs/build @nodejs/tsc @nodejs/releasers