tree-sitter-analyzer 1.2.3__tar.gz → 1.2.5__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-1.2.3 → tree_sitter_analyzer-1.2.5}/CHANGELOG.md +18 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/GITFLOW.md +189 -0
- tree_sitter_analyzer-1.2.5/GITFLOW_ja.md +313 -0
- tree_sitter_analyzer-1.2.5/GITFLOW_zh.md +313 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/PKG-INFO +232 -23
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/README.md +231 -22
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/README_ja.md +226 -19
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/README_zh.md +226 -19
- tree_sitter_analyzer-1.2.5/docs/mcp_fd_rg_design.md +90 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/pyproject.toml +2 -2
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/languages/java_plugin.py +34 -28
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/mcp/server.py +23 -1
- tree_sitter_analyzer-1.2.5/tree_sitter_analyzer/mcp/tools/fd_rg_utils.py +549 -0
- tree_sitter_analyzer-1.2.5/tree_sitter_analyzer/mcp/tools/find_and_grep_tool.py +436 -0
- tree_sitter_analyzer-1.2.5/tree_sitter_analyzer/mcp/tools/list_files_tool.py +269 -0
- tree_sitter_analyzer-1.2.5/tree_sitter_analyzer/mcp/tools/search_content_tool.py +334 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/uv.lock +1 -1
- tree_sitter_analyzer-1.2.3/GITFLOW_ja.md +0 -124
- tree_sitter_analyzer-1.2.3/GITFLOW_zh.md +0 -124
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/.gitignore +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/.kiro/steering/product.md +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/.kiro/steering/structure.md +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/.kiro/steering/tech.md +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/.pre-commit-config.yaml +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/.pre-commit-hooks.yaml +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/AI_COLLABORATION_GUIDE.md +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/CODE_STYLE_GUIDE.md +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/CONTRIBUTING.md +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/DEPLOYMENT_GUIDE.md +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/LANGUAGE_GUIDELINES.md +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/LLM_CODING_GUIDELINES.md +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/MCP_SETUP_DEVELOPERS.md +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/MCP_SETUP_USERS.md +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/PROJECT_ROOT_CONFIG.md +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/PYPI_RELEASE_GUIDE.md +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/REFACTORING_SUMMARY.md +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/build_standalone.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/check_quality.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/docs/GITFLOW_BEST_PRACTICES.md +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/docs/RELEASE_EXECUTION_GUIDE.md +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/docs/api.md +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/examples/BigService.java +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/examples/BigService.json +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/examples/BigService.summary.json +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/examples/JavaDocTest.java +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/examples/MultiClass.java +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/examples/Sample.java +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/examples/calculate_token_comparison.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/examples/project_root_demo.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/examples/sample.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/examples/security_demo.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/examples/security_integration_demo.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/llm_code_checker.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/pypirc_example.txt +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/pytest.ini +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/scripts/README.md +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/scripts/gitflow_helper.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/scripts/gitflow_release_automation.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/scripts/sync_version.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/scripts/sync_version_minimal.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/start_mcp_server.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/training/01_onboarding.md +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/training/02_architecture_map.md +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/training/03_cli_cheatsheet.md +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/training/04_mcp_cheatsheet.md +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/training/05_plugin_tutorial.md +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/training/06_quality_workflow.md +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/training/07_troubleshooting.md +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/training/08_prompt_library.md +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/training/09_tasks.md +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/training/10_glossary.md +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/training/11_takeover_plan.md +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/training/CLI_COMMAND_CORRECTIONS.md +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/training/IMPROVEMENT_SUMMARY.md +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/training/README.md +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/__init__.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/__main__.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/api.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/cli/__init__.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/cli/__main__.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/cli/commands/__init__.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/cli/commands/advanced_command.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/cli/commands/base_command.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/cli/commands/default_command.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/cli/commands/partial_read_command.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/cli/commands/query_command.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/cli/commands/structure_command.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/cli/commands/summary_command.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/cli/commands/table_command.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/cli/info_commands.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/cli_main.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/constants.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/core/__init__.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/core/analysis_engine.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/core/cache_service.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/core/engine.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/core/parser.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/core/query.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/core/query_filter.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/core/query_service.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/encoding_utils.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/exceptions.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/file_handler.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/formatters/__init__.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/formatters/base_formatter.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/formatters/formatter_factory.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/formatters/java_formatter.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/formatters/python_formatter.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/interfaces/__init__.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/interfaces/cli.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/interfaces/cli_adapter.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/interfaces/mcp_adapter.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/interfaces/mcp_server.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/language_detector.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/language_loader.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/languages/__init__.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/languages/javascript_plugin.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/languages/python_plugin.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/mcp/__init__.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/mcp/resources/__init__.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/mcp/resources/code_file_resource.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/mcp/resources/project_stats_resource.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/mcp/tools/__init__.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/mcp/tools/analyze_scale_tool.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/mcp/tools/analyze_scale_tool_cli_compatible.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/mcp/tools/base_tool.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/mcp/tools/query_tool.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/mcp/tools/read_partial_tool.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/mcp/tools/table_format_tool.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/mcp/tools/universal_analyze_tool.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/mcp/utils/__init__.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/mcp/utils/error_handler.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/mcp/utils/path_resolver.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/models.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/output_manager.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/plugins/__init__.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/plugins/base.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/plugins/manager.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/project_detector.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/queries/__init__.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/queries/java.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/queries/javascript.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/queries/python.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/queries/typescript.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/query_loader.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/security/__init__.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/security/boundary_manager.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/security/regex_checker.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/security/validator.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/table_formatter.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/tree_sitter_analyzer/utils.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/upload_interactive.py +0 -0
- {tree_sitter_analyzer-1.2.3 → tree_sitter_analyzer-1.2.5}/upload_to_pypi.py +0 -0
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [1.2.5] - 2025-09-15
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
- Fixed MCP list_files tool failing to detect Java files in specific directories
|
|
7
|
+
- Resolved fd command parameter ordering issue in Windows environment
|
|
8
|
+
- Improved --search-path parameter usage for better cross-platform compatibility
|
|
9
|
+
|
|
10
|
+
### Technical Details
|
|
11
|
+
- Modified `build_fd_command` in `fd_rg_utils.py` to use `--search-path` instead of positional arguments
|
|
12
|
+
- Eliminated automatic `"."` pattern injection that caused command conflicts
|
|
13
|
+
- Enhanced Windows environment compatibility for file discovery operations
|
|
14
|
+
|
|
15
|
+
### Documentation Updates
|
|
16
|
+
- Updated GitFlow documentation with comprehensive AI-assisted development workflow
|
|
17
|
+
- Added complete bug fix and release automation procedures
|
|
18
|
+
- Synchronized multi-language documentation (English, Chinese, Japanese)
|
|
19
|
+
- Corrected PyPI deployment flow documentation to match actual GitHub Actions workflows
|
|
20
|
+
|
|
3
21
|
## [1.2.3] - 2025-08-27
|
|
4
22
|
|
|
5
23
|
### Release: v1.2.3
|
|
@@ -253,6 +253,195 @@ Before merging to `develop`:
|
|
|
253
253
|
- **Automatic versioning**: Managed by automated release process
|
|
254
254
|
- **Version consistency**: All files updated together
|
|
255
255
|
|
|
256
|
+
## 🤖 AI-Assisted Development Workflow
|
|
257
|
+
|
|
258
|
+
### Complete Bug Fix & Release Automation
|
|
259
|
+
|
|
260
|
+
This section provides a comprehensive workflow for AI assistants to handle bug fixes, version updates, and releases with minimal human intervention.
|
|
261
|
+
|
|
262
|
+
#### 1. **Bug Fix Workflow**
|
|
263
|
+
|
|
264
|
+
When fixing bugs, follow this automated sequence:
|
|
265
|
+
|
|
266
|
+
```bash
|
|
267
|
+
# 1. Check current branch and status
|
|
268
|
+
git status
|
|
269
|
+
git branch -v
|
|
270
|
+
|
|
271
|
+
# 2. Create feature branch from develop
|
|
272
|
+
git checkout develop
|
|
273
|
+
git pull origin develop
|
|
274
|
+
git checkout -b feature/fix-[bug-description]
|
|
275
|
+
|
|
276
|
+
# 3. Fix the bug (already completed in this session)
|
|
277
|
+
# - Edit the problematic files
|
|
278
|
+
# - Test the fix locally
|
|
279
|
+
|
|
280
|
+
# 4. Run comprehensive quality checks
|
|
281
|
+
uv run pytest tests/ -v
|
|
282
|
+
uv run python check_quality.py --new-code-only
|
|
283
|
+
uv run python llm_code_checker.py --check-all
|
|
284
|
+
|
|
285
|
+
# 5. Update version number (automatic patch increment)
|
|
286
|
+
python -c "
|
|
287
|
+
import re
|
|
288
|
+
with open('pyproject.toml', 'r') as f:
|
|
289
|
+
content = f.read()
|
|
290
|
+
current = re.search(r'version = \"(\d+)\.(\d+)\.(\d+)\"', content)
|
|
291
|
+
if current:
|
|
292
|
+
major, minor, patch = map(int, current.groups())
|
|
293
|
+
new_version = f'{major}.{minor}.{patch + 1}'
|
|
294
|
+
new_content = re.sub(r'version = \"(\d+)\.(\d+)\.(\d+)\"', f'version = \"{new_version}\"', content)
|
|
295
|
+
with open('pyproject.toml', 'w') as f:
|
|
296
|
+
f.write(new_content)
|
|
297
|
+
print(f'Version updated to {new_version}')
|
|
298
|
+
"
|
|
299
|
+
|
|
300
|
+
# 6. Update CHANGELOG.md
|
|
301
|
+
echo "
|
|
302
|
+
## [$(python -c "import re; content=open('pyproject.toml').read(); print(re.search(r'version = \"([^\"]+)\"', content).group(1))")] - $(date +%Y-%m-%d)
|
|
303
|
+
|
|
304
|
+
### Fixed
|
|
305
|
+
- Fixed MCP list_files tool failing to detect Java files in specific directories
|
|
306
|
+
- Resolved fd command parameter ordering issue in Windows environment
|
|
307
|
+
- Improved --search-path parameter usage for better cross-platform compatibility
|
|
308
|
+
|
|
309
|
+
### Technical Details
|
|
310
|
+
- Modified \`build_fd_command\` in \`fd_rg_utils.py\` to use \`--search-path\` instead of positional arguments
|
|
311
|
+
- Eliminated automatic \`\".\"\` pattern injection that caused command conflicts
|
|
312
|
+
- Enhanced Windows environment compatibility for file discovery operations
|
|
313
|
+
" >> CHANGELOG.md
|
|
314
|
+
|
|
315
|
+
# 7. Update README statistics (if test count changed)
|
|
316
|
+
uv run python scripts/improved_readme_updater.py
|
|
317
|
+
|
|
318
|
+
# 8. Commit all changes
|
|
319
|
+
git add .
|
|
320
|
+
git commit -m "fix: Resolve MCP list_files tool Java file detection issue
|
|
321
|
+
|
|
322
|
+
- Fix fd command parameter ordering in fd_rg_utils.py
|
|
323
|
+
- Use --search-path for better cross-platform compatibility
|
|
324
|
+
- Update version to $(python -c "import re; content=open('pyproject.toml').read(); print(re.search(r'version = \"([^\"]+)\"', content).group(1))")
|
|
325
|
+
- Update CHANGELOG.md and README statistics"
|
|
326
|
+
|
|
327
|
+
# 9. Push feature branch
|
|
328
|
+
git push origin feature/fix-[bug-description]
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
#### 2. **Automated Release Trigger**
|
|
332
|
+
|
|
333
|
+
After bug fix is committed:
|
|
334
|
+
|
|
335
|
+
```bash
|
|
336
|
+
# 10. Merge to develop (triggers automated PR creation)
|
|
337
|
+
git checkout develop
|
|
338
|
+
git pull origin develop
|
|
339
|
+
git merge feature/fix-[bug-description]
|
|
340
|
+
git push origin develop
|
|
341
|
+
|
|
342
|
+
# 11. Clean up feature branch
|
|
343
|
+
git branch -d feature/fix-[bug-description]
|
|
344
|
+
git push origin --delete feature/fix-[bug-description]
|
|
345
|
+
```
|
|
346
|
+
|
|
347
|
+
**Note**: Pushing to `develop` triggers the `develop-automation.yml` workflow which:
|
|
348
|
+
1. Runs all tests and quality checks
|
|
349
|
+
2. Builds the package
|
|
350
|
+
3. Creates an automated PR from develop to main
|
|
351
|
+
4. **Does NOT deploy to PyPI** (PyPI deployment happens only on release/hotfix branches)
|
|
352
|
+
|
|
353
|
+
#### 3. **Actual Release Process**
|
|
354
|
+
|
|
355
|
+
For PyPI deployment, you need to create a release branch:
|
|
356
|
+
|
|
357
|
+
```bash
|
|
358
|
+
# Create release branch for PyPI deployment
|
|
359
|
+
git checkout develop
|
|
360
|
+
git pull origin develop
|
|
361
|
+
git checkout -b release/v[new-version]
|
|
362
|
+
git push origin release/v[new-version]
|
|
363
|
+
```
|
|
364
|
+
|
|
365
|
+
This triggers `release-automation.yml` which:
|
|
366
|
+
- ✅ **Runs comprehensive tests**
|
|
367
|
+
- ✅ **Builds and validates package**
|
|
368
|
+
- ✅ **Deploys to PyPI automatically**
|
|
369
|
+
- ✅ **Creates release-to-main PR**
|
|
370
|
+
|
|
371
|
+
#### 4. **Post-Release Verification**
|
|
372
|
+
|
|
373
|
+
After release branch is created, the automated system will handle:
|
|
374
|
+
|
|
375
|
+
- ✅ **PyPI Deployment**: Package automatically published from release branch
|
|
376
|
+
- ✅ **GitHub PR Creation**: Automated PR from release to main
|
|
377
|
+
- ✅ **Quality Assurance**: All tests and builds verified
|
|
378
|
+
- ⚠️ **Manual Step Required**: README updates need to be done manually
|
|
379
|
+
|
|
380
|
+
Verify the release:
|
|
381
|
+
|
|
382
|
+
```bash
|
|
383
|
+
# Check PyPI deployment
|
|
384
|
+
pip index versions tree-sitter-analyzer
|
|
385
|
+
|
|
386
|
+
# Verify GitHub release
|
|
387
|
+
gh release list
|
|
388
|
+
|
|
389
|
+
# Check README updates
|
|
390
|
+
git log --oneline -5
|
|
391
|
+
```
|
|
392
|
+
|
|
393
|
+
#### 5. **AI Assistant Checklist**
|
|
394
|
+
|
|
395
|
+
When fixing bugs, AI assistants should automatically:
|
|
396
|
+
|
|
397
|
+
- [ ] **Identify Root Cause**: Analyze the technical issue thoroughly
|
|
398
|
+
- [ ] **Fix Implementation**: Apply the correct technical solution
|
|
399
|
+
- [ ] **Version Increment**: Automatically bump patch version in pyproject.toml
|
|
400
|
+
- [ ] **Update CHANGELOG**: Add detailed fix description with technical details
|
|
401
|
+
- [ ] **Quality Checks**: Run all tests and linting locally
|
|
402
|
+
- [ ] **Commit & Push**: Use conventional commit messages
|
|
403
|
+
- [ ] **Merge to Develop**: Triggers automated testing and PR creation
|
|
404
|
+
- [ ] **Create Release Branch**: For PyPI deployment (release/v[version])
|
|
405
|
+
- [ ] **Manual README Update**: Update statistics if test count changed (not automated)
|
|
406
|
+
- [ ] **Verify PyPI Deployment**: Check package publication after release branch
|
|
407
|
+
|
|
408
|
+
#### 6. **Multi-language Documentation Sync**
|
|
409
|
+
|
|
410
|
+
When updating GitFlow documentation, ensure all language versions are synchronized:
|
|
411
|
+
|
|
412
|
+
```bash
|
|
413
|
+
# Update all GitFlow documents
|
|
414
|
+
# 1. GITFLOW.md (English - primary)
|
|
415
|
+
# 2. GITFLOW_zh.md (Chinese)
|
|
416
|
+
# 3. GITFLOW_ja.md (Japanese)
|
|
417
|
+
|
|
418
|
+
# Verify consistency
|
|
419
|
+
diff -u GITFLOW.md GITFLOW_zh.md | head -20
|
|
420
|
+
diff -u GITFLOW.md GITFLOW_ja.md | head -20
|
|
421
|
+
```
|
|
422
|
+
|
|
423
|
+
#### 7. **Emergency Hotfix Protocol**
|
|
424
|
+
|
|
425
|
+
For critical production issues:
|
|
426
|
+
|
|
427
|
+
```bash
|
|
428
|
+
# 1. Create hotfix from main
|
|
429
|
+
git checkout main
|
|
430
|
+
git pull origin main
|
|
431
|
+
git checkout -b hotfix/critical-[issue]
|
|
432
|
+
|
|
433
|
+
# 2. Apply minimal fix
|
|
434
|
+
# 3. Update version (patch increment)
|
|
435
|
+
# 4. Update CHANGELOG
|
|
436
|
+
# 5. Commit with hotfix message
|
|
437
|
+
# 6. Merge to both main and develop
|
|
438
|
+
# 7. Tag and push
|
|
439
|
+
|
|
440
|
+
# Automated PyPI deployment will trigger immediately
|
|
441
|
+
```
|
|
442
|
+
|
|
443
|
+
This workflow ensures consistent, high-quality releases with minimal manual intervention while maintaining full traceability and documentation.
|
|
444
|
+
|
|
256
445
|
## CI/CD Integration
|
|
257
446
|
|
|
258
447
|
### GitHub Actions Workflows
|
|
@@ -0,0 +1,313 @@
|
|
|
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
|
+
## 🤖 AI支援開発ワークフロー
|
|
123
|
+
|
|
124
|
+
### 完全なバグ修正とリリース自動化
|
|
125
|
+
|
|
126
|
+
このセクションでは、AIアシスタントがバグ修正、バージョン更新、リリースを最小限の人的介入で処理するための包括的なワークフローを提供します。
|
|
127
|
+
|
|
128
|
+
#### 1. **バグ修正ワークフロー**
|
|
129
|
+
|
|
130
|
+
バグを修正する際は、以下の自動化シーケンスに従います:
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
# 1. 現在のブランチと状態を確認
|
|
134
|
+
git status
|
|
135
|
+
git branch -v
|
|
136
|
+
|
|
137
|
+
# 2. developからfeatureブランチを作成
|
|
138
|
+
git checkout develop
|
|
139
|
+
git pull origin develop
|
|
140
|
+
git checkout -b feature/fix-[バグ説明]
|
|
141
|
+
|
|
142
|
+
# 3. バグを修正(このセッションで完了済み)
|
|
143
|
+
# - 問題のあるファイルを編集
|
|
144
|
+
# - ローカルで修正をテスト
|
|
145
|
+
|
|
146
|
+
# 4. 包括的な品質チェックを実行
|
|
147
|
+
uv run pytest tests/ -v
|
|
148
|
+
uv run python check_quality.py --new-code-only
|
|
149
|
+
uv run python llm_code_checker.py --check-all
|
|
150
|
+
|
|
151
|
+
# 5. バージョン番号を更新(自動パッチ増分)
|
|
152
|
+
python -c "
|
|
153
|
+
import re
|
|
154
|
+
with open('pyproject.toml', 'r') as f:
|
|
155
|
+
content = f.read()
|
|
156
|
+
current = re.search(r'version = \"(\d+)\.(\d+)\.(\d+)\"', content)
|
|
157
|
+
if current:
|
|
158
|
+
major, minor, patch = map(int, current.groups())
|
|
159
|
+
new_version = f'{major}.{minor}.{patch + 1}'
|
|
160
|
+
new_content = re.sub(r'version = \"(\d+)\.(\d+)\.(\d+)\"', f'version = \"{new_version}\"', content)
|
|
161
|
+
with open('pyproject.toml', 'w') as f:
|
|
162
|
+
f.write(new_content)
|
|
163
|
+
print(f'バージョンを{new_version}に更新しました')
|
|
164
|
+
"
|
|
165
|
+
|
|
166
|
+
# 6. CHANGELOG.mdを更新
|
|
167
|
+
echo "
|
|
168
|
+
## [$(python -c "import re; content=open('pyproject.toml').read(); print(re.search(r'version = \"([^\"]+)\"', content).group(1))")] - $(date +%Y-%m-%d)
|
|
169
|
+
|
|
170
|
+
### 修正
|
|
171
|
+
- 特定ディレクトリでMCP list_filesツールがJavaファイルを検出できない問題を修正
|
|
172
|
+
- Windows環境でのfdコマンドパラメータ順序問題を解決
|
|
173
|
+
- クロスプラットフォーム互換性向上のため--search-pathパラメータ使用を改善
|
|
174
|
+
|
|
175
|
+
### 技術詳細
|
|
176
|
+
- \`fd_rg_utils.py\`の\`build_fd_command\`を位置引数の代わりに\`--search-path\`を使用するよう修正
|
|
177
|
+
- コマンド競合の原因となる自動\`\".\"\`パターン注入を除去
|
|
178
|
+
- ファイル発見操作のWindows環境互換性を強化
|
|
179
|
+
" >> CHANGELOG.md
|
|
180
|
+
|
|
181
|
+
# 7. README統計を更新(テスト数が変更された場合)
|
|
182
|
+
uv run python scripts/improved_readme_updater.py
|
|
183
|
+
|
|
184
|
+
# 8. すべての変更をコミット
|
|
185
|
+
git add .
|
|
186
|
+
git commit -m "fix: MCP list_filesツールのJavaファイル検出問題を解決
|
|
187
|
+
|
|
188
|
+
- fd_rg_utils.pyのfdコマンドパラメータ順序を修正
|
|
189
|
+
- クロスプラットフォーム互換性向上のため--search-pathを使用
|
|
190
|
+
- バージョンを$(python -c "import re; content=open('pyproject.toml').read(); print(re.search(r'version = \"([^\"]+)\"', content).group(1))")に更新
|
|
191
|
+
- CHANGELOG.mdとREADME統計を更新"
|
|
192
|
+
|
|
193
|
+
# 9. featureブランチをプッシュ
|
|
194
|
+
git push origin feature/fix-[バグ説明]
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
#### 2. **自動リリース トリガー**
|
|
198
|
+
|
|
199
|
+
バグ修正のコミット後:
|
|
200
|
+
|
|
201
|
+
```bash
|
|
202
|
+
# 10. developにマージ(自動PR作成をトリガー)
|
|
203
|
+
git checkout develop
|
|
204
|
+
git pull origin develop
|
|
205
|
+
git merge feature/fix-[バグ説明]
|
|
206
|
+
git push origin develop
|
|
207
|
+
|
|
208
|
+
# 11. featureブランチをクリーンアップ
|
|
209
|
+
git branch -d feature/fix-[バグ説明]
|
|
210
|
+
git push origin --delete feature/fix-[バグ説明]
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
**注意**:`develop`へのプッシュは`develop-automation.yml`ワークフローをトリガーします:
|
|
214
|
+
1. すべてのテストと品質チェックを実行
|
|
215
|
+
2. パッケージをビルド
|
|
216
|
+
3. developからmainへの自動PRを作成
|
|
217
|
+
4. **PyPIにはデプロイしません**(PyPIデプロイはrelease/hotfixブランチでのみ実行)
|
|
218
|
+
|
|
219
|
+
#### 3. **実際のリリースプロセス**
|
|
220
|
+
|
|
221
|
+
PyPIデプロイメントには、releaseブランチの作成が必要です:
|
|
222
|
+
|
|
223
|
+
```bash
|
|
224
|
+
# PyPIデプロイメント用のreleaseブランチを作成
|
|
225
|
+
git checkout develop
|
|
226
|
+
git pull origin develop
|
|
227
|
+
git checkout -b release/v[新バージョン]
|
|
228
|
+
git push origin release/v[新バージョン]
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
これにより`release-automation.yml`がトリガーされます:
|
|
232
|
+
- ✅ **包括的テストの実行**
|
|
233
|
+
- ✅ **パッケージのビルドと検証**
|
|
234
|
+
- ✅ **PyPIへの自動デプロイ**
|
|
235
|
+
- ✅ **release-to-main PRの作成**
|
|
236
|
+
|
|
237
|
+
#### 4. **リリース後の検証**
|
|
238
|
+
|
|
239
|
+
releaseブランチ作成後、自動化システムが以下を処理します:
|
|
240
|
+
|
|
241
|
+
- ✅ **PyPIデプロイメント**:releaseブランチからパッケージが自動公開
|
|
242
|
+
- ✅ **GitHub PR作成**:releaseからmainへの自動PR
|
|
243
|
+
- ✅ **品質保証**:すべてのテストとビルドが検証済み
|
|
244
|
+
- ⚠️ **手動ステップが必要**:README更新は手動で実行
|
|
245
|
+
|
|
246
|
+
リリースを検証:
|
|
247
|
+
|
|
248
|
+
```bash
|
|
249
|
+
# PyPIデプロイメントを確認
|
|
250
|
+
pip index versions tree-sitter-analyzer
|
|
251
|
+
|
|
252
|
+
# GitHubリリースを確認
|
|
253
|
+
gh release list
|
|
254
|
+
|
|
255
|
+
# README更新を確認
|
|
256
|
+
git log --oneline -5
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
#### 5. **AIアシスタント チェックリスト**
|
|
260
|
+
|
|
261
|
+
バグ修正時、AIアシスタントは自動的に:
|
|
262
|
+
|
|
263
|
+
- [ ] **根本原因の特定**:技術的問題を徹底的に分析
|
|
264
|
+
- [ ] **修正の実装**:正しい技術的解決策を適用
|
|
265
|
+
- [ ] **バージョン増分**:pyproject.tomlでパッチバージョンを自動的にアップ
|
|
266
|
+
- [ ] **変更ログ更新**:詳細な修正説明と技術詳細を追加
|
|
267
|
+
- [ ] **品質チェック**:すべてのテストとリンティングをローカルで実行
|
|
268
|
+
- [ ] **コミット&プッシュ**:規約に従ったコミットメッセージを使用
|
|
269
|
+
- [ ] **Developにマージ**:自動テストとPR作成をトリガー
|
|
270
|
+
- [ ] **Releaseブランチ作成**:PyPIデプロイ用 (release/v[バージョン])
|
|
271
|
+
- [ ] **手動README更新**:テスト数が変更された場合は統計を更新(自動化されていません)
|
|
272
|
+
- [ ] **PyPIデプロイ検証**:releaseブランチ後にパッケージ公開を確認
|
|
273
|
+
|
|
274
|
+
#### 6. **多言語ドキュメント同期**
|
|
275
|
+
|
|
276
|
+
GitFlowドキュメントを更新する際は、すべての言語バージョンが同期されていることを確認:
|
|
277
|
+
|
|
278
|
+
```bash
|
|
279
|
+
# すべてのGitFlowドキュメントを更新
|
|
280
|
+
# 1. GITFLOW.md(英語 - プライマリ)
|
|
281
|
+
# 2. GITFLOW_zh.md(中国語)
|
|
282
|
+
# 3. GITFLOW_ja.md(日本語)
|
|
283
|
+
|
|
284
|
+
# 一貫性を検証
|
|
285
|
+
diff -u GITFLOW.md GITFLOW_zh.md | head -20
|
|
286
|
+
diff -u GITFLOW.md GITFLOW_ja.md | head -20
|
|
287
|
+
```
|
|
288
|
+
|
|
289
|
+
#### 7. **緊急ホットフィックス プロトコル**
|
|
290
|
+
|
|
291
|
+
重要な本番問題の場合:
|
|
292
|
+
|
|
293
|
+
```bash
|
|
294
|
+
# 1. mainからホットフィックスを作成
|
|
295
|
+
git checkout main
|
|
296
|
+
git pull origin main
|
|
297
|
+
git checkout -b hotfix/critical-[問題]
|
|
298
|
+
|
|
299
|
+
# 2. 最小限の修正を適用
|
|
300
|
+
# 3. バージョンを更新(パッチ増分)
|
|
301
|
+
# 4. 変更ログを更新
|
|
302
|
+
# 5. ホットフィックスメッセージでコミット
|
|
303
|
+
# 6. mainとdevelopの両方にマージ
|
|
304
|
+
# 7. タグ付けしてプッシュ
|
|
305
|
+
|
|
306
|
+
# 自動PyPIデプロイメントが即座にトリガーされます
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
このワークフローは、完全な追跡可能性とドキュメント化を維持しながら、最小限の手動介入で一貫した高品質のリリースを保証します。
|
|
310
|
+
|
|
311
|
+
---
|
|
312
|
+
|
|
313
|
+
*この日本語説明は、[`GITFLOW.md`](GITFLOW.md) の中核的な概念を理解するのに役立ちます。自動化プロセス、品質チェック、CI/CD統合に関する詳細は、元のドキュメントを参照してください。*
|