esbuild-internal
Exports esbuild internal packages.
Source is the fork at github.com/joelmoss/esbuild, not evanw upstream. Nothing here is
hand-written — every file is generated by update.sh, so all edits belong in the fork.
Releasing
Cut the release tag in the fork from the upstream release commit, not from the fork's
main. main tracks upstream main, which runs ahead of the last published tag, so tagging
it would ship upstream's unreleased changes.
In github.com/joelmoss/esbuild, with <upstream-sha> the commit upstream tagged for the
release (e.g. 609683d for v0.28.2) and the fork's feature commits listed oldest first:
git checkout -b release/0.28.2 <upstream-sha>
git cherry-pick <fork-commits...>
git tag "v0.28.2-$(git rev-parse --short=8 HEAD)"
git push origin release/0.28.2 --tags
Then here, with the full suffixed tag (no v prefix):
./update.sh 0.28.2-<hash>
update.sh rewrites the packages, then commits, tags and pushes this repo.
Version naming
The version is the upstream esbuild version plus the short hash of the fork's release
commit, e.g. 0.28.2-bc2e97e8. Always use the suffixed tag: bare version tags in the fork
(v0.27.3) point at plain upstream commits and carry none of the fork's changes, so
./update.sh 0.28.2 would silently produce an unmodified copy.
Keeping the cherry-pick cheap
The cherry-pick step exists only because the fork's feature branches are rebased onto
upstream main. Rebase them onto the upstream release tag instead and a release
becomes a plain merge of those branches — which is how v0.27.3-02e81dd7 was built (its
first parent is upstream's v0.27.3 commit exactly).