render-engine 2026.6.2a3__tar.gz → 2026.6.2a4__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 (137) hide show
  1. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/.github/scripts/publish_prerelease.py +11 -0
  2. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/.github/workflows/publish-prerelease.yml +5 -8
  3. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/PKG-INFO +1 -1
  4. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/src/render_engine/__version__.py +3 -3
  5. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/src/render_engine.egg-info/PKG-INFO +1 -1
  6. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/src/render_engine.egg-info/scm_version.json +2 -2
  7. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/.all-contributorsrc +0 -0
  8. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/.devcontainer/Dockerfile +0 -0
  9. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/.devcontainer/devcontainer.json +0 -0
  10. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/.devcontainer/setup.sh +0 -0
  11. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/.github/FUNDING.yml +0 -0
  12. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/.github/ISSUE_TEMPLATE/config.yaml +0 -0
  13. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/.github/ISSUE_TEMPLATE/form_issue_template.yml +0 -0
  14. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  15. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/.github/dependabot-bot.yml +0 -0
  16. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/.github/dependabot.yml +0 -0
  17. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/.github/labeler.yml +0 -0
  18. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/.github/release.yml +0 -0
  19. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/.github/workflows/devcontainer-ci.yml +0 -0
  20. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/.github/workflows/labeler.yml +0 -0
  21. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/.github/workflows/lint.yml +0 -0
  22. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/.github/workflows/publish.yml +0 -0
  23. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/.github/workflows/scorecard.yml +0 -0
  24. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/.github/workflows/test.yml +0 -0
  25. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/.github/workflows/todos.yml +0 -0
  26. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/.github/workflows/ty.yml +0 -0
  27. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/.gitignore +0 -0
  28. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/.markdownlint.json +0 -0
  29. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/.pre-commit-config.yaml +0 -0
  30. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/.readthedocs.yml +0 -0
  31. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/.vscode/tasks.json +0 -0
  32. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/README.md +0 -0
  33. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/SECURITY.md +0 -0
  34. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/coverage-badge.svg +0 -0
  35. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/docs/docs/archive.md +0 -0
  36. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/docs/docs/assets/create environment vs code.gif +0 -0
  37. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/docs/docs/assets/create-app-help.png +0 -0
  38. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/docs/docs/assets/create-codespace.gif +0 -0
  39. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/docs/docs/assets/launching a dev container.gif +0 -0
  40. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/docs/docs/assets/render-engine-init-help.png +0 -0
  41. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/docs/docs/assets/render-engine-init.png +0 -0
  42. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/docs/docs/collection.md +0 -0
  43. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/docs/docs/content_manager.md +0 -0
  44. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/docs/docs/contributing/CODE_OF_CONDUCT.md +0 -0
  45. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/docs/docs/contributing/CONTRIBUTING.md +0 -0
  46. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/docs/docs/contributing/SECURITY.md +0 -0
  47. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/docs/docs/contributing/environment_setup.md +0 -0
  48. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/docs/docs/contributing/gen_badge.md +0 -0
  49. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/docs/docs/contributing/github-actions-file-patterns.md +0 -0
  50. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/docs/docs/contributing/style-guide.md +0 -0
  51. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/docs/docs/contributing/testing.md +0 -0
  52. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/docs/docs/contributing/typechecking.md +0 -0
  53. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/docs/docs/custom_collections.md +0 -0
  54. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/docs/docs/data_object.md +0 -0
  55. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/docs/docs/feeds.md +0 -0
  56. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/docs/docs/getting-started/building-your-site.md +0 -0
  57. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/docs/docs/getting-started/creating-a-collection.md +0 -0
  58. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/docs/docs/getting-started/creating-a-page.md +0 -0
  59. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/docs/docs/getting-started/creating-your-app.md +0 -0
  60. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/docs/docs/getting-started/extending-render-engine.md +0 -0
  61. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/docs/docs/getting-started/getting-started.md +0 -0
  62. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/docs/docs/getting-started/installation.md +0 -0
  63. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/docs/docs/getting-started/layout.md +0 -0
  64. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/docs/docs/index.md +0 -0
  65. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/docs/docs/page.md +0 -0
  66. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/docs/docs/parsers.md +0 -0
  67. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/docs/docs/plugins.md +0 -0
  68. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/docs/docs/site.md +0 -0
  69. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/docs/docs/site_map.md +0 -0
  70. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/docs/docs/templates.md +0 -0
  71. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/docs/docs/theme_management.md +0 -0
  72. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/docs/mkdocs.yml +0 -0
  73. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/justfile +0 -0
  74. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/noxfile.py +0 -0
  75. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/pyproject.toml +0 -0
  76. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/setup.cfg +0 -0
  77. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/src/render_engine/.gitignore +0 -0
  78. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/src/render_engine/__init__.py +0 -0
  79. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/src/render_engine/_base_object.py +0 -0
  80. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/src/render_engine/archive.py +0 -0
  81. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/src/render_engine/blog.py +0 -0
  82. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/src/render_engine/collection.py +0 -0
  83. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/src/render_engine/content_managers/__init__.py +0 -0
  84. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/src/render_engine/content_managers/base_content_manager.py +0 -0
  85. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/src/render_engine/content_managers/file_content_manager.py +0 -0
  86. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/src/render_engine/data_object.py +0 -0
  87. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/src/render_engine/engine.py +0 -0
  88. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/src/render_engine/feeds.py +0 -0
  89. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/src/render_engine/hookspecs.py +0 -0
  90. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/src/render_engine/links.py +0 -0
  91. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/src/render_engine/page.py +0 -0
  92. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/src/render_engine/parsers/__init__.py +0 -0
  93. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/src/render_engine/parsers/base_parsers.py +0 -0
  94. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/src/render_engine/parsers/markdown.py +0 -0
  95. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/src/render_engine/plugins.py +0 -0
  96. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/src/render_engine/py.typed +0 -0
  97. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/src/render_engine/render_engine_templates/__init__.py +0 -0
  98. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/src/render_engine/render_engine_templates/archive.html +0 -0
  99. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/src/render_engine/render_engine_templates/base.html +0 -0
  100. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/src/render_engine/render_engine_templates/base_collection_path.md +0 -0
  101. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/src/render_engine/render_engine_templates/base_templates/_archive.html +0 -0
  102. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/src/render_engine/render_engine_templates/base_templates/_base.html +0 -0
  103. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/src/render_engine/render_engine_templates/base_templates/_page.html +0 -0
  104. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/src/render_engine/render_engine_templates/components/footer.html +0 -0
  105. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/src/render_engine/render_engine_templates/components/page_title.html +0 -0
  106. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/src/render_engine/render_engine_templates/page.html +0 -0
  107. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/src/render_engine/render_engine_templates/redirect.html +0 -0
  108. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/src/render_engine/render_engine_templates/rss2.0.xml +0 -0
  109. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/src/render_engine/render_engine_templates/rss2.0_items.xml +0 -0
  110. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/src/render_engine/render_engine_templates/sitemap.xml +0 -0
  111. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/src/render_engine/render_engine_templates/sitemap_item.xml +0 -0
  112. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/src/render_engine/site.py +0 -0
  113. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/src/render_engine/site_map.py +0 -0
  114. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/src/render_engine/themes.py +0 -0
  115. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/src/render_engine/utils/__init__.py +0 -0
  116. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/src/render_engine.egg-info/SOURCES.txt +0 -0
  117. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/src/render_engine.egg-info/dependency_links.txt +0 -0
  118. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/src/render_engine.egg-info/requires.txt +0 -0
  119. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/src/render_engine.egg-info/scm_file_list.json +0 -0
  120. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/src/render_engine.egg-info/top_level.txt +0 -0
  121. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/tests/conftest.py +0 -0
  122. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/tests/test_archive.py +0 -0
  123. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/tests/test_base_object.py +0 -0
  124. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/tests/test_blog.py +0 -0
  125. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/tests/test_collections.py +0 -0
  126. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/tests/test_engine.py +0 -0
  127. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/tests/test_feeds/conftest_feed.py +0 -0
  128. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/tests/test_feeds/test_feeds.py +0 -0
  129. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/tests/test_file_content_manager.py +0 -0
  130. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/tests/test_page.py +0 -0
  131. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/tests/test_parsers_remove_2024_3_1.py +0 -0
  132. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/tests/test_plugins.py +0 -0
  133. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/tests/test_site.py +0 -0
  134. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/tests/test_site_map.py +0 -0
  135. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/tests/test_templates/test_base_html.py +0 -0
  136. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/tests/test_theme_manager.py +0 -0
  137. {render_engine-2026.6.2a3 → render_engine-2026.6.2a4}/uv.lock +0 -0
@@ -23,6 +23,8 @@ surrounding project environment:
23
23
  uv run --script .github/scripts/publish_prerelease.py selftest
24
24
  """
25
25
 
26
+ import shlex
27
+ import subprocess
26
28
  from datetime import date
27
29
 
28
30
  import rich_click as click
@@ -55,6 +57,15 @@ def bump(current: str) -> None:
55
57
  click.echo(next_version(Version(current), date.today()))
56
58
 
57
59
 
60
+ @cli.command()
61
+ @click.argument("command")
62
+ def bump_from_command(command: str) -> None:
63
+ """Execute the given command and then bump the result. Must output to JSON array of values"""
64
+ cmd_output = subprocess.run(shlex.split(command), timeout=5, capture_output=True, text=True)
65
+ current_version = max(map(Version, cmd_output.stdout.splitlines()))
66
+ click.echo(next_version(current_version, date.today()))
67
+
68
+
58
69
  @cli.command()
59
70
  def selftest() -> None:
60
71
  """Run offline checks of the version rules."""
@@ -11,7 +11,8 @@ on:
11
11
  default: true
12
12
 
13
13
  permissions:
14
- contents: write
14
+ contents: write # gives access to apply the tag
15
+ actions: write # permission to run the workflow for publish
15
16
 
16
17
  concurrency:
17
18
  group: release-publish
@@ -41,15 +42,11 @@ jobs:
41
42
  DRY_RUN: ${{ github.event.inputs.dry_run || 'false' }}
42
43
  run: |
43
44
  # Latest release in the repo; the bump script computes the next one.
44
- latest="$(gh release list --json name --jq '.[].name' \
45
- | grep -E '^[0-9]{4}\.[0-9]+\.[0-9]+([ab][0-9]+)?$' \
46
- | sort -V | tail -1)"
47
- version="$(uv run --script .github/scripts/publish_prerelease.py bump "$latest")"
48
- echo "Latest tag: $latest -> next: $version"
49
- echo "version=$version" >> "$GITHUB_OUTPUT"
45
+ version=$(uv run --script .github/scripts/publish_prerelease.py bump-from "gh release list --json name --jq '.[].name'")
46
+ echo "Next Version: $version"
50
47
 
51
48
  if [ "$DRY_RUN" = "true" ]; then
52
- echo "DRY RUN — would publish $version"
49
+ echo "DRY RUN — Next Version would be: $version"
53
50
  else
54
51
  gh release create "$version" --prerelease --generate-notes --title "$version"
55
52
  gh workflow run publish.yml --ref "$version"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: render_engine
3
- Version: 2026.6.2a3
3
+ Version: 2026.6.2a4
4
4
  Summary: A Flexible Static Site Generator for Python
5
5
  Project-URL: homepage, https://github.com/render-engine/render-engine/
6
6
  Project-URL: repository, https://github.com/render-engine/render-engine/
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
18
18
  commit_id: str | None
19
19
  __commit_id__: str | None
20
20
 
21
- __version__ = version = '2026.6.2a3'
22
- __version_tuple__ = version_tuple = (2026, 6, 2, 'a3')
21
+ __version__ = version = '2026.6.2a4'
22
+ __version_tuple__ = version_tuple = (2026, 6, 2, 'a4')
23
23
 
24
- __commit_id__ = commit_id = 'g4f6a1146b'
24
+ __commit_id__ = commit_id = 'gdeeaa1e6f'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: render_engine
3
- Version: 2026.6.2a3
3
+ Version: 2026.6.2a4
4
4
  Summary: A Flexible Static Site Generator for Python
5
5
  Project-URL: homepage, https://github.com/render-engine/render-engine/
6
6
  Project-URL: repository, https://github.com/render-engine/render-engine/
@@ -1,7 +1,7 @@
1
1
  {
2
- "tag": "2026.6.2a3",
2
+ "tag": "2026.6.2a4",
3
3
  "distance": 0,
4
- "node": "g4f6a1146b58fd472f9ea22c82214a33c937825f6",
4
+ "node": "gdeeaa1e6f1d4de201ca1999ad7059a93e9303484",
5
5
  "dirty": false,
6
6
  "branch": "HEAD",
7
7
  "node_date": "2026-06-23"