Development Guide
This section contains development resources for contributors and developers working on GNS3 Copilot.
Getting Started
If you're new to contributing to GNS3 Copilot, please refer to:
- Testing Guide - Manual testing procedures
- Auto Commit Guide - Automated commit workflow
- Auto Documentation Guide - Documentation automation
Branching Strategy
We use the following branching strategy:
- master: Stable production releases
- Development: Main development branch - merge all PRs here
- feature/*: Feature branches created from Development
Available Documentation
Testing
- Manual Testing Guide (English) - Manual testing procedures
- 手动测试指南 (中文) - 手动测试程序
- Test Coverage Report (English) - Code coverage statistics
- 测试覆盖率报告 (中文) - 代码覆盖率统计
Automation
Auto Commit
- Auto Commit Usage Guide (English) - Using automated commit workflow
- 自动提交使用指南 (中文) - 使用自动提交工作流
Auto Documentation
- Auto Documentation Guide (English) - Documentation automation process
- 自动文档指南 (中文) - 文档自动化流程
Documentation Improvements
- Documentation Improvements (English) - Documentation update improvements
- 文档更新改进 (中文) - 文档更新改进
Evolution
- Backend Evolution Plan (English) - Future development roadmap
- 后端演进计划 (中文) - 未来开发路线图
Development Commands
# Install development dependencies
pip install -e ".[dev,docs]"
# Run tests
pytest
# Run tests with coverage
pytest --cov=gns3_copilot --cov-report=html
# Code linting
ruff check src/
# Code formatting
ruff format src/
# Type checking
mypy src/
# Security check
safety scan
# Build documentation locally
mkdocs serve
Code Style Guidelines
We follow these code style standards:
- PEP 8 - Python code style
- Type Hints - Public functions must have type annotations
- Docstrings - Google or NumPy style docstrings
- Line Length - Maximum 88 characters (Black formatting)
Submitting Changes
-
Create a feature branch from Development:
-
Make your changes and commit them
-
Push your branch:
-
Create a Pull Request to the Development branch
-
Ensure all CI checks pass before requesting review
CI/CD Pipeline
Our CI/CD pipeline includes:
- Linting - Ruff code style checking
- Type Checking - Mypy static type checking
- Security Scanning - Safety dependency scanning
- Testing - Pytest with coverage reporting
- Documentation - Auto-updating documentation on PR
- Release - Automated PyPI publishing on version tags