Thank you for your interest in contributing to Andromeda Protocol! We welcome contributions from developers of all skill levels, whether you're fixing bugs, proposing new features, or creating entirely new Andromeda Digital Objects (ADOs). This guide outlines the process for contributing effectively and efficiently.
-
Join the Community: Join our Developer Telegram group ([link to Developer Telegram group]) to connect with other developers, ask questions, and get updates on the project.
-
Explore the Andromeda Ecosystem: Familiarize yourself with the Andromeda Protocol, its architecture, and the existing library of ADOs. Start with the introductory documentation ([link to Andromeda documentation overview]) and explore the ADO summaries ([link to ADO summary tables]).
-
Identify a Contribution Area: Choose an area where you'd like to contribute:
- New ADO Development: If you have an idea for a new ADO, proceed to the "Proposing a New ADO" section below.
- Enhancements to Existing ADOs: If you'd like to propose new features or fix bugs in existing ADOs, use the issue tracker on the relevant ADO repository (see the
andromeda-core
repository for links to individual ADO repositories). - Core aOS Development: If you're interested in contributing to the core Andromeda Operating System (aOS), explore the
andromeda-core
repository and its issue tracker. - Documentation Improvements: If you see room for improvement in the documentation, feel free to submit pull requests with corrections or enhancements.
-
Check Existing Proposals: Before proposing a new ADO, check the Andromeda Developer Board ([link to Developer Board]) to see if a similar idea has already been proposed or is in development. This helps avoid duplication of effort and fosters collaboration.
-
Refine Your Idea: Clearly define the ADO's purpose, functionalities, and potential use cases. Consider its interactions with other ADOs and any potential security implications.
-
Submit an ADO Idea Proposal: Use the
ADO Idea Proposal
template ([link to template]) to create a detailed proposal. Ensure you include all the requested information, such as a flow breakdown (instantiation, execution, queries), security considerations, and dependencies. -
Discussion and Refinement: Engage in discussions on the Developer Board to refine your proposal based on community feedback and input from the Andromeda team.
-
Development Environment: Set up your Rust development environment and ensure you have the necessary tools installed (Rust, Cargo, and the
wasm32-unknown-unknown
target). -
Utilize the Template: Start with the Andromeda contract template ([link to
andr-cw-template
]) for a structured foundation that includes essential dependencies and configuration. -
Andromeda-Specific Development:
- Use the
ADOContract
interface from theandromeda-std
crate for seamless integration with the aOS. - Employ the
andromeda-macros
crate to streamline message definitions. - Adhere to Andromeda's coding standards for consistency and maintainability (see documentation: [link to coding standards]).
- Use the
-
Testing: Write comprehensive unit tests using
mock_dependencies_custom
and integration tests using theandromeda-testing
library. Ensure high test coverage to minimize the risk of bugs or vulnerabilities.
-
Code Repository: Host your ADO code in a public GitHub repository.
-
Documentation: Create clear and comprehensive documentation for your ADO, including:
- Purpose and use cases
- Instantiation message parameters
- Execute message descriptions and examples
- Query message descriptions and examples
- Security considerations
- Error handling
-
ADO Submission: Once your ADO is fully implemented, tested, and documented, submit it to the Andromeda Developer Board using the
ADO Submission
template ([link to template]). Include links to your code repository, documentation, and any relevant audit reports or test coverage results. -
Review and Approval: Your ADO submission will be reviewed by the Andromeda team and potentially the Andromeda DAO. Be prepared to address feedback and make any necessary revisions.
If you'd like to contribute to an existing ADO (e.g., propose new features, fix bugs), follow these steps:
- Identify the ADO: Locate the ADO's repository in the
andromeda-core
monorepo ([link toandromeda-core
]). - Issue Tracker: Use the ADO's issue tracker to:
- Report bugs or suggest enhancements using the appropriate templates.
- Check if the proposed feature or bug fix is already being addressed.
- Fork and Branch: Fork the repository and create a new branch for your changes.
- Code Changes: Implement your changes, following Andromeda's coding standards and testing guidelines.
- Pull Request: Submit a pull request with your changes, providing a clear description of the proposed modifications.
- Review and Merge: Your pull request will be reviewed by the Andromeda team. Be prepared to address feedback and make any necessary revisions before your changes are merged.
We appreciate your contributions to Andromeda Protocol and look forward to collaborating with you to build the future of decentralized applications!