Skip to content

Latest commit

 

History

History
71 lines (46 loc) · 5.51 KB

contributing.md

File metadata and controls

71 lines (46 loc) · 5.51 KB

Andromeda Protocol: CONTRIBUTING.md - A Comprehensive Guide for Developers

Contributing to Andromeda Protocol

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.

Getting Started

  1. 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.

  2. 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]).

  3. 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.

Proposing a New ADO

  1. 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.

  2. 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.

  3. 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.

  4. Discussion and Refinement: Engage in discussions on the Developer Board to refine your proposal based on community feedback and input from the Andromeda team.

Developing an ADO

  1. Development Environment: Set up your Rust development environment and ensure you have the necessary tools installed (Rust, Cargo, and the wasm32-unknown-unknown target).

  2. Utilize the Template: Start with the Andromeda contract template ([link to andr-cw-template]) for a structured foundation that includes essential dependencies and configuration.

  3. Andromeda-Specific Development:

    • Use the ADOContract interface from the andromeda-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]).
  4. Testing: Write comprehensive unit tests using mock_dependencies_custom and integration tests using the andromeda-testing library. Ensure high test coverage to minimize the risk of bugs or vulnerabilities.

Submitting an ADO

  1. Code Repository: Host your ADO code in a public GitHub repository.

  2. 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
  3. 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.

  4. 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.

Contributing to Existing ADOs

If you'd like to contribute to an existing ADO (e.g., propose new features, fix bugs), follow these steps:

  1. Identify the ADO: Locate the ADO's repository in the andromeda-core monorepo ([link to andromeda-core]).
  2. 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.
  3. Fork and Branch: Fork the repository and create a new branch for your changes.
  4. Code Changes: Implement your changes, following Andromeda's coding standards and testing guidelines.
  5. Pull Request: Submit a pull request with your changes, providing a clear description of the proposed modifications.
  6. 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!