Skip to content

Commit b86db2c

Browse files
committed
update release steps
1 parent 7275eb9 commit b86db2c

File tree

1 file changed

+28
-24
lines changed

1 file changed

+28
-24
lines changed

CONTRIBUTING.md

Lines changed: 28 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -188,10 +188,13 @@ A turf release is initiated from your local computer, and then built and publish
188188
To make a release as a core contributor, you will need:
189189
- Turf repository write permission
190190
- Turf npm organization publish permission
191-
- A local copy of the Turf Github repository (not a fork!). Starting with a fresh clone will ensure it's clean.
192-
- `git clone git@github.com:Turfjs/turf.git turf-release`
191+
- A clean local copy of the Turf Github repository (not a fork!). Starting with a fresh clone will ensure it's clean.
192+
- Depending on your auth method
193+
- `git clone git@github.com:Turfjs/turf.git turf-release`
194+
- or `git clone https://github.com/Turfjs/turf.git turf-release`
193195
- `cd turf-release` - start at the top-level of the repo
194196
- `pnpm install`
197+
- `pnpm test` - make sure everything is passing
195198

196199
- If you choose to clean up an existing copy instead, be very careful:
197200
- `git remote -v` - verify your remote origin points to `https://github.com/Turfjs/turf.git`
@@ -205,36 +208,37 @@ To make a release as a core contributor, you will need:
205208
Before release:
206209
- If necessary, make and merge a PR with any last minute housekeeping items.
207210
- Turf's documentation (README.md files) should already be up to date as it is generated automatically on commit from JSDoc comments in source files.
208-
- Review PR's and decide the new version number to be published (for example 7.0.1 or 7.1.0).
209-
- If there are breaking changes, then it should be a major version bump, e.g. 7.x.x to 8.0.0. This project follows [semantic versioning](https://semver.org/).
211+
- Review PR's and decide the new version number to be published. See [semantic versioning](https://semver.org/).
210212

211-
Run the release commands, replace `7.0.0` with your version number
212-
- fetch the latest code from remote origin
213-
- `git fetch origin`
213+
Run the following release commands, replacing `7.0.0` with your version number:
214214

215-
- create a release branch, replace mf with your initials to make it clear whose branch it is.
215+
- create a release branch, replacing `mf` with your initials to make it clear who created the branch.
216216
- `git checkout origin/master -b mf/release-7.0.0`
217217

218-
- increment the version number of all packages, without pushing to origin. This will also create a release tag.
218+
- increment the version number of all packages, and create a local commit, without pushing to origin. This will also create a release tag.
219219
- `pnpm lerna version --no-commit-hooks --no-push 7.0.0`
220220

221-
- stage any files changed by the version command.
222-
- `git add packages/*/package.json`
223-
- `git add lerna.json`
224-
`
225-
226-
- create new commit on the release branch
227-
- `git commit -m "Release v7.0.0"`
228-
229221
- Push the release branch and the release tag.
230222
- `git push origin mf/release-7.0.0 --follow-tags`
231-
- The tag will trigger the Github [release](https://github.com/Turfjs/turf/blob/master/.github/workflows/release.yml) action which you can view the status of at - https://github.com/Turfjs/turf/actions. If successful, a new [version](https://www.npmjs.com/package/@turf/turf?activeTab=versions) of all turf packages will have been published on NPM.
232-
233-
- If the release action was successful, now create a Pull Request for the release and then merge it.
234-
- A link to create the PR should be in the output of the push command
235-
- Use the version number for the PR title (e.g. v7.0.0).
236-
- If a link isn't provided, just create a PR that merges your release branch to master. Here is an example - https://github.com/Turfjs/turf/pull/2615.
237-
- Don't forget to merge your release PR!
223+
- Pushing the tag will trigger the Github [release](https://github.com/Turfjs/turf/blob/master/.github/workflows/release.yml) action which you can view the status of at - https://github.com/Turfjs/turf/actions. If successful, a new [version](https://www.npmjs.com/package/@turf/turf?activeTab=versions) of all turf packages will have been published on NPM.
224+
225+
- If the release action was not successful
226+
- commit any changes to master to fix it.
227+
- Make a [prerelease](#prerelease) if helpful to make sure the release action is successful.
228+
- Then reset by deleting your tag and branch locally and remotely.
229+
- `git push --delete origin v7.1.0`
230+
- `git tag --delete v7.1.0`
231+
- `git push -d origin mf/release-7.0.0`
232+
- `git branch -d mf/release-7.0.0`
233+
- Now redo the steps above starting with creating "A clean local copy of the Turf Github repository"
234+
235+
- If the release action was successful, now create a Pull Request for the release to update master.
236+
- You may be given a link in the output of the branch/tag push command to create the PR.
237+
- If you don't get this message, just go to https://github.com/Turfjs/turf/pulls and you should be prompted at the top to create a PR for this new branch you just pushed.
238+
- If that prompt doesn't appear, then just create a new pull request from the PR page and make sure the title is the version number e.g. `v7.0.0` and that it is merging your release branch -> to master.
239+
- Here is an example PR - https://github.com/Turfjs/turf/pull/2615.
240+
- Get approval for the release PR and merge it!
241+
- But only if the publish action was successful. Otherwise you'll have some additional cleanup work to do on the master branch.
238242

239243
#### Follow-on steps
240244
- As part of the release action, a draft Github release will have been created at https://github.com/Turfjs/turf/releases with an auto-generated changelog. Edit and add to the release notes for readability and completeness, specifically noting any breaking changes. Use past releases as a guide. Be sure to "Save draft" each time, then ask for a review from other contributors. Once ready, click `Publish release`. This will make the release notes publicly accessible and notify all watchers of the project.

0 commit comments

Comments
 (0)