RUNBOOK.md
This documents some maintenance tasks for esbuild so I don't forget how they work. There are a lot of moving parts now that esbuild uses trusted publishing.
Publishing a release is now done by using GitHub Actions as a trusted publisher. To publish a new release:
version.txt. Only include the number. Do not include a leading v.v) to a ## header in CHANGELOG.md. This usually replaces the ## Unreleased header used for unreleased changes.make platform-all to update the version number in all package.json files. The publishing workflow will fail without this step.publish 0.X.Y to npm. This should trigger the publishing workflow described below.Pushing a change to version.txt causes the following:
The publish.yml workflow in this repo
will be triggered, which will:
v0.X.YCHANGELOG.mdThe release.yml
workflow in the https://github.com/esbuild/deno-esbuild repo runs
occasionally. On the next run, it will notice the version change and:
make platform-denodeno folder to the deno-esbuild repov0.X.YYou can also manually trigger this workflow if you want it to happen immediately.
The release.yml
workflow in the https://github.com/esbuild/esbuild.github.io repo runs
occasionally. On the next run, it will notice the version change and:
dl/v0.X.Y script for the new version numberdl/latest script with the new version numbergh-pages branch of the esbuild.github.io repoYou can also manually trigger this workflow if you want it to happen immediately.
Each platform (operating system + architecture) needs a separate optional npm
package due to how esbuild's installer works. New packages should be created
under the @esbuild/ scope so it's obvious that they are official.
Create a directory for the new package inside the npm/@esbuild
directory. Then modify the rest of the repo to reference the new package. The
specifics for what to modify depends on the platform, but a good place to
start is to search for the name of a similar existing package and see where
it's used.
In addition, you'll need to prepare that package for the next release. To do that:
npm publish --access public (note that scoped packages are private by default)evanwesbuildpublish.yml