mapbox / node-pre-gyp

Node.js tool for easy binary deployment of C++ addons
BSD 3-Clause "New" or "Revised" License
1.11k stars 259 forks source link

Needed: A GitHub Action to package and publish a new version #739

Open cclauss opened 1 week ago

cclauss commented 1 week ago

https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-nodejs#packaging-workflow-data-as-artifacts

-->

acalcutt commented 1 week ago

In maplibre-native workflow we settled on this workflow that checks if the version in package.json is published. https://github.com/maplibre/maplibre-native/blob/main/.github/workflows/node-release.yml#L9-L34

If it is not published it runs the build https://github.com/maplibre/maplibre-native/blob/main/.github/workflows/node-release.yml#L38

maybe something like that would work here. Seems like it would be easier because this project doesn't really need to build anything, just run the publish steps. https://github.com/maplibre/maplibre-native/blob/main/.github/workflows/node-release.yml#L304-L310

cclauss commented 1 week ago

Cool! Pull requests will be reviewed. Let's see how that approach works.

mapsam commented 1 week ago

I'm in favor of GitHub release for this as well. This may be blocked by using the @mapbox/node-pre-gyp namespace for a bit, since the Mapbox NPM scope is pretty locked down and I'm not sure we'll be able to grant tokens for public repositories like this. Ultimately this is a good argument to move back to the unscoped node-pre-gyp NPM module which does not have the same security restrictions.

Not ideal, but in the short-term I can cut one-off prereleases for @mapbox/node-pre-gyp as needed @cclauss

cclauss commented 1 week ago

I understand the complexities. I think we need a pre-release and then a release BEFORE we merge other changes (all the Dependabot changes, etc.). Please proceed with that pre-release when you feel comfortable doing so.

mapsam commented 1 week ago

Sounds good! Can you give me a commit to prerelease from? Just want to make sure I release what you're expecting. Latest master is https://github.com/mapbox/node-pre-gyp/commit/13d4ac74853070cd2a9649e1f8079e5d68839c7a

I'll plan on 1.1.0-dev.1 since Node.js 22 has been added, but if you see this as a breaking change happy to move into v2 https://github.com/mapbox/node-pre-gyp/compare/v1.0.11...master

mapsam commented 1 week ago

@mapbox/node-pre-gyp@1.1.0-dev.1 has been published from https://github.com/mapbox/node-pre-gyp/commit/13d4ac74853070cd2a9649e1f8079e5d68839c7a.

I need to push package.json version changes to GitHub in order to publish to the @mapbox/ namespace, so technically the version is published from https://github.com/mapbox/node-pre-gyp/commit/996b31b06800d384e893c1108b7e8796cb97cd8f.

I'll use https://github.com/mapbox/node-pre-gyp/tree/mapsam/v1.1.0-pre and keep it in sync with master as you need more dev releases and until the GitHub Actions work is set up.

@cclauss let me know if you'd prefer a separate ticket to request/discuss releases, just to keep this issue focused on the GitHub Action work!