## Keyboard shortcuts

Press `←` or `→` to navigate between chapters

Press `S` or `/` to search in the book

Press `?` to show this help

Press `Esc` to hide this help

# How to Contribute

We are thrilled that you are interested in contributing to Dao OS! As a community-driven project, we welcome and value contributions of all kinds. This guide outlines the ways you can get involved and the process for submitting your contributions.

## Our Pledge and Code of Conduct

To foster an open, welcoming, and inclusive environment, we pledge to adhere to a Code of Conduct. We expect all contributors and community members to do the same.

(Note: We will officially adopt the Contributor Covenant and link to it here.)

## Ways to Contribute

You don't have to be a Rust expert to contribute. There are many ways to help:

- Core Development: Contributing to the `Meta Unit` library and the core protocols in Rust.
- `Dao Implement` Development: Creating new `Dao Implements`, which can include `Facet` (UI) components and `Core` (headless logic) components.
- Documentation & Translation: Improving these documents, writing tutorials, and translating them into new languages.
- User Support & Community Management: Helping new users, answering questions, and fostering a welcoming and supportive atmosphere.
- Design & User Experience: Contributing to the UI/UX design for reference `Dao Implements` and defining design patterns for the ecosystem.

## Your First Pull Request

We use the standard GitHub Fork & Pull Request workflow for all code contributions.

1. Fork the Repository: Create your own copy of the target repository (e.g., `dao-os-docs`, `meta-unit`).
2. Create a Branch: Create a new branch from `main` for your changes. Please use a descriptive name (e.g., `feat/add-note-encryption`).
3. Make Your Changes: Write your code and accompanying tests.
4. Run Local Checks: Before submitting, please ensure you run all local tests and linters.
5. Commit Your Changes: We encourage using Conventional Commits for clear and readable commit messages.
6. Push to Your Fork: Push your changes to your forked repository.
7. Open a Pull Request: Submit a Pull Request from your branch to the `main` branch of the official Dao OS repository.
8. Describe Your PR: In the Pull Request description, please link to any relevant issues and clearly describe the problem you are solving and your solution.
9. Wait for Review: A core team member will review your PR, provide feedback, and merge it once it's ready.

## Setting Up Your Development Environment

(This section will be filled out in detail for each repository.)

To contribute to the `meta-unit`, you will generally need:

- The Rust toolchain (`rustup`)
- The WebAssembly build target (`wasm32-wasi`)
- The Protocol Buffers compiler (`protoc`)

Please refer to the `README.md` in each specific repository for detailed setup instructions.

## Any Questions?

If you have any questions, please feel free to ask in our official communication channels. We are here to help you get started!