Skip to content
Joe Hildebrand edited this page Jul 8, 2022 · 2 revisions

Processes for the Peggy project

This should be updated frequently.

Website strategy

  • https://peggyjs.org/ reflects the currently released version. It is served by GitHub Pages.
  • main branch is completed work, the latest of which has not been released yet
  • stable branch is released version, plus minor doc nits between releases. Those nits should be cherry-picked onto main or vice-versa.
  • docs branch will soon be docs/_site published to GitHub Pages. (See #311)

Pull Requests

  • Usually go against main
  • If not from a core contributor, make sure to authorize and run Actions tests
  • Ensure at least one review, when possible
  • When there are a lot of edits, re-order and smush with git rebase -i as needed so that the history is clean-ish, then force-push
  • After merge, locally: git checkout main && git pull upstream main && git push, then clean up local and remote branches
  • Ensure any affected issues are closed either automatically or manually

Testing

  • npm run build
  • cd web-test && npm test
  • Spot check docs/online.html on Firefox, Safari, Chrome

Release

Create release issue, copy this list into it:

- [] Checkbox per open issue
- [] Update dependencies with `ncu -u` https://github.com/raineorshine/npm-check-updates
- [] Update version number in package.json.  
- [] Rebuild parser with `npm run parser && npm run parser` to ensure version at top is correct.
- [] `npm run build`.  
- [] Double check all rolled-up .js files changed correctly
- [] Other tests
- [] Audit CHANGELOG.md, ensuring all changes since last release are reflected
- [] Update release date in CHANGELOG.md
- [] Ensure on `main`, and that we're clean.
- [] `npm pack --dry-run` and look for extra files that got included by mistake
- [] Tag: `git tag vX.X.X` and `git push --tags upstream main`
- [] `npm publish`
- [] PR to merge `main` onto `stable`
- [] Wait for publish notification.  Ensure unpkg and jsdelivr have the latest version.
- [] Merge main->stable PR
- [] (For version 2.1) remove `docs` branch, create new orphan `docs` branch, `git rm -rf .` in `docs` branch.  Push to upstream
- [] Run docs workflow
- [] (For version 2.1) re-point GH Pages from `stable/docs` to `docs/`
- [] Create GH release notification, copy in latest portion of CHANGELOG.md
- [] Update CHANGELOG.md with skeleton for next release

Some portions of the above may be automated for later releases.

Clone this wiki locally