tree-sitter-analyzer 1.7.2__tar.gz → 1.7.3__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.7.2 → tree_sitter_analyzer-1.7.3}/CHANGELOG.md +56 -0
- tree_sitter_analyzer-1.7.3/GITFLOW.md +324 -0
- tree_sitter_analyzer-1.7.3/GITFLOW_ja.md +338 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/GITFLOW_zh.md +68 -22
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/PKG-INFO +36 -12
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/README.md +28 -10
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/README_ja.md +28 -10
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/README_zh.md +28 -10
- tree_sitter_analyzer-1.7.3/coverage.json +1 -0
- tree_sitter_analyzer-1.7.3/examples/test_markdown.md +160 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/pyproject.toml +10 -3
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/__init__.py +1 -1
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/cli/commands/advanced_command.py +52 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/cli/commands/structure_command.py +50 -1
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/cli/commands/summary_command.py +49 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/cli/commands/table_command.py +48 -0
- tree_sitter_analyzer-1.7.3/tree_sitter_analyzer/core/query_service.py +302 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/formatters/base_formatter.py +29 -2
- tree_sitter_analyzer-1.7.3/tree_sitter_analyzer/formatters/language_formatter_factory.py +83 -0
- tree_sitter_analyzer-1.7.3/tree_sitter_analyzer/formatters/markdown_formatter.py +426 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/language_detector.py +30 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/language_loader.py +1 -0
- tree_sitter_analyzer-1.7.3/tree_sitter_analyzer/languages/markdown_plugin.py +1569 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/languages/python_plugin.py +75 -16
- tree_sitter_analyzer-1.7.3/tree_sitter_analyzer/queries/markdown.py +379 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/query_loader.py +1 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/uv.lock +70 -35
- tree_sitter_analyzer-1.7.2/GITFLOW.md +0 -480
- tree_sitter_analyzer-1.7.2/GITFLOW_ja.md +0 -292
- tree_sitter_analyzer-1.7.2/coverage.json +0 -1
- tree_sitter_analyzer-1.7.2/tree_sitter_analyzer/core/query_service.py +0 -162
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/.gitattributes +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/.gitignore +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/.kiro/steering/product.md +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/.kiro/steering/structure.md +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/.kiro/steering/tech.md +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/.pre-commit-config.yaml +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/.pre-commit-hooks.yaml +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/.roo/rules/ROO_RULES.md +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/AI_COLLABORATION_GUIDE.md +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/CODE_STYLE_GUIDE.md +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/CONTRIBUTING.md +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/DEPLOYMENT_GUIDE.md +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/FILE_OUTPUT_FEATURE_SUMMARY.md +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/LANGUAGE_GUIDELINES.md +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/LLM_CODING_GUIDELINES.md +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/MCP_SETUP_DEVELOPERS.md +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/MCP_SETUP_USERS.md +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/PROJECT_ROOT_CONFIG.md +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/PYPI_RELEASE_GUIDE.md +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/PYTHON_SUPPORT_SUMMARY.md +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/REFACTORING_SUMMARY.md +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/build_standalone.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/check_quality.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/docs/GITFLOW_BEST_PRACTICES.md +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/docs/RELEASE_EXECUTION_GUIDE.md +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/docs/api.md +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/docs/mcp_fd_rg_design.md +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/examples/BigService.java +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/examples/BigService.json +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/examples/BigService.summary.json +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/examples/ComprehensiveTypeScript.ts +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/examples/JavaDocTest.java +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/examples/ModernJavaScript.js +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/examples/MultiClass.java +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/examples/ReactComponent.jsx +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/examples/ReactTypeScriptComponent.tsx +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/examples/Sample.java +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/examples/TypeScriptDeclarations.d.ts +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/examples/cache_demo.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/examples/calculate_token_comparison.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/examples/file_output_demo.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/examples/javascript_analysis_demo.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/examples/project_root_demo.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/examples/sample.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/examples/security_demo.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/examples/security_integration_demo.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/examples/smart_cache_demo.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/examples/suppress_output_demo.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/examples/total_only_optimization_demo.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/llm_code_checker.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/pypirc_example.txt +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/pytest.ini +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/scripts/README.md +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/scripts/gitflow_helper.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/scripts/gitflow_release_automation.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/scripts/sync_version.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/scripts/sync_version_minimal.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/start_mcp_server.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/test_python_support.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/training/01_onboarding.md +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/training/02_architecture_map.md +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/training/03_cli_cheatsheet.md +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/training/04_mcp_cheatsheet.md +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/training/05_plugin_tutorial.md +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/training/06_quality_workflow.md +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/training/07_troubleshooting.md +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/training/08_prompt_library.md +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/training/09_tasks.md +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/training/10_glossary.md +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/training/11_takeover_plan.md +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/training/CLI_COMMAND_CORRECTIONS.md +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/training/IMPROVEMENT_SUMMARY.md +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/training/README.md +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/__main__.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/api.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/cli/__init__.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/cli/__main__.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/cli/commands/__init__.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/cli/commands/base_command.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/cli/commands/default_command.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/cli/commands/find_and_grep_cli.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/cli/commands/list_files_cli.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/cli/commands/partial_read_command.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/cli/commands/query_command.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/cli/commands/search_content_cli.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/cli/info_commands.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/cli_main.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/constants.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/core/__init__.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/core/analysis_engine.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/core/cache_service.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/core/engine.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/core/parser.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/core/query.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/core/query_filter.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/encoding_utils.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/exceptions.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/file_handler.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/formatters/__init__.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/formatters/formatter_factory.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/formatters/java_formatter.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/formatters/javascript_formatter.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/formatters/python_formatter.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/formatters/typescript_formatter.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/interfaces/__init__.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/interfaces/cli.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/interfaces/cli_adapter.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/interfaces/mcp_adapter.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/interfaces/mcp_server.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/languages/__init__.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/languages/java_plugin.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/languages/javascript_plugin.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/languages/typescript_plugin.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/mcp/__init__.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/mcp/resources/__init__.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/mcp/resources/code_file_resource.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/mcp/resources/project_stats_resource.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/mcp/server.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/mcp/tools/__init__.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/mcp/tools/analyze_scale_tool.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/mcp/tools/analyze_scale_tool_cli_compatible.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/mcp/tools/base_tool.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/mcp/tools/fd_rg_utils.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/mcp/tools/find_and_grep_tool.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/mcp/tools/list_files_tool.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/mcp/tools/query_tool.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/mcp/tools/read_partial_tool.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/mcp/tools/search_content_tool.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/mcp/tools/table_format_tool.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/mcp/tools/universal_analyze_tool.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/mcp/utils/__init__.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/mcp/utils/error_handler.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/mcp/utils/file_output_manager.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/mcp/utils/gitignore_detector.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/mcp/utils/path_resolver.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/mcp/utils/search_cache.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/models.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/output_manager.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/plugins/__init__.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/plugins/base.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/plugins/manager.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/project_detector.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/queries/__init__.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/queries/java.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/queries/javascript.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/queries/python.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/queries/typescript.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/security/__init__.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/security/boundary_manager.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/security/regex_checker.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/security/validator.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/table_formatter.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/tree_sitter_analyzer/utils.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/upload_interactive.py +0 -0
- {tree_sitter_analyzer-1.7.2 → tree_sitter_analyzer-1.7.3}/upload_to_pypi.py +0 -0
|
@@ -1,5 +1,61 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [1.7.3] - 2025-10-09
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
- **🆕 Complete Markdown Plugin Enhancement**: Comprehensive Markdown element extraction capabilities
|
|
7
|
+
- **5 New Element Types**: Added blockquotes, horizontal rules, HTML elements, text formatting, and footnotes
|
|
8
|
+
- **Enhanced Element Extraction**: New extraction methods for comprehensive Markdown analysis
|
|
9
|
+
- **Structured Analysis**: Convert Markdown documents to structured data for AI processing
|
|
10
|
+
- **Query System Integration**: Full integration with existing query and filtering functionality
|
|
11
|
+
|
|
12
|
+
- **📝 New Markdown Extraction Methods**: Powerful new analysis capabilities
|
|
13
|
+
- `extract_blockquotes()`: Extract > quoted text blocks with proper attribution
|
|
14
|
+
- `extract_horizontal_rules()`: Extract ---, ***, ___ separators and dividers
|
|
15
|
+
- `extract_html_elements()`: Extract HTML blocks and inline tags within Markdown
|
|
16
|
+
- `extract_text_formatting()`: Extract **bold**, *italic*, `code`, ~~strikethrough~~ formatting
|
|
17
|
+
- `extract_footnotes()`: Extract [^1] references and definitions with linking
|
|
18
|
+
|
|
19
|
+
- **🔧 Enhanced Tree-sitter Queries**: Extended query system for comprehensive parsing
|
|
20
|
+
- **New Footnotes Query**: Dedicated query for footnote references and definitions
|
|
21
|
+
- **Updated All Elements Query**: Enhanced query covering all 10 Markdown element types
|
|
22
|
+
- **Improved Pattern Matching**: Better recognition of complex Markdown structures
|
|
23
|
+
|
|
24
|
+
### Enhanced
|
|
25
|
+
- **📊 Markdown Formatter Improvements**: Enhanced table display for new element types
|
|
26
|
+
- **Comprehensive Element Display**: All 10 element types now displayed in structured tables
|
|
27
|
+
- **Better Formatting**: Improved readability and organization of Markdown analysis results
|
|
28
|
+
- **Consistent Output**: Unified formatting across all Markdown element types
|
|
29
|
+
|
|
30
|
+
- **🧪 Test Suite Expansion**: Comprehensive test coverage for new functionality
|
|
31
|
+
- **67 New Test Cases**: Complete validation of all new Markdown features
|
|
32
|
+
- **Element-Specific Testing**: Dedicated tests for each new extraction method
|
|
33
|
+
- **Integration Testing**: Full validation of query system integration
|
|
34
|
+
- **Backward Compatibility**: Ensured all existing functionality remains intact
|
|
35
|
+
|
|
36
|
+
### Improved
|
|
37
|
+
- **📊 Quality Metrics**:
|
|
38
|
+
- Test count increased to 2831 (up from 2829)
|
|
39
|
+
- Code coverage improved to 79.19% (up from 76.51%)
|
|
40
|
+
- All tests passing with enhanced system stability
|
|
41
|
+
- CLI regression tests updated to reflect 47→69 elements (46% improvement)
|
|
42
|
+
|
|
43
|
+
- **📚 Documentation**: Enhanced examples/test_markdown.md analysis coverage significantly
|
|
44
|
+
- **🔧 Development Workflow**: Improved Markdown analysis capabilities for AI-assisted development
|
|
45
|
+
- **🎯 Element Coverage**: Expanded from 5 to 10 Markdown element types for comprehensive analysis
|
|
46
|
+
|
|
47
|
+
### Technical Details
|
|
48
|
+
- **Enhanced Files**:
|
|
49
|
+
- `tree_sitter_analyzer/languages/markdown_plugin.py` - Added 5 new extraction methods
|
|
50
|
+
- `tree_sitter_analyzer/formatters/markdown_formatter.py` - Enhanced table formatting
|
|
51
|
+
- `tree_sitter_analyzer/queries/markdown.py` - Extended query definitions
|
|
52
|
+
- **Test Coverage**: All 2831 tests passing with 79.19% coverage
|
|
53
|
+
- **Quality Metrics**: Enhanced Markdown plugin with comprehensive validation
|
|
54
|
+
- **Breaking Changes**: None - all improvements are backward compatible
|
|
55
|
+
- **Element Count**: Increased from 47 to 69 elements in examples/test_markdown.md analysis
|
|
56
|
+
|
|
57
|
+
This minor release introduces comprehensive Markdown analysis capabilities, making Tree-sitter Analyzer a powerful tool for document analysis and AI-assisted Markdown processing, while maintaining full backward compatibility.
|
|
58
|
+
|
|
3
59
|
## [1.7.2] - 2025-10-09
|
|
4
60
|
|
|
5
61
|
### Added
|
|
@@ -0,0 +1,324 @@
|
|
|
1
|
+
# GitFlow Branching Strategy (English Documentation)
|
|
2
|
+
|
|
3
|
+
This document explains the GitFlow branching strategy implemented in the `tree-sitter-analyzer` project using Mermaid diagrams and English descriptions.
|
|
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 version. Should be deployable at any time.
|
|
45
|
+
- **`develop`**: Feature integration branch. Contains the latest delivered development changes and serves as the starting point for all feature development.
|
|
46
|
+
|
|
47
|
+
### Supporting Branches
|
|
48
|
+
|
|
49
|
+
- **`feature/*`**: Feature development branches.
|
|
50
|
+
- **Origin**: `develop`
|
|
51
|
+
- **Merge back to**: `develop`
|
|
52
|
+
- **Naming**: `feature/descriptive-name` (e.g., `feature/user-authentication`)
|
|
53
|
+
- **`release/*`**: Release preparation branches. Used to prepare new production releases, performing only minor bug fixes and release-oriented tasks like documentation generation.
|
|
54
|
+
- **Origin**: `develop`
|
|
55
|
+
- **Merge back to**: `main` and `develop`
|
|
56
|
+
- **Naming**: `release/v1.2.0`
|
|
57
|
+
- **`hotfix/*`**: Emergency production bug fix branches. Used to quickly fix critical issues in the production environment.
|
|
58
|
+
- **Origin**: `main`
|
|
59
|
+
- **Merge back to**: `main` and `develop`
|
|
60
|
+
- **Naming**: `hotfix/critical-bug-fix`
|
|
61
|
+
|
|
62
|
+
## Workflow
|
|
63
|
+
|
|
64
|
+
### 1. Feature Development
|
|
65
|
+
|
|
66
|
+
1. **Create `feature` branch from `develop`**:
|
|
67
|
+
```bash
|
|
68
|
+
git fetch origin
|
|
69
|
+
git checkout -b feature/your-feature-name origin/develop
|
|
70
|
+
```
|
|
71
|
+
2. **Develop the feature** and commit regularly.
|
|
72
|
+
3. **After development completion**, push the `feature` branch to remote and create a Pull Request to the `develop` branch.
|
|
73
|
+
4. After code review and continuous integration (CI) checks pass, **merge to `develop`**.
|
|
74
|
+
|
|
75
|
+
### 2. Release Process
|
|
76
|
+
|
|
77
|
+
The project recommends using automated release workflows, but the manual process is as follows:
|
|
78
|
+
|
|
79
|
+
1. **Create `release` branch from `develop`**:
|
|
80
|
+
```bash
|
|
81
|
+
git fetch origin
|
|
82
|
+
git checkout -b release/v1.0.0 origin/develop
|
|
83
|
+
```
|
|
84
|
+
2. **Prepare release**: Update version numbers, generate documentation, etc.
|
|
85
|
+
```bash
|
|
86
|
+
# Update version number in pyproject.toml
|
|
87
|
+
# Update server_version
|
|
88
|
+
# Sync version number to __init__.py
|
|
89
|
+
uv run python scripts/sync_version_minimal.py
|
|
90
|
+
|
|
91
|
+
# Get current test count and coverage statistics:
|
|
92
|
+
# Test count: uv run python -m pytest --collect-only -q | findstr /C:"collected"
|
|
93
|
+
# Coverage: uv run python -m pytest --cov=tree_sitter_analyzer --cov-report=term-missing --cov-report=json -x -q | findstr "TOTAL"
|
|
94
|
+
|
|
95
|
+
# Update documentation:
|
|
96
|
+
# - Update version number, test count, and coverage in README.md
|
|
97
|
+
# - Update version badge, test badge, coverage badge
|
|
98
|
+
# - Update version references in "Latest Quality Achievements" section
|
|
99
|
+
# - Update version references in test environment section
|
|
100
|
+
# - Update all other version references in documentation
|
|
101
|
+
# - Update translated versions README_zh.md and README_ja.md
|
|
102
|
+
# - If workflow changes exist, update GITFLOW_zh.md and GITFLOW_ja.md
|
|
103
|
+
# - Update CHANGELOG.md release details
|
|
104
|
+
```
|
|
105
|
+
3. **Push `release` branch to remote to trigger PyPI release**:
|
|
106
|
+
```bash
|
|
107
|
+
git checkout release/v1.0.0
|
|
108
|
+
git push origin release/v1.0.0
|
|
109
|
+
```
|
|
110
|
+
4. **After PyPI release completion, merge to `main` and `develop`**:
|
|
111
|
+
```bash
|
|
112
|
+
# Switch to main branch and merge
|
|
113
|
+
git checkout main
|
|
114
|
+
git merge release/v1.0.0
|
|
115
|
+
git tag -a v1.0.0 -m "Release v1.0.0" # Add version tag
|
|
116
|
+
git push origin main --tags
|
|
117
|
+
|
|
118
|
+
# Switch to develop branch and merge
|
|
119
|
+
git checkout develop
|
|
120
|
+
git merge release/v1.0.0
|
|
121
|
+
git push origin develop
|
|
122
|
+
```
|
|
123
|
+
5. **Create GitHub Release**:
|
|
124
|
+
```bash
|
|
125
|
+
# Create temporary release message file (avoid encoding and symbol errors)
|
|
126
|
+
cat > release_message.md << 'EOF'
|
|
127
|
+
## v1.7.2 - File Output Optimization and ROO Rules Documentation
|
|
128
|
+
|
|
129
|
+
### 🎯 New Features
|
|
130
|
+
- **File Output Optimization**: Added `suppress_output` and `output_file` parameters to MCP search tools, significantly reducing token consumption
|
|
131
|
+
- **Automatic Format Detection**: Intelligent file format selection (JSON/Markdown) based on content type
|
|
132
|
+
- **ROO Rules Documentation**: Added comprehensive tree-sitter-analyzer MCP optimization usage guide
|
|
133
|
+
|
|
134
|
+
### 📊 Quality Metrics
|
|
135
|
+
- Test count: 2675 tests (100% pass rate)
|
|
136
|
+
- Code coverage: 78.85%
|
|
137
|
+
- New features: File output optimization significantly reduces AI conversation token consumption
|
|
138
|
+
|
|
139
|
+
### 🔧 Technical Improvements
|
|
140
|
+
- Response size reduction up to 99% (when outputting large search results to files)
|
|
141
|
+
- Backward compatible, no impact on existing functionality usage
|
|
142
|
+
- Complete test coverage including file output optimization feature verification
|
|
143
|
+
EOF
|
|
144
|
+
|
|
145
|
+
# Create release using gh CLI
|
|
146
|
+
gh release create v1.7.2 \
|
|
147
|
+
--title "Release v1.7.2: File Output Optimization and ROO Rules Documentation" \
|
|
148
|
+
--notes-file release_message.md \
|
|
149
|
+
--target main
|
|
150
|
+
|
|
151
|
+
# Delete temporary file
|
|
152
|
+
rm release_message.md
|
|
153
|
+
```
|
|
154
|
+
6. **Delete `release` branch**:
|
|
155
|
+
```bash
|
|
156
|
+
# Delete local branch
|
|
157
|
+
git branch -d release/v1.0.0
|
|
158
|
+
# Delete remote branch
|
|
159
|
+
git push origin --delete release/v1.0.0
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
**Important Explanation**: This release workflow adopts a "PyPI-first" strategy, ensuring the package is successfully published before updating the main branch. This approach avoids the risk of code being published on GitHub but packages being unavailable on PyPI, providing a safer release process.
|
|
163
|
+
|
|
164
|
+
### 3. Hotfix Process
|
|
165
|
+
|
|
166
|
+
1. **Create `hotfix` branch from `main`**:
|
|
167
|
+
```bash
|
|
168
|
+
git fetch origin
|
|
169
|
+
git checkout -b hotfix/critical-bug-fix origin/main
|
|
170
|
+
```
|
|
171
|
+
2. **Fix the bug** and commit.
|
|
172
|
+
3. **Update version and documentation**:
|
|
173
|
+
```bash
|
|
174
|
+
# Update version number in pyproject.toml (e.g., 1.0.0 -> 1.0.1)
|
|
175
|
+
# Update server_version
|
|
176
|
+
# Sync version number to __init__.py
|
|
177
|
+
uv run python scripts/sync_version_minimal.py
|
|
178
|
+
|
|
179
|
+
# Get current test count and coverage statistics:
|
|
180
|
+
# Test count: uv run python -m pytest --collect-only -q | findstr /C:"collected"
|
|
181
|
+
# Coverage: uv run python -m pytest --cov=tree_sitter_analyzer --cov-report=term-missing --cov-report=json -x -q | findstr "TOTAL"
|
|
182
|
+
|
|
183
|
+
# Update documentation:
|
|
184
|
+
# - Add hotfix details to CHANGELOG.md
|
|
185
|
+
# - Update version number, test count, and coverage in README.md
|
|
186
|
+
# - Update version badge, test badge, coverage badge
|
|
187
|
+
# - Update version references in "Latest Quality Achievements" section
|
|
188
|
+
# - Update version references in test environment section
|
|
189
|
+
# - Update all other version references in documentation
|
|
190
|
+
# - Update translated versions README_zh.md and README_ja.md
|
|
191
|
+
# - If workflow changes exist, update GITFLOW_zh.md and GITFLOW_ja.md
|
|
192
|
+
```
|
|
193
|
+
4. **Push `hotfix` branch to remote to trigger PyPI release**:
|
|
194
|
+
```bash
|
|
195
|
+
git checkout hotfix/critical-bug-fix
|
|
196
|
+
git push origin hotfix/critical-bug-fix
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
5. **After PyPI release completion, merge to `main` and `develop`**:
|
|
200
|
+
```bash
|
|
201
|
+
# Switch to main branch and merge
|
|
202
|
+
git checkout main
|
|
203
|
+
git merge hotfix/critical-bug-fix
|
|
204
|
+
git tag -a v1.0.1 -m "Hotfix v1.0.1" # Add fix version tag
|
|
205
|
+
git push origin main --tags
|
|
206
|
+
|
|
207
|
+
# Switch to develop branch and merge
|
|
208
|
+
git checkout develop
|
|
209
|
+
git merge hotfix/critical-bug-fix
|
|
210
|
+
git push origin develop
|
|
211
|
+
```
|
|
212
|
+
6. **Create GitHub Release**:
|
|
213
|
+
```bash
|
|
214
|
+
# Create temporary hotfix release message file
|
|
215
|
+
cat > hotfix_release_message.md << 'EOF'
|
|
216
|
+
## v1.0.1 - Emergency Fix
|
|
217
|
+
|
|
218
|
+
### 🐛 Fix Details
|
|
219
|
+
- Fixed critical production environment issue
|
|
220
|
+
- Improved system stability and security
|
|
221
|
+
|
|
222
|
+
### 📊 Quality Metrics
|
|
223
|
+
- All tests passing
|
|
224
|
+
- Emergency fix verification completed
|
|
225
|
+
|
|
226
|
+
### ⚡ Deployment Notes
|
|
227
|
+
- This version is an emergency fix, immediate deployment to production environment recommended
|
|
228
|
+
- Verified through complete testing
|
|
229
|
+
EOF
|
|
230
|
+
|
|
231
|
+
# Create hotfix release using gh CLI
|
|
232
|
+
gh release create v1.0.1 \
|
|
233
|
+
--title "Hotfix v1.0.1: Critical Production Fix" \
|
|
234
|
+
--notes-file hotfix_release_message.md \
|
|
235
|
+
--target main
|
|
236
|
+
|
|
237
|
+
# Delete temporary file
|
|
238
|
+
rm hotfix_release_message.md
|
|
239
|
+
```
|
|
240
|
+
7. **Delete `hotfix` branch**:
|
|
241
|
+
```bash
|
|
242
|
+
# Delete local branch
|
|
243
|
+
git branch -d hotfix/critical-bug-fix
|
|
244
|
+
# Delete remote branch
|
|
245
|
+
git push origin --delete hotfix/critical-bug-fix
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
**Important Explanation**: This hotfix workflow also adopts the "PyPI-first" strategy, updating the main branch after successful package release to avoid the risk of emergency fix code being published but packages being unavailable.
|
|
249
|
+
|
|
250
|
+
**Note**: According to the actual automated workflow, hotfix branches **do** automatically trigger PyPI releases. However, this may cause version conflicts, so it's recommended to ensure version numbers are correctly updated before using hotfix branches.
|
|
251
|
+
|
|
252
|
+
## Automation Workflows
|
|
253
|
+
|
|
254
|
+
### Develop Branch Automation (`develop-automation.yml`)
|
|
255
|
+
When code is pushed to the `develop` branch, automatically executes:
|
|
256
|
+
|
|
257
|
+
1. **Test Job**:
|
|
258
|
+
- Run complete test suite using pytest with detailed traceback and failure limits
|
|
259
|
+
- Generate coverage reports (XML and terminal formats)
|
|
260
|
+
- Upload coverage to Codecov
|
|
261
|
+
|
|
262
|
+
2. **Build Job**:
|
|
263
|
+
- Build Python package using `python -m build`
|
|
264
|
+
- Validate package using `twine check`
|
|
265
|
+
- Upload build artifacts (retained for 1 day)
|
|
266
|
+
|
|
267
|
+
3. **Create Release PR Job**:
|
|
268
|
+
- Automatically create PR from develop to main
|
|
269
|
+
- Include quality metrics and test results
|
|
270
|
+
- Ready for production deployment
|
|
271
|
+
|
|
272
|
+
**Important**: Pushes to develop branch do **not** trigger PyPI deployment.
|
|
273
|
+
|
|
274
|
+
### Release Branch Automation (`release-automation.yml`)
|
|
275
|
+
When code is pushed to `release/v*` branches, automatically executes:
|
|
276
|
+
|
|
277
|
+
1. **Test Job**:
|
|
278
|
+
- Run complete test suite using pytest with detailed traceback and failure limits
|
|
279
|
+
- Generate coverage reports (XML and terminal formats)
|
|
280
|
+
- Upload coverage to Codecov
|
|
281
|
+
|
|
282
|
+
2. **Build and Deploy Job**:
|
|
283
|
+
- Build Python package
|
|
284
|
+
- Validate package using `twine check`
|
|
285
|
+
- **Deploy to PyPI using `twine upload`**
|
|
286
|
+
|
|
287
|
+
3. **Create Main PR Job**:
|
|
288
|
+
- Create PR to main branch after successful PyPI deployment
|
|
289
|
+
- Marked as critical hotfix, ready for immediate production
|
|
290
|
+
|
|
291
|
+
### Hotfix Branch Automation (`hotfix-automation.yml`)
|
|
292
|
+
When code is pushed to `hotfix/*` branches, automatically executes:
|
|
293
|
+
|
|
294
|
+
1. **Test Job**:
|
|
295
|
+
- Run complete test suite using pytest with detailed traceback and failure limits
|
|
296
|
+
- Generate coverage reports (XML and terminal formats)
|
|
297
|
+
|
|
298
|
+
2. **Build and Deploy Job**:
|
|
299
|
+
- Build Python package
|
|
300
|
+
- Validate package using `twine check`
|
|
301
|
+
- **Deploy to PyPI using `twine upload`**
|
|
302
|
+
|
|
303
|
+
3. **Create Main PR Job**:
|
|
304
|
+
- Create PR to main branch after successful PyPI deployment
|
|
305
|
+
- Marked as critical hotfix, ready for immediate production
|
|
306
|
+
|
|
307
|
+
**Important**: According to the actual automated workflow, hotfix branches **do** automatically trigger PyPI deployment, same as release branches. This may cause version conflicts, so careful use of hotfix branches is recommended.
|
|
308
|
+
|
|
309
|
+
### CI Workflow (`ci.yml`)
|
|
310
|
+
Runs on all branches (`main`, `develop`, `hotfix/*`, `feature/*`, `release/*`) and PRs:
|
|
311
|
+
|
|
312
|
+
1. **Quality Check Job**:
|
|
313
|
+
- Multi-Python version testing (3.10, 3.11, 3.12, 3.13)
|
|
314
|
+
- Code quality checks using `check_quality.py`
|
|
315
|
+
|
|
316
|
+
2. **Test Matrix Job**:
|
|
317
|
+
- Cross-platform testing (Ubuntu, Windows, macOS)
|
|
318
|
+
- Multi-Python version compatibility testing
|
|
319
|
+
|
|
320
|
+
**PyPI Deployment Strategy**: Both `release/*` and `hotfix/*` branches automatically deploy to PyPI. However, hotfix branches may cause version conflicts, so careful usage is recommended.
|
|
321
|
+
|
|
322
|
+
---
|
|
323
|
+
|
|
324
|
+
*This English documentation aims to help understand the core concepts in [`GITFLOW.md`](GITFLOW.md). For more detailed information on automation workflows, quality checks, and CI/CD integration, please refer to the original [GITFLOW.md](GITFLOW.md) file.*
|