Thank you for your interest in contributing to AGS CLI! This document provides guidelines and instructions for contributing.
- Code of Conduct
- How to Contribute
- Development Setup
- Coding Guidelines
- Commit Messages
- Review Process
This project follows the CNCF Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to the project maintainers.
Before creating a bug report, please check existing issues to avoid duplicates.
When filing a bug report, please include:
- Title: A clear and descriptive title
- Environment: OS, Go version, AGS CLI version
- Steps to Reproduce: Detailed steps to reproduce the issue
- Expected Behavior: What you expected to happen
- Actual Behavior: What actually happened
- Logs/Screenshots: Any relevant logs or screenshots
- Additional Context: Any other relevant information
Use the bug report template when creating an issue.
We welcome feature suggestions! When proposing a new feature:
- Check Existing Issues: Search for similar feature requests first
- Create an Issue: Use the feature request template
- Describe the Feature: Explain the feature clearly
- Use Cases: Describe the use cases and benefits
- Alternatives: List any alternatives you've considered
For significant changes or new features, we recommend submitting a design proposal first:
-
Create a Design Document: Write a design document covering:
- Problem statement
- Proposed solution
- Technical design details
- API changes (if any)
- Migration plan (if applicable)
- Testing strategy
-
Submit as an Issue: Create an issue with the
design-proposallabel -
Discussion: Engage with maintainers and community feedback
-
Approval: Wait for maintainer approval before implementation
-
Fork the Repository: Fork and clone the repository
-
Create a Branch: Create a feature branch from
maingit checkout -b feature/your-feature-name
-
Make Changes: Implement your changes following our coding guidelines
-
Write Tests: Add or update tests as needed
-
Run Tests: Ensure all tests pass
make test -
Commit Changes: Follow our commit message guidelines
-
Push Changes: Push to your fork
git push origin feature/your-feature-name
-
Create PR: Open a pull request with:
- Clear title and description
- Reference to related issues
- Summary of changes
- Testing performed
- Go 1.21 or later
- Make
# Clone the repository
git clone https://github.com/TencentCloudAgentRuntime/ags-cli.git
cd ags-cli
# Build
make build
# Run tests
make test
# Install locally
make installags-cli/
├── cmd/ # Command implementations
├── internal/ # Internal packages
├── examples/ # Usage examples
├── build/ # Build artifacts
└── main.go # Entry point
- Follow Effective Go guidelines
- Use
gofmtfor formatting - Run
go vetbefore committing - Keep functions focused and concise
- Always handle errors explicitly
- Provide meaningful error messages
- Use wrapped errors for context
- Document all exported functions and types
- Keep comments up to date with code changes
- Include examples where helpful
Follow the Conventional Commits specification:
<type>(<scope>): <description>
[optional body]
[optional footer(s)]
feat: New featurefix: Bug fixdocs: Documentation changesstyle: Code style changes (formatting, etc.)refactor: Code refactoringtest: Adding or updating testschore: Maintenance tasks
feat(run): add support for Ruby language
fix(instance): resolve timeout handling issue
docs(readme): update installation instructions
- Automated Checks: All PRs must pass CI checks
- Code Review: At least one maintainer approval required
- Testing: Adequate test coverage expected
- Documentation: Update docs if needed
- Merge: Maintainers will merge approved PRs
- Initial response: Within 3 business days
- Review completion: Depends on PR complexity
If you have questions, feel free to:
- Open a discussion issue
- Reach out to maintainers
Thank you for contributing to AGS CLI!