-
Notifications
You must be signed in to change notification settings - Fork 6.8k
build: update yarn to v1.16.0 #16260
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
Conversation
08850cb
to
11b7a05
Compare
Currently our version of Yarn is installed through the "angular/ngcontainer" docker image. This is problematic because in order to be able to update Yarn, we always need to update the docker image to a version that comes with the desired Yarn version. Sometimes there is no docker image with the desired latest Yarn version, and therefore we cannot easily update the Yarn version. Additionally the latest Yarn versions contain various fixes for debugging timeout issues and also have improved logic for restoring existing `node_modules`. This is **essential** to take advantage of the CircleCI caching mechanism.
11b7a05
to
f32d5a1
Compare
@alexeagle should there just be a newer version of ngcontainer? |
@jelbourn And that's part of the problem. It makes us dependent on a docker image that doesn't have a well-defined release process. e.g. no images for latest Bazel version etc. Additionally IMO the ultimate goal is to only bring in Bazel through one of the official This right now just gives us flexibility and decouples the Yarn version from the |
My concern is that we're adding extra overhead to the CI that should be captured by the container, even at the cost of some convenience |
Hmm. I see that point and would personally also prefer not installing it dynamically as Yarn can be provided by a docker image 😄 though we are currently in a weird state where we have different types of tasks:
Ideally we'd have one bazel image from Another option would be to just use Bazel from Yarn, but it would feel more hermetic if there would be no global NodeJS / Yarn installation at all. Just a plain bazel image to guarantee hermetic behavior. |
I think you should check in |
That would work too. I don't feel too strong about it. Happy to do whatever you all prefer 😄 I just want to get us to a more recent Yarn version since the current one does not seem to restore the cache properly and big packages like |
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.
LGTM, I guess, if we don't have the resources to maintain the docker container
Currently our version of Yarn is installed through the "angular/ngcontainer" docker image. This is problematic because in order to be able to update Yarn, we always need to update the docker image to a version that comes with the desired Yarn version. Sometimes there is no docker image with the desired latest Yarn version, and therefore we cannot easily update the Yarn version. Additionally the latest Yarn versions contain various fixes for debugging timeout issues and also have improved logic for restoring existing `node_modules`. This is **essential** to take advantage of the CircleCI caching mechanism.
Currently our version of Yarn is installed through the "angular/ngcontainer" docker image. This is problematic because in order to be able to update Yarn, we always need to update the docker image to a version that comes with the desired Yarn version. Sometimes there is no docker image with the desired latest Yarn version, and therefore we cannot easily update the Yarn version. Additionally the latest Yarn versions contain various fixes for debugging timeout issues and also have improved logic for restoring existing `node_modules`. This is **essential** to take advantage of the CircleCI caching mechanism.
This issue has been automatically locked due to inactivity. Read more about our automatic conversation locking policy. This action has been performed automatically by a bot. |
Currently our version of Yarn is installed through the "angular/ngcontainer"
docker image. This is problematic because in order to be able to update
Yarn, we always need to update the docker image to a version that comes
with the desired Yarn version. Sometimes there is no docker image with the
desired latest Yarn version, and therefore we cannot easily update the Yarn version.
Additionally the latest Yarn versions contain various fixes for debugging timeout
issues (e.g. yarnpkg/yarn@024e9fe) and also have improved logic for restoring existing
node_modules
. This is essential to take advantage of the CircleCI caching mechanism.