Yearn Protocol Documentation Website

The yearn devdocs website is built using Docusaurus, a modern static website generator.

Installation

yarn install

Local Development

yarn start

This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server.

Build

yarn build

This command generates static content into the build directory and can be served using any static content hosting service.

Deployment

GIT_USER=<Your GitHub username> USE_SSH=true yarn deploy

If you are using GitHub pages for hosting, this command is a convenient way to build the website and push it to the gh-pages branch.

Contribute

Doc structure

Doc is split in two, the versioned doc and the non-versioned doc. Doc is generated from markdown or HTML files.

For detailed information on the contributing workflow, please see the Contributing doc.

Not versioned doc

In the docs folder:

  • getting-started
  • partners
  • v1

Versioned doc

In versioned_docs you will find several versions of the vault doc that corresponds to a tagged release. In vaults folder you can find the latest version that corresponds to the changes on yearn-vault master is the documentation for the next/unreleased version.

Generating Versioned Docs

Dependencies

  • Clone yearn/yearn-vaults in the same folder where you cloned yearn-devdocs (not inside devdocs, but besides it)
  • Run the yearn-vaults installation, you will need to have brownie installed to run it once so it installs the required dependencies.
  • Check the vyper compiler version on the vaults repo (here) and update the ~/.vvm/vyper-X.X.X in the end of the first command below.
  • Make sure Vault.vy and Registry.vy on yearn-vaults folder has the same compiler version on their first line. If not, bump the file with the lowest version to the current version the other uses.
  • If any contract file in yearn-vaults uses a fixed compiler version (without leading ^) you may have to add it so the solc compiler is able to run. Also make sure solc version is up-to-date.
  • More information on docusaurus versioning here if the last command has any issue, and remember to change the version to the one you are generating for!

Generate:

To generate API docs and coin a new release, do the following.

npx vydoc -i ../yearn-vaults/contracts/ -o ./vaults/smart-contracts -t ./templates/contract.ejs -c ~/.vvm/vyper-0.3.3
npx solidity-docgen --solc-module solc --templates=templates --helpers=helpers/solidityHelpers.js -i ../yearn-vaults/contracts/ -o ./vaults/smart-contracts
npm run docusaurus docs:version 0.4.5

After that put everything generated in the new version docs into versioned_docs/version-x.x.x/smart-contracts folder, then copy yearn-lens/., yearn-sdk/. and ``yearn-api.md` from the previous versioned docs folder into the new one