diff --git a/docs/guides/basichttp-front.md b/docs/guides/basichttp-front.md index bb649c1..4bf65c5 100644 --- a/docs/guides/basichttp-front.md +++ b/docs/guides/basichttp-front.md @@ -36,13 +36,14 @@ answers 404. | Package | Version | What this guide uses it for | |---|---|---| -| `statifier_router` | 0.9.2 | the `:basichttp` key, the location, `StatifierRouter.BasicHTTP.Front`, the location table, `deliver_event/4` for a failed send | +| `statifier_router` | 0.10.0 | the `:basichttp` key, the location, `StatifierRouter.BasicHTTP.Front`, the location table, `deliver_event/4` for a failed send | | `statifier` | 2.10.0 | the Basic HTTP Event I/O Processor and its decoder | | `statifier_persistence` | 0.24.0 | the chart registry, the execution, the input log | -0.9.2 is the floor because it is the first `statifier_router` release -whose migrations and address reaper both run on this app's SQLite -database. +0.10.0 is the floor because it is the published release `mix.exs` +requires. 0.9.2 was the first `statifier_router` release whose +migrations and address reaper both run on this app's SQLite database, +and nothing this guide uses needs more. ## The chart diff --git a/docs/guides/first-workflow-routed.md b/docs/guides/first-workflow-routed.md index f744426..8b67eda 100644 --- a/docs/guides/first-workflow-routed.md +++ b/docs/guides/first-workflow-routed.md @@ -23,13 +23,14 @@ The recipe is written and checked against these releases, which are what | Package | Version | What the recipe uses it for | |---|---|---| -| `statifier_router` | 0.9.2 | the binding, the delivery, the address and dedupe tables, the route, the reapers, the migration's `:leading_columns`, `:on_create` and `:on_step` | +| `statifier_router` | 0.10.0 | the binding, the delivery, the address and dedupe tables, the route, the reapers, the migration's `:leading_columns`, `:on_create` and `:on_step` | | `statifier_persistence` | 0.24.0 | the chart registry, the execution, the input log, `ended_at` | | `statifier_blocks` | 0.41.0 | the document and the compile | | `statifier` | 2.10.0 | compiling the chart and running it | -`statifier_router` 0.9.2 requires `statifier ~> 2.10` and -`statifier_persistence ~> 0.18`, which is what moved those two with it. +`statifier_router` 0.10.0 requires `statifier ~> 2.10` and +`statifier_persistence ~> 0.18`, as 0.9.2 did, which is what moved those +two with it. `mix.exs` asks for `statifier_persistence ~> 0.20` all the same: 0.20.0 adds `Executions.migrate_batch/3`, which `docs/guides/migrating-waiting-executions.md` walks, and `mix.lock` @@ -341,7 +342,14 @@ Each of these is in `statifier_router`'s README and not needed here: ## Moving the first-workflow host to these pins -The latest move, from statifier_router 0.6.0 to 0.9.2, is the one that +The latest move, from statifier_router 0.9.2 to 0.10.0, needed nothing in +this recipe: 0.10.0 adds no migration version; its one new option, +`:around_delivery`, wraps nothing unless a configuration sets it, and this +one sets none; its reap change is to the statement Postgres runs, so the +`reaped` step on SQLite counts the same rows. Nothing in this recipe +needs more than 0.9.2. + +The move before it, from statifier_router 0.6.0 to 0.9.2, is the one that touched a migration and the reapers. 0.8.0 added the router's third migration version, V03, which renames the subscription table's unique index on Postgres. The migration this recipe runs calls `StatifierRouter.Migrations.up/1` with no @@ -350,7 +358,7 @@ failed on SQLite until 0.9.1 made it do nothing there; a database that already ran V02 needs no new migration of its own, since V03 has nothing to rename on SQLite. 0.8.0 also wrote the address reaper's stamp and delete with Postgres's `= ANY(...)`, so the `reaped` step failed on SQLite -until 0.9.2 wrote them as an IN list. 0.9.2 is therefore the floor. The same move took statifier +until 0.9.2 wrote them as an IN list. 0.9.2 was therefore the floor. The same move took statifier to 2.10.0 and statifier_persistence to 0.24.0, which changed nothing here. 0.9.0's BasicHTTP front is not part of this recipe; its configuration sets no `:basichttp`, so its executions get no location. diff --git a/docs/guides/first-workflow.md b/docs/guides/first-workflow.md index 113b943..ead37a9 100644 --- a/docs/guides/first-workflow.md +++ b/docs/guides/first-workflow.md @@ -23,7 +23,7 @@ The recipe is written and checked against these releases, which are what | `statifier_blocks` | 0.41.0 | the document, `Plan.expressible/3`, the compile | | `statifier_persistence` | 0.24.0 | the chart registry, the execution, the input log, `ended_at` | | `statifier_oban` | 0.13.0 | the invoke job and its `:invoke_timeout`, the timer job | -| `statifier_router` | 0.9.2 | two of the publish-time checks | +| `statifier_router` | 0.10.0 | two of the publish-time checks | `statifier_datamodel` 0.5.0 arrives through `statifier_blocks`. The first line the command prints names the versions it actually loaded. @@ -244,6 +244,10 @@ router releases add a migration version and the BasicHTTP front, which adds a migration, and none of what they refuse is something this recipe does. +The move to statifier_router 0.10.0 needed nothing here either: it adds +no migration version, and its one new option, `:around_delivery`, wraps +nothing unless a configuration sets it. + The statifier_blocks moves after 0.35.0, one minor at a time to 0.41.0, needed nothing in this recipe either. statifier_blocks' `docs/upgrading.md` says what each asks of a host; this recipe calls `Decode.decode/1`, diff --git a/mix.exs b/mix.exs index da3c536..e39607b 100644 --- a/mix.exs +++ b/mix.exs @@ -600,7 +600,15 @@ defmodule StatifierExamples.MixProject do # `priv/repo/migrations/20260930120001_add_statifier_router_locations.exs` # creates. 0.7.0's `:unchecked` entry for a `:bindings_resolver` # reaches nothing here, since no configuration sets one. - {:statifier_router, "~> 0.9.2"}, + # + # 2026-10-02: the requirement moves to `~> 0.10.0`, the published + # release after 0.9.2, to keep the reference embedder on what is + # published; nothing above needs more than 0.9.2. 0.10.0 keeps the + # location token out of the router's own debug query log on the + # statements that bind it, adds the opt-in `:around_delivery` option, + # which no configuration here sets, and on Postgres reaps with one + # array statement, which this SQLite database never reaches. + {:statifier_router, "~> 0.10.0"}, # The observing/authoring component library, declared DIRECTLY rather # than taken transitively. `statifier_ui` is an OPTIONAL dependency of diff --git a/mix.lock b/mix.lock index 60693e6..dab145f 100644 --- a/mix.lock +++ b/mix.lock @@ -49,7 +49,7 @@ "statifier_datamodel": {:hex, :statifier_datamodel, "0.5.0", "72a04a1d672e9734b324b5aa164abd49f388cc921283edc22fbe8b22e371eca7", [:mix], [], "hexpm", "1d4e1f5ba659d80713f5c901343bac65ddedea2dfd984666fd60d5ddcd623f2a"}, "statifier_oban": {:hex, :statifier_oban, "0.13.0", "c95b0dd9b82e1c4355cb60085c088e662ecedcc307c6c1f11f4d4c4ace62f153", [:mix], [{:oban, "~> 2.19", [hex: :oban, repo: "hexpm", optional: false]}, {:statifier, "~> 2.5", [hex: :statifier, repo: "hexpm", optional: false]}, {:statifier_persistence, "~> 0.13", [hex: :statifier_persistence, repo: "hexpm", optional: true]}, {:telemetry, "~> 1.3", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "6e6ed294eaf9b07b3a05ca420e3d247a867ae316f2dfbba27d470239f64a6bcc"}, "statifier_persistence": {:hex, :statifier_persistence, "0.24.0", "43cbeb2e2f818e3bb80f636e208892f27049b990773db850fabd9bec44585dfd", [:mix], [{:ecto_sql, "~> 3.10", [hex: :ecto_sql, repo: "hexpm", optional: true]}, {:statifier, "~> 2.9", [hex: :statifier, repo: "hexpm", optional: false]}, {:telemetry, "~> 1.3", [hex: :telemetry, repo: "hexpm", optional: false]}, {:uxid, "~> 2.0", [hex: :uxid, repo: "hexpm", optional: false]}], "hexpm", "fa10f4a40d34d9d4db196b8afb1b20b4714e802f6aa4fe6bf95c61aea60cf7ce"}, - "statifier_router": {:hex, :statifier_router, "0.9.2", "d3aaf1e0264fbe6a7a87fac46bee8f808d8da10085437e2fdbb8656adcac71fa", [:mix], [{:broadway, "~> 1.3", [hex: :broadway, repo: "hexpm", optional: false]}, {:ecto_sql, "~> 3.14", [hex: :ecto_sql, repo: "hexpm", optional: false]}, {:predicator, "~> 9.4", [hex: :predicator, repo: "hexpm", optional: false]}, {:statifier, "~> 2.10", [hex: :statifier, repo: "hexpm", optional: false]}, {:statifier_persistence, "~> 0.18", [hex: :statifier_persistence, repo: "hexpm", optional: false]}, {:telemetry, "~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}, {:uxid, "~> 2.0", [hex: :uxid, repo: "hexpm", optional: false]}], "hexpm", "692ab40898c5cf01eae035cf824971d6278f26802ff8ce31ef3450abc83e317c"}, + "statifier_router": {:hex, :statifier_router, "0.10.0", "a584aa95b4a0d3f8d693b62c4dbef45cd2b3f7bfb1aa36cef643d691591bad77", [:mix], [{:broadway, "~> 1.3", [hex: :broadway, repo: "hexpm", optional: false]}, {:ecto_sql, "~> 3.14", [hex: :ecto_sql, repo: "hexpm", optional: false]}, {:predicator, "~> 9.4", [hex: :predicator, repo: "hexpm", optional: false]}, {:statifier, "~> 2.10", [hex: :statifier, repo: "hexpm", optional: false]}, {:statifier_persistence, "~> 0.18", [hex: :statifier_persistence, repo: "hexpm", optional: false]}, {:telemetry, "~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}, {:uxid, "~> 2.0", [hex: :uxid, repo: "hexpm", optional: false]}], "hexpm", "22cb23b6d33ea57eb7fd016783bf16bcf062031a736561d86e37946db72ffbee"}, "statifier_ui": {:hex, :statifier_ui, "0.10.1", "fcd918b5259e4c8ce5430c3cf2075f4d13aaa52135cb563713db526b8bec9493", [:mix], [{:kino, "~> 0.14", [hex: :kino, repo: "hexpm", optional: true]}, {:phoenix_live_view, "~> 1.0", [hex: :phoenix_live_view, repo: "hexpm", optional: true]}, {:predicator, "~> 9.4", [hex: :predicator, repo: "hexpm", optional: false]}, {:statifier, "~> 2.5", [hex: :statifier, repo: "hexpm", optional: false]}, {:statifier_datamodel, "~> 0.4", [hex: :statifier_datamodel, repo: "hexpm", optional: false]}], "hexpm", "cb4992baecefc40af76d587408b71cd94ceecd392374926ecaef07fe49211069"}, "tailwind": {:hex, :tailwind, "0.5.1", "35435b13158c90d37da11e1cfc808755fca1d7b6c5ab87b1b19c5de87e2f0a10", [:mix], [], "hexpm", "c4e26302a59fec72abc5610ecb6ad2116d9aa31f31aab2d4b8eb6e95d25a689c"}, "telemetry": {:hex, :telemetry, "1.4.2", "a0cb522801dffb1c49fe6e30561badffc7b6d0e180db1300df759faa22062855", [:rebar3], [], "hexpm", "928f6495066506077862c0d1646609eed891a4326bee3126ba54b60af61febb1"}, diff --git a/test/statifier_examples/mix_deps_test.exs b/test/statifier_examples/mix_deps_test.exs index c4195f8..bd2397b 100644 --- a/test/statifier_examples/mix_deps_test.exs +++ b/test/statifier_examples/mix_deps_test.exs @@ -987,10 +987,17 @@ defmodule StatifierExamples.MixDepsTest do # LOCK assertion back at `"0.6.` and left `mix.lock` alone; it went red # reporting the resolved 0.9.2 entry. # Reverted from a copy. + # + # 2026-10-02: the requirement moves to `~> 0.10.0`, the published release + # after 0.9.2; nothing here needs more than 0.9.2, and 0.10.0's one new + # option, `:around_delivery`, is opt-in and set by no configuration here. + # Sabotage: pointed the LOCK assertion back at `"0.9.` and left `mix.lock` + # alone; it went red reporting the resolved 0.10.0 entry. Reverted from a + # copy. test "the statifier_router dep is the Hex requirement" do deps = Mix.Project.config()[:deps] - assert {:statifier_router, "~> 0.9.2"} in deps + assert {:statifier_router, "~> 0.10.0"} in deps lock_line = "mix.lock" @@ -999,7 +1006,7 @@ defmodule StatifierExamples.MixDepsTest do |> Enum.find(&String.starts_with?(&1, ~s( "statifier_router": ))) assert lock_line, "statifier_router has no mix.lock entry" - assert lock_line =~ ~s({:hex, :statifier_router, "0.9.2) + assert lock_line =~ ~s({:hex, :statifier_router, "0.10.) refute lock_line =~ ":git," end diff --git a/test/statifier_examples/routed_workflow_test.exs b/test/statifier_examples/routed_workflow_test.exs index 9b439f2..1f02fab 100644 --- a/test/statifier_examples/routed_workflow_test.exs +++ b/test/statifier_examples/routed_workflow_test.exs @@ -36,7 +36,7 @@ defmodule StatifierExamples.RoutedWorkflowTest do assert {:ok, lines} = RoutedWorkflow.run(parcel_id: "parcel-test") assert [ - "first workflow routed on statifier_router 0.9." <> _pins, + "first workflow routed on statifier_router 0.10." <> _pins, "migrated 4 router tables, depot_id at position 2 on each", "published bdoc_parcel_route accepts parcel.scanned; " <> "every publish-time check passed, 0 warning(s)",