tree-sitter-analyzer 0.9.9__tar.gz → 1.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of tree-sitter-analyzer might be problematic. Click here for more details.
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/CHANGELOG.md +86 -0
- tree_sitter_analyzer-1.1.0/GITFLOW.md +287 -0
- tree_sitter_analyzer-1.1.0/GITFLOW_ja.md +124 -0
- tree_sitter_analyzer-1.1.0/GITFLOW_zh.md +124 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/PKG-INFO +38 -12
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/README.md +11 -11
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/README_ja.md +11 -11
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/README_zh.md +11 -11
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/examples/project_root_demo.py +30 -26
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/examples/security_demo.py +16 -14
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/examples/security_integration_demo.py +14 -14
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/pyproject.toml +6 -1
- tree_sitter_analyzer-1.1.0/scripts/automated_release.py +251 -0
- tree_sitter_analyzer-1.1.0/scripts/gitflow_helper.py +328 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/scripts/improved_readme_updater.py +134 -54
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/scripts/readme_config.py +17 -3
- tree_sitter_analyzer-1.1.0/training/01_onboarding.md +261 -0
- tree_sitter_analyzer-1.1.0/training/02_architecture_map.md +687 -0
- tree_sitter_analyzer-1.1.0/training/03_cli_cheatsheet.md +435 -0
- tree_sitter_analyzer-1.1.0/training/04_mcp_cheatsheet.md +654 -0
- tree_sitter_analyzer-1.1.0/training/05_plugin_tutorial.md +679 -0
- tree_sitter_analyzer-1.1.0/training/06_quality_workflow.md +727 -0
- tree_sitter_analyzer-1.1.0/training/09_tasks.md +533 -0
- tree_sitter_analyzer-1.1.0/training/CLI_COMMAND_CORRECTIONS.md +206 -0
- tree_sitter_analyzer-1.1.0/training/IMPROVEMENT_SUMMARY.md +258 -0
- tree_sitter_analyzer-1.1.0/training/README.md +165 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/__init__.py +1 -1
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/api.py +11 -2
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/cli/commands/base_command.py +2 -2
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/cli/commands/partial_read_command.py +2 -2
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/cli/info_commands.py +7 -4
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/cli_main.py +1 -2
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/core/analysis_engine.py +2 -2
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/core/query_service.py +162 -162
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/file_handler.py +6 -4
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/formatters/base_formatter.py +6 -4
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/mcp/__init__.py +1 -1
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/mcp/resources/__init__.py +1 -1
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/mcp/resources/project_stats_resource.py +16 -5
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/mcp/server.py +16 -11
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/mcp/tools/__init__.py +1 -1
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/mcp/utils/__init__.py +2 -2
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/mcp/utils/error_handler.py +569 -569
- tree_sitter_analyzer-1.1.0/tree_sitter_analyzer/mcp/utils/path_resolver.py +414 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/output_manager.py +7 -3
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/project_detector.py +27 -27
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/security/boundary_manager.py +37 -28
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/security/validator.py +23 -12
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/table_formatter.py +6 -4
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/utils.py +1 -2
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/upload_to_pypi.py +10 -10
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/uv.lock +31 -3
- tree_sitter_analyzer-0.9.9/training/01_onboarding.md +0 -152
- tree_sitter_analyzer-0.9.9/training/02_architecture_map.md +0 -93
- tree_sitter_analyzer-0.9.9/training/03_cli_cheatsheet.md +0 -58
- tree_sitter_analyzer-0.9.9/training/04_mcp_cheatsheet.md +0 -73
- tree_sitter_analyzer-0.9.9/training/05_plugin_tutorial.md +0 -67
- tree_sitter_analyzer-0.9.9/training/06_quality_workflow.md +0 -41
- tree_sitter_analyzer-0.9.9/training/09_tasks.md +0 -31
- tree_sitter_analyzer-0.9.9/training/README.md +0 -39
- tree_sitter_analyzer-0.9.9/tree_sitter_analyzer/mcp/utils/path_resolver.py +0 -194
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/.gitignore +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/.kiro/steering/product.md +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/.kiro/steering/structure.md +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/.kiro/steering/tech.md +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/.pre-commit-config.yaml +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/AI_COLLABORATION_GUIDE.md +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/CODE_STYLE_GUIDE.md +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/CONTRIBUTING.md +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/DEPLOYMENT_GUIDE.md +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/LANGUAGE_GUIDELINES.md +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/LLM_CODING_GUIDELINES.md +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/MCP_SETUP_DEVELOPERS.md +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/MCP_SETUP_USERS.md +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/PROJECT_ROOT_CONFIG.md +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/PYPI_RELEASE_GUIDE.md +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/build_standalone.py +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/check_quality.py +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/docs/api.md +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/examples/BigService.java +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/examples/BigService.json +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/examples/BigService.summary.json +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/examples/JavaDocTest.java +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/examples/MultiClass.java +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/examples/Sample.java +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/examples/calculate_token_comparison.py +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/examples/sample.py +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/llm_code_checker.py +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/pypirc_example.txt +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/pytest.ini +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/start_mcp_server.py +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/training/07_troubleshooting.md +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/training/08_prompt_library.md +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/training/10_glossary.md +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/training/11_takeover_plan.md +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/__main__.py +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/cli/__init__.py +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/cli/__main__.py +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/cli/commands/__init__.py +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/cli/commands/advanced_command.py +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/cli/commands/default_command.py +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/cli/commands/query_command.py +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/cli/commands/structure_command.py +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/cli/commands/summary_command.py +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/cli/commands/table_command.py +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/core/__init__.py +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/core/cache_service.py +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/core/engine.py +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/core/parser.py +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/core/query.py +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/core/query_filter.py +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/encoding_utils.py +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/exceptions.py +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/formatters/__init__.py +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/formatters/formatter_factory.py +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/formatters/java_formatter.py +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/formatters/python_formatter.py +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/interfaces/__init__.py +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/interfaces/cli.py +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/interfaces/cli_adapter.py +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/interfaces/mcp_adapter.py +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/interfaces/mcp_server.py +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/language_detector.py +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/language_loader.py +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/languages/__init__.py +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/languages/java_plugin.py +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/languages/javascript_plugin.py +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/languages/python_plugin.py +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/mcp/resources/code_file_resource.py +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/mcp/tools/analyze_scale_tool.py +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/mcp/tools/analyze_scale_tool_cli_compatible.py +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/mcp/tools/base_tool.py +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/mcp/tools/query_tool.py +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/mcp/tools/read_partial_tool.py +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/mcp/tools/table_format_tool.py +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/mcp/tools/universal_analyze_tool.py +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/models.py +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/plugins/__init__.py +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/plugins/base.py +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/plugins/manager.py +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/queries/__init__.py +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/queries/java.py +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/queries/javascript.py +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/queries/python.py +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/queries/typescript.py +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/query_loader.py +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/security/__init__.py +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/tree_sitter_analyzer/security/regex_checker.py +0 -0
- {tree_sitter_analyzer-0.9.9 → tree_sitter_analyzer-1.1.0}/upload_interactive.py +0 -0
|
@@ -1,5 +1,91 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [1.1.0] - 2025-08-24
|
|
4
|
+
|
|
5
|
+
### 🚀 Major Release: GitFlow CI/CD Restructuring & Enhanced Automation
|
|
6
|
+
|
|
7
|
+
#### 🔧 GitFlow CI/CD Restructuring
|
|
8
|
+
- **Develop Branch Automation**: Removed PyPI deployment from develop branch, now only runs tests, builds, and README updates
|
|
9
|
+
- **Release Branch Workflow**: Created dedicated `.github/workflows/release-automation.yml` for PyPI deployment on release branches
|
|
10
|
+
- **Hotfix Branch Workflow**: Created dedicated `.github/workflows/hotfix-automation.yml` for emergency PyPI deployments
|
|
11
|
+
- **GitFlow Compliance**: CI/CD now follows proper GitFlow strategy: develop → release → main → PyPI deployment
|
|
12
|
+
|
|
13
|
+
#### 🛠️ New CI/CD Workflows
|
|
14
|
+
|
|
15
|
+
##### Release Automation (`release/v*` branches)
|
|
16
|
+
- **Automated Testing**: Full test suite execution with coverage reporting
|
|
17
|
+
- **Package Building**: Automated package building and validation
|
|
18
|
+
- **PyPI Deployment**: Automatic deployment to PyPI after successful tests
|
|
19
|
+
- **Main Branch PR**: Creates automatic PR to main branch after deployment
|
|
20
|
+
|
|
21
|
+
##### Hotfix Automation (`hotfix/*` branches)
|
|
22
|
+
- **Critical Bug Fixes**: Dedicated workflow for production-critical fixes
|
|
23
|
+
- **Rapid Deployment**: Fast-track PyPI deployment for urgent fixes
|
|
24
|
+
- **Main Branch PR**: Automatic PR creation to main branch
|
|
25
|
+
|
|
26
|
+
#### 🎯 GitFlow Helper Script
|
|
27
|
+
- **Automated Operations**: `scripts/gitflow_helper.py` for streamlined GitFlow operations
|
|
28
|
+
- **Branch Management**: Commands for feature, release, and hotfix branch operations
|
|
29
|
+
- **Developer Experience**: Simplified GitFlow workflow following
|
|
30
|
+
|
|
31
|
+
#### 🧪 Quality Improvements
|
|
32
|
+
- **README Statistics**: Enhanced tolerance ranges for coverage updates (0.1% tolerance)
|
|
33
|
+
- **Precision Control**: Coverage rounded to 1 decimal place to prevent unnecessary updates
|
|
34
|
+
- **Validation Consistency**: Unified tolerance logic between update and validation processes
|
|
35
|
+
|
|
36
|
+
#### 📚 Documentation Updates
|
|
37
|
+
- **GitFlow Guidelines**: Enhanced `GITFLOW_zh.md` with CI/CD integration details
|
|
38
|
+
- **Workflow Documentation**: Comprehensive documentation for all CI/CD workflows
|
|
39
|
+
- **Developer Guidelines**: Clear instructions for GitFlow operations
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## [1.0.0] - 2025-08-19
|
|
44
|
+
|
|
45
|
+
### 🎉 Major Release: CI Test Failures Resolution & GitFlow Implementation
|
|
46
|
+
|
|
47
|
+
#### 🔧 CI Test Failures Resolution
|
|
48
|
+
- **Cross-Platform Path Compatibility**: Fixed Windows short path names (8.3 format) and macOS symlink differences
|
|
49
|
+
- **Windows Environment**: Implemented robust path normalization using Windows API (`GetLongPathNameW`)
|
|
50
|
+
- **macOS Environment**: Fixed `/var` vs `/private/var` symlink differences in path resolution
|
|
51
|
+
- **Test Infrastructure**: Enhanced test files with platform-specific path normalization functions
|
|
52
|
+
|
|
53
|
+
#### 🛠️ Technical Improvements
|
|
54
|
+
|
|
55
|
+
##### Path Normalization System
|
|
56
|
+
- **Windows API Integration**: Added `GetLongPathNameW` for handling short path names (8.3 format)
|
|
57
|
+
- **macOS Symlink Handling**: Implemented `/var` vs `/private/var` path normalization
|
|
58
|
+
- **Cross-Platform Consistency**: Unified path comparison across Windows, macOS, and Linux
|
|
59
|
+
|
|
60
|
+
##### Test Files Enhanced
|
|
61
|
+
- `tests/test_path_resolver.py`: Added macOS symlink handling
|
|
62
|
+
- `tests/test_path_resolver_extended.py`: Enhanced Windows 8.3 path normalization
|
|
63
|
+
- `tests/test_project_detector.py`: Improved platform-specific path handling
|
|
64
|
+
|
|
65
|
+
#### 🏗️ GitFlow Branch Strategy Implementation
|
|
66
|
+
- **Develop Branch**: Created `develop` branch for ongoing development
|
|
67
|
+
- **Hotfix Workflow**: Implemented proper hotfix branch workflow
|
|
68
|
+
- **Release Management**: Established foundation for release branch strategy
|
|
69
|
+
|
|
70
|
+
#### 🧪 Quality Assurance
|
|
71
|
+
- **Test Coverage**: 1504 tests with 74.37% coverage
|
|
72
|
+
- **Cross-Platform Testing**: All tests passing on Windows, macOS, and Linux
|
|
73
|
+
- **CI/CD Pipeline**: GitHub Actions workflow fully functional
|
|
74
|
+
- **Code Quality**: All pre-commit hooks passing
|
|
75
|
+
|
|
76
|
+
#### 📚 Documentation Updates
|
|
77
|
+
- **README Statistics**: Updated test count and coverage across all language versions
|
|
78
|
+
- **CI Documentation**: Enhanced CI workflow documentation
|
|
79
|
+
- **Branch Strategy**: Documented GitFlow implementation
|
|
80
|
+
|
|
81
|
+
#### 🚀 Release Highlights
|
|
82
|
+
- **Production Ready**: All CI issues resolved, ready for production use
|
|
83
|
+
- **Cross-Platform Support**: Full compatibility across Windows, macOS, and Linux
|
|
84
|
+
- **Enterprise Grade**: Robust error handling and comprehensive testing
|
|
85
|
+
- **AI Integration**: Enhanced MCP server compatibility for AI tools
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
3
89
|
## [0.9.9] - 2025-08-17
|
|
4
90
|
|
|
5
91
|
### 📚 Documentation Updates
|
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
# GitFlow Branch Strategy
|
|
2
|
+
|
|
3
|
+
This document describes the GitFlow branch strategy implemented for the tree-sitter-analyzer project.
|
|
4
|
+
|
|
5
|
+
## GitFlow Diagram
|
|
6
|
+
|
|
7
|
+
```mermaid
|
|
8
|
+
gitGraph
|
|
9
|
+
commit id: "Initial commit"
|
|
10
|
+
branch develop
|
|
11
|
+
commit id: "dev-1"
|
|
12
|
+
|
|
13
|
+
branch feature/my-feature
|
|
14
|
+
commit id: "feat-1"
|
|
15
|
+
commit id: "feat-2"
|
|
16
|
+
|
|
17
|
+
checkout develop
|
|
18
|
+
merge feature/my-feature id: "merge-feat"
|
|
19
|
+
|
|
20
|
+
branch release/v1.0.0
|
|
21
|
+
commit id: "release-prep"
|
|
22
|
+
|
|
23
|
+
checkout main
|
|
24
|
+
merge release/v1.0.0 tag: "v1.0.0"
|
|
25
|
+
|
|
26
|
+
checkout develop
|
|
27
|
+
merge release/v1.0.0
|
|
28
|
+
|
|
29
|
+
checkout main
|
|
30
|
+
branch hotfix/critical-fix
|
|
31
|
+
commit id: "fix-bug"
|
|
32
|
+
|
|
33
|
+
checkout main
|
|
34
|
+
merge hotfix/critical-fix tag: "v1.0.1"
|
|
35
|
+
|
|
36
|
+
checkout develop
|
|
37
|
+
merge hotfix/critical-fix
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Branch Structure
|
|
41
|
+
|
|
42
|
+
### Main Branches
|
|
43
|
+
|
|
44
|
+
- **`main`**: Production-ready code. Always contains the latest stable release.
|
|
45
|
+
- **`develop`**: Integration branch for features. Contains the latest delivered development changes.
|
|
46
|
+
|
|
47
|
+
### Supporting Branches
|
|
48
|
+
|
|
49
|
+
- **`feature/*`**: Feature development branches. Branch from `develop`, merge back to `develop`.
|
|
50
|
+
- **`release/*`**: Release preparation branches. Branch from `develop`, merge to both `main` and `develop`.
|
|
51
|
+
- **`hotfix/*`**: Critical bug fixes for production. Branch from `main`, merge to both `main` and `develop`.
|
|
52
|
+
|
|
53
|
+
## Workflow
|
|
54
|
+
|
|
55
|
+
### Feature Development
|
|
56
|
+
|
|
57
|
+
1. **Create feature branch** from `develop`:
|
|
58
|
+
```bash
|
|
59
|
+
git checkout develop
|
|
60
|
+
git pull origin develop
|
|
61
|
+
git checkout -b feature/your-feature-name
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
2. **Develop your feature** with regular commits:
|
|
65
|
+
```bash
|
|
66
|
+
git add .
|
|
67
|
+
git commit -m "feat: Add new feature"
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
3. **Push feature branch** and create pull request:
|
|
71
|
+
```bash
|
|
72
|
+
git push origin feature/your-feature-name
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
4. **Merge to develop** after code review and CI passes.
|
|
76
|
+
|
|
77
|
+
### Release Process
|
|
78
|
+
|
|
79
|
+
#### Automated Release (Recommended)
|
|
80
|
+
|
|
81
|
+
The project now uses an **automated release process** from the `develop` branch:
|
|
82
|
+
|
|
83
|
+
1. **Develop branch updates** trigger automatic:
|
|
84
|
+
- ✅ Test execution
|
|
85
|
+
- ✅ PyPI deployment
|
|
86
|
+
- ✅ README statistics update
|
|
87
|
+
- ✅ Pull request creation to main
|
|
88
|
+
|
|
89
|
+
2. **Manual review and merge** of the automated PR to main
|
|
90
|
+
|
|
91
|
+
3. **GitHub release creation** with proper versioning
|
|
92
|
+
|
|
93
|
+
#### Manual Release Process
|
|
94
|
+
|
|
95
|
+
For manual releases:
|
|
96
|
+
|
|
97
|
+
1. **Create release branch** from `develop`:
|
|
98
|
+
```bash
|
|
99
|
+
git checkout develop
|
|
100
|
+
git pull origin develop
|
|
101
|
+
git checkout -b release/v1.0.0
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
2. **Update version** in `pyproject.toml`:
|
|
105
|
+
```toml
|
|
106
|
+
version = "1.0.0"
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
3. **Update documentation**:
|
|
110
|
+
```bash
|
|
111
|
+
uv run python scripts/improved_readme_updater.py
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
4. **Commit changes**:
|
|
115
|
+
```bash
|
|
116
|
+
git add .
|
|
117
|
+
git commit -m "chore: Prepare release v1.0.0"
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
5. **Merge to main and develop**:
|
|
121
|
+
```bash
|
|
122
|
+
git checkout main
|
|
123
|
+
git merge release/v1.0.0
|
|
124
|
+
git tag -a v1.0.0 -m "Release v1.0.0"
|
|
125
|
+
git push origin main --tags
|
|
126
|
+
|
|
127
|
+
git checkout develop
|
|
128
|
+
git merge release/v1.0.0
|
|
129
|
+
git push origin develop
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
6. **Delete release branch**:
|
|
133
|
+
```bash
|
|
134
|
+
git branch -d release/v1.0.0
|
|
135
|
+
git push origin --delete release/v1.0.0
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
### Hotfix Process
|
|
139
|
+
|
|
140
|
+
1. **Create hotfix branch** from `main`:
|
|
141
|
+
```bash
|
|
142
|
+
git checkout main
|
|
143
|
+
git pull origin main
|
|
144
|
+
git checkout -b hotfix/critical-bug-fix
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
2. **Fix the issue** and commit:
|
|
148
|
+
```bash
|
|
149
|
+
git add .
|
|
150
|
+
git commit -m "fix: Critical bug fix"
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
3. **Update version** for hotfix:
|
|
154
|
+
```bash
|
|
155
|
+
# Update pyproject.toml version (e.g., 1.0.0 -> 1.0.1)
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
4. **Merge to main and develop**:
|
|
159
|
+
```bash
|
|
160
|
+
git checkout main
|
|
161
|
+
git merge hotfix/critical-bug-fix
|
|
162
|
+
git tag -a v1.0.1 -m "Hotfix v1.0.1"
|
|
163
|
+
git push origin main --tags
|
|
164
|
+
|
|
165
|
+
git checkout develop
|
|
166
|
+
git merge hotfix/critical-bug-fix
|
|
167
|
+
git push origin develop
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
5. **Delete hotfix branch**:
|
|
171
|
+
```bash
|
|
172
|
+
git branch -d hotfix/critical-bug-fix
|
|
173
|
+
git push origin --delete hotfix/critical-bug-fix
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
## Automation Features
|
|
177
|
+
|
|
178
|
+
### Develop Branch Automation
|
|
179
|
+
|
|
180
|
+
When code is pushed to `develop`, the following happens automatically:
|
|
181
|
+
|
|
182
|
+
1. **Test Execution**: All tests are run to ensure quality
|
|
183
|
+
2. **PyPI Deployment**: Package is built and deployed to PyPI
|
|
184
|
+
3. **README Update**: Statistics are automatically updated
|
|
185
|
+
4. **PR Creation**: Pull request is created to main branch
|
|
186
|
+
|
|
187
|
+
### Main Branch Protection
|
|
188
|
+
|
|
189
|
+
The `main` branch is protected with:
|
|
190
|
+
|
|
191
|
+
- ✅ **Required status checks**: All CI jobs must pass
|
|
192
|
+
- ✅ **Required pull request reviews**: At least 1 approval required
|
|
193
|
+
- ✅ **Branch up-to-date requirement**: Must be up-to-date with base branch
|
|
194
|
+
- ✅ **Conversation resolution**: All review comments must be resolved
|
|
195
|
+
|
|
196
|
+
### Automated Release Script
|
|
197
|
+
|
|
198
|
+
Use the automated release script for manual releases:
|
|
199
|
+
|
|
200
|
+
```bash
|
|
201
|
+
# Dry run to see what would happen
|
|
202
|
+
uv run python scripts/automated_release.py --dry-run
|
|
203
|
+
|
|
204
|
+
# Execute release with new version
|
|
205
|
+
uv run python scripts/automated_release.py --version 1.1.0
|
|
206
|
+
|
|
207
|
+
# Execute release with current version
|
|
208
|
+
uv run python scripts/automated_release.py
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
## Best Practices
|
|
212
|
+
|
|
213
|
+
### Commit Messages
|
|
214
|
+
|
|
215
|
+
Use conventional commit format:
|
|
216
|
+
|
|
217
|
+
- `feat:` New features
|
|
218
|
+
- `fix:` Bug fixes
|
|
219
|
+
- `docs:` Documentation changes
|
|
220
|
+
- `style:` Code style changes (formatting, etc.)
|
|
221
|
+
- `refactor:` Code refactoring
|
|
222
|
+
- `test:` Adding or updating tests
|
|
223
|
+
- `chore:` Maintenance tasks
|
|
224
|
+
|
|
225
|
+
### Branch Naming
|
|
226
|
+
|
|
227
|
+
- `feature/descriptive-name`: Feature branches
|
|
228
|
+
- `release/v1.0.0`: Release branches
|
|
229
|
+
- `hotfix/critical-fix`: Hotfix branches
|
|
230
|
+
|
|
231
|
+
### Quality Checks
|
|
232
|
+
|
|
233
|
+
Before merging to `develop`:
|
|
234
|
+
|
|
235
|
+
1. **Run tests locally**:
|
|
236
|
+
```bash
|
|
237
|
+
uv run pytest tests/ -v
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
2. **Check code quality**:
|
|
241
|
+
```bash
|
|
242
|
+
uv run python check_quality.py --new-code-only
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
3. **Update documentation** if needed:
|
|
246
|
+
```bash
|
|
247
|
+
uv run python scripts/improved_readme_updater.py
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
### Version Management
|
|
251
|
+
|
|
252
|
+
- **Semantic Versioning**: MAJOR.MINOR.PATCH
|
|
253
|
+
- **Automatic versioning**: Managed by automated release process
|
|
254
|
+
- **Version consistency**: All files updated together
|
|
255
|
+
|
|
256
|
+
## CI/CD Integration
|
|
257
|
+
|
|
258
|
+
### GitHub Actions Workflows
|
|
259
|
+
|
|
260
|
+
1. **`ci.yml`**: Main CI pipeline for all branches
|
|
261
|
+
2. **`develop-automation.yml`**: Automated release from develop
|
|
262
|
+
3. **`branch-protection.yml`**: Main branch protection setup
|
|
263
|
+
|
|
264
|
+
### Required Secrets
|
|
265
|
+
|
|
266
|
+
- `PYPI_API_TOKEN`: For PyPI deployment
|
|
267
|
+
- `GITHUB_TOKEN`: For repository operations
|
|
268
|
+
|
|
269
|
+
## Troubleshooting
|
|
270
|
+
|
|
271
|
+
### Common Issues
|
|
272
|
+
|
|
273
|
+
1. **Branch protection errors**: Ensure all required checks pass
|
|
274
|
+
2. **PyPI deployment failures**: Check API token and package validity
|
|
275
|
+
3. **README update failures**: Verify test statistics are accurate
|
|
276
|
+
|
|
277
|
+
### Manual Override
|
|
278
|
+
|
|
279
|
+
For emergency situations, repository administrators can:
|
|
280
|
+
|
|
281
|
+
1. **Bypass branch protection** (use with caution)
|
|
282
|
+
2. **Manual PyPI deployment** if automated process fails
|
|
283
|
+
3. **Force push** to main (only in critical situations)
|
|
284
|
+
|
|
285
|
+
---
|
|
286
|
+
|
|
287
|
+
**Note**: This GitFlow implementation prioritizes automation and quality assurance while maintaining the flexibility for manual intervention when needed.
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
# GitFlow ブランチ戦略 (日本語説明)
|
|
2
|
+
|
|
3
|
+
このドキュメントでは、`tree-sitter-analyzer`プロジェクトで実装されているGitFlowブランチ戦略を、Mermaidチャートと日本語で解説します。
|
|
4
|
+
|
|
5
|
+
## GitFlow フロー図
|
|
6
|
+
|
|
7
|
+
```mermaid
|
|
8
|
+
gitGraph
|
|
9
|
+
commit id: "Initial commit"
|
|
10
|
+
branch develop
|
|
11
|
+
commit id: "dev-1"
|
|
12
|
+
|
|
13
|
+
branch feature/my-feature
|
|
14
|
+
commit id: "feat-1"
|
|
15
|
+
commit id: "feat-2"
|
|
16
|
+
|
|
17
|
+
checkout develop
|
|
18
|
+
merge feature/my-feature id: "merge-feat"
|
|
19
|
+
|
|
20
|
+
branch release/v1.0.0
|
|
21
|
+
commit id: "release-prep"
|
|
22
|
+
|
|
23
|
+
checkout main
|
|
24
|
+
merge release/v1.0.0 tag: "v1.0.0"
|
|
25
|
+
|
|
26
|
+
checkout develop
|
|
27
|
+
merge release/v1.0.0
|
|
28
|
+
|
|
29
|
+
checkout main
|
|
30
|
+
branch hotfix/critical-fix
|
|
31
|
+
commit id: "fix-bug"
|
|
32
|
+
|
|
33
|
+
checkout main
|
|
34
|
+
merge hotfix/critical-fix tag: "v1.0.1"
|
|
35
|
+
|
|
36
|
+
checkout develop
|
|
37
|
+
merge hotfix/critical-fix
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## ブランチ構造
|
|
41
|
+
|
|
42
|
+
### 主要ブランチ
|
|
43
|
+
|
|
44
|
+
- **`main`**: 本番環境に対応したコード。常に最新の安定版リリースが含まれます。いつでもデプロイ可能な状態であるべきです。
|
|
45
|
+
- **`develop`**: 機能統合用のブランチ。最新の開発変更が含まれており、すべての機能開発の起点となります。
|
|
46
|
+
|
|
47
|
+
### サポートブランチ
|
|
48
|
+
|
|
49
|
+
- **`feature/*`**: 機能開発用のブランチ。
|
|
50
|
+
- **派生元**: `develop`
|
|
51
|
+
- **マージ先**: `develop`
|
|
52
|
+
- **命名規則**: `feature/descriptive-name` (例: `feature/user-authentication`)
|
|
53
|
+
- **`release/*`**: リリース準備用のブランチ。新しい本番リリースの準備に使用され、軽微なバグ修正やドキュメント生成など、リリースに関連するタスクのみを行います。
|
|
54
|
+
- **派生元**: `develop`
|
|
55
|
+
- **マージ先**: `main` と `develop`
|
|
56
|
+
- **命名規則**: `release/v1.2.0`
|
|
57
|
+
- **`hotfix/*`**: 緊急の本番バグ修正用のブランチ。本番環境での重大な問題を迅速に修正するために使用されます。
|
|
58
|
+
- **派生元**: `main`
|
|
59
|
+
- **マージ先**: `main` と `develop`
|
|
60
|
+
- **命名規則**: `hotfix/critical-bug-fix`
|
|
61
|
+
|
|
62
|
+
## ワークフロー
|
|
63
|
+
|
|
64
|
+
### 1. 機能開発 (Feature Development)
|
|
65
|
+
|
|
66
|
+
1. **`develop` から `feature` ブランチを作成**:
|
|
67
|
+
```bash
|
|
68
|
+
git checkout develop
|
|
69
|
+
git pull origin develop
|
|
70
|
+
git checkout -b feature/your-feature-name
|
|
71
|
+
```
|
|
72
|
+
2. **機能開発を行い**、定期的にコミットします。
|
|
73
|
+
3. **開発完了後**、`feature` ブランチをリモートにプッシュし、`develop` ブランチへのプルリクエストを作成します。
|
|
74
|
+
4. コードレビューと継続的インテグレーション(CI)のチェックを通過後、**`develop` にマージ**します。
|
|
75
|
+
|
|
76
|
+
### 2. リリースプロセス (Release Process)
|
|
77
|
+
|
|
78
|
+
プロジェクトでは自動化されたリリースプロセスを推奨していますが、手動のプロセスは以下の通りです。
|
|
79
|
+
|
|
80
|
+
1. **`develop` から `release` ブランチを作成**:
|
|
81
|
+
```bash
|
|
82
|
+
git checkout -b release/v1.0.0 develop
|
|
83
|
+
```
|
|
84
|
+
2. **リリース準備**: バージョン番号の更新、ドキュメントの生成など。
|
|
85
|
+
3. **準備完了後、`main` と `develop` にマージ**:
|
|
86
|
+
```bash
|
|
87
|
+
# mainブランチに切り替えてマージ
|
|
88
|
+
git checkout main
|
|
89
|
+
git merge release/v1.0.0
|
|
90
|
+
git tag -a v1.0.0 -m "Release v1.0.0" # バージョンタグを付与
|
|
91
|
+
git push origin main --tags
|
|
92
|
+
|
|
93
|
+
# developブランチに切り替えてマージ
|
|
94
|
+
git checkout develop
|
|
95
|
+
git merge release/v1.0.0
|
|
96
|
+
git push origin develop
|
|
97
|
+
```
|
|
98
|
+
4. **`release` ブランチを削除**します。
|
|
99
|
+
|
|
100
|
+
### 3. 緊急修正 (Hotfix Process)
|
|
101
|
+
|
|
102
|
+
1. **`main` から `hotfix` ブランチを作成**:
|
|
103
|
+
```bash
|
|
104
|
+
git checkout -b hotfix/critical-bug-fix main
|
|
105
|
+
```
|
|
106
|
+
2. **バグを修正**し、コミットします。
|
|
107
|
+
3. **修正完了後、`main` と `develop` にマージ**:
|
|
108
|
+
```bash
|
|
109
|
+
# mainブランチに切り替えてマージ
|
|
110
|
+
git checkout main
|
|
111
|
+
git merge hotfix/critical-bug-fix
|
|
112
|
+
git tag -a v1.0.1 -m "Hotfix v1.0.1" # 修正バージョンタグを付与
|
|
113
|
+
git push origin main --tags
|
|
114
|
+
|
|
115
|
+
# developブランチに切り替えてマージ
|
|
116
|
+
git checkout develop
|
|
117
|
+
git merge hotfix/critical-bug-fix
|
|
118
|
+
git push origin develop
|
|
119
|
+
```
|
|
120
|
+
4. **`hotfix` ブランチを削除**します。
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
*この日本語説明は、[`GITFLOW.md`](GITFLOW.md) の中核的な概念を理解するのに役立ちます。自動化プロセス、品質チェック、CI/CD統合に関する詳細は、元のドキュメントを参照してください。*
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
# GitFlow 分支策略 (中文说明)
|
|
2
|
+
|
|
3
|
+
本文档使用 Mermaid 图表和中文解释了 `tree-sitter-analyzer` 项目中实施的 GitFlow 分支策略。
|
|
4
|
+
|
|
5
|
+
## GitFlow 流程图
|
|
6
|
+
|
|
7
|
+
```mermaid
|
|
8
|
+
gitGraph
|
|
9
|
+
commit id: "Initial commit"
|
|
10
|
+
branch develop
|
|
11
|
+
commit id: "dev-1"
|
|
12
|
+
|
|
13
|
+
branch feature/my-feature
|
|
14
|
+
commit id: "feat-1"
|
|
15
|
+
commit id: "feat-2"
|
|
16
|
+
|
|
17
|
+
checkout develop
|
|
18
|
+
merge feature/my-feature id: "merge-feat"
|
|
19
|
+
|
|
20
|
+
branch release/v1.0.0
|
|
21
|
+
commit id: "release-prep"
|
|
22
|
+
|
|
23
|
+
checkout main
|
|
24
|
+
merge release/v1.0.0 tag: "v1.0.0"
|
|
25
|
+
|
|
26
|
+
checkout develop
|
|
27
|
+
merge release/v1.0.0
|
|
28
|
+
|
|
29
|
+
checkout main
|
|
30
|
+
branch hotfix/critical-fix
|
|
31
|
+
commit id: "fix-bug"
|
|
32
|
+
|
|
33
|
+
checkout main
|
|
34
|
+
merge hotfix/critical-fix tag: "v1.0.1"
|
|
35
|
+
|
|
36
|
+
checkout develop
|
|
37
|
+
merge hotfix/critical-fix
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## 分支结构
|
|
41
|
+
|
|
42
|
+
### 主要分支
|
|
43
|
+
|
|
44
|
+
- **`main`**: 生产就绪的代码。始终包含最新的稳定版本。任何时候都应该是可部署的状态。
|
|
45
|
+
- **`develop`**: 功能集成分支。包含最新的已交付开发变更,是所有功能开发的起点。
|
|
46
|
+
|
|
47
|
+
### 支持分支
|
|
48
|
+
|
|
49
|
+
- **`feature/*`**: 功能开发分支。
|
|
50
|
+
- **来源**: `develop`
|
|
51
|
+
- **合并回**: `develop`
|
|
52
|
+
- **命名**: `feature/descriptive-name` (例如: `feature/user-authentication`)
|
|
53
|
+
- **`release/*`**: 版本发布准备分支。用于准备新的生产版本,只进行少量 Bug 修复和文档生成等面向发布的任务。
|
|
54
|
+
- **来源**: `develop`
|
|
55
|
+
- **合并回**: `main` 和 `develop`
|
|
56
|
+
- **命名**: `release/v1.2.0`
|
|
57
|
+
- **`hotfix/*`**: 紧急生产 Bug 修复分支。用于快速修复生产环境中的关键问题。
|
|
58
|
+
- **来源**: `main`
|
|
59
|
+
- **合并回**: `main` 和 `develop`
|
|
60
|
+
- **命名**: `hotfix/critical-bug-fix`
|
|
61
|
+
|
|
62
|
+
## 工作流程
|
|
63
|
+
|
|
64
|
+
### 1. 功能开发 (Feature Development)
|
|
65
|
+
|
|
66
|
+
1. **从 `develop` 创建 `feature` 分支**:
|
|
67
|
+
```bash
|
|
68
|
+
git checkout develop
|
|
69
|
+
git pull origin develop
|
|
70
|
+
git checkout -b feature/your-feature-name
|
|
71
|
+
```
|
|
72
|
+
2. **进行功能开发**并定期提交。
|
|
73
|
+
3. **开发完成后**,将 `feature` 分支推送到远程,并创建拉取请求 (Pull Request) 到 `develop` 分支。
|
|
74
|
+
4. 经过代码审查和持续集成 (CI) 检查通过后,**合并到 `develop`**。
|
|
75
|
+
|
|
76
|
+
### 2. 版本发布 (Release Process)
|
|
77
|
+
|
|
78
|
+
项目推荐使用自动化发布流程,但手动流程如下:
|
|
79
|
+
|
|
80
|
+
1. **从 `develop` 创建 `release` 分支**:
|
|
81
|
+
```bash
|
|
82
|
+
git checkout -b release/v1.0.0 develop
|
|
83
|
+
```
|
|
84
|
+
2. **准备发布**: 更新版本号、生成文档等。
|
|
85
|
+
3. **完成准备后,合并到 `main` 和 `develop`**:
|
|
86
|
+
```bash
|
|
87
|
+
# 切换到 main 分支并合并
|
|
88
|
+
git checkout main
|
|
89
|
+
git merge release/v1.0.0
|
|
90
|
+
git tag -a v1.0.0 -m "Release v1.0.0" # 打上版本标签
|
|
91
|
+
git push origin main --tags
|
|
92
|
+
|
|
93
|
+
# 切换到 develop 分支并合并
|
|
94
|
+
git checkout develop
|
|
95
|
+
git merge release/v1.0.0
|
|
96
|
+
git push origin develop
|
|
97
|
+
```
|
|
98
|
+
4. **删除 `release` 分支**。
|
|
99
|
+
|
|
100
|
+
### 3. 紧急修复 (Hotfix Process)
|
|
101
|
+
|
|
102
|
+
1. **从 `main` 创建 `hotfix` 分支**:
|
|
103
|
+
```bash
|
|
104
|
+
git checkout -b hotfix/critical-bug-fix main
|
|
105
|
+
```
|
|
106
|
+
2. **修复 Bug** 并提交。
|
|
107
|
+
3. **完成修复后,合并到 `main` 和 `develop`**:
|
|
108
|
+
```bash
|
|
109
|
+
# 切换到 main 分支并合并
|
|
110
|
+
git checkout main
|
|
111
|
+
git merge hotfix/critical-bug-fix
|
|
112
|
+
git tag -a v1.0.1 -m "Hotfix v1.0.1" # 打上修复版本标签
|
|
113
|
+
git push origin main --tags
|
|
114
|
+
|
|
115
|
+
# 切换到 develop 分支并合并
|
|
116
|
+
git checkout develop
|
|
117
|
+
git merge hotfix/critical-bug-fix
|
|
118
|
+
git push origin develop
|
|
119
|
+
```
|
|
120
|
+
4. **删除 `hotfix` 分支**。
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
*此中文说明旨在帮助理解 `GITFLOW.md` 中的核心概念。更详细的自动化流程、质量检查和 CI/CD 集成信息,请参阅原始的 [GITFLOW.md](GITFLOW.md) 文件。*
|