@ -84,7 +84,7 @@ If you search `FormattedMessage` or `intl.formatMessage` in this project, you wi
**Why?**
Each non-english language will be filled in the gaps with english. Even there maybe some un-translated content, it will always use english as defaultMessage. That why we don't need to provide a `defaultMessage` prop each time we render a `FormattedMessage` component.
Each non-english language will be filled in the gaps with english. Even though there maybe some un-translated content, it will always use english as defaultMessage. That's why we don't need to provide a `defaultMessage` prop each time we render a `FormattedMessage` component.
But in some cases, the `id` prop may not be static. For example,
@ -16,10 +16,10 @@ During this phase the github project has to be filled with the issues that are g
## Release planning:
Together with the team, the release manager will refine the list of issues and PRs that should be addressed during the release.
More generally and a non negligeable part of the planning is to properly ensure that bugs, issues that weren't totally identified in the roadmap, and the roadmap issues are still being processed as they should.
More generally and a non-negligible part of the planning is to properly ensure that bugs, issues that weren't totally identified in the roadmap, and the roadmap issues are still being processed as they should.
During this phase, **all the current project issues have to be assigned.**
After the release planning each one of us have to specify the effort need for each issue (1 - 2 - 3 - 5 - 8 - 13)
After the release planning each one of us has to specify the effort need for each issue (1 - 2 - 3 - 5 - 8 - 13)
## Release planning - refinement meeting:
This meeting happens a few days after the release planning meeting.
@ -37,7 +37,7 @@ Release managers will oversee the various aspects of a project before it is due
The quality of the release needs to be reviewed before a project is officially launched.
The release manager is in charge of ensuring manual testing is properly planned and done.
During the feature freeze time, only the release manager has permission to merge pull requests. As staging should at this point be already deployed, this is to ensure that the release manager has enough visibility on the changes being applied.
Also that unit testing and e2e for new feaures have been included.
Also that unit testing and e2e for new features have been included.
## Deployment:
After being quality checked, the project is ready to be deployed.
@ -57,14 +57,14 @@ The release manager is still responsible for ensuring a project is rolled out sm
- Lead the daily standup meeting.
- 10 minutes or more are reserved at the end of the daily standup meeting where the release manager update the team on the opened PRs (PRs which aim to be delivered in the planned release).
- Regular check for new filed issues, identify those that requires to be published (included in the release)
- In some really specific situation, it could be required to deploy intermediate releases (e.g critical bug fixes).
- Regular check for new filed issues, identify those that require to be published (included in the release)
- In some really specific situations, it could be required to deploy intermediate releases (e.g critical bug fixes).
- Planning, refinement, retrospective meetings have to be organized by the release manager and any other required meetings.
- Release manager should feel free to implement new techniques and put their own fingerprint to their release, this could potentially benefit upcoming releases.
- Release manager should feel free to implement new techniques and put their own fingerprint to their release, this could potentially benefit upcoming releases.
- During feature freeze, remix-beta should be updated every morning.
- A meeting with Andy and Rob should be organized for ensuring the beta test results are properly handled.
## checklist:
## checklist:
### pre release planning
@ -74,7 +74,7 @@ The release manager is still responsible for ensuring a project is rolled out sm
- [ ] a release kickoff meeting with the team aiming to get input from everyone and modify the project accordingly.
- [ ] 2-3 days span where team members estimate their issues.
- [ ] a release planning meeting where we agree on the release scope (intermediate and/or classic release).
- [ ] after this meeting: all the issues / PR should have been qualified in term of effort and scope.
- [ ] after this meeting: all the issues / PR should have been qualified in terms of effort and scope.
- [ ] after this meeting: date for feature freeze, QA period, and release date should be set in the project title.
@ -13,11 +13,11 @@ Once feature freeze is done, `remix_beta` should be updated latest to the master
- `git checkout remix_beta`
- `git pull origin remix_beta`
- `git reset --hard <master-commit-hash>` (`master-commit-hash` will be latest commid id from `master` branch)
- `git reset --hard <master-commit-hash>` (`master-commit-hash` will be latest commit id from `master` branch)
- `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 .
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 .
Once ready to run, it can be run using the Node.js: `node build-qa-doc.js`
@ -76,7 +76,7 @@ Updating the `remix_live` branch latest to the `remix_beta` runs the CircleCI bu
- `git reset --hard <remix_beta-commit-hash>` or `<master-commit-hash>` sometimes
- `git push -f origin remix_live`
CircleCI will build automaticaly and remix.ethereum.org will be updated to the latest.
CircleCI will build automatically and remix.ethereum.org will be updated to the latest.
### Part 3. Upload zip file in GitHub release
- Once CI is successful for `remix_live` branch, Go to https://github.com/ethereum/remix-live
@ -108,4 +108,4 @@ Updating the `remix_live` branch latest to the `remix_beta` runs the CircleCI bu
## Remix IDE Alpha Release
remix-alpha.ethereum.org is automaticaly updated every time a commit is pushed to `master` branch
remix-alpha.ethereum.org is automatically updated every time a commit is pushed to `master` branch
- When a story / bug fix is divided in parts, there should be a kickstart meeting with all the developers involved, so that all the devs have an good overview / understanding on:
- When a story / bug fix is divided in parts, there should be a kickstart meeting with all the developers involved, so that all the devs have a good overview / understanding on:
- How the story fits into the Ethereum tech.
- How the backend (if any) works / will work (could be a smart contract).
- How the frontend works / will work.
@ -73,7 +73,7 @@ Before starting coding, we should ensure all devs / contributors are aware of:
- Prioritised list of PRs / issues are tracked in a GitHub Project, Remix IDE issues are managed by a prioritized backlog.
- Every story can be executed by a single developer or a group of 2 or more developers (depending on the size and complexity)
- Each dev should take the part he/she feels the most confortable with.
- Each dev should take the part he/she feels the most comfortable with.
- Later progress and discussion is updated directly on the issue or pull request (github).
- When a developer or team decides on the story they want to work on (at the start of milestone for instance), they assign themselves to the issue.
- Documentation update should be done together with the story, or an issue with the label "documentation" has to be created.
@ -122,7 +122,7 @@ Before starting coding, we should ensure all devs / contributors are aware of:
# Milestone
- A milestone should **only** contain items we are sure to finish.
- The end of a milestone trigger a new release.
- The end of a milestone triggers a new release.
- Milestone items and duration should take in account time spent in bugs fixing and support.
- The team should commit to the milestone duration.
- If a dev finish early he/she can help other to push remaining tasks.
@ -133,7 +133,7 @@ Before starting coding, we should ensure all devs / contributors are aware of:
# Milestone - Refinement meeting
- A meeting is organized 3 weeks after the beggining of a round. This aims to :
- A meeting is organized 3 weeks after the beginning of a round. This aims to :
- list what is left to do.
- identify any blocker.
- agree on a release date (which can be earlier 1 week after the meeting and not later than 4 weeks after the meeting.
@ -170,7 +170,7 @@ Before starting coding, we should ensure all devs / contributors are aware of:
### 1) Bugs:
- A critical bug should get the label `Blocker`, and every effort should be put to fix it.
- Addressing a non critical and non planned bug can be done:
- After having notified in the `remix-dev` channel if the bug does not involves UX or public API changes.
- After having notified in the `remix-dev` channel if the bug does not involve UX or public API changes.
- After a dev meeting (e.g the regular standup) if the bug involves any UX or public API changes.