/yearn-finance-v3

Yearn Finance Web App v3

Primary LanguageTypeScript

yearn.finance

Contributing

Code style follows prettier conventions (yarn prettier). Commit messages follow the Conventional Commits spec.

Initial Setup

  • Fork the original repo into your GitHub account

  • Clone the forked repo from your GitHub account to your local machine

    $ git clone https://github.com/<your-gh>/yearn-finance-v3.git
    
  • Set origin to your fork. This is where you push your changes to. This is done automatically by the step above.

    $ git remote add origin https://github.com/<your-gh>/yearn-finance-v3
    
  • Set upstream to original repo.

    $ git remote add upstream https://github.com/yearn/yearn-finance-v3.git
    
  • Create .env file in root directory of repo then copy contents of .env.example to .env

    $ cp .env.example .env
    
    • REACT_APP_INFURA_PROJECT_ID should remain blank because we are currently using Alchemy as our provider

Making Changes

  • Create a new local branch from upstream/develop for each PR that you will submit
    $ git fetch
    $ git checkout -b <your branch name> upstream/develop
    
  • Commit your changes as you work
    $ git add .
    $ git commit -S -m "message"
    

Pushing Changes to your Repo

  • Commits are squashed when PR is merged so rebasing is optional
  • When ready to push
    $ git fetch
    $ git merge upstream/develop
    $ git push origin <branch-name>
    

Submitting Pull Request

  • Go to your GitHub and navigate to your forked repo
  • Click on Pull requests and then click on New pull request
  • Click on "compare across forks"
  • Click on compare: and select branch that you want to create a pull request for then click on create pull request

Development

$ yarn dev
  • To enable Dev Mode set REACT_APP_ALLOW_DEV_MODE=true in your .env
  • Wallet Address Override can be activated by navigating to Settings in the app and clicking Enable Dev Mode

Production

$ yarn build
$ yarn start

Translations

We use i18n react with locize cli to update/download translations.

Refer to main repo for documentation: https://github.com/locize/locize-cli

Sync with: npm run syncLocales must provide api key

Check sync changes with: npm run checkLocales

Download locales with: npm run downloadLocales