remix-project mirror
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
remix-project/release-process.md

145 lines
5.2 KiB

4 years ago
# Release process
2 years ago
This document includes the release instructions for:
- Feature freeze phase
- Publishing `remixd` to NPM
- Publishing remix libraries to NPM
- Updating Remix's live version on remix.ethereum.org
- Updating Remix's alpha version on remix-alpha.ethereum.org
- Updating Remix's beta version on remix-beta.ethereum.org
## Feature Freeze
Once feature freeze is done, `remix_beta` should be updated to the latest master which will automatically update `remix-beta.ethereum.org` through a CI job.
2 years ago
11 months ago
Use this unified command:
- `yarn run updateBeta`
or individually:
2 years ago
- `git checkout remix_beta`
- `git pull origin remix_beta`
- `git reset --hard <master-commit-hash>` (`master-commit-hash` will be latest commit id from `master` branch)
2 years ago
- `git push -f origin remix_beta`
## Testing
Testing is performed after the Feature Freeze on `remix-beta.ethereum.org`. `build-qa-doc.js` script can be used to generate the list of QA tasks. Instructions to use the file are given in the file itself: https://github.com/ethereum/remix-project/blob/master/build-qa-doc.js#L18
2 years ago
Once ready to run, it can be run using the Node.js: `node build-qa-doc.js`
4 years ago
Find out the latest release highlights and update in `releaseDetails.json` file along with the `version` string. Also, update release blog link under `moreLink` field. This will set latest release details in the slide of `Featured` section.
## Remix Project NPM packages publishing
Once testing is completed, release will start by publishing Remix NPM packages.
- Make sure you are on `master` branch: `git checkout master`
- Pull the latest: `git pull origin master`
- Create a branch: `git checkout -b bumpLibsVersion`
### remixd NPM release
`yarn run publish:remixd`
This command will ask for a new version.
### Other libraries NPM release
`yarn run publish:libs`
2 years ago
This command uses `lerna` and is solely responsible for publishing all the remix libraries. It will ask for a new version of each library. Make sure you are logged in to NPM.
4 years ago
Once these commands run successfully, the version for each remix library will be updated to latest in the libs' package.json file.
2 years ago
- Create and merge bump PR to master
4 years ago
## Remix IDE Release
:point_right: Make sure release highlights and blog link are updated to show them on Home tab, Featured section.
### Part 1. Bump the version and update Beta
4 years ago
#### Make sure `remix_beta` is up-to-date with `master` branch:
4 years ago
11 months ago
Use this unified command:
- `yarn run updateBeta`
or individually:
- `git checkout remix_beta`
- `git pull origin remix_beta`
- `git reset --hard <master-commit-hash>`
- `git push -f origin remix_beta`
#### Create bump version PR:
- Create a new branch from `remix_beta`: `git checkout -b bumpVersion`
- Update package.json version. Usually, you need to remove `-dev` from the version string
- Create a PR with base branch as `remix_beta`
- Merge PR to **origin/remix_beta**
4 years ago
2 years ago
#### Create git tag from beta branch:
4 years ago
11 months ago
Use this unified command:
- `yarn run publishTagfromBeta`
or individually:
- `git checkout remix_beta`
- `git pull origin remix_beta`
- Create tag: `git tag v<version-number>`, `<version-number>` should be same as in package.json of `remix_beta` branch
- Push tag: `git push --tags`
11 months ago
Publish a new release on GitHub using created tag and generate automated changelog by selecting the appropriate previous tag
4 years ago
### Part 2. Update the Remix Live
4 years ago
Updating the `remix_live` branch latest to the `remix_beta` runs the CircleCI build which updates live version of Remix IDE on `remix.ethereum.org`
11 months ago
Use this unified command:
- `yarn run updateLive`
or individually:
- `git checkout remix_live`
- `git pull origin remix_live`
- `git reset --hard <remix_beta-commit-hash>` or `<master-commit-hash>` sometimes
- `git push -f origin remix_live`
CircleCI will build automatically and remix.ethereum.org will be updated to the latest.
2 years ago
### Part 3. Upload zip file in GitHub release
- Once CI is successful for `remix_live` branch, Go to https://github.com/ethereum/remix-live
- Download the zip file with the name starting with `remix-`
2 years ago
- Upload the zip file in GitHub assets by editing the release for this version
## Bump master branch
- `git checkout master`
- `git pull origin master`
- Create a new branch from `master`: `git checkout -b bumpDevVersion`
- Bump the package.json version, add the tag `-dev` if not already present.
- Update new feature freeze date under `freeze-date` in `.github/workflows/pr-reminder.yml` file
- Create and merge PR to `master`
4 years ago
## Remix IDE Beta Release
4 years ago
- 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"
- 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 IDE Alpha Release
4 years ago
remix-alpha.ethereum.org is automatically updated every time a commit is pushed to `master` branch