Skip to content

Latest commit

 

History

History
179 lines (121 loc) · 4.05 KB

releasing.md

File metadata and controls

179 lines (121 loc) · 4.05 KB

Mithril Release Processes

Note These steps all assume that MithrilJS/mithril.js is a git remote named mithriljs, adjust accordingly if that doesn't match your setup.

Releasing a new Mithril version

Prepare the release

  1. Ensure your local branch is up to date
$ git checkout next
$ git pull --rebase mithriljs next
  1. Determine patch level of the change
  2. Update information in docs/change-log.md to match reality of the new version being prepared for release
  3. Replace all existing references to mithril@next to mithril if moving from a release candidate to stable.
  4. Commit changes to next
$ git add .
$ git commit -m "Preparing for release"

# Push to your branch
$ git push

# Push to MithrilJS/mithril.js
$ git push mithriljs next

Merge from next to master

  1. Switch to master and make sure it's up to date
$ git checkout master
$ git pull --rebase mithriljs master
  1. merge next on top of it
$ git merge next
  1. Clean & update npm dependencies and ensure the tests are passing.
$ npm prune
$ npm i
$ npm test

Publish the release

  1. npm run release <major|minor|patch|semver>, see the docs for npm version
  2. The changes will be automatically pushed to your fork
  3. Push the changes to MithrilJS/mithril.js
$ git push mithriljs master
  1. Travis will push the new release to npm & create a GitHub release

Merge master back into next

This helps to ensure that the version field of package.json doesn't get out of date.

  1. Switch to next and make sure it's up to date
$ git checkout next
$ git pull --rebase mithriljs next
  1. Merge master back onto next
$ git merge master
  1. Push the changes to your fork & MithrilJS/mithril.js
$ git push
$ git push mithriljs next

Update the GitHub release

  1. The GitHub Release will require a manual description & title to be added. I suggest coming up with a fun title & then copying the docs/change-log.md entry for the build.

Updating mithril.js.org

Fixes to documentation can land whenever, updates to the site are published via Travis.

# These steps assume that MithrilJS/mithril.js is a git remote named "mithriljs"

# Ensure your next branch is up to date
$ git checkout next
$ git pull mithriljs next

# Splat the docs folder from next onto master
$ git checkout master
$ git checkout next -- ./docs

# Manually ensure that no new feature docs were added

$ git push mithriljs

After the Travis build completes the updated docs should appear on https://mithril.js.org in a few minutes.

Note: When updating the stable version with a release candidate out, make sure to update the index + navigation to point to the new stable version!!!

Releasing a new ospec version

  1. Ensure your local branch is up to date
$ git checkout next
$ git pull --rebase mithriljs next
  1. Determine patch level of the change
  2. Update version field in ospec/package.json to match new version being prepared for release
  3. Commit changes to next
$ git add .
$ git commit -m "chore(ospec): ospec@<version>"

# Push to your branch
$ git push

# Push to MithrilJS/mithril.js
$ git push mithriljs next

Merge from next to master

  1. Switch to master and make sure it's up to date
$ git checkout master
$ git pull --rebase mithriljs master
  1. merge next on top of it
$ git checkout next -- ./ospec
$ git add .
$ git commit -m "chore(ospec): ospec@<version>"
  1. Ensure the tests are passing!

Publish the release

  1. Push the changes to MithrilJS/mithril.js
$ git push mithriljs master
  1. Publish the changes to npm from the /ospec folder. That bit is important to ensure you don't accidentally ship a new Mithril release!
$ cd ./ospec
$ npm publish