Skip to content
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

Proposal to form an automation working group (or team?) #392

Closed
joyeecheung opened this issue Oct 21, 2017 · 34 comments
Closed

Proposal to form an automation working group (or team?) #392

joyeecheung opened this issue Oct 21, 2017 · 34 comments

Comments

@joyeecheung
Copy link
Member

joyeecheung commented Oct 21, 2017

I am proposing to form an automation working group that handles automation outside build (i.e. tools, bots and scripts that make our lives easier)

Related projects:

I am not exactly sure if we should have a charted working group to work on these tools (because that probably means more meetings!), but I think it is a good idea to have a team of people working on them. These projects are somewhat related (e.g. core-validate-commit and branch-diff usually consumes output of node-review) so we should have a place to discuss how to divide the work to address our needs.

Also if IIRC at the collaboration summit we have talked about needing more automation to ease our maintainers' burnout (hopefully doing dev on automation won't make it worse...but meetings definitely make it worse which is why a charted WG may not be a good idea)

@joyeecheung
Copy link
Member Author

cc @nodejs/tsc

I am willing to join this group, and @evanlucas has indicated the same on twitter as well.

@jasnell
Copy link
Member

jasnell commented Oct 21, 2017

+1 to a team. I'd love to see work on these tools get more official attention.

@targos
Copy link
Member

targos commented Oct 21, 2017

+1. I'd like to be in this team.

@phillipj
Copy link
Member

Great initiative, +1 from me! The bot deserves more attention than it has gotten lately..

Although I'm not that active collaboratoring nowadays because of family life, I'd also like to join such a group if it existed.

@MylesBorins
Copy link
Contributor

MylesBorins commented Oct 21, 2017 via email

@maclover7
Copy link
Contributor

Also interested in getting involved. Food for thought, I mentioned on Twitter the possibility of shipping some of these CLI tools under a single root executable to make discoverability/usability easier.

@gibfahn
Copy link
Member

gibfahn commented Oct 21, 2017

My first reaction was "This is totally what the Build WG is/should be all about"

But I think it's worth having this anyway.

Should it be spun out of build?

👍, How about we make @nodejs/automation a team within @nodejs/build, that doesn't have any special privileges (so anyone can be invited and start working on stuff without having to worry about trust etc.). Like how nodejs/backporting is a subset of nodejs/release.

Fundamentally the Build WG is two things:

  1. A bunch of passwords to things (machines, accounts etc).
  2. A load of automation scripts to set up machines (Ansible), run jobs (Jenkins), or do other stuff.

The problem is that 1. means there's a high barrier to entry, which means we get fewer people working on 2., even though that's 90% of the actual work. It'd be really great to separate out the two things and reduce that barrier.

@gibfahn
Copy link
Member

gibfahn commented Oct 21, 2017

the possibility of shipping some of these CLI tools under a single root executable to make discoverability/usability easier.

Possible, although the different tools tend to have quite specific uses and audiences. I think having them all under one npm account, and all linked from one repo, would make them much more discoverable anyway.

For example:

  • The Github bot => Is run on a server, not by individual people
  • node-review => Is run by all collaborators as a browser extension (hopefully downloaded from browser app store)
  • branch-diff and changelog-maker => Run by people doing backporting, not really useful for other
  • core-validate-commit => Run by all collaborators as a globally installed node app

But that's totally a discussion we could have if we had an automation team.

@cjihrig
Copy link
Contributor

cjihrig commented Oct 21, 2017

+1 to this team existing, and another +1 to having it as a subset of the Build WG.

@refack
Copy link

refack commented Oct 21, 2017

RE Build WG current structure: If we the WG takes responsibility for the meta-tooling, then IMHO not every member needs to have even test access. Plus we should probably have a staging Jenkins, and as @gibfahn suggested an ansible "tower".
I'm adding this to the WG agenda for discussion.

@ljharb
Copy link
Member

ljharb commented Oct 22, 2017

(also separately, it'd be ideal if every tool that was needed to contribute to node could be npm installed, rather than having to have anything globally installed)

@joyeecheung
Copy link
Member Author

joyeecheung commented Oct 22, 2017

@gibfahn Yes I think making a team under build makes sense. My understanding was that the build is more about stuff we cannot "build" without, while technically we can build without these tools (just that'll be a lot more manual work if we don't have them).

@joyeecheung
Copy link
Member Author

joyeecheung commented Oct 22, 2017

Also, does anyone object to the idea of having a separate repo for nodejs/automation? If we use the build repo there will be many unrelated issues (e.g. CI machine toolchain updates). It would be friendlier if we want to attract people who are not core collaborators (yet, because those are the users) but interested in helping to get the core be more effective (I am thinking about code-and-learn follow ups).

@gibfahn
Copy link
Member

gibfahn commented Oct 22, 2017

(also separately, it'd be ideal if every tool that was needed to contribute to node could be npm installed, rather than having to have anything globally installed)

@ljharb You mean locally installed (npm i) rather than globally installed (npm i -g)? How would that work? package.json in the node repo?

Also, to be clear, none of these tools are required for non-collaborators.

@gibfahn
Copy link
Member

gibfahn commented Oct 22, 2017

My understanding was that the build is more about stuff we cannot "build" without, while technically we can build without these tools (just that'll be a lot more manual work if we don't have them).

I think build is mostly automation to make managing things easier, so I don't really see the distinction. We could do all the builds by sshing into machines and running make binary-upload, we just automated a lot of the process.

Also, does anyone object to the idea of having a separate repo for nodejs/automation? If we use the build repo there will be many unrelated issues (e.g. CI machine toolchain updates).

No objections, but to be clear, the "CI machine toolchain updates" are actually "updates to the automation scripts to install stuff on CI machines".

I think the real difference between an "automation" repo and the Build repo would be that the automation stuff is designed to be run on your own machine, whereas Build stuff mostly runs on other people's machines.

At the same time it'd be great to get more people involved with the Build automation as well.

@joyeecheung
Copy link
Member Author

@ljharb You mean locally installed (npm i) rather than globally installed (npm i -g)? How would that work? package.json in the node repo?

I think @ljharb probably means a npm package with multiple bin entries pointing to these tools?

Also, to be clear, none of these tools are required for non-collaborators.

Yep, although I often find myself reinstalling tools after updating my global Node version.

@gibfahn
Copy link
Member

gibfahn commented Oct 22, 2017

Yep, although I often find myself reinstalling tools after updating my global Node version.

Interesting, I've never yet had to do that, probably because I do a make install to update my global node version, and then run nvm when I want a specific version.

If you're using nvm, maybe default packages or reinstall-from might be helpful?

@joyeecheung
Copy link
Member Author

@gibfahn Not exactly nvm (something internal) but thanks for the tips!

@gdams
Copy link
Member

gdams commented Oct 22, 2017

+1 I'd be interested in helping out wherever possible

@ljharb
Copy link
Member

ljharb commented Oct 23, 2017

@gibfahn @joyeecheung I definitely mean package.json in the node repo, with devDependencies, set to private: true, so that only collabs use the tools and so it can't be published by mistake.

@fhinkel
Copy link
Member

fhinkel commented Oct 23, 2017

+1 on such a team

@refack
Copy link

refack commented Oct 23, 2017

/ping @tniessen

@bnb
Copy link
Contributor

bnb commented Oct 23, 2017

+1. I'd also reallllly love to see more around the Docs (I talked about Danger.systems with several people at NINA) and enabling smoother onboarding for first time contributors (again, talked with several people at NINA about this).

Such a team would also be extremely helpful as a source of truth for questions around this. I have many about our processes and implementation, but there's not really a central place to ask 😅

@Tiriel
Copy link

Tiriel commented Oct 23, 2017

I'd definitely love to see such a team and be part of it if I can, as a "wannabe contributor" too impressed yet to try core. 👍

@bkeepers
Copy link

Let me know if there's anything we can do to help at GitHub.

I work on the ecosystem team at GitHub which is responsible for the API and integrations with GitHub. I also built Probot which aims to solve a lot of the automation issues for large projects.

@mhdawson
Copy link
Member

+1 to this team.

@gr2m
Copy link

gr2m commented Oct 23, 2017

Sign me up :)

@evenstensberg
Copy link

Super Interested in joining this! +1

@rvagg
Copy link
Member

rvagg commented Oct 23, 2017

I'm mostly concerned about having enough people to make this work but the feedback here is really promising!

Should it be spun out of build?

My inclination is to say that I wouldn't want this new team to be blocked by anything from Build, we don't have the smoothest operation at the moment and I would hate to see that frustrate new contributors to this effort. If it's just a matter of it having a home and somewhere to report to then that's great.

Do we have a volunteer to kick this off and make it a thing? Sounds like there's more than enough enthusiasm to just make it happen now.

@maclover7
Copy link
Contributor

Does it make sense to create a nodejs/automation repo, and then people can start logging issues for things they'd like to see done / track progress of moving over some tools to the foundation?

@joyeecheung
Copy link
Member Author

joyeecheung commented Oct 24, 2017

@maclover7 I have created https://github.com/nodejs/automation the repo :D Also created the @nodejs/automation team, I have added people who have indicated their interest to join (@maclover7 @ev1stensberg are not members of the Node.js organization so they would need to confirm the invitation). I probably miss some folks that have not explicitly said "I am interested in joining" so feel free to add yourself to the team or ping me to do that :)

@Tiriel
Copy link

Tiriel commented Oct 24, 2017

@joyeecheung if possible, I'd like to be part of this !

@joyeecheung
Copy link
Member Author

@Tiriel Done, please check your invitaions

@joyeecheung
Copy link
Member Author

Now that the team and the repo has been created, I think we can close this now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests