-
Notifications
You must be signed in to change notification settings - Fork 577
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
Managing floating V8 patches #111
Comments
/cc @nodejs/ctc and @nodejs/v8 - this is relevant to your interests. If we want to be a good OSS citizen, option 1 is arguably best. If a bug fix or feature is beneficial to node.js, chances are good it's beneficial to other projects that depend on V8. A V8 LTS branch would make a lot of people quite happy, I'm sure.
That might be an issue. How limited is very limited?
IME, the tooling is not terrible once you get the hang of it but the infrastructure is very opaque to people outside the googleplex. I'm still not sure what the difference between the trybots and the main waterfall is, for example. On a semi-related topic, what about integration testing? Ideally, we apply a change to the V8 tree and the node.js tree and check that both test suites pass. That's something we can make work on our own CI infrastructure but probably not on Google's. |
I'm very much in support of an official LTS release stream. I've gotten started with using Depot tools before and would be willing to dive in more if that will help. Do we have individuals from google that are willing to volunteer as mentors to help individuals from the node project get up and running on your stack? |
Compare our bots servicing beta and stable branch to essentially all the bots combined on the other of our waterfalls (e.g. main waterfall). This works for us because our branches are close to ToT and we get a lot of coverage from the general Chromium bots downstream.
We are already running something similar on our waterfall. This bots tries to continually integrate V8's LKGR into a fork of node master. Doing the same for an LTS is a different beast because one would need infrastructure which is compatible > 30 months backwards.
Just to clarify, you mean the second idea, a V8 fork on GitHub in Node.js' domain, right? If you have specific questions regarding depot_tools, I am sure we can get them answered. CC @ofrobots |
@natorion I was referring to
I'm open to whatever has the most traction between the two teams! |
@natorion would you like to join us for the next LTS working group meeting? |
I would gladly try to join the next meeting. When is it scheduled? |
Link to doodle poll http://doodle.com/poll/dwcpugyzsvitta94 |
I'm out of office during the week of July 4. Could there be options for other weeks? |
@natorion what is your schedule looking like. As an aside would you be willing to change the title to mention V8? |
I just added my schedule. |
@natorion just wanted to let you know that we just landed nodejs/node#7451 which allows us to run the V8 test suite in our CI on v4.x |
Bringing this over from nodejs/node#7584 We didn't mention how many LTS V8 branches we would be maintaining is it safe to assume that we are discussing a V8 LTS branch for every Node LTS release stream? It looks like the time from the last doodle has come and past. Let's try this again Fill out availability for week of July 11 - 15 in this doodle |
Yes, I believe that is a safe assumption.
|
I agree. Can you please CC me on the agenda issue or ping this thread when you decided on a date for the next LTS? It seems I missed the announcement from the 27th June meeting. |
I think we should tentatively call this for July 11th at 1pm UTC (6 am PDT, 9 am EST, and 11 pm in AUS). This time works for @rvagg @natorion and myself |
I have another meeting at that time, but I think I can skip it for next week and make the LTS discussion so cound me in |
I will try to make it, but I don't promise to be coherent at 6am on my first day back from vacation :). |
I can try and make it to any of the days above; but don't change things on my behalf. |
I can make 9:30 EST on Tuesday or 9 on Wednesday |
Where do I find the meeting ID? |
Hey everyone. It seems like people can make it to Wednesday 1pm UTC (6 am PDT, 9 am EST, and 11 pm in AUS). Will set up a meeting issue today. |
notes from @bnoordhuis
|
So the decision was to work with an intermediate fork of |
@targos I don't think a final decision was made, but it would appear that relying on the chromium infra was not going to be the most ideal way to do things. /cc @nodejs/v8 |
It is a TODO on my end up to write up a proposal on how a forked repo could be used. The idea would be to either use https://github.com/nodejs/v8 or https://github.com/v8/v8-node. |
@ofrobots do you think we could close this for now or do you still want to put time into using the forked version of v8? |
As discussed in a previous LTS WG meeting, the V8 team would like help the LTS effort. One concrete area where we could help is how V8 patches are being managed on the LTS (and other) branches.
Node.js currently is maintaining patches in their copy of V8. This copy of V8 is located in a subdirectory without any reference to the imported V8 commit. On top of this import Node.js maintains floating patches in order to make Node.js work with V8 or add more bug fixes and features. The important point is that those floating patches are not in an official V8 branch in the V8 repo.
It would be beneficial for Node.js to have a solution to clearly identify those floating patches from the V8 base import. Additionally it would be helpful to be able to keep track of which patches got merged into which branch.
Some of them are pulled into V8 as long as the branch is still active on the V8 side. It would be beneficial if Node.js didn't have to maintain their in-tree V8 fork anymore but push all the patches upstream into a V8 repo.
The Node.js team at Google outlined two potential solutions. Feel free to add your own ideas!
Maintain all the floating patches in the V8 repository on Chrome's infrastructure
A prerequisite is that the Node.js build is able to pull in a specific V8 commit/ref. This is similar to V8's DEPS format.
This means that V8 creates separate release branches for Node.js in V8's repository: e.g. node-master, node-current, node-lts, node-maintenance. Node is then going to directly import the HEAD of each branch into their respective Node.js branch.
Node.js benefits:
Node.js drawbacks:
Maintain all the floating patches in a V8 fork on GitHub
A prerequisite is that the Node.js build is able to pull in a specific V8 commit/ref. This is similar to V8's DEPS format.
Another solution would be create a V8 fork in the github nodejs or v8 organizations which automatically gets synced with the official V8 repo (Currently V8 is doing the reverse and maintaining a Node.js fork for integrating a new V8 version.). On the V8 fork the branches node-master, node-current, node-lts, node-maintenance are created. Node.js can then directly import the HEAD of each branch into their respective Node.js branch.
Node.js benefits:
Node.js drawbacks:
It would be great to get some more input on this analysis.
The text was updated successfully, but these errors were encountered: