This monorepo contains the following apps:
- Agent: Hold assets and perform actions from Aragon organizations.
- Agreement: Govern organizations through a subjective rules.
- Finance: Send payments and manage expenses with budgeting.
- Tokens: Manages organization tokens.
- Vault: Securely owns and manages tokens on behalf of a DAO.
- Voting: Create votes that execute actions on behalf of token holders.
- Disputable Voting: Create disputable votes that execute actions on behalf of token holders.
Each of the individual apps come with a frontend that is intended to be installed and used through the Aragon client.
You can read more about how each of the individual apps work in the Aragon user guide.
To bootstrap, simply run:
This will initialize and install each of the individual apps, hoisting their shared dependencies into the root
💡If you're only interested in bootstrapping one package, you can go to that specific package workspace and use
yarn install --focus
Running tests on all apps can be done by running
yarn test at the root directory (note that this can take a significant amount of time!).
Running tests of an individual app can be done by running
yarn test inside an individual app's directory, or through the selective
yarn test:<app> scripts.
By default, tests are run on an in-memory instance of testrpc.
Each app's frontend is encapsulated inside of that app's own
To work on frontend, you'll need to go into
app/ directory and do another
yarn installation. For more instructions, you can follow the "Frontend Setup" guide in the Aragon client. Note that the app itself doesn't need to be bootstrapped if you'd just like to install the frontend.
# Starting at this project's root # Go to the Voting app's directory cd apps/voting # Go to the Voting app's frontend directory cd app/ # Install and start yarn yarn start
For some introductory information on what an Aragon app is, and how to build one, please read through the Aragon stack introduction and Your first Aragon app. To build Aragon client-compatible apps, the aragonAPI documentation is also available as a reference.
👋 Get started contributing with a good first issue.
Don't be shy to contribute even the smallest tweak.
For more details about contributing to Aragon, please check the contributing guide.
If you come across an issue with Aragon, do a search in the Issues tab of this repo and the Aragon client's issues to make sure it hasn't been reported before. Follow these steps to help us prevent duplicate issues and unnecessary notifications going to the many people watching this repo:
- If the issue you found has been reported and is still open, and the details match your issue, give a "thumbs up" to the relevant posts in the issue thread to signal that you have the same issue. No further action is required on your part.
- If the issue you found has been reported and is still open, but the issue is missing some details, you can add a comment to the issue thread describing the additional details.
- If the issue you found has been reported but has been closed, you can comment on the closed issue thread and ask to have the issue reopened because you are still experiencing the issue. Alternatively, you can open a new issue, reference the closed issue by number or link, and state that you are still experiencing the issue. Provide any additional details in your post so we can better understand the issue and how to fix it.
For help and support, feel free to contact us at any time on our Spectrum App development channel.