From 40011e2003033f38ca04d61ecf62d73e0ff9fbe2 Mon Sep 17 00:00:00 2001 From: Julien Calixte Date: Tue, 2 Jun 2026 22:14:44 +0200 Subject: [PATCH] chore(signup): bump wisp/mist to latest, lock with manifest.toml MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Two prior deploy failures came from transitive deps drifting on every fresh build (gleam_httpc 4.1.1 calling result.then, then glisten 8.0.3 calling list.range). The root cause is no manifest.toml — every build re-resolved deps from scratch and tripped on broken combinations within the allowed ranges. - Bump wisp 1.x → 2.x and mist 4.x → 6.x so the resolver picks modern, mutually compatible versions of the whole tree (stdlib 1.0.3, glisten 9.0.1, httpc 5.0.0). - Commit manifest.toml so deps are pinned by checksum. - Adapt to wisp 2.x: json_response now takes String, not StringTree. - Drop unused gleam/http/response import. - Add signup/build/ to .gitignore. --- .gitignore | 3 +++ signup/gleam.toml | 4 ++-- signup/manifest.toml | 36 +++++++++++++++++++++++++++++++ signup/src/coolcouch_signup.gleam | 3 +-- 4 files changed, 42 insertions(+), 4 deletions(-) create mode 100644 signup/manifest.toml diff --git a/.gitignore b/.gitignore index 7b57fc5..f619e74 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,6 @@ *.swp *.swo .DS_Store + +# gleam build artifacts +signup/build/ diff --git a/signup/gleam.toml b/signup/gleam.toml index 1ea7e3b..00a1f31 100644 --- a/signup/gleam.toml +++ b/signup/gleam.toml @@ -9,5 +9,5 @@ gleam_httpc = ">= 4.2.0 and < 6.0.0" gleam_json = ">= 3.0.0 and < 4.0.0" gleam_erlang = ">= 1.0.0 and < 2.0.0" envoy = ">= 1.0.0 and < 2.0.0" -mist = ">= 4.0.0 and < 6.0.0" -wisp = ">= 1.6.0 and < 2.0.0" +mist = ">= 6.0.0 and < 7.0.0" +wisp = ">= 2.0.0 and < 3.0.0" diff --git a/signup/manifest.toml b/signup/manifest.toml new file mode 100644 index 0000000..a926bf4 --- /dev/null +++ b/signup/manifest.toml @@ -0,0 +1,36 @@ +# This file was generated by Gleam +# You typically do not need to edit this file + +packages = [ + { name = "directories", version = "1.2.0", build_tools = ["gleam"], requirements = ["envoy", "gleam_stdlib", "platform", "simplifile"], otp_app = "directories", source = "hex", outer_checksum = "D13090CFCDF6759B87217E8DDD73A75903A700148A82C1D33799F333E249BF9E" }, + { name = "envoy", version = "1.2.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "envoy", source = "hex", outer_checksum = "9C6FBB6BFA02A52798BEEC5977A738CAD6E4A057F4B67FD0C8061AD2502C191A" }, + { name = "exception", version = "2.1.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "exception", source = "hex", outer_checksum = "329D269D5C2A314F7364BD2711372B6F2C58FA6F39981572E5CA68624D291F8C" }, + { name = "filepath", version = "1.1.2", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "filepath", source = "hex", outer_checksum = "B06A9AF0BF10E51401D64B98E4B627F1D2E48C154967DA7AF4D0914780A6D40A" }, + { name = "gleam_crypto", version = "1.6.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleam_crypto", source = "hex", outer_checksum = "2DE9E4EF53CF6FEE049D4F765731F7178F7A11AEFAE00EEE63BF7536B354AD3F" }, + { name = "gleam_erlang", version = "1.3.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleam_erlang", source = "hex", outer_checksum = "1124AD3AA21143E5AF0FC5CF3D9529F6DB8CA03E43A55711B60B6B7B3874375C" }, + { name = "gleam_http", version = "4.3.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleam_http", source = "hex", outer_checksum = "82EA6A717C842456188C190AFB372665EA56CE13D8559BF3B1DD9E40F619EE0C" }, + { name = "gleam_httpc", version = "5.0.0", build_tools = ["gleam"], requirements = ["gleam_erlang", "gleam_http", "gleam_stdlib"], otp_app = "gleam_httpc", source = "hex", outer_checksum = "C545172618D07811494E97AAA4A0FB34DA6F6D0061FDC8041C2F8E3BE2B2E48F" }, + { name = "gleam_json", version = "3.1.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleam_json", source = "hex", outer_checksum = "44FDAA8847BE8FC48CA7A1C089706BD54BADCC4C45B237A992EDDF9F2CDB2836" }, + { name = "gleam_otp", version = "1.2.0", build_tools = ["gleam"], requirements = ["gleam_erlang", "gleam_stdlib"], otp_app = "gleam_otp", source = "hex", outer_checksum = "BA6A294E295E428EC1562DC1C11EA7530DCB981E8359134BEABC8493B7B2258E" }, + { name = "gleam_stdlib", version = "1.0.3", build_tools = ["gleam"], requirements = [], otp_app = "gleam_stdlib", source = "hex", outer_checksum = "1F543AFBA5D33DA493E6087F4E4C4F20D899411343512686C98A8ABB2963CF22" }, + { name = "glisten", version = "9.0.1", build_tools = ["gleam"], requirements = ["gleam_erlang", "gleam_otp", "gleam_stdlib", "logging"], otp_app = "glisten", source = "hex", outer_checksum = "7795AA50830656F3A0316A6B26595F893C83272DA901B3405E31339CAA31A10B" }, + { name = "gramps", version = "6.0.1", build_tools = ["gleam"], requirements = ["gleam_crypto", "gleam_erlang", "gleam_http", "gleam_stdlib"], otp_app = "gramps", source = "hex", outer_checksum = "D55636072DEE173F6586A5679D3C02EC7A0DE3F8646B78C351B72908FF223DF7" }, + { name = "houdini", version = "1.2.1", build_tools = ["gleam"], requirements = [], otp_app = "houdini", source = "hex", outer_checksum = "6F8AC2F12974567FB744BEA66AC93CEB76AAEA19AD28564623F76CDA9BC26A85" }, + { name = "hpack_erl", version = "0.3.0", build_tools = ["rebar3"], requirements = [], otp_app = "hpack", source = "hex", outer_checksum = "D6137D7079169D8C485C6962DFE261AF5B9EF60FBC557344511C1E65E3D95FB0" }, + { name = "logging", version = "1.5.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "logging", source = "hex", outer_checksum = "BC5F18CE5DD9686100229FE5409BDC3DD5C46D5A7DF2F804AD2D8F0DD6C5060E" }, + { name = "marceau", version = "1.3.0", build_tools = ["gleam"], requirements = [], otp_app = "marceau", source = "hex", outer_checksum = "2D1C27504BEF45005F5DFB18591F8610FB4BFA91744878210BDC464412EC44E9" }, + { name = "mist", version = "6.0.3", build_tools = ["gleam"], requirements = ["exception", "gleam_erlang", "gleam_http", "gleam_otp", "gleam_stdlib", "glisten", "gramps", "hpack_erl", "logging"], otp_app = "mist", source = "hex", outer_checksum = "1B07F321D5FA0CB162D81496F2DE96AEB6EF8980F4F38230A4CC3F849497E020" }, + { name = "platform", version = "1.0.0", build_tools = ["gleam"], requirements = [], otp_app = "platform", source = "hex", outer_checksum = "8339420A95AD89AAC0F82F4C3DB8DD401041742D6C3F46132A8739F6AEB75391" }, + { name = "simplifile", version = "2.4.0", build_tools = ["gleam"], requirements = ["filepath", "gleam_stdlib"], otp_app = "simplifile", source = "hex", outer_checksum = "7C18AFA4FED0B4CE1FA5B0B4BAC1FA1744427054EA993565F6F3F82E5453170D" }, + { name = "wisp", version = "2.2.2", build_tools = ["gleam"], requirements = ["directories", "exception", "filepath", "gleam_crypto", "gleam_erlang", "gleam_http", "gleam_json", "gleam_stdlib", "houdini", "logging", "marceau", "mist", "simplifile"], otp_app = "wisp", source = "hex", outer_checksum = "5FF5F1E288C3437252ABB93D8F9CF42FF652CE7AD54480CFE736038DC09C4F22" }, +] + +[requirements] +envoy = { version = ">= 1.0.0 and < 2.0.0" } +gleam_erlang = { version = ">= 1.0.0 and < 2.0.0" } +gleam_http = { version = ">= 4.0.0 and < 5.0.0" } +gleam_httpc = { version = ">= 4.2.0 and < 6.0.0" } +gleam_json = { version = ">= 3.0.0 and < 4.0.0" } +gleam_stdlib = { version = ">= 0.59.0 and < 2.0.0" } +mist = { version = ">= 6.0.0 and < 7.0.0" } +wisp = { version = ">= 2.0.0 and < 3.0.0" } diff --git a/signup/src/coolcouch_signup.gleam b/signup/src/coolcouch_signup.gleam index f6411de..be469ee 100644 --- a/signup/src/coolcouch_signup.gleam +++ b/signup/src/coolcouch_signup.gleam @@ -4,7 +4,6 @@ import gleam/dynamic/decode import gleam/erlang/process import gleam/http.{Get, Options, Post} import gleam/http/request -import gleam/http/response import gleam/httpc import gleam/int import gleam/io @@ -231,5 +230,5 @@ fn error_json(status: Int, code: String) -> Response { } fn json_response(status: Int, body: json.Json) -> Response { - wisp.json_response(json.to_string_tree(body), status) + wisp.json_response(json.to_string(body), status) }