mrdoob / three.js

JavaScript 3D Library.
https://threejs.org/
MIT License
100.79k stars 35.22k forks source link

Automated build and release workflow #26568

Open pnacht opened 11 months ago

pnacht commented 11 months ago

Description

Would you be interested in automating your releases?

Having an automated release workflow can make things easier for you (for example, just push a tag to the repository and the workflow does the rest). It also makes the release process transparent for the package's users.

Solution

I'd be happy to send over a PR to automate three.js' releases. Let me know if you're interested.

The main ways of triggering the workflow are:

Alternatives

n/a

Additional context

No response

donmccurdy commented 11 months ago

Thanks for raising the question, @pnacht! For my $0.02 here — on a small team without on-call rotations, as is often true for volunteers and open source projects, I believe the following two things should be mutually exclusive:

If we try to do both, we'd have releases at unplanned times, and unless I'm getting paid to wear a pager, I wouldn't want that... 😇

Of the two, I personally prefer automated dependency updates.

Additionally, automated releases would likely require splitting out major/minor/patch releases, which I'm not opposed to, but which hasn't historically been part of three.js release processes.

gkjohnson commented 11 months ago

I believe the following two things should be mutually exclusive:

  • Automated dependency updates
  • Automated releases If we try to do both, we'd have releases at unplanned times, and unless I'm getting paid to wear a pager, I wouldn't want that... 😇

Can you elaborate on why you feel this? I expect this type of automation would just reduce overhead - not publish the package or merge updated deps on fixed schedule. In my opinion both of these things should continue to require human approval.

Pushing and / or creating a tag via Github could bundle and publish the release, for example, which removes the need to pull locally, build, publish, and push back to the main repo. Admittedly this seems like a small amount of overhead to remove but I don't see the concepts as incompatible. Really just depends on whether whoever is making the releases sees it as time worth saving 🤷

donmccurdy commented 11 months ago

Ah ok, sorry I'm conflating "automated releases" with "continuous delivery". If a human is still deciding when the releases are made, I have no objections here.

pnacht commented 11 months ago

Ah yes, to be clear, this would simply be an automated script that you decide when to trigger!

I'll send a PR with a suggested GitHub workflow in the coming days.

Is there anything special I should keep in mind about the release process?