Skip to content

Contributing Guidelines

RenzMc edited this page Sep 6, 2025 · 1 revision

🀝 Contributing Guidelines

This guide explains how to contribute to the Acode AI CLI Assistant Plugin project. We welcome contributions from the community!

🎯 Overview

Contributions to the plugin can take many forms:

  • Bug reports and feature requests
  • Code contributions and improvements
  • Documentation enhancements
  • Testing and feedback
  • translations and localization

πŸ› Reporting Issues

Before Submitting

  1. Check existing issues to avoid duplicates
  2. Ensure you're using the latest version of the plugin
  3. Verify the issue isn't related to your API provider

Submitting Bug Reports

When reporting bugs, include:

  • Description: Clear explanation of the problem
  • Steps to Reproduce: Detailed steps to recreate the issue
  • Expected Behavior: What you expected to happen
  • Actual Behavior: What actually happened
  • Environment: Acode version, Android version, device model
  • Screenshots: If relevant to the issue

Feature Requests

For feature requests, provide:

  • Use Case: Why this feature would be valuable
  • Description: Detailed explanation of the proposed feature
  • Examples: Sample implementations or similar features
  • Priority: How important this feature is to you

πŸ§ͺ Testing

Testing New Features

  1. Fork the repository
  2. Create a feature branch
  3. Implement your changes
  4. Test thoroughly on different devices
  5. Submit a pull request

Beta Testing

Participate in beta testing by:

  • Installing development builds
  • Reporting issues with new features
  • Providing feedback on user experience
  • Testing on various Android versions

πŸ“ Documentation Contributions

Improving Existing Docs

  1. Fork the repository
  2. Edit files in the docs directory
  3. Submit a pull request with your changes
  4. Include rationale for improvements

Adding New Documentation

When adding new documentation:

  • Follow the existing format and style
  • Use appropriate markdown headers
  • Include code examples when relevant
  • Add navigation links at the bottom

πŸ’» Code Contributions

Development Setup

  1. Fork the repository
  2. Clone your fork:
    git clone https://github.com/your-username/Acode-Plugin-AI-cli.git
  3. Install dependencies:
    npm install
  4. Create a feature branch:
    git checkout -b feature/your-feature-name

Code Standards

  • ESLint: Follow configured ESLint rules
  • Prettier: Use Prettier for consistent formatting
  • JSDoc: Write documentation for functions and classes
  • Modularity: Keep code modular and reusable
  • Security: Follow security best practices

Commit Guidelines

  • Use clear, descriptive commit messages
  • Reference issues in commit messages when relevant
  • Keep commits focused on single changes
  • Follow conventional commit format:
    feat: Add new provider integration
    fix: Resolve encryption issue with long keys
    docs: Update installation guide
    

πŸ§ͺ Testing Guidelines

Unit Tests

  • Write tests for new functionality
  • Ensure existing tests still pass
  • Test edge cases and error conditions
  • Use Jest or similar testing framework

Integration Tests

  • Test API integrations with mock responses
  • Verify UI components render correctly
  • Check plugin initialization and setup
  • Validate data flow between components

Device Testing

  • Test on various Android versions
  • Check performance on different hardware
  • Verify UI responsiveness
  • Test with different Acode configurations

πŸ“¦ Pull Request Process

Before Submitting

  1. Ensure your code follows project standards
  2. Run all tests and verify they pass
  3. Update documentation if needed
  4. Sync with upstream main branch

Submitting Pull Requests

  1. Push your changes to your fork:
    git push origin feature/your-feature-name
  2. Open a pull request against the main repository
  3. Provide a clear description of changes
  4. Link to any related issues
  5. Request review from maintainers

Pull Request Review

  • Maintainers will review your code
  • Address any feedback or requested changes
  • Be patient during the review process
  • Participate in discussion of improvements

🎨 UI/UX Contributions

Design Guidelines

  • Follow the galaxy theme aesthetic
  • Maintain consistent styling
  • Ensure responsive design works
  • Test accessibility features

Implementation Standards

  • Use existing CSS variables
  • Follow component structure
  • Implement animations smoothly
  • Ensure cross-browser compatibility

πŸ”Œ API Integration Contributions

Adding New Providers

  1. Research the provider's API documentation
  2. Implement using LangChain when possible
  3. Add provider to the constants list
  4. Implement model fetching functionality
  5. Add UI elements for configuration

Provider Guidelines

  • Use secure API communication
  • Handle rate limits appropriately
  • Provide clear error messages
  • Follow provider's terms of service

πŸ“š Documentation Standards

Writing Style

  • Use clear, concise language
  • Write in present tense
  • Address the user directly
  • Include practical examples

Formatting

  • Use appropriate headers and subheaders
  • Include tables for structured information
  • Use code blocks for examples
  • Add navigation links between documents

Content Organization

  • Keep related information together
  • Use consistent terminology
  • Provide progressive learning paths
  • Include troubleshooting sections

πŸ›‘οΈ Security Contributions

Reporting Security Issues

For security vulnerabilities:

  • Contact maintainers directly
  • Provide detailed vulnerability description
  • Include reproduction steps
  • Allow time for patch development before public disclosure

Security Improvements

When contributing security enhancements:

  • Follow established encryption standards
  • Don't roll your own crypto
  • Validate inputs properly
  • Handle errors securely

🌐 Localization Contributions

Translation Process

  1. Fork the repository
  2. Create language-specific files
  3. Translate UI elements and documentation
  4. Test localization in Acode
  5. Submit pull request

Language Guidelines

  • Maintain consistent terminology
  • Follow cultural conventions
  • Test text expansion/contraction
  • Ensure RTL support if needed

πŸ“ž Communication Guidelines

Community Interaction

  • Be respectful and constructive
  • Help others learn and improve
  • Share knowledge freely
  • Follow code of conduct

Discussion Topics

  • Focus on technical issues
  • Share implementation ideas
  • Discuss best practices
  • Provide helpful feedback

πŸ“ˆ Contribution Tracking

Recognition

Contributors are recognized:

  • In the README.md acknowledgments
  • Through GitHub contributor lists
  • In release notes for significant contributions

Metrics

We track contributions through:

  • Pull request acceptance rates
  • Issue resolution times
  • Community engagement levels
  • Code quality improvements

πŸ› Troubleshooting Contribution Issues

Common Problems

Build Failures

  • Check Node.js version compatibility
  • Ensure all dependencies are installed
  • Verify build configuration
  • Check for syntax errors

Test Failures

  • Run tests in isolation
  • Check for environmental dependencies
  • Verify test data is correct
  • Ensure proper mocking

Integration Issues

  • Test with latest Acode version
  • Check API provider status
  • Verify plugin manifest
  • Confirm file structure

Contribution Verification

To verify your contribution environment:

  1. Clone the repository
  2. Install dependencies
  3. Run the build process
  4. Test in Acode development environment

πŸ“ž Getting Help

If you need help with contributions:

  1. Join our Discussions community
  2. Contact maintainers through GitHub
  3. Check existing documentation and code
  4. Review accepted pull requests for examples

Clone this wiki locally