Browse Source

Release checklist (#3084)

* created a checklist for the release process

* unchecked everything

* added make github release

* Fix typoes
gemini
Alexander Wunschik 7 years ago
committed by yotamberk
parent
commit
2eb4bbc2d9
2 changed files with 83 additions and 97 deletions
  1. +83
    -0
      misc/RELEASE_CHECKLIST_TEMPLATE.md
  2. +0
    -97
      misc/how_to_publish.md

+ 83
- 0
misc/RELEASE_CHECKLIST_TEMPLATE.md View File

@ -0,0 +1,83 @@
# Release Checklist
## Communication
- [ ] Create a new issue and copy&paste this checklist into it (Yeah! First Step done!)
- [ ] Talk to the team: Who should make the release?
- [ ] Announce a "Code-Freeze". No new Pull-Request until the release is done!
- [ ] Checkout if we have MAJOR or MINOR changes. If not we do a PATCH release.
- [ ] The new version will be: `vX.Y.Z`
- [ ] Identify open BUGS and add them to the next PATCH milestone (optional).
- [ ] Identify MINOR issues and add them to the next MINOR milestone (optional).
## Update to the newest version
- [ ] Update to the current version: `git checkout develop && git pull`.
- [ ] Create a new release branch. (`git checkout -b vX.Y.Z develop`)
## Build & Test
- [ ] Update the version number of the library in `package.json` (remove the "SNAPSHOT").
- [ ] Build the library: `npm prune && rm -rf node_modules && npm install && npm run build && npm run test`
- [ ] Open some of the examples in your browser and visually check if it works as expected! (*We need automated tests for this!*)
## History
(*THIS IS A LOT OF WORK! WE SHOULD TRY TO automate this in the future!!*)
- [ ] Get all commits since the last release: ```git log `git describe --tags --abbrev=0`..HEAD --oneline > .commits.tmp```
- [ ] Open ".commity.tmp". and remove all commit before the last release.
- [ ] Open every commit in GitHub and move every issue/pull-request to the current milestone.
- [ ] Transfer all Commit-Messages/issues to "HISTORY.md" starting at the button.
- Keep the order of the commits. Older commits are lower newers are higher.
- Bug-Fixes start with `FIX #issue:`
- New Features start with `FEAT #issue:`
## Commit
- [ ] Commit the new version: `git commit -am "Release vX.Y.Z"`
- [ ] Push the release branch: `git push`
- [ ] Open a Pull-Request for the release-branch to the develop-branch.
- [ ] Wait until somebody of the team looked over your changes and merges the Pull-Request.
### Update Master
We don't merge the development branch to the master because the master branch is different to the develop-Branch. The master branch has a dist and test folder and does not generate Source-Maps.
If we would merge the development branch would overwrite this. To solve this we use rebase instead:
- [ ] Update: `git fetch && git checkout develop && git pull`
- [ ] Rebase the `master` branch on the `develop` branch: `git checkout master && git rebase develop`
- [ ] Generate new dist files: `npm prune && rm -rf node_modules && npm install && npm run build && npm run test && git commit -am "generated dist files for vX.Y.Z"
- [ ] Create a version tag: `git tag "vX.Y.Z"`
- [ ] [Remove the protection](https://github.com/almende/vis/settings/branches/master) from `master`.
- [ ] FORCE-Push the branches to github: `git push --force && git push --tag`
- [ ] [Re-Enable branch protection](https://github.com/almende/vis/settings/branches/master) (enable ALL checkboxes) for `master`.
- [ ] Publish with npm: `npm publish` (check [npmjs.com](https://www.npmjs.com/package/vis))
- [ ] Create a [new Release](https://github.com/almende/vis/releases/new) with the tang and the name "vX.Y.Z" and copy the data vom [HISTORY.md](../HISTORY.md) into the body.
## Test
- [ ] Go to a temp directory (e.g. "vis_vX.Y.Z"): `cd .. && mkdir vis_vX.Y.Z && cd vis_vX.Y.Z`
- [ ] Install the library from npm: `npm init -f && npm install vis`
- [ ] Verify if it installs the just released version, and verify if it works: `cd node_modules/vis/
- [ ] Install the library via bower: `cd ../.. && bower install vis`
- [ ] Verify if it installs the just released version, and verify if it works: `cd bower_components/vis/`
- [ ] Clone the master from github: `cd ../.. && git clone git@github.com:almende/vis.git`.
- [ ] Verify if it installs the just released version, and verify if it works. `cd vis`
## Update website
- [ ] update the gh-pages branch: `git checkout gh-pages && git pull && git checkout -b "gh-pages_vX.Y.Z"`
- [ ] Copy the `dist` folder from the `master` branch to the `github-pages` branch in another directory, overwriting existing files: `cp -rf ../vis_vX.Y.Z/vis/dist .`
- [ ] Copy the `docs` folder from the `master` branch to the `github-pages` branch in another directory, overwriting existing files: `cp -rf ../vis_vX.Y.Z/vis/docs .`
- [ ] Copy the `examples` folder from the `master` branch to the `github-pages` branch in another directory, overwriting existing files: `cp -rf ../vis_vX.Y.Z/vis/examples .`
- [ ] Check if there are new or updated examples, and update the gallery screenshots accordingly.
- [ ] Update the library version number in the `index.html` page.
- [ ] Update the CDN links at the download section of index.html AND the CDN link at the top. (search-replace all!!)
- [ ] Commit the changes: `git add -A && git commit -m "updates for vX.Y.Z"`
- [ ] Push the changes `git push --set-upstream origin gh-pages_vX.Y.Z`
## Prepare next version
- [ ] Switch to the "develop" branch: `git checkout develop`.
- [ ] Change version numbers in "package.json" to a snapshot version `X.X.Z-SNAPSHOT`.
- [ ] Commit and push: `git commit -am "changed version to vX.X.Z-SNAPSHOT"`
- [ ] Create new tag: `git tag vX.X.Z-SNAPSHOT`.
- [ ] [Remove the protection](https://github.com/almende/vis/settings/branches/develop) from `develop`.
- [ ] FORCE-Push the branches to github: `git push --force && git push --tag`
- [ ] [Re-Enable branch protection](https://github.com/almende/vis/settings/branches/develop) (enable ALL checkboxes) for `develop`.
DONE!

+ 0
- 97
misc/how_to_publish.md View File

@ -1,97 +0,0 @@
# How to publish vis.js
This document describes how to publish vis.js.
## Build
- Change the version number of the library in `package.json`.
npm version major|minor|patch
git commit -m "bumped package.json version to X.XX.X"
- Open `HISTORY.md`, write down the changes, version number, and release date.
(Changes since last release: `git log \`git describe --tags --abbrev=0\`..HEAD --oneline`)
- Update external dependencies
npm install -g npm-check-updates
npm-check-updates -u
git commit -a -m "updated external dependencies"
- Build the library by running:
npm prune
npm update
npm run build
## Test
- Test the library:
npm test
- Open some of the examples in your browser and visually check if it works as expected.
## Commit
- Commit the changes to the `develop` branch.
- Merge the `develop` branch into the `master` branch.
- Push the branches to github
- Create a version tag (with the new version number) and push it to github:
git tag v3.1.0
git push --tags
## Publish
- Publish at npm:
npm publish
- Test the published library:
- Go to a temp directory
- Install the library from npm:
npm install vis
Verify if it installs the just released version, and verify if it works.
- Install the library via bower:
bower install vis
Verify if it installs the just released version, and verify if it works.
- Verify within a day or so whether vis.js is updated on http://cdnjs.com/
## Update website
- Copy the `dist` folder from the `master` branch to the `github-pages` branch.
- Copy the `docs` folder from the `master` branch to the `github-pages` branch.
- Copy the `examples` folder from the `master` branch to the `github-pages` branch.
- Create a packaged version of vis.js. Go to the `master` branch and run:
zip vis.zip dist docs examples README.md HISTORY.md CONTRIBUTING.md LICENSE* NOTICE -r
- Move the created zip file `vis.zip` to the `download` folder in the
`github-pages` branch. TODO: this should be automated.
- Check if there are new or updated examples, and update the gallery screenshots
accordingly.
- Update the library version number in the index.html page.
- Update the CDN links at the download section of index.html AND the CDN link at the top. (replace all)
- Commit the changes in the `gh-pages` branch.
## Prepare next version
- Switch to the `develop` branch.
- Change version numbers in `package.json` to a snapshot
version like `0.4.0-SNAPSHOT`.

Loading…
Cancel
Save