You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In the TSC meeting today, those present agreed that we should call for a vote. This issue is to discuss with the full TSC since not all members were in attendance.
The issue driving the discussion is: deps: add Yarn 1.22.5 #37277 and the related issue is: nodejs/node#35398
You can catch up on the discussion in the minutes: #1011
My first cut at the options for the vote based on the discussion in meeting are:
we should integrate yarn/land 37277
we should integrate corepack/land 35398
my preference is that we integrate yarn, but if that does not get enough votes we should integrate corepack
my preference is that we integrate corepack, but if that does not get enough votes we should land yarn
I don't think we should land yarn or corepack
I don't think we should land yarn or corepack because there is not enough information to make a good decision yet
The last 2 will both be counted together but would provide insight if a no vote is due to an objection or a lack of information (since it has been raise that more info may be necessary to make a good decision).
@nodejs/tsc please review and indicate if there are any objections to move to a vote, and suggestions for improvements/changes to the options suggested for the vote.
Moving to a vote and the set of options look good to me, though "land ABC" imo should be replaced with "target landing ABC", so that e.g. voting for 1-4 shouldn't imply an approval of the current state of those PRs without comments or be treated as a code review.
Reacted by Michaël Zasso, Matteo Collina, Ruben Bridgewater and Michael Dawson
Would this issue be suitable for a Condorcet? That would allow TSC members to express more precision what they want for Node.js, and it's probably more "fair" than having to chose only one option. For a Condorcet vote, I think the options could be (in alphabetical order):
Keep npm, integrate Corepack (not Yarn).
Keep npm, integrate Yarn (not Corepack).
Keep npm, integrate Yarn and Corepack.
Keep npm, do not integrate Corepack nor Yarn.
Remove npm, do not integrate Corepack nor Yarn.
Remove npm, integrate Corepack (let npm and Yarn decide if they want to be in Corepack).
Remove npm, integrate Yarn (do not integrate Corepack).
Maybe I'm not wording it correctly, I mean stop bundling npm by default, not completely removing it of course. I remember some participants of last TSC meeting stating they'd rather do that than bundling yarn. IMHO it makes more sense to discuss the status of npm in Node.js along side yarn integration, but please disregard if that's off-topic.
My point was to suggest using Condorcet for this vote, not removing npm.
Reacted by Jordan Harband, ExE Boss, Maël Nison and Nikita Skovoroda
Condorcet is not a single method but a group of similar methods.
More specifically: given N options, start with ranking each option on a relative preference scale (1-N, allowing duplicates).
Then use some of the methods to rank those (those are different)
While there are methods that e.g. disallow duplicate rankings (simple ranking) in the voting process, there seems to be little benefits of that and that just complicates the decision process.
I'm wondering if Condorcet is going to let TSE members better express their opinion? It's going to take more work to set up/etc. so want to be sure pushing out the vote to do that is beneficial. In particular I'm not sure how it handles the "but only if X" does not win.
did you come across the use of Condorcet for non-elections ? I see most articles reference electing people versus making a decision?
I've seen used to pick a name. It's just a voting system, I don't think there is any difference if it's used for electing people vs choosing ideas.
I'm wondering if Condorcet is going to let TSE members better express their opinion? It's going to take more work to set up/etc. so want to be sure pushing out the vote to do that is beneficial. In particular I'm not sure how it handles the "but only if X" does not win.
From what I've read, it has some significant advantages including allow voter to express their opinion (instead of going all in for only 1 proposition, you rank them all, so you can better express where you stand on the issue), and you can add "but only if X" propositions to the list without splitting the votes. I reckon it does take more work to set it up, let me know if I can help, I think it would be useful to have some tooling to assist with that if we haven't a Condorcet voting system already (even if we end up not using it for this particular vote).
Quick question: are the newly nominated folks already onboarded or are we waiting on anything? Will they participate in the vote? If they are not, should we wait until they are onboarded before voting?
I think there are diminishing returns to introducing more nuanced ranked voting than RCV.
Offtopic on meta
To me, RCV looks more complex that simple scoring, because it entangles options between each other.
I would have preferred something like this instead:
Which provides the data that we need, and for me looks easier to both use as a data source (reasons above) and to fill in, because it avoids entangled options, i.e. comparing them to each other, and instead asks a simpler more grounded question.
That said, I'm ok with RCV for the sake of continuing this, perhaps we could move the meta discussion (for future) to some other channel from this PR. I hid that under a spoiler, hope that's ok.
Vote link sent to @nodejs/tsc members via email listed on https://github.com/nodejs/node#tsc-technical-steering-committee. If you didn't receive an email, please let me know and I'll send you a code to vote. Being a free vote session on OpaVote means we have 7 days to finish the vote, so please vote ASAP. If you are going to abstain, please vote without selecting any options so we know you're aware of the vote.
I'll try to send daily emails to members who didn't vote yet to make sure everyone has a chance to vote.
This is hopefully obvious and may already be covered above somewhere that I'm not seeing in a quick skim, but I want to make sure we all agree that a vote for including corepack or bundling yarn is not a vote for any particular implementation. For example, hypothetically, I may be in favor of shipping corepack, but only if we can do it in a way that does not change anything for existing npm users--in other words, it can't introduce any additional friction/burden for existing users and CI automation and whatever else. So I might be in favor of corepack but opposed to a specific PR that adds it.
Reacted by Jordan Harband, Matteo Collina, Antoine du Hamel, Danielle Adams, Myles Borins, mary marchini, Shelley Vohr, ExE Boss, Robert Nagy, Michael Dawson and 2 more
Still 1 remaining. I sent a final reminder to them and will close the vote in 24 hours. Unfortunately I don't know if their email is up to date on our mailing list (see #1022) and I don't want to ping them directly here without their consent (but I also can't reach them anywhere else). So I'm going to cc @nodejs/tsc once more just in case
Vote is closed. Winner is "add corepack" with 63.2% of votes as first choice. Ballouts have been shared with TSC members in private.
OpaVote Election Results (https://www.OpaVote.com/)
Vote on integration of Yarn
There are 3 candidates competing for 1 seats. The number of voters is 21 and
there were 19 valid votes and 2 empty votes.
Counting votes using San Francisco RCV.
R|Add corepack |Add yarn |Leave things as is|Exhausted
| | | |
==============================================================================
1| 12| 2| 5| 0
|---------------------------------------------------------------------------
| Count of first choices.
==============================================================================
2| 18| | | 1
|---------------------------------------------------------------------------
| Count after eliminating Add yarn and Leave things as is and transferring
| votes. All losing candidates are eliminated. Candidate Add corepack is
| elected.
Winner is Add corepack.
This means we're not moving forward with #37277. We can revisit nodejs/node#35398 to see if there are any technical concerns left before landing.
Reacted by Nikita Skovoroda, Ian Sutherland, Veniamin Krol, linkgoron, Benjamin Gruenbaum, Benjamin DANIEL, darkred, Clément Petit, Abdellah and ExE Boss
Reacted by Matteo Collina, Antoine du Hamel, James M Snell, Zoltan Kochan, Maël Nison, Lellansin Huang, Nikita Skovoroda, Veniamin Krol, darkred, Sam Zhou and 1 more
Activity
jasnell commentedon Apr 9, 2021
These options look good. I'm +1 on moving to vote
ChALkeR commentedon Apr 9, 2021
Moving to a vote and the set of options look good to me, though "land ABC" imo should be replaced with "target landing ABC", so that e.g. voting for 1-4 shouldn't imply an approval of the current state of those PRs without comments or be treated as a code review.
ChALkeR commentedon Apr 9, 2021
Also, perhaps an explicit abstain option could be useful.
gireeshpunathil commentedon Apr 10, 2021
+1 on moving to vote
aduh95 commentedon Apr 10, 2021
Would this issue be suitable for a Condorcet? That would allow TSC members to express more precision what they want for Node.js, and it's probably more "fair" than having to chose only one option. For a Condorcet vote, I think the options could be (in alphabetical order):
ljharb commentedon Apr 10, 2021
Is “remove npm” even on the table?
mcollina commentedon Apr 10, 2021
remove npm was not on the table during the last TSC meeting.
aduh95 commentedon Apr 10, 2021
Maybe I'm not wording it correctly, I mean
stop bundling npm by default, not completely removing it of course. I remember some participants of last TSC meeting stating they'd rather do that than bundlingyarn. IMHO it makes more sense to discuss the status ofnpmin Node.js along sideyarnintegration, but please disregard if that's off-topic.My point was to suggest using Condorcet for this vote, not removing npm.
mcollina commentedon Apr 10, 2021
+1 on condorcet.
DerekNonGeneric commentedon Apr 11, 2021
ChALkeR commentedon Apr 11, 2021
Condorcet is not a single method but a group of similar methods.
More specifically: given N options, start with ranking each option on a relative preference scale (1-N, allowing duplicates).
Then use some of the methods to rank those (those are different)
While there are methods that e.g. disallow duplicate rankings (simple ranking) in the voting process, there seems to be little benefits of that and that just complicates the decision process.
nschonni commentedon Apr 11, 2021
mhdawson commentedon Apr 12, 2021
I'm wondering if Condorcet is going to let TSE members better express their opinion? It's going to take more work to set up/etc. so want to be sure pushing out the vote to do that is beneficial. In particular I'm not sure how it handles the "but only if X" does not win.
mhdawson commentedon Apr 12, 2021
@ChALkeR did you come across the use of Condorcet for non-elections ? I see most articles reference electing people versus making a decision?
aduh95 commentedon Apr 12, 2021
I've seen used to pick a name. It's just a voting system, I don't think there is any difference if it's used for electing people vs choosing ideas.
From what I've read, it has some significant advantages including allow voter to express their opinion (instead of going all in for only 1 proposition, you rank them all, so you can better express where you stand on the issue), and you can add "but only if X" propositions to the list without splitting the votes. I reckon it does take more work to set it up, let me know if I can help, I think it would be useful to have some tooling to assist with that if we haven't a Condorcet voting system already (even if we end up not using it for this particular vote).
23 remaining items
mmarchini commentedon Apr 15, 2021
Quick question: are the newly nominated folks already onboarded or are we waiting on anything? Will they participate in the vote? If they are not, should we wait until they are onboarded before voting?
mmarchini commentedon Apr 15, 2021
Preview page for the vote (vote is not open yet, actual link for the vote will be sent directly to TSC members emails):

I tried to keep the summary short, but we can write something more elaborate if folks think it'll be helpful.
The setting I'm using are listed below. Please let me know if there's anything folks thing should be changed.
ChALkeR commentedon Apr 15, 2021
@Trott
Offtopic on meta
To me, RCV looks more complex that simple scoring, because it entangles options between each other. I would have preferred something like this instead:Which provides the data that we need, and for me looks easier to both use as a data source (reasons above) and to fill in, because it avoids entangled options, i.e. comparing them to each other, and instead asks a simpler more grounded question.
That said, I'm ok with RCV for the sake of continuing this, perhaps we could move the meta discussion (for future) to some other channel from this PR. I hid that under a spoiler, hope that's ok.
mmarchini commentedon Apr 22, 2021
Vote link sent to @nodejs/tsc members via email listed on https://github.com/nodejs/node#tsc-technical-steering-committee. If you didn't receive an email, please let me know and I'll send you a code to vote. Being a free vote session on OpaVote means we have 7 days to finish the vote, so please vote ASAP. If you are going to abstain, please vote without selecting any options so we know you're aware of the vote.
I'll try to send daily emails to members who didn't vote yet to make sure everyone has a chance to vote.
mmarchini commentedon Apr 23, 2021
Daily update: 14 voted so far, 8 remaining.
mmarchini commentedon Apr 24, 2021
Daily update: 17 voted, 5 remaining.
Trott commentedon Apr 25, 2021
This is hopefully obvious and may already be covered above somewhere that I'm not seeing in a quick skim, but I want to make sure we all agree that a vote for including corepack or bundling yarn is not a vote for any particular implementation. For example, hypothetically, I may be in favor of shipping corepack, but only if we can do it in a way that does not change anything for existing npm users--in other words, it can't introduce any additional friction/burden for existing users and CI automation and whatever else. So I might be in favor of corepack but opposed to a specific PR that adds it.
mmarchini commentedon Apr 25, 2021
Daily update: 20 voted, 2 remaining.
mmarchini commentedon Apr 26, 2021
Daily update: 21 voted, 1 remaining.
mhdawson commentedon Apr 26, 2021
@Trott to confirm from the minutes of the last TSC meeting:
mmarchini commentedon Apr 27, 2021
Still 1 remaining. I sent a final reminder to them and will close the vote in 24 hours. Unfortunately I don't know if their email is up to date on our mailing list (see #1022) and I don't want to ping them directly here without their consent (but I also can't reach them anywhere else). So I'm going to cc @nodejs/tsc once more just in case
mmarchini commentedon Apr 28, 2021
Vote is closed. Winner is "add corepack" with 63.2% of votes as first choice. Ballouts have been shared with TSC members in private.
This means we're not moving forward with #37277. We can revisit nodejs/node#35398 to see if there are any technical concerns left before landing.
mhdawson commentedon Apr 28, 2021
@mmarchini thanks for running the vote and reporting the results.
mhdawson commentedon Apr 29, 2021
Commented on nodejs/node#37277 and closed it. Closing this issue as the vote is complete.