Skip to main content

max / makenotwork

Bump askama 0.13 to 0.16 across server and multithreaded 0.16 makes {% call %} a block node requiring {% endcall %}. Appended {% endcall %} to all 31 bare call sites in server templates; multithreaded uses no {% call %} so it is a lockfile-only bump. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Author: Max Johnson <me@maxj.phd> · 2026-07-22 22:12 UTC
Commit: b62b0cfb45dbf23223b995f35cb6d02426bf3b4b
Parent: 3f359f4
34 files changed, +86 insertions, -61 deletions
@@ -46,11 +46,11 @@ checksum = "330a5ed07fa54e4702c9d6c4174f74427fc0ef6e214bbd677ae50a5099946470"
46 46
47 47 [[package]]
48 48 name = "askama"
49 - version = "0.13.1"
49 + version = "0.16.0"
50 50 source = "registry+https://github.com/rust-lang/crates.io-index"
51 - checksum = "5d4744ed2eef2645831b441d8f5459689ade2ab27c854488fbab1fbe94fce1a7"
51 + checksum = "f1bf825125edd887a019d0a3a837dcc5499a68b0d034cc3eb594070c3e18addc"
52 52 dependencies = [
53 - "askama_derive",
53 + "askama_macros",
54 54 "itoa",
55 55 "percent-encoding",
56 56 "serde",
@@ -59,12 +59,13 @@ dependencies = [
59 59
60 60 [[package]]
61 61 name = "askama_derive"
62 - version = "0.13.1"
62 + version = "0.16.0"
63 63 source = "registry+https://github.com/rust-lang/crates.io-index"
64 - checksum = "d661e0f57be36a5c14c48f78d09011e67e0cb618f269cca9f2fd8d15b68c46ac"
64 + checksum = "e1c7065972a130eafa84215f21352ae15b4a7393da48c1f5e103904490736738"
65 65 dependencies = [
66 66 "askama_parser",
67 67 "basic-toml",
68 + "glob",
68 69 "memchr",
69 70 "proc-macro2",
70 71 "quote",
@@ -75,15 +76,25 @@ dependencies = [
75 76 ]
76 77
77 78 [[package]]
79 + name = "askama_macros"
80 + version = "0.16.0"
81 + source = "registry+https://github.com/rust-lang/crates.io-index"
82 + checksum = "0e23b1d2c4bd39a41971f6124cef4cc6fd0540913ecb90919b69ab3bbe44ae1a"
83 + dependencies = [
84 + "askama_derive",
85 + ]
86 +
87 + [[package]]
78 88 name = "askama_parser"
79 - version = "0.13.0"
89 + version = "0.16.0"
80 90 source = "registry+https://github.com/rust-lang/crates.io-index"
81 - checksum = "cf315ce6524c857bb129ff794935cf6d42c82a6cff60526fe2a63593de4d0d4f"
91 + checksum = "7db09fde9143e7ac4513358fb32ee32847125b63b18ea715afd487956da715da"
82 92 dependencies = [
83 - "memchr",
93 + "rustc-hash",
84 94 "serde",
85 95 "serde_derive",
86 - "winnow 0.7.15",
96 + "unicode-ident",
97 + "winnow",
87 98 ]
88 99
89 100 [[package]]
@@ -1450,6 +1461,12 @@ dependencies = [
1450 1461 ]
1451 1462
1452 1463 [[package]]
1464 + name = "glob"
1465 + version = "0.3.4"
1466 + source = "registry+https://github.com/rust-lang/crates.io-index"
1467 + checksum = "e4eba85ea1d0a966a983acd07deee566e67395d2d96b6fb39e62b5a833f1eb0b"
1468 +
1469 + [[package]]
1453 1470 name = "governor"
1454 1471 version = "0.10.4"
1455 1472 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3863,7 +3880,7 @@ dependencies = [
3863 3880 "toml_datetime",
3864 3881 "toml_parser",
3865 3882 "toml_writer",
3866 - "winnow 1.0.4",
3883 + "winnow",
3867 3884 ]
3868 3885
3869 3886 [[package]]
@@ -3881,7 +3898,7 @@ version = "1.1.2+spec-1.1.0"
3881 3898 source = "registry+https://github.com/rust-lang/crates.io-index"
3882 3899 checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526"
3883 3900 dependencies = [
3884 - "winnow 1.0.4",
3901 + "winnow",
3885 3902 ]
3886 3903
3887 3904 [[package]]
@@ -4733,20 +4750,14 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
4733 4750
4734 4751 [[package]]
4735 4752 name = "winnow"
4736 - version = "0.7.15"
4753 + version = "1.0.4"
4737 4754 source = "registry+https://github.com/rust-lang/crates.io-index"
4738 - checksum = "df79d97927682d2fd8adb29682d1140b343be4ac0f08fd68b7765d9c059d3945"
4755 + checksum = "23b97319f7b8343df12cc98938e5c3eb436064524c8d2b4e30a1d3a36eecdf81"
4739 4756 dependencies = [
4740 4757 "memchr",
4741 4758 ]
4742 4759
4743 4760 [[package]]
4744 - name = "winnow"
4745 - version = "1.0.4"
4746 - source = "registry+https://github.com/rust-lang/crates.io-index"
4747 - checksum = "23b97319f7b8343df12cc98938e5c3eb436064524c8d2b4e30a1d3a36eecdf81"
4748 -
4749 - [[package]]
4750 4761 name = "wiremock"
4751 4762 version = "0.6.5"
4752 4763 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -52,7 +52,7 @@ governor = "0.10"
52 52 chrono = { version = "0.4", features = ["serde"] }
53 53 uuid = { version = "1", features = ["v4", "serde"] }
54 54 pulldown-cmark = "0.13"
55 - askama = "0.13"
55 + askama = "0.16.0"
56 56
57 57 # Internal crates
58 58 mt-core = { path = "crates/mt-core" }
@@ -334,11 +334,11 @@ checksum = "ca6c635b3aa665c649ad1415f1573c85957dfa47690ec27aebe7ec17efe3c643"
334 334
335 335 [[package]]
336 336 name = "askama"
337 - version = "0.13.1"
337 + version = "0.16.0"
338 338 source = "registry+https://github.com/rust-lang/crates.io-index"
339 - checksum = "5d4744ed2eef2645831b441d8f5459689ade2ab27c854488fbab1fbe94fce1a7"
339 + checksum = "f1bf825125edd887a019d0a3a837dcc5499a68b0d034cc3eb594070c3e18addc"
340 340 dependencies = [
341 - "askama_derive",
341 + "askama_macros",
342 342 "itoa",
343 343 "percent-encoding",
344 344 "serde",
@@ -347,12 +347,13 @@ dependencies = [
347 347
348 348 [[package]]
349 349 name = "askama_derive"
350 - version = "0.13.1"
350 + version = "0.16.0"
351 351 source = "registry+https://github.com/rust-lang/crates.io-index"
352 - checksum = "d661e0f57be36a5c14c48f78d09011e67e0cb618f269cca9f2fd8d15b68c46ac"
352 + checksum = "e1c7065972a130eafa84215f21352ae15b4a7393da48c1f5e103904490736738"
353 353 dependencies = [
354 354 "askama_parser",
355 355 "basic-toml",
356 + "glob",
356 357 "memchr",
357 358 "proc-macro2",
358 359 "quote",
@@ -363,15 +364,25 @@ dependencies = [
363 364 ]
364 365
365 366 [[package]]
367 + name = "askama_macros"
368 + version = "0.16.0"
369 + source = "registry+https://github.com/rust-lang/crates.io-index"
370 + checksum = "0e23b1d2c4bd39a41971f6124cef4cc6fd0540913ecb90919b69ab3bbe44ae1a"
371 + dependencies = [
372 + "askama_derive",
373 + ]
374 +
375 + [[package]]
366 376 name = "askama_parser"
367 - version = "0.13.0"
377 + version = "0.16.0"
368 378 source = "registry+https://github.com/rust-lang/crates.io-index"
369 - checksum = "cf315ce6524c857bb129ff794935cf6d42c82a6cff60526fe2a63593de4d0d4f"
379 + checksum = "7db09fde9143e7ac4513358fb32ee32847125b63b18ea715afd487956da715da"
370 380 dependencies = [
371 - "memchr",
381 + "rustc-hash 2.1.2",
372 382 "serde",
373 383 "serde_derive",
374 - "winnow 0.7.15",
384 + "unicode-ident",
385 + "winnow 1.0.4",
375 386 ]
376 387
377 388 [[package]]
@@ -9035,6 +9046,9 @@ name = "winnow"
9035 9046 version = "1.0.4"
9036 9047 source = "registry+https://github.com/rust-lang/crates.io-index"
9037 9048 checksum = "23b97319f7b8343df12cc98938e5c3eb436064524c8d2b4e30a1d3a36eecdf81"
9049 + dependencies = [
9050 + "memchr",
9051 + ]
9038 9052
9039 9053 [[package]]
9040 9054 name = "wiremock"
@@ -34,7 +34,7 @@ tracing = "0.1.44"
34 34 tracing-subscriber = { version = "0.3.22", features = ["env-filter", "json"] }
35 35
36 36 # Templates
37 - askama = "0.13.1"
37 + askama = "0.16.0"
38 38
39 39 # Environment & Configuration
40 40 dotenvy = "0.15.7"
@@ -24,7 +24,7 @@
24 24 </header>
25 25
26 26 {% if items.is_empty() %}
27 - {% call ui::empty_state("", "This collection is empty.") %}
27 + {% call ui::empty_state("", "This collection is empty.") %}{% endcall %}
28 28 {% else %}
29 29 <section>
30 30 {% for item in items %}
@@ -11,7 +11,7 @@
11 11 <h1 class="page-title">Your Feed</h1>
12 12
13 13 {% if items.is_empty() %}
14 - {% call ui::empty_state_with_action("Nothing here yet", "Follow users, projects, or tags to see their items here.", "/discover", "Browse Discover") %}
14 + {% call ui::empty_state_with_action("Nothing here yet", "Follow users, projects, or tags to see their items here.", "/discover", "Browse Discover") %}{% endcall %}
15 15 {% else %}
16 16 <div class="feed-meta">Showing {{ showing_start }}-{{ showing_end }} of {{ total_items }} items</div>
17 17
@@ -10,7 +10,7 @@
10 10 <h1 class="git-repo-name">Repositories</h1>
11 11
12 12 {% if repos.is_empty() %}
13 - {% call ui::empty_state("", "No public repositories yet.") %}
13 + {% call ui::empty_state("", "No public repositories yet.") %}{% endcall %}
14 14 {% else %}
15 15 <ul class="git-repos-list">
16 16 {% for repo in repos %}
@@ -29,7 +29,7 @@
29 29 </nav>
30 30
31 31 {% if commits.is_empty() %}
32 - {% call ui::empty_state("", "No commits found for this file.") %}
32 + {% call ui::empty_state("", "No commits found for this file.") %}{% endcall %}
33 33 {% else %}
34 34 <ul class="git-commit-list">
35 35 {% for commit in commits %}
@@ -72,7 +72,7 @@
72 72 {% if !landing_carousel.is_empty() %}
73 73 <section class="landing-showcase" aria-label="See the platform">
74 74 <h2 class="section-label">See the platform</h2>
75 - {% call carousel::carousel("landing-shots", landing_carousel) %}
75 + {% call carousel::carousel("landing-shots", landing_carousel) %}{% endcall %}
76 76 </section>
77 77 {% endif %}
78 78
@@ -214,7 +214,7 @@
214 214
215 215 {% if !gallery.is_empty() %}
216 216 <section class="item-gallery content-section">
217 - {% call carousel::carousel("item-gallery", gallery) %}
217 + {% call carousel::carousel("item-gallery", gallery) %}{% endcall %}
218 218 </section>
219 219 {% endif %}
220 220
@@ -156,6 +156,6 @@
156 156 }
157 157 </script>
158 158 </mnw-media-player>
159 - {% call island::island("media-player") %}
159 + {% call island::island("media-player") %}{% endcall %}
160 160 <script src="/static/page-library-audio.js?v=0623" defer></script>
161 161 {% endblock %}
@@ -150,6 +150,6 @@
150 150 }
151 151 </script>
152 152 </mnw-media-player>
153 - {% call island::island("media-player") %}
153 + {% call island::island("media-player") %}{% endcall %}
154 154 <script src="/static/page-library-video.js?v=0623" defer></script>
155 155 {% endblock %}
@@ -93,7 +93,7 @@
93 93
94 94 {% if !gallery.is_empty() %}
95 95 <section class="project-gallery">
96 - {% call carousel::carousel("project-gallery", gallery) %}
96 + {% call carousel::carousel("project-gallery", gallery) %}{% endcall %}
97 97 </section>
98 98 {% endif %}
99 99
@@ -25,7 +25,7 @@
25 25
26 26 <section class="posts-list">
27 27 {% if posts.is_empty() %}
28 - {% call ui::empty_state("", "No blog posts yet.") %}
28 + {% call ui::empty_state("", "No blog posts yet.") %}{% endcall %}
29 29 {% else %}
30 30 {% for post in posts %}
31 31 <div class="post-entry">
@@ -25,7 +25,7 @@
25 25 </nav>
26 26
27 27 {% if categories.is_empty() %}
28 - {% call ui::empty_state("", "No tags found in this category.") %}
28 + {% call ui::empty_state("", "No tags found in this category.") %}{% endcall %}
29 29 {% else %}
30 30 <div class="tag-grid">
31 31 {% for cat in categories %}
@@ -5,7 +5,7 @@
5 5 Convention: import once at the top of a template as `ui`:
6 6 {%- import "partials/_ui.html" as ui -%}
7 7 then call:
8 - {% call ui::empty_state("No items yet", "Create one to get started.") %}
8 + {% call ui::empty_state("No items yet", "Create one to get started.") %}{% endcall %}
9 9 #}
10 10
11 11 {% macro empty_state(title, body) -%}
@@ -1,6 +1,6 @@
1 1 {%- import "partials/_ui.html" as ui -%}
2 2 {% if appeals.is_empty() %}
3 - {% call ui::empty_state("", "No pending appeals.") %}
3 + {% call ui::empty_state("", "No pending appeals.") %}{% endcall %}
4 4 {% else %}
5 5 <div class="scroll-x">
6 6 <table class="compact-table minw-700" aria-label="Pending appeals">
@@ -1,6 +1,6 @@
1 1 {%- import "partials/_ui.html" as ui -%}
2 2 {% if comp_codes.is_empty() %}
3 - {% call ui::empty_state("", "No comp codes yet.") %}
3 + {% call ui::empty_state("", "No comp codes yet.") %}{% endcall %}
4 4 {% else %}
5 5 <div class="scroll-x">
6 6 <table class="compact-table minw-700" aria-label="Comp codes">
@@ -1,6 +1,6 @@
1 1 {%- import "partials/_ui.html" as ui -%}
2 2 {% if reports.is_empty() %}
3 - {% call ui::empty_state("", "No reports found.") %}
3 + {% call ui::empty_state("", "No reports found.") %}{% endcall %}
4 4 {% else %}
5 5 <table class="admin-report-table">
6 6 <thead>
@@ -1,6 +1,6 @@
1 1 {%- import "partials/_ui.html" as ui -%}
2 2 {% if users.is_empty() %}
3 - {% call ui::empty_state("", "No users found.") %}
3 + {% call ui::empty_state("", "No users found.") %}{% endcall %}
4 4 {% else %}
5 5 <div class="scroll-x">
6 6 <table class="compact-table minw-800" aria-label="Users">