diff --git a/release-process.md b/release-process.md new file mode 100644 index 0000000000..ceb1caccbc --- /dev/null +++ b/release-process.md @@ -0,0 +1,79 @@ +# Release process + +This document includes: + - how to publish remix libs to NPM + - how to update remix.ethereum.org + - how to update remix-alpha.ethereum.org + - how to update remix-beta.ethereum.org + - how to release remix IDE + +## Remix libs release + - git fetch origin master + - git checkout origin/master + - git checkout -b bumpLibsVersion + - npm run publish:libs (this command uses lerna) + - commit + +## Remix IDE release Part 1. First push master to beta. Feature Freeze + - git co -b remix_beta origin/remix_beta + - git reset --hard -master-commit-hash- + - git push -f origin remix_beta + +## Testing phase +## In case of fixing bugs push PR's also to beta to include in Release + +## Remix IDE release Part 2. Bump the version in beta and release + + - git fetch origin remix_beta + - git checkout origin/remix_beta + - git checkout -b bumpVersion + - update package.json version + - remove package-lock.json version and generate a new one with `npm install` + - merge PR to origin/remix_beta + - git fetch origin remix_beta + - git checkout origin/remix_beta + - git tag v(version-number) + - git push --tags + - github-changes -o ethereum -r remix-project -a --only-pulls --use-commit-body --branch remix_beta --only-merges --between-tags previous_version...next_version + - publish a release in github using the changelog + +## Remix IDE release Part 3. Bump dev branch (master) + + - git fetch origin master + - git checkout origin/master + - git checkout -b bumpDevVersion + - update package.json version: bump the version and add the tag `dev` if not already present. + - remove package-lock.json version and generate a new one with `npm install` + - create a PR and merge it to origin/master + +## Remix IDE release Part 4. remix.ethereum.org update + +This is not strictly speaking a release. Updating the remix site is done through the Travis build: + + - git co -b remix_live origin/remix_live + - git reset --hard -master-commit-hash- (or remix_beta-commit-hash-) + - git push -f origin remix_live + + CircleCI will build automaticaly and remix.ethereum.org will be updated + +## Remix IDE release Part 5. Update Zip in release + - after remix_live is updated, drop the zip (from https://github.com/ethereum/remix-live/) to the release. + +## Remix-ide beta release + - git fetch origin master + - git checkout origin/master + - git checkout -b bumpVersion + - update package.json version to the new version "vx.x.x-beta.1" + - remove package-lock/json version and generate a new one with `npm install` + - merge PR + - git fetch origin master + - git checkout origin/master + - git tag v(version-number) (with "vx.x.x-beta.1") + - git push --tags + - github-changes -o ethereum -r remix-project -a --only-pulls --use-commit-body --only-merges --between-tags previous_version...next_version + - publish a beta release in github using the changelog + - drop zip file to the beta release (from https://github.com/ethereum/remix-live-alpha) + +## remix-alpha.ethereum.org update + +remix-alpha.ethereum.org is automaticaly updated every time commits are pushed to master \ No newline at end of file