-
Notifications
You must be signed in to change notification settings - Fork 302
How tos
A collection of guides for specific types of contributions.
A full release is a release that syncs develop
with master
. Full releases typically happen on a weekly release cycle which happens every Monday.
To perform a full release, follow this process:
- Make sure you have the latest changes on
develop
:git checkout develop && git pull
- Determine what the next version should be. It should usually be a minor version bump. So if the version is currently 1.2.4 the next version should be 1.3.0 etc.
- Branch off
develop
:git checkout -b release/X.X.X
- Merge master into this branch (in case anything was merged into master that wasn't merged into develop):
git fetch && git merge origin/master
- Ensure all issues in this weeks testing document are addressed.
- Make any changes or fixes required locally.
- Stage & commit your changes:
git commit -am "Describe your change"
- Increase the app's minor version in package.json to the same version as the branch with
npm version minor
- Push your branch to github
git push origin HEAD
and create a PR withmaster
as a title ofRelease X.Y.Z
and a body ofWeekly Release
- Wait for checks to pass and ask for approval. The version check currently always fails with a minor version bump so you can ignore that.
- Once approved, change the merge type to "Create a Merge commit" and then merge your PR with
master
. It needs to be a merge commit to keep master and develop in sync. - Create a new PR with your release branch but now set the base (the branch you want to merge into) to
develop
. Set the body of this PR toOriginal: #XYZ
pointing to your last PR. - After approvals, change the merge type to "Create a Merge commit" and merge your release into
develop
. - Draft a new release setting the release version and title of the release to the version number you set in step 4 (make sure to set the release target as
master
). - Add a description for your release that is similar in structure to previous full releases.
- Publish your release.
A hotfix release is a release straight to the master
branch and therefore an immediate deployment to the production apps. Hotfixes are for when something needs to go live before the next weekly release cycle which happens every week on a Monday.
To perform a hotfix, follow this process:
- Make sure you have the latest changes on
master
:git checkout master && git pull
- Branch off
master
:git checkout -b hotfix/title-of-fix
- Make your changes locally.
- Stage & commit your changes:
git add -A && git commit -m "Describe your change"
- Increase the app's patch version in package.json. e.g. If the version is x.x.1 then change to X.X.2
- Run npm install:
npm install
- Stage & commit the version update:
git add -A && git commit -m "Bump version"
- Push your branch to github and create a PR.
- Once approved, merge your PR with
master
. - Create a new PR with your hotfix branch but now set the base (the branch you want to merge into) to
develop
. - After approvals, merge your hotfix into
develop
. - Draft a new release setting the release version and title of the release to the version number you set in step 4 (make sure to set the release target as
master
). - Add a description for your hotfix that is similar in structure to previous hotfix releases.
- Publish your release.
- If you're not a core repo contributor, create a pull request from a fork. If you are a core contributor follow the hotfix release process.
- Add your pool ID to the relevant network allowlist: Mainnet, Polygon or Arbitrum
- Stage & commit that change:
git commit -m "Add my stable pool to allowlist"
- Increase the app's patch version in package.json. e.g. If the version is x.x.1 then change to x.x.2
- Run npm install:
npm install
- Stage & commit the version update:
git commit -m "Bump version"
- Push your branch to github and create a PR.
- Request a review from a couple of core team members.
If the PR looks good, a core team member will merge with the master branch and run through the hotfix release process.
- If you're not a core repo contributor, create a pull request from a fork. If you are a core contributor follow the hotfix release process.
- Add the pool ID and network to the appropriate array in
voting-gauge-pools.ts
(Mainnet, Arbitrum & Polygon) - Set an environment variable with an Infura key:
export VUE_APP_INFURA_PROJECT_ID=<YOUR_KEY>
- Run the voting gauge generation script:
npm run generate:voting-gauges
- Add the pool ID to the relevant stakable allowlist array: Mainnet, Polygon or Arbitrum
- Stage & commit these changes:
git commit -m "Update voting gauge list"
(please avoid staging your change to.env.development
) - Increase the app's patch version in package.json. e.g. If the version is x.x.1 then change to x.x.2
- Run npm install:
npm install
- Stage & commit the version update:
git commit -m "Bump version"
- Push your branch to github and create a PR.
- Request a review from a couple of core team member.
If the PR looks good, a core team member will merge with the master branch and run through the hotfix release process.
Reference PR: https://github.com/balancer-labs/frontend-v2/pull/1957
- chainId, name, token data
- explorer url, name
- RPC url
- subgraph urls
- contract addresses
- pool, gauge and tokenlists
- balancer-labs/balancer-sor - addresses, consts, etc.
- balancer-labs/balancer-sdk - network type, pools, tokens, etc.
- README.md - add in "Available networks:"
- src/assets/images/icons/networks/ - add network svg icon
- src/lib/config/.json - add network information
- src/contants/initialTokens.json - add network id
- src/constants/pools.ts - add network pools information (
POOLS_<NETWORK_NAME>
) - src/constants/tokenlists.ts - add tokenlist urls
- src/constants/tokens.ts - add tokens information
- src/constants/voting-gauges.ts - add voting gauge information
- src/constants/voting-gauge-pools.ts - add voting gauge pool information
- src/constants/rateProviders.ts - allowed rate providers
- src/composables/useBlockative.ts - add to
const SUPPORTED_NETWORKS
- src/composables/useNetwork.ts (add const
is<Network>
, add tofunction networkFor
, add tofunction subdomainFor
) - src/composables/usePoolWarninig.ts - add to
const POOL_ISSUES
- src/composables/useSnapshots.ts - add to
function blockTime
- src/composables/useVeBAL.ts - check if veBal supported on new network
- src/composables/useBotingGauges.ts - add to
const _votingGauges
- src/services/web3/useWeb3.ts - add
const is<Network-name>
- src/services/web3/web3.plugin.ts - networkMap
- src/services/coingecko/coingecko.service.ts - add to
const getNativeAssetId
andconst getPlatformId
- src/services/balancer/gauge/gauge-controller.decorator.ts - check
private getNetwork
- src/lib/scripts/voting-gauge.generator.ts - add to
function getTrustWalletAssetsURI
and checkfunction getGaugeAddress
- src/services/gas-price/gas-price.service.ts - gas price provider
- src/lib/balancer.sdk.ts - add to
const network
- src/lib/config/index.ts - add to
const config
- src/plugins/sentry.ts - add to
const networkMap
- src/components/cards/TradeCard/TradeRoute.vue - add to
const prefixMap
- src/components/navs/AppNav/AppNavNetworkSelect.vue
- src/components/links/BridgeLink.vue