fabricatio 0.3.14.dev8__tar.gz → 0.3.15.dev5__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.
Files changed (165) hide show
  1. fabricatio-0.3.15.dev5/.github/workflows/build-package.yaml +130 -0
  2. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/Cargo.lock +118 -163
  3. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/Cargo.toml +1 -2
  4. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/PKG-INFO +3 -1
  5. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/README.md +1 -0
  6. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/examples/write_article/write_article.py +44 -8
  7. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/pyproject.toml +2 -1
  8. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/python/fabricatio/actions/article.py +115 -19
  9. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/python/fabricatio/actions/output.py +21 -22
  10. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/python/fabricatio/models/extra/article_base.py +99 -33
  11. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/python/fabricatio/models/extra/article_essence.py +1 -4
  12. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/python/fabricatio/models/extra/article_main.py +9 -5
  13. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/python/fabricatio/models/extra/article_outline.py +1 -2
  14. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/python/fabricatio/models/extra/article_proposal.py +1 -1
  15. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/python/fabricatio/models/extra/rule.py +1 -2
  16. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/python/fabricatio/models/generic.py +93 -1
  17. fabricatio-0.3.15.dev5/python/fabricatio/models/role.py +156 -0
  18. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/python/fabricatio/rust.pyi +13 -0
  19. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/src/config.rs +4 -14
  20. fabricatio-0.3.15.dev5/src/constants/Cargo.toml +10 -0
  21. fabricatio-0.3.15.dev5/src/constants/src/lib.rs +14 -0
  22. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/src/typst_tools.rs +25 -1
  23. fabricatio-0.3.15.dev5/templates/built-in/research_content_summary.hbs +17 -0
  24. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/uv.lock +230 -230
  25. fabricatio-0.3.14.dev8/.github/workflows/build-package.yaml +0 -97
  26. fabricatio-0.3.14.dev8/python/fabricatio/capabilities/persist.py +0 -103
  27. fabricatio-0.3.14.dev8/python/fabricatio/models/role.py +0 -99
  28. fabricatio-0.3.14.dev8/templates.tar.gz +0 -0
  29. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/.github/workflows/ruff.yaml +0 -0
  30. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/.github/workflows/tests.yaml +0 -0
  31. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/.gitignore +0 -0
  32. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/LICENSE +0 -0
  33. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/Makefile +0 -0
  34. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/build.rs +0 -0
  35. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/examples/correct/correct.py +0 -0
  36. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/examples/correct/correct_loop.py +0 -0
  37. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/examples/extract_and_inject/.gitignore +0 -0
  38. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/examples/extract_and_inject/article_rag.py +0 -0
  39. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/examples/extract_and_inject/ask.py +0 -0
  40. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/examples/extract_and_inject/chunk_article.py +0 -0
  41. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/examples/extract_and_inject/extract_and_inject.py +0 -0
  42. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/examples/extract_article/extract.py +0 -0
  43. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/examples/llm_usages/llm_usage.py +0 -0
  44. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/examples/make_a_rating/rating.py +0 -0
  45. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/examples/make_diary/commits.json +0 -0
  46. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/examples/make_diary/diary.py +0 -0
  47. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/examples/minor/hello_fabricatio.py +0 -0
  48. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/examples/minor/write_a_poem.py +0 -0
  49. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/examples/propose_task/.gitignore +0 -0
  50. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/examples/propose_task/propose.py +0 -0
  51. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/examples/reviewer/censor.py +0 -0
  52. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/examples/reviewer/review.py +0 -0
  53. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/examples/rules/.gitignore +0 -0
  54. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/examples/rules/draft_ruleset.py +0 -0
  55. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/examples/search_bibtex/.gitignore +0 -0
  56. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/examples/search_bibtex/search.py +0 -0
  57. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/examples/simple_chat/chat.py +0 -0
  58. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/examples/simple_rag/simple_rag.py +0 -0
  59. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/examples/task_handle/handle_task.py +0 -0
  60. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/examples/write_article/.gitignore +0 -0
  61. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/examples/write_article/article_rag.py +0 -0
  62. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/examples/write_article/post_process.py +0 -0
  63. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/examples/write_outline/.gitignore +0 -0
  64. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/examples/write_outline/write_outline.py +0 -0
  65. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/examples/write_outline/write_outline_corrected.py +0 -0
  66. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/proto/tei.proto +0 -0
  67. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/python/fabricatio/__init__.py +0 -0
  68. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/python/fabricatio/actions/__init__.py +0 -0
  69. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/python/fabricatio/actions/article_rag.py +0 -0
  70. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/python/fabricatio/actions/fs.py +0 -0
  71. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/python/fabricatio/actions/rag.py +0 -0
  72. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/python/fabricatio/actions/rules.py +0 -0
  73. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/python/fabricatio/capabilities/__init__.py +0 -0
  74. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/python/fabricatio/capabilities/advanced_judge.py +0 -0
  75. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/python/fabricatio/capabilities/advanced_rag.py +0 -0
  76. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/python/fabricatio/capabilities/censor.py +0 -0
  77. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/python/fabricatio/capabilities/check.py +0 -0
  78. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/python/fabricatio/capabilities/correct.py +0 -0
  79. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/python/fabricatio/capabilities/extract.py +0 -0
  80. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/python/fabricatio/capabilities/propose.py +0 -0
  81. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/python/fabricatio/capabilities/rag.py +0 -0
  82. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/python/fabricatio/capabilities/rating.py +0 -0
  83. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/python/fabricatio/capabilities/review.py +0 -0
  84. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/python/fabricatio/capabilities/task.py +0 -0
  85. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/python/fabricatio/decorators.py +0 -0
  86. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/python/fabricatio/emitter.py +0 -0
  87. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/python/fabricatio/fs/__init__.py +0 -0
  88. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/python/fabricatio/fs/curd.py +0 -0
  89. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/python/fabricatio/fs/readers.py +0 -0
  90. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/python/fabricatio/journal.py +0 -0
  91. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/python/fabricatio/models/action.py +0 -0
  92. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/python/fabricatio/models/adv_kwargs_types.py +0 -0
  93. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/python/fabricatio/models/extra/__init__.py +0 -0
  94. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/python/fabricatio/models/extra/advanced_judge.py +0 -0
  95. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/python/fabricatio/models/extra/aricle_rag.py +0 -0
  96. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/python/fabricatio/models/extra/patches.py +0 -0
  97. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/python/fabricatio/models/extra/problem.py +0 -0
  98. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/python/fabricatio/models/extra/rag.py +0 -0
  99. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/python/fabricatio/models/kwargs_types.py +0 -0
  100. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/python/fabricatio/models/task.py +0 -0
  101. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/python/fabricatio/models/tool.py +0 -0
  102. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/python/fabricatio/models/usages.py +0 -0
  103. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/python/fabricatio/parser.py +0 -0
  104. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/python/fabricatio/py.typed +0 -0
  105. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/python/fabricatio/toolboxes/__init__.py +0 -0
  106. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/python/fabricatio/toolboxes/arithmetic.py +0 -0
  107. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/python/fabricatio/toolboxes/fs.py +0 -0
  108. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/python/fabricatio/utils.py +0 -0
  109. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/python/fabricatio/workflows/__init__.py +0 -0
  110. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/python/fabricatio/workflows/articles.py +0 -0
  111. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/python/fabricatio/workflows/rag.py +0 -0
  112. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/src/bib_tools.rs +0 -0
  113. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/src/event.rs +0 -0
  114. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/src/hash.rs +0 -0
  115. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/src/hbs_helpers.rs +0 -0
  116. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/src/language.rs +0 -0
  117. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/src/lib.rs +0 -0
  118. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/src/macro_utils/Cargo.toml +0 -0
  119. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/src/macro_utils/src/lib.rs +0 -0
  120. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/src/tei_client.rs +0 -0
  121. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/src/templates.rs +0 -0
  122. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/src/typst_conversion/Cargo.toml +0 -0
  123. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/src/typst_conversion/src/lib.rs +0 -0
  124. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/src/word_split.rs +0 -0
  125. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/templates/built-in/as_prompt.hbs +0 -0
  126. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/templates/built-in/binary-exploitation-ctf-solver.hbs +0 -0
  127. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/templates/built-in/chap_summary.hbs +0 -0
  128. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/templates/built-in/check_string.hbs +0 -0
  129. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/templates/built-in/claude-xml.hbs +0 -0
  130. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/templates/built-in/clean-up-code.hbs +0 -0
  131. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/templates/built-in/co_validation.hbs +0 -0
  132. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/templates/built-in/create_json_obj.hbs +0 -0
  133. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/templates/built-in/cryptography-ctf-solver.hbs +0 -0
  134. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/templates/built-in/dependencies.hbs +0 -0
  135. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/templates/built-in/document-the-code.hbs +0 -0
  136. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/templates/built-in/draft_rating_criteria.hbs +0 -0
  137. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/templates/built-in/draft_rating_manual.hbs +0 -0
  138. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/templates/built-in/draft_rating_weights_klee.hbs +0 -0
  139. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/templates/built-in/draft_tool_usage_code.hbs +0 -0
  140. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/templates/built-in/extract.hbs +0 -0
  141. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/templates/built-in/extract_criteria_from_reasons.hbs +0 -0
  142. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/templates/built-in/extract_reasons_from_examples.hbs +0 -0
  143. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/templates/built-in/find-security-vulnerabilities.hbs +0 -0
  144. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/templates/built-in/fix-bugs.hbs +0 -0
  145. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/templates/built-in/fix_troubled_obj.hbs +0 -0
  146. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/templates/built-in/fix_troubled_string.hbs +0 -0
  147. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/templates/built-in/generic_string.hbs +0 -0
  148. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/templates/built-in/improve-performance.hbs +0 -0
  149. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/templates/built-in/liststr.hbs +0 -0
  150. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/templates/built-in/make_choice.hbs +0 -0
  151. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/templates/built-in/make_judgment.hbs +0 -0
  152. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/templates/built-in/pathstr.hbs +0 -0
  153. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/templates/built-in/rate_fine_grind.hbs +0 -0
  154. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/templates/built-in/refactor.hbs +0 -0
  155. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/templates/built-in/refined_query.hbs +0 -0
  156. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/templates/built-in/retrieved_display.hbs +0 -0
  157. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/templates/built-in/reverse-engineering-ctf-solver.hbs +0 -0
  158. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/templates/built-in/review_string.hbs +0 -0
  159. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/templates/built-in/rule_requirement.hbs +0 -0
  160. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/templates/built-in/ruleset_requirement_breakdown.hbs +0 -0
  161. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/templates/built-in/task_briefing.hbs +0 -0
  162. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/templates/built-in/web-ctf-solver.hbs +0 -0
  163. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/templates/built-in/write-git-commit.hbs +0 -0
  164. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/templates/built-in/write-github-pull-request.hbs +0 -0
  165. {fabricatio-0.3.14.dev8 → fabricatio-0.3.15.dev5}/templates/built-in/write-github-readme.hbs +0 -0
@@ -0,0 +1,130 @@
1
+ name: Build and Release
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - master
7
+ pull_request:
8
+ branches:
9
+ - master
10
+
11
+ jobs:
12
+ determine_changes:
13
+ name: Determine Release Necessity & Version Details
14
+ runs-on: ubuntu-latest
15
+ outputs:
16
+ version_changed: ${{ steps.check_version_change.outputs.VERSION_CHANGED }}
17
+ current_version: ${{ steps.get_version.outputs.CURRENT_VERSION }}
18
+ is_prerelease: ${{ steps.check_prerelease.outputs.IS_PRERELEASE }}
19
+ steps:
20
+ - name: Checkout repository
21
+ uses: actions/checkout@v4
22
+ - name: Get current version from pyproject.toml
23
+ id: get_version
24
+ run: |
25
+ CURRENT_VERSION_RAW=$(grep '^version' pyproject.toml | cut -d '"' -f 2)
26
+ echo "CURRENT_VERSION=v$CURRENT_VERSION_RAW" >> $GITHUB_OUTPUT
27
+ shell: bash
28
+ - name: Get latest git tag
29
+ uses: JinoArch/get-latest-tag@latest
30
+ id: tag
31
+ - name: Check if version has changed against latest tag
32
+ id: check_version_change
33
+ run: |
34
+ LATEST_TAG=${{ steps.tag.outputs.latestTag }}
35
+ VERSION_FROM_PYPROJECT=${{ steps.get_version.outputs.CURRENT_VERSION }}
36
+ echo "Latest git tag is $LATEST_TAG"
37
+ echo "Current version (from pyproject.toml, prefixed with 'v') is $VERSION_FROM_PYPROJECT"
38
+ if [ "$LATEST_TAG" != "$VERSION_FROM_PYPROJECT" ]; then
39
+ echo "VERSION_CHANGED=true" >> $GITHUB_OUTPUT
40
+ else
41
+ echo "VERSION_CHANGED=false" >> $GITHUB_OUTPUT
42
+ fi
43
+ shell: bash
44
+ - name: Check if current version is a prerelease
45
+ id: check_prerelease
46
+ run: |
47
+ VERSION_FROM_PYPROJECT=${{ steps.get_version.outputs.CURRENT_VERSION }}
48
+ if [[ "$VERSION_FROM_PYPROJECT" == *"-"* ]]; then # e.g., v1.0.0-alpha
49
+ echo "IS_PRERELEASE=true" >> $GITHUB_OUTPUT
50
+ else
51
+ echo "IS_PRERELEASE=false" >> $GITHUB_OUTPUT
52
+ fi
53
+ shell: bash
54
+
55
+
56
+ create-release:
57
+ if: needs.determine_changes.outputs.version_changed == 'true'
58
+ name: Create Release
59
+ needs: determine_changes
60
+ runs-on: ubuntu-latest
61
+ steps:
62
+ - name: Checkout repository
63
+ uses: actions/checkout@v4
64
+ - name: Packing templates
65
+ run: |
66
+ tar -czf templates.tar.gz templates
67
+ - name: Create Release and upload assets
68
+ id: create_release
69
+ uses: softprops/action-gh-release@v2
70
+ with:
71
+ tag_name: ${{ needs.determine_changes.outputs.current_version }}
72
+ name: ${{ needs.determine_changes.outputs.current_version }}
73
+ files: |
74
+ templates.tar.gz
75
+ prerelease: ${{ needs.determine_changes.outputs.is_prerelease }}
76
+ generate_release_notes: true
77
+ env:
78
+ GITHUB_TOKEN: ${{ secrets.PAT }}
79
+
80
+
81
+
82
+ check-and-release:
83
+ name: Build, Package, and Release
84
+ needs:
85
+ - create-release
86
+ - determine_changes
87
+ runs-on: ${{ matrix.os }}
88
+ strategy:
89
+ matrix:
90
+ os: [ windows-latest, ubuntu-latest ]
91
+ python-version: [ "3.12", "3.13" ]
92
+ steps:
93
+ - name: Checkout repository
94
+ uses: actions/checkout@v4
95
+
96
+ - name: Install the latest version of uv
97
+ uses: astral-sh/setup-uv@v6.0.1
98
+ with:
99
+ version: "latest"
100
+ - name: Install nightly rust
101
+ run: |
102
+ rustup default nightly
103
+ - name: Install Protoc
104
+ uses: arduino/setup-protoc@v3
105
+
106
+ - name: Install deps
107
+ run: |
108
+ uv sync --no-install-project --all-extras --index https://pypi.org/simple -p ${{ matrix.python-version }}
109
+
110
+ - name: Build
111
+ run: |
112
+ make PY=${{ matrix.python-version }}
113
+
114
+ - name: Upload assets
115
+ uses: softprops/action-gh-release@v2
116
+ with:
117
+ tag_name: ${{ needs.determine_changes.outputs.current_version }}
118
+ files: |
119
+ dist/*.whl
120
+ env:
121
+ GITHUB_TOKEN: ${{ secrets.PAT }}
122
+
123
+ - name: Upload to PyPI
124
+ if: needs.determine_changes.outputs.version_changed == 'true'
125
+ run: |
126
+ make publish PY=${{ matrix.python-version }}
127
+ env:
128
+ MATURIN_USERNAME: __token__
129
+ MATURIN_PASSWORD: ${{ secrets.PYPI_TOKEN }}
130
+