Skip to content

Commit

Permalink
Split CONTRIBUTING and RELEASE notes.
Browse files Browse the repository at this point in the history
- Move release process notes in CONTRIBUTING to RELEASE since they are
  only of use to maintainers.
- Add notes on updates to older forge-dist branches.
  • Loading branch information
davidlehn committed Feb 7, 2017
1 parent 80c7fd4 commit f78cf1b
Show file tree
Hide file tree
Showing 2 changed files with 78 additions and 52 deletions.
56 changes: 4 additions & 52 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,67 +1,19 @@
Contributing to forge
Contributing to Forge
=====================

Want to contribute to forge? Great! Here are a few notes:

Code
----

* In general, follow a common [Node.js Style Guide][].
* Use version X.Y.Z-dev in dev mode.
* Use version X.Y.Z for releases.
* Ensure [tests pass](./README.md#testing).
* In general, follow the current code style or the [Node.js Style Guide][].
* Read the [contributing](./README.md#contributing) notes.

Versioning
----------

* Follow the [Semantic Versioning][] guidelines.
* Ensure [tests pass](./README.md#testing).

Release Process
---------------

## Update the main repository:

* Commit changes.
* `$EDITOR package.json`: update to release version and remove `-dev` suffix.
* `git commit package.json -m "Release {version}."`
* `git tag {version}`
* `$EDITOR package.json`: update to next version and add `-dev` suffix.
* `git commit package.json -m "Start {next-version}."`
* `git push`
* `git push --tags`

## Publish to NPM:

To ensure a clean upload, use a clean updated checkout, and run the following:

* `git checkout {version}`
* `npm install`
* `npm publish`

## Update bundled distribution

This is kept in a different repository to avoid the accumulated size when
adding per-release bundles.

* Checkout [forge-dist][].
* Build a clean Forge version you want to distribute:
* `git checkout {version}`
* `npm install`
* `npm run build`
* Copy files to `forge-dist`:
* `cp dist/forge.min.js{,.map} dist/prime.worker.min.js{,.map} FORGEDIST/dist/`
* Release `forge-dist`:
* `git commit -a -m "Release {version}."`
* `git tag {version}`
* `git push`
* `git push --tags`

**Note**: Remember to also update the code and tags on the forge-dist 0.6.x
branch as needed.
Maintainers should refer to the [release instructions](./RELEASE.md).

[Node.js Style Guide]: http://nodeguide.com/style.html
[README]: ./README.md
[Semantic Versioning]: http://semver.org/
[forge-dist]: https://github.com/digitalbazaar/forge-dist
[jshint]: http://www.jshint.com/install/
74 changes: 74 additions & 0 deletions RELEASE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
Forge Release Process
=====================

Versioning
----------

* Follow the [Semantic Versioning][] guidelines.
* Use version X.Y.Z-dev in dev mode.
* Use version X.Y.Z for releases.

Master Branch Release Process
-----------------------------

* Ensure [tests pass](./README.md#testing).

## Update the main repository:

* Commit changes.
* `$EDITOR package.json`: update to release version and remove `-dev` suffix.
* `git commit package.json -m "Release {version}."`
* `git tag {version}`
* `$EDITOR package.json`: update to next version and add `-dev` suffix.
* `git commit package.json -m "Start {next-version}."`
* `git push`
* `git push --tags`

## Publish to NPM:

To ensure a clean upload, use a clean updated checkout, and run the following:

* `git checkout {version}`
* `npm install`
* `npm publish`

## Update bundled distribution

This is kept in a different repository to avoid the accumulated size when
adding per-release bundles.

* Checkout [forge-dist][].
* Build a clean Forge version you want to distribute:
* `git checkout {version}`
* `npm install`
* `npm run build`
* Copy files to `forge-dist`:
* `cp dist/forge.min.js{,.map} dist/prime.worker.min.js{,.map} FORGEDIST/dist/`
* Release `forge-dist`:
* `git commit -a -m "Release {version}."`
* `git tag {version}`
* `git push`
* `git push --tags`

Older Branch Release Process
----------------------------

In order to provide support for Bower (and similar) for current built bundle
releases and historical releases the [forge-dist][] repository needs to be
updated with code changes and tags from the main repository. Once a historical
branch, like 0.6.x, on the main repository is updated and tagged, do the
following:

* Checkout [forge-dist][].
* Setup an upstream branch:
* `git remote add upstream git@github.com:digitalbazaar/forge.git`
* `git fetch upstream`
* Merge changes:
* `git checkout 0.6.x`
* `git merge upstream/0.6.x`
* Push code and tag(s):
* `git push`
* `git push origin {version}`

[Semantic Versioning]: http://semver.org/
[forge-dist]: https://github.com/digitalbazaar/forge-dist

0 comments on commit f78cf1b

Please sign in to comment.