tree-sitter-analyzer 1.2.5__tar.gz → 1.3.2__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.

Files changed (159) hide show
  1. tree_sitter_analyzer-1.3.2/.gitattributes +51 -0
  2. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/CHANGELOG.md +165 -12
  3. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/GITFLOW.md +76 -202
  4. tree_sitter_analyzer-1.3.2/GITFLOW_ja.md +157 -0
  5. tree_sitter_analyzer-1.3.2/GITFLOW_zh.md +157 -0
  6. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/PKG-INFO +9 -9
  7. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/README.md +8 -8
  8. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/README_ja.md +7 -7
  9. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/README_zh.md +7 -7
  10. tree_sitter_analyzer-1.3.2/examples/cache_demo.py +216 -0
  11. tree_sitter_analyzer-1.3.2/examples/smart_cache_demo.py +126 -0
  12. tree_sitter_analyzer-1.3.2/examples/total_only_optimization_demo.py +165 -0
  13. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/pyproject.toml +2 -2
  14. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/__init__.py +1 -1
  15. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/mcp/tools/fd_rg_utils.py +30 -7
  16. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/mcp/tools/list_files_tool.py +24 -1
  17. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/mcp/tools/search_content_tool.py +165 -7
  18. tree_sitter_analyzer-1.3.2/tree_sitter_analyzer/mcp/utils/gitignore_detector.py +323 -0
  19. tree_sitter_analyzer-1.3.2/tree_sitter_analyzer/mcp/utils/search_cache.py +343 -0
  20. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/uv.lock +1 -1
  21. tree_sitter_analyzer-1.2.5/GITFLOW_ja.md +0 -313
  22. tree_sitter_analyzer-1.2.5/GITFLOW_zh.md +0 -313
  23. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/.gitignore +0 -0
  24. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/.kiro/steering/product.md +0 -0
  25. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/.kiro/steering/structure.md +0 -0
  26. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/.kiro/steering/tech.md +0 -0
  27. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/.pre-commit-config.yaml +0 -0
  28. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/.pre-commit-hooks.yaml +0 -0
  29. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/AI_COLLABORATION_GUIDE.md +0 -0
  30. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/CODE_STYLE_GUIDE.md +0 -0
  31. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/CONTRIBUTING.md +0 -0
  32. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/DEPLOYMENT_GUIDE.md +0 -0
  33. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/LANGUAGE_GUIDELINES.md +0 -0
  34. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/LLM_CODING_GUIDELINES.md +0 -0
  35. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/MCP_SETUP_DEVELOPERS.md +0 -0
  36. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/MCP_SETUP_USERS.md +0 -0
  37. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/PROJECT_ROOT_CONFIG.md +0 -0
  38. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/PYPI_RELEASE_GUIDE.md +0 -0
  39. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/REFACTORING_SUMMARY.md +0 -0
  40. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/build_standalone.py +0 -0
  41. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/check_quality.py +0 -0
  42. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/docs/GITFLOW_BEST_PRACTICES.md +0 -0
  43. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/docs/RELEASE_EXECUTION_GUIDE.md +0 -0
  44. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/docs/api.md +0 -0
  45. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/docs/mcp_fd_rg_design.md +0 -0
  46. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/examples/BigService.java +0 -0
  47. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/examples/BigService.json +0 -0
  48. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/examples/BigService.summary.json +0 -0
  49. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/examples/JavaDocTest.java +0 -0
  50. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/examples/MultiClass.java +0 -0
  51. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/examples/Sample.java +0 -0
  52. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/examples/calculate_token_comparison.py +0 -0
  53. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/examples/project_root_demo.py +0 -0
  54. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/examples/sample.py +0 -0
  55. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/examples/security_demo.py +0 -0
  56. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/examples/security_integration_demo.py +0 -0
  57. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/llm_code_checker.py +0 -0
  58. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/pypirc_example.txt +0 -0
  59. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/pytest.ini +0 -0
  60. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/scripts/README.md +0 -0
  61. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/scripts/gitflow_helper.py +0 -0
  62. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/scripts/gitflow_release_automation.py +0 -0
  63. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/scripts/sync_version.py +0 -0
  64. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/scripts/sync_version_minimal.py +0 -0
  65. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/start_mcp_server.py +0 -0
  66. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/training/01_onboarding.md +0 -0
  67. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/training/02_architecture_map.md +0 -0
  68. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/training/03_cli_cheatsheet.md +0 -0
  69. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/training/04_mcp_cheatsheet.md +0 -0
  70. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/training/05_plugin_tutorial.md +0 -0
  71. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/training/06_quality_workflow.md +0 -0
  72. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/training/07_troubleshooting.md +0 -0
  73. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/training/08_prompt_library.md +0 -0
  74. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/training/09_tasks.md +0 -0
  75. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/training/10_glossary.md +0 -0
  76. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/training/11_takeover_plan.md +0 -0
  77. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/training/CLI_COMMAND_CORRECTIONS.md +0 -0
  78. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/training/IMPROVEMENT_SUMMARY.md +0 -0
  79. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/training/README.md +0 -0
  80. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/__main__.py +0 -0
  81. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/api.py +0 -0
  82. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/cli/__init__.py +0 -0
  83. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/cli/__main__.py +0 -0
  84. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/cli/commands/__init__.py +0 -0
  85. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/cli/commands/advanced_command.py +0 -0
  86. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/cli/commands/base_command.py +0 -0
  87. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/cli/commands/default_command.py +0 -0
  88. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/cli/commands/partial_read_command.py +0 -0
  89. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/cli/commands/query_command.py +0 -0
  90. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/cli/commands/structure_command.py +0 -0
  91. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/cli/commands/summary_command.py +0 -0
  92. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/cli/commands/table_command.py +0 -0
  93. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/cli/info_commands.py +0 -0
  94. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/cli_main.py +0 -0
  95. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/constants.py +0 -0
  96. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/core/__init__.py +0 -0
  97. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/core/analysis_engine.py +0 -0
  98. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/core/cache_service.py +0 -0
  99. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/core/engine.py +0 -0
  100. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/core/parser.py +0 -0
  101. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/core/query.py +0 -0
  102. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/core/query_filter.py +0 -0
  103. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/core/query_service.py +0 -0
  104. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/encoding_utils.py +0 -0
  105. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/exceptions.py +0 -0
  106. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/file_handler.py +0 -0
  107. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/formatters/__init__.py +0 -0
  108. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/formatters/base_formatter.py +0 -0
  109. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/formatters/formatter_factory.py +0 -0
  110. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/formatters/java_formatter.py +0 -0
  111. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/formatters/python_formatter.py +0 -0
  112. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/interfaces/__init__.py +0 -0
  113. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/interfaces/cli.py +0 -0
  114. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/interfaces/cli_adapter.py +0 -0
  115. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/interfaces/mcp_adapter.py +0 -0
  116. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/interfaces/mcp_server.py +0 -0
  117. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/language_detector.py +0 -0
  118. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/language_loader.py +0 -0
  119. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/languages/__init__.py +0 -0
  120. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/languages/java_plugin.py +0 -0
  121. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/languages/javascript_plugin.py +0 -0
  122. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/languages/python_plugin.py +0 -0
  123. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/mcp/__init__.py +0 -0
  124. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/mcp/resources/__init__.py +0 -0
  125. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/mcp/resources/code_file_resource.py +0 -0
  126. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/mcp/resources/project_stats_resource.py +0 -0
  127. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/mcp/server.py +0 -0
  128. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/mcp/tools/__init__.py +0 -0
  129. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/mcp/tools/analyze_scale_tool.py +0 -0
  130. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/mcp/tools/analyze_scale_tool_cli_compatible.py +0 -0
  131. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/mcp/tools/base_tool.py +0 -0
  132. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/mcp/tools/find_and_grep_tool.py +0 -0
  133. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/mcp/tools/query_tool.py +0 -0
  134. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/mcp/tools/read_partial_tool.py +0 -0
  135. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/mcp/tools/table_format_tool.py +0 -0
  136. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/mcp/tools/universal_analyze_tool.py +0 -0
  137. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/mcp/utils/__init__.py +0 -0
  138. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/mcp/utils/error_handler.py +0 -0
  139. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/mcp/utils/path_resolver.py +0 -0
  140. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/models.py +0 -0
  141. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/output_manager.py +0 -0
  142. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/plugins/__init__.py +0 -0
  143. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/plugins/base.py +0 -0
  144. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/plugins/manager.py +0 -0
  145. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/project_detector.py +0 -0
  146. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/queries/__init__.py +0 -0
  147. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/queries/java.py +0 -0
  148. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/queries/javascript.py +0 -0
  149. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/queries/python.py +0 -0
  150. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/queries/typescript.py +0 -0
  151. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/query_loader.py +0 -0
  152. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/security/__init__.py +0 -0
  153. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/security/boundary_manager.py +0 -0
  154. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/security/regex_checker.py +0 -0
  155. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/security/validator.py +0 -0
  156. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/table_formatter.py +0 -0
  157. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/tree_sitter_analyzer/utils.py +0 -0
  158. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/upload_interactive.py +0 -0
  159. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.2}/upload_to_pypi.py +0 -0
@@ -0,0 +1,51 @@
1
+ # Set the default behavior for all files
2
+ * text=auto
3
+
4
+ # Explicitly declare text files you want to always be normalized and converted
5
+ # to native line endings on checkout
6
+ *.py text eol=lf
7
+ *.md text eol=lf
8
+ *.yml text eol=lf
9
+ *.yaml text eol=lf
10
+ *.toml text eol=lf
11
+ *.txt text eol=lf
12
+ *.json text eol=lf
13
+ *.js text eol=lf
14
+ *.ts text eol=lf
15
+ *.html text eol=lf
16
+ *.css text eol=lf
17
+ *.sh text eol=lf
18
+ *.bat text eol=crlf
19
+
20
+ # Declare files that will always have CRLF line endings on checkout
21
+ *.sln text eol=crlf
22
+
23
+ # Denote all files that are truly binary and should not be modified
24
+ *.png binary
25
+ *.jpg binary
26
+ *.jpeg binary
27
+ *.gif binary
28
+ *.ico binary
29
+ *.mov binary
30
+ *.mp4 binary
31
+ *.mp3 binary
32
+ *.flv binary
33
+ *.fla binary
34
+ *.swf binary
35
+ *.gz binary
36
+ *.zip binary
37
+ *.7z binary
38
+ *.ttf binary
39
+ *.eot binary
40
+ *.woff binary
41
+ *.woff2 binary
42
+ *.pyc binary
43
+ *.pdf binary
44
+ *.ez binary
45
+ *.bz2 binary
46
+ *.swp binary
47
+ *.cache binary
48
+ *.so binary
49
+ *.dll binary
50
+ *.dylib binary
51
+ *.exe binary
@@ -1,22 +1,175 @@
1
1
  # Changelog
2
2
 
3
- ## [1.2.5] - 2025-09-15
3
+ ## [1.3.2] - 2025-09-16
4
4
 
5
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
6
+ - **🐛 Critical Cache Format Compatibility Bug**: Fixed a severe bug in the smart caching system where `get_compatible_result` was returning wrong format cached data
7
+ - **Format Validation**: Added `_is_format_compatible` method to prevent `total_only` integer results from being returned for detailed query requests
8
+ - **User Impact**: Resolved the issue where users requesting detailed results after `total_only` queries received integers instead of proper structured data
9
+ - **Backward Compatibility**: Maintained compatibility for dict results with unknown formats while preventing primitive data return bugs
9
10
 
10
11
  ### 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
12
+ - **Root Cause**: Direct cache hit was returning cached results without format validation
13
+ - **Solution**: Implemented format compatibility checking before returning cached data
14
+ - **Test Coverage**: Added comprehensive test suite with 6 test cases covering format compatibility scenarios
15
+ - **Bug Discovery**: Issue was identified through real-world usage documented in `roo_task_sep-16-2025_1-18-38-am.md`
14
16
 
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
17
+ This hotfix ensures MCP tools return correctly formatted data and prevents cache format mismatches that could break AI-assisted development workflows.
18
+
19
+ ## [1.3.1] - 2025-01-15
20
+
21
+ ### Added
22
+ - **🧠 Intelligent Cross-Format Cache Optimization**: Revolutionary smart caching system that eliminates duplicate searches across different result formats
23
+ - **🎯 total_only → count_only_matches Optimization**: Solves the specific user pain point of "don't waste double time re-searching when user wants file details after getting total count"
24
+ - **⚡ Smart Result Derivation**: Automatically derives file lists and summaries from cached count data without additional ripgrep executions
25
+ - **🔄 Cross-Format Cache Keys**: Intelligent cache key mapping enables seamless format transitions
26
+ - **📊 Dual Caching Mechanism**: total_only searches now cache both simple totals and detailed file counts simultaneously
27
+
28
+ ### Performance Improvements
29
+ - **99.9% faster follow-up queries**: Second queries complete in ~0.001s vs ~14s for cache misses (14,000x improvement)
30
+ - **Zero duplicate executions**: Related search format requests served entirely from cache derivation
31
+ - **Perfect for LLM workflows**: Optimized for "total → details" analysis patterns common in AI-assisted development
32
+ - **Memory efficient derivation**: File lists and summaries generated from existing count data without additional storage
33
+
34
+ ### Technical Implementation
35
+ - **Enhanced SearchCache**: Added `get_compatible_result()` method for intelligent cross-format result derivation
36
+ - **Smart Cache Logic**: `_create_count_only_cache_key()` enables cross-format cache key generation
37
+ - **Result Format Detection**: `_determine_requested_format()` automatically identifies output format requirements
38
+ - **Comprehensive Derivation**: `create_file_summary_from_count_data()` and `extract_file_list_from_count_data()` utility functions
39
+
40
+ ### New Files & Demonstrations
41
+ - **Core Implementation**: Enhanced `search_cache.py` with cross-format optimization logic
42
+ - **Tool Integration**: Updated `search_content_tool.py` with dual caching mechanism
43
+ - **Utility Functions**: Extended `fd_rg_utils.py` with result derivation capabilities
44
+ - **Comprehensive Testing**: `test_smart_cache_optimization.py` with 11 test cases covering all optimization scenarios
45
+ - **Performance Demos**: `smart_cache_demo.py` and `total_only_optimization_demo.py` showcasing real-world improvements
46
+
47
+ ### User Experience Improvements
48
+ - **Transparent Optimization**: Users get performance benefits without changing their usage patterns
49
+ - **Intelligent Workflows**: "Get total count → Get file distribution" workflows now complete almost instantly
50
+ - **Cache Hit Indicators**: Results include `cache_hit` and `cache_derived` flags for transparency
51
+ - **Real-world Validation**: Tested with actual project codebases showing consistent 99.9%+ performance improvements
52
+
53
+ ### Developer Benefits
54
+ - **Type-Safe Implementation**: Full TypeScript-style type annotations for better IDE support
55
+ - **Comprehensive Documentation**: Detailed docstrings and examples for all new functionality
56
+ - **Robust Testing**: Mock-based tests ensure CI stability across different environments
57
+ - **Performance Monitoring**: Built-in cache statistics and performance tracking
58
+
59
+ This release addresses the critical performance bottleneck identified by users: avoiding redundant searches when transitioning from summary to detailed analysis. The intelligent caching system represents a fundamental advancement in search result optimization for code analysis workflows.
60
+
61
+ ## [1.3.0] - 2025-01-15
62
+
63
+ ### Added
64
+ - **Phase 2 Cache System**: Implemented comprehensive search result caching for significant performance improvements
65
+ - **SearchCache Module**: Thread-safe in-memory cache with TTL and LRU eviction (`tree_sitter_analyzer/mcp/utils/search_cache.py`)
66
+ - **Cache Integration**: Integrated caching into `search_content` MCP tool for automatic performance optimization
67
+ - **Performance Monitoring**: Added comprehensive cache statistics tracking and performance validation
68
+ - **Cache Demo**: Interactive demonstration script showing 200-400x performance improvements (`examples/cache_demo.py`)
69
+
70
+ ### Performance Improvements
71
+ - **99.8% faster repeated searches**: Cache hits complete in ~0.001s vs ~0.4s for cache misses
72
+ - **200-400x speed improvements**: Demonstrated with real-world search operations
73
+ - **Automatic optimization**: Zero-configuration caching with smart defaults
74
+ - **Memory efficient**: LRU eviction and configurable cache size limits
75
+
76
+ ### Technical Details
77
+ - **Thread-safe implementation**: Uses `threading.RLock()` for concurrent access
78
+ - **Configurable TTL**: Default 1-hour cache lifetime with customizable settings
79
+ - **Smart cache keys**: Deterministic key generation based on search parameters
80
+ - **Path normalization**: Consistent caching across different path representations
81
+ - **Comprehensive testing**: 19 test cases covering functionality and performance validation
82
+
83
+ ### Documentation
84
+ - **Cache Feature Summary**: Complete implementation and performance documentation
85
+ - **Usage Examples**: Clear examples for basic usage and advanced configuration
86
+ - **Performance Benchmarks**: Real-world performance data and optimization benefits
87
+
88
+ ## [1.2.5] - 2025-09-15
89
+
90
+ ### 🐛 Bug Fixes
91
+
92
+ #### Fixed list_files tool Java file detection issue
93
+ - **Problem**: The `list_files` MCP tool failed to detect Java files when using root path "." due to command line argument conflicts in the `fd` command construction
94
+ - **Root Cause**: Conflicting pattern and path arguments in `build_fd_command` function
95
+ - **Solution**: Modified `fd_rg_utils.py` to use `--search-path` option for root directories and only append pattern when explicitly provided
96
+ - **Impact**: Significantly improved cross-platform compatibility, especially for Windows environments
97
+
98
+ ### 🔧 Technical Changes
99
+ - **File**: `tree_sitter_analyzer/mcp/tools/fd_rg_utils.py`
100
+ - Replaced positional path arguments with `--search-path` option
101
+ - Removed automatic "." pattern addition that caused conflicts
102
+ - Enhanced command construction logic for better reliability
103
+ - **Tests**: Updated `tests/test_mcp_fd_rg_tools.py`
104
+ - Modified test assertions to match new `fd` command behavior
105
+ - Ensured test coverage for both pattern and no-pattern scenarios
106
+
107
+ ### 📚 Documentation Updates
108
+ - **Enhanced GitFlow Documentation**: Added comprehensive AI-assisted development workflow
109
+ - **Multi-language Sync**: Updated English, Chinese, and Japanese versions of GitFlow documentation
110
+ - **Process Clarification**: Clarified PyPI deployment process and manual steps
111
+
112
+ ### 🚀 Deployment
113
+ - **PyPI**: Successfully deployed to PyPI as version 1.2.5
114
+ - **Compatibility**: Tested and verified on Windows environments
115
+ - **CI/CD**: All automated workflows executed successfully
116
+
117
+ ### 📊 Testing
118
+ - **Test Suite**: All 156 tests passing
119
+ - **Coverage**: Maintained high test coverage
120
+ - **Cross-platform**: Verified Windows compatibility
121
+
122
+ ## [1.2.4] - 2025-09-15
123
+
124
+ ### 🚀 Major Features
125
+
126
+ #### SMART Analysis Workflow
127
+ - **Complete S-M-A-R-T workflow**: Comprehensive workflow replacing the previous 3-step process
128
+ - **S (Setup)**: Project initialization and prerequisite verification
129
+ - **M (Map)**: File discovery and structure mapping
130
+ - **A (Analyze)**: Code analysis and element extraction
131
+ - **R (Retrieve)**: Content search and pattern matching
132
+ - **T (Trace)**: Dependency tracking and relationship analysis
133
+
134
+ #### Advanced MCP Tools
135
+ - **ListFilesTool**: Lightning-fast file discovery powered by `fd`
136
+ - **SearchContentTool**: High-performance text search powered by `ripgrep`
137
+ - **FindAndGrepTool**: Combined file discovery and content analysis
138
+ - **Enterprise-grade Testing**: 50+ comprehensive test cases ensuring reliability and stability
139
+ - **Multi-platform Support**: Complete installation guides for Windows, macOS, and Linux
140
+
141
+ ### 📋 Prerequisites & Installation
142
+ - **fd and ripgrep**: Complete installation instructions for all platforms
143
+ - **Windows Optimization**: winget commands and PowerShell execution policies
144
+ - **Cross-platform**: Support for macOS (Homebrew), Linux (apt/dnf/pacman), Windows (winget/choco/scoop)
145
+ - **Verification Steps**: Commands to verify successful installation
146
+
147
+ ### 🔧 Quality Assurance
148
+ - **Test Coverage**: 1564 tests passed, 74.97% coverage
149
+ - **MCP Tools Coverage**: 93.04% (Excellent)
150
+ - **Real-world Validation**: All examples tested and verified with actual tool execution
151
+ - **Enterprise-grade Reliability**: Comprehensive error handling and validation
152
+
153
+ ### 📚 Documentation & Localization
154
+ - **Complete Translation**: Japanese and Chinese READMEs fully updated
155
+ - **SMART Workflow**: Detailed step-by-step guides in all three languages
156
+ - **Prerequisites Documentation**: Comprehensive installation guides
157
+ - **Verified Examples**: All MCP tool examples tested and validated
158
+
159
+ ### 🎯 Sponsor Acknowledgment
160
+ Special thanks to **@o93** for sponsoring this comprehensive MCP tools enhancement, enabling the early release of advanced file search and content analysis features.
161
+
162
+ ### 🛠️ Technical Improvements
163
+ - **Advanced File Search**: Powered by fd for lightning-fast file discovery
164
+ - **Intelligent Content Search**: Powered by ripgrep for high-performance text search
165
+ - **Combined Tools**: FindAndGrepTool for comprehensive file discovery and content analysis
166
+ - **Token Optimization**: Multiple output formats optimized for AI assistant interactions
167
+
168
+ ### ⚡ Performance & Reliability
169
+ - **Built-in Timeouts**: Responsive operation with configurable time limits
170
+ - **Result Limits**: Prevents overwhelming output with smart result limiting
171
+ - **Error Resilience**: Comprehensive error handling and graceful degradation
172
+ - **Cross-platform Testing**: Validated on Windows, macOS, and Linux environments
20
173
 
21
174
  ## [1.2.3] - 2025-08-27
22
175
 
@@ -9,30 +9,30 @@ gitGraph
9
9
  commit id: "Initial commit"
10
10
  branch develop
11
11
  commit id: "dev-1"
12
-
12
+
13
13
  branch feature/my-feature
14
14
  commit id: "feat-1"
15
15
  commit id: "feat-2"
16
-
16
+
17
17
  checkout develop
18
18
  merge feature/my-feature id: "merge-feat"
19
-
19
+
20
20
  branch release/v1.0.0
21
21
  commit id: "release-prep"
22
-
22
+
23
23
  checkout main
24
24
  merge release/v1.0.0 tag: "v1.0.0"
25
-
25
+
26
26
  checkout develop
27
27
  merge release/v1.0.0
28
-
28
+
29
29
  checkout main
30
30
  branch hotfix/critical-fix
31
31
  commit id: "fix-bug"
32
-
32
+
33
33
  checkout main
34
34
  merge hotfix/critical-fix tag: "v1.0.1"
35
-
35
+
36
36
  checkout develop
37
37
  merge hotfix/critical-fix
38
38
  ```
@@ -108,7 +108,18 @@ For manual releases:
108
108
 
109
109
  3. **Update documentation**:
110
110
  ```bash
111
- uv run python scripts/improved_readme_updater.py
111
+ # Update README.md with new version, test counts, and coverage:
112
+ # - Version badges ([![Version](https://img.shields.io/badge/version-X.X.X-blue.svg)])
113
+ # - Test count badges ([![Tests](https://img.shields.io/badge/tests-XXXX%20passed-brightgreen.svg)])
114
+ # - Coverage badges ([![Coverage](https://img.shields.io/badge/coverage-XX.XX%25-green.svg)])
115
+ # - "Latest Quality Achievements" section version references
116
+ # - Test environment section version references
117
+ # - All other version mentions throughout the document
118
+ # Update README_zh.md and README_ja.md translations with same changes
119
+ # Update GITFLOW_zh.md and GITFLOW_ja.md if workflow changes were made
120
+ # Update CHANGELOG.md with release details
121
+ # Update version references throughout all documentation files
122
+ # Note: scripts/improved_readme_updater.py may not exist, do manual updates
112
123
  ```
113
124
 
114
125
  4. **Commit changes**:
@@ -123,7 +134,7 @@ For manual releases:
123
134
  git merge release/v1.0.0
124
135
  git tag -a v1.0.0 -m "Release v1.0.0"
125
136
  git push origin main --tags
126
-
137
+
127
138
  git checkout develop
128
139
  git merge release/v1.0.0
129
140
  git push origin develop
@@ -153,21 +164,39 @@ For manual releases:
153
164
  3. **Update version** for hotfix:
154
165
  ```bash
155
166
  # Update pyproject.toml version (e.g., 1.0.0 -> 1.0.1)
167
+ # Update server_version in pyproject.toml
168
+ # Sync version to __init__.py
169
+ uv run python scripts/sync_version_minimal.py
156
170
  ```
157
171
 
158
- 4. **Merge to main and develop**:
172
+ 4. **Update documentation**:
173
+ ```bash
174
+ # Update CHANGELOG.md with hotfix details
175
+ # Update README.md with new version, test counts, and coverage:
176
+ # - Version badges ([![Version](https://img.shields.io/badge/version-X.X.X-blue.svg)])
177
+ # - Test count badges ([![Tests](https://img.shields.io/badge/tests-XXXX%20passed-brightgreen.svg)])
178
+ # - Coverage badges ([![Coverage](https://img.shields.io/badge/coverage-XX.XX%25-green.svg)])
179
+ # - "Latest Quality Achievements" section version references
180
+ # - Test environment section version references
181
+ # - All other version mentions throughout the document
182
+ # Update README_zh.md and README_ja.md translations with same changes
183
+ # Update GITFLOW_zh.md and GITFLOW_ja.md if workflow changes were made
184
+ # Update version references throughout all documentation files
185
+ ```
186
+
187
+ 5. **Merge to main and develop**:
159
188
  ```bash
160
189
  git checkout main
161
190
  git merge hotfix/critical-bug-fix
162
191
  git tag -a v1.0.1 -m "Hotfix v1.0.1"
163
192
  git push origin main --tags
164
-
193
+
165
194
  git checkout develop
166
195
  git merge hotfix/critical-bug-fix
167
196
  git push origin develop
168
197
  ```
169
198
 
170
- 5. **Delete hotfix branch**:
199
+ 6. **Delete hotfix branch**:
171
200
  ```bash
172
201
  git branch -d hotfix/critical-bug-fix
173
202
  git push origin --delete hotfix/critical-bug-fix
@@ -210,6 +239,40 @@ uv run python scripts/automated_release.py
210
239
 
211
240
  ## Best Practices
212
241
 
242
+ ### Line Ending Configuration
243
+
244
+ To prevent mixed line ending errors in pre-commit hooks:
245
+
246
+ 1. **Ensure `.gitattributes` exists** with proper configuration:
247
+ ```
248
+ * text=auto
249
+ *.py text eol=lf
250
+ *.md text eol=lf
251
+ *.yml text eol=lf
252
+ *.toml text eol=lf
253
+ ```
254
+
255
+ 2. **Configure Git locally**:
256
+ ```bash
257
+ git config core.autocrlf input
258
+ ```
259
+
260
+ 3. **Configure your editor** (VS Code example in `.vscode/settings.json`):
261
+ ```json
262
+ {
263
+ "files.eol": "\n",
264
+ "files.insertFinalNewline": true,
265
+ "files.trimTrailingWhitespace": true
266
+ }
267
+ ```
268
+
269
+ 4. **If you encounter mixed line ending errors**:
270
+ ```bash
271
+ # Re-normalize all files
272
+ git rm --cached -r . && git reset --hard HEAD
273
+ git add . && git commit -m "Normalize line endings"
274
+ ```
275
+
213
276
  ### Commit Messages
214
277
 
215
278
  Use conventional commit format:
@@ -253,195 +316,6 @@ Before merging to `develop`:
253
316
  - **Automatic versioning**: Managed by automated release process
254
317
  - **Version consistency**: All files updated together
255
318
 
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
-
445
319
  ## CI/CD Integration
446
320
 
447
321
  ### GitHub Actions Workflows