From e59ddbc141315d889e9d712414a307b7c92bc4bf Mon Sep 17 00:00:00 2001 From: Sapphire Date: Sun, 9 Aug 2026 20:13:46 -0500 Subject: [PATCH 01/44] wayvr: 26.7.1 -> 26.8.0 (cherry picked from commit 2aea93e065800ee03f0cfd73d55df085817d3a71) --- pkgs/by-name/wa/wayvr/package.nix | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/wa/wayvr/package.nix b/pkgs/by-name/wa/wayvr/package.nix index dab03ad22a39..d120bb8db6ce 100644 --- a/pkgs/by-name/wa/wayvr/package.nix +++ b/pkgs/by-name/wa/wayvr/package.nix @@ -4,6 +4,7 @@ dbus, fetchFromGitHub, lib, + libinput, libx11, libxext, libxrandr, @@ -26,16 +27,16 @@ }: rustPlatform.buildRustPackage (finalAttrs: { pname = "wayvr"; - version = "26.7.1"; + version = "26.8.0"; src = fetchFromGitHub { owner = "wlx-team"; repo = "wayvr"; tag = "v${finalAttrs.version}"; - hash = "sha256-SdHN3jDe2QJaRORy452RP7kTMxPOZOB/yjpApUOLhRU="; + hash = "sha256-0llU19bFJJ4yJvA6eGzOzyW8TnnurTS9js3/r+UAVCQ="; }; - cargoHash = "sha256-eGmlFtlorKG7uygLer3UW6ERLQzdugoYyXVSC2sFh+k="; + cargoHash = "sha256-yUHLtB3/cBEWVAN1vuGLLlLFqJ25ucIy6qqInTGaOvA="; nativeBuildInputs = [ pkg-config @@ -46,6 +47,7 @@ rustPlatform.buildRustPackage (finalAttrs: { alsa-lib dav1d dbus + libinput libx11 libxext libxrandr From dc86f6fbfa74ac9da11d617ad50825d5254f2e49 Mon Sep 17 00:00:00 2001 From: Sapphire Date: Sun, 9 Aug 2026 21:00:13 -0500 Subject: [PATCH 02/44] wayvr: fix xwayland-satellite executable path (cherry picked from commit 95d30c22ffd927dd7f176d5f5e6340920c06ff07) --- pkgs/by-name/wa/wayvr/package.nix | 8 ++++++ .../wayvr/use-system-xwayland-satellite.patch | 25 +++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 pkgs/by-name/wa/wayvr/use-system-xwayland-satellite.patch diff --git a/pkgs/by-name/wa/wayvr/package.nix b/pkgs/by-name/wa/wayvr/package.nix index d120bb8db6ce..4264bf2cd5aa 100644 --- a/pkgs/by-name/wa/wayvr/package.nix +++ b/pkgs/by-name/wa/wayvr/package.nix @@ -18,11 +18,13 @@ pkg-config, procps, pulseaudio, + replaceVars, rustPlatform, shaderc, stdenv, testers, wayvr, + xwayland-satellite, withOpenVR ? !stdenv.hostPlatform.isAarch64, }: rustPlatform.buildRustPackage (finalAttrs: { @@ -36,6 +38,12 @@ rustPlatform.buildRustPackage (finalAttrs: { hash = "sha256-0llU19bFJJ4yJvA6eGzOzyW8TnnurTS9js3/r+UAVCQ="; }; + patches = [ + (replaceVars ./use-system-xwayland-satellite.patch { + xwayland-satellite = lib.getExe xwayland-satellite; + }) + ]; + cargoHash = "sha256-yUHLtB3/cBEWVAN1vuGLLlLFqJ25ucIy6qqInTGaOvA="; nativeBuildInputs = [ diff --git a/pkgs/by-name/wa/wayvr/use-system-xwayland-satellite.patch b/pkgs/by-name/wa/wayvr/use-system-xwayland-satellite.patch new file mode 100644 index 000000000000..3f539add55e1 --- /dev/null +++ b/pkgs/by-name/wa/wayvr/use-system-xwayland-satellite.patch @@ -0,0 +1,25 @@ +diff --git a/wayvr/src/backend/wayvr/client.rs b/wayvr/src/backend/wayvr/client.rs +index 734e8b68..17058705 100644 +--- a/wayvr/src/backend/wayvr/client.rs ++++ b/wayvr/src/backend/wayvr/client.rs +@@ -98,7 +98,7 @@ impl WayVRCompositor { + ) -> anyhow::Result { + let (wayland_env, listener) = create_wayland_listener()?; + +- let xwayland_satellite = Command::new(bundled_executable("xwayland-satellite")) ++ let xwayland_satellite = Command::new("@xwayland-satellite@") + .arg(wayland_env.display_num_string()) + .env("WAYLAND_DISPLAY", wayland_env.wayland_display_num_string()) + .spawn() +@@ -468,11 +468,3 @@ fn accumulate_discrete_scroll(acc: &mut f32, delta_v120: i32) -> i32 { + + steps + } +- +-/// Runs executable from APPDIR, falling back to PATH +-fn bundled_executable(name: impl AsRef) -> PathBuf { +- match std::env::var_os("APPDIR") { +- Some(appdir) => PathBuf::from(appdir).join("usr").join("bin").join(name), +- None => PathBuf::from(name.as_ref()), +- } +-} From 122a628deebf2b7a8e9ce89b3cbb84a3c287fd6d Mon Sep 17 00:00:00 2001 From: Sapphire Date: Sun, 9 Aug 2026 21:41:24 -0500 Subject: [PATCH 03/44] wayvr: patch uidev rpath so dlopen'd dependencies are found (cherry picked from commit 01dc282204efbfb4ba7c53aacada0576a183b534) --- pkgs/by-name/wa/wayvr/package.nix | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/pkgs/by-name/wa/wayvr/package.nix b/pkgs/by-name/wa/wayvr/package.nix index 4264bf2cd5aa..2e8abe1213b1 100644 --- a/pkgs/by-name/wa/wayvr/package.nix +++ b/pkgs/by-name/wa/wayvr/package.nix @@ -1,14 +1,17 @@ { alsa-lib, + autoPatchelfHook, dav1d, dbus, fetchFromGitHub, lib, libinput, libx11, + libxcursor, libxext, libxrandr, libxcb, + libxi, libxkbcommon, nix-update-script, openssl, @@ -23,6 +26,8 @@ shaderc, stdenv, testers, + vulkan-loader, + wayland, wayvr, xwayland-satellite, withOpenVR ? !stdenv.hostPlatform.isAarch64, @@ -49,6 +54,7 @@ rustPlatform.buildRustPackage (finalAttrs: { nativeBuildInputs = [ pkg-config rustPlatform.bindgenHook + autoPatchelfHook ]; buildInputs = [ @@ -56,6 +62,7 @@ rustPlatform.buildRustPackage (finalAttrs: { dav1d dbus libinput + # X dependencies are dlopen'd at runtime by uidev libx11 libxext libxrandr @@ -64,6 +71,12 @@ rustPlatform.buildRustPackage (finalAttrs: { openssl openxr-loader pipewire + + # only dlopen'd at runtime by uidev + libxcursor + libxi + wayland + vulkan-loader ] ++ lib.optionals withOpenVR [ openvr ]; @@ -94,6 +107,20 @@ rustPlatform.buildRustPackage (finalAttrs: { rm $out/bin/prost_build ''; + preFixup = '' + patchelf \ + --add-needed libwayland-client.so.0 \ + --add-needed libwayland-cursor.so.0 \ + --add-needed libwayland-egl.so.1 \ + --add-needed libX11.so.6 \ + --add-needed libxcb.so.1 \ + --add-needed libXcursor.so.1 \ + --add-needed libXi.so.6 \ + --add-needed libvulkan.so.1 \ + --add-needed libxkbcommon.so.0 \ + $out/bin/uidev + ''; + passthru = { tests.testVersion = testers.testVersion { package = wayvr; }; From 78afa39b98ff72dd30ba618636ee267c4cb51b41 Mon Sep 17 00:00:00 2001 From: Sapphire Date: Sun, 9 Aug 2026 21:48:53 -0500 Subject: [PATCH 04/44] wayvr: add me as maintainer (cherry picked from commit 22fead9e5f259949025d49ce61d120bdf4440781) --- pkgs/by-name/wa/wayvr/package.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/wa/wayvr/package.nix b/pkgs/by-name/wa/wayvr/package.nix index 2e8abe1213b1..062ca59a90ee 100644 --- a/pkgs/by-name/wa/wayvr/package.nix +++ b/pkgs/by-name/wa/wayvr/package.nix @@ -134,7 +134,10 @@ rustPlatform.buildRustPackage (finalAttrs: { gpl3Only mit # wayvr-ipc ]; - maintainers = with lib.maintainers; [ Scrumplex ]; + maintainers = with lib.maintainers; [ + Scrumplex + ImSapphire + ]; platforms = lib.platforms.linux; broken = stdenv.hostPlatform.isAarch64 && withOpenVR; mainProgram = "wayvr"; From e5f495b69b9aa4a5710ae6917922cf400a54ee9f Mon Sep 17 00:00:00 2001 From: Jack Kelly Date: Fri, 14 Aug 2026 11:10:23 -0400 Subject: [PATCH 05/44] nixos/ups: run killpower driver as root upsdrv starts the driver with `upsdrvctl -u root start`, but ups-killpower invokes a bare `upsdrvctl shutdown`. Since nut is built --with-user=nutmon, nut fails to read both /var/lib/nut and the USB device with "insufficient permissions on everything". The UPS is then never told to cut its outlets: it keeps draining battery after the OS has halted, and cannot power-cycle the machine when mains returns. Ergo, run the shutdown as root. (cherry picked from commit f4d444ddff6304b489b9ad9a56e9f81f405a4b02) --- nixos/modules/services/monitoring/ups.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/modules/services/monitoring/ups.nix b/nixos/modules/services/monitoring/ups.nix index 7ca9a63d95af..24d013c642e2 100644 --- a/nixos/modules/services/monitoring/ups.nix +++ b/nixos/modules/services/monitoring/ups.nix @@ -679,7 +679,7 @@ in environment = envVars; serviceConfig = { Type = "oneshot"; - ExecStart = "${cfg.package}/bin/upsdrvctl shutdown"; + ExecStart = "${cfg.package}/bin/upsdrvctl -u root shutdown"; }; }; From fad4b5b153ca5e58da4a5df72a57fabbf0f94479 Mon Sep 17 00:00:00 2001 From: mtnash Date: Thu, 30 Jul 2026 14:11:48 -0400 Subject: [PATCH 06/44] discourse: 2026.1.4 -> 2026.7.0 Update discourse to latest(ish) ESR version from previous, soon-to-be unsupported, ESR version. Upstream changes: https://releases.discourse.org/changelog/custom?end=v2026.7.0&start=v2026.1.4 Changes: - simple version / dep updates of all plugins and discourse itself - updated the update script to correctly handle changes to discourses's architecture, and fixed a bug - the NamedTemporaryFiles were not flush()ed, which meant their content was not written - discourse now has dependencies under `migrations/` which are specified by path. this requires downloading the `migrations/` directory during the update so `bundle lock` / `bundix` run successfully. the logic for performing this was borrowed from the gitlab package. - the hashes for the newly added dart-sass download are automatically updated - updated some patches to match changes in the targeted code (notification_email, prebuild-asset-processor) - delete a no longer relevant patch (unicorn_logging_and_timeout) (discourse no longer uses unicorn internally, although the external interface is similar / pretends to still exist) - added two new patches, safe-exec-from-nix-store and sass_embedded_vendored_dart_sass - safe-exec-from-nix-store: add /nix/store to the list of executable paths for the container used to sandbox imagemagick, which by default only contains the standard FHS paths - sass_embedded_vendored_dart_sass: patch sass-embedded to use a version of dart-sass provided by the package instead of downloading it's own which would fail. this patch also involves code in default.nix which sets DART_SASS_VENDORED to the path of a downloaded dart-sass version - updated the comment on prebuild-asset-processor.patch to more accurately reflect what and why it exists (cherry picked from commit b94714baca7c4853c012e947d137f32e46c6e10b) Assisted-by: OpenAI Codex (GPT-5) --- pkgs/servers/web-apps/discourse/default.nix | 301 +++-- .../discourse/notification_email.patch | 13 +- .../discourse-bbcode-color/default.nix | 4 +- .../plugins/discourse-docs/default.nix | 4 +- .../plugins/discourse-events/default.nix | 4 +- .../plugins/discourse-ldap-auth/default.nix | 4 +- .../plugins/discourse-prometheus/default.nix | 4 +- .../discourse-saved-searches/default.nix | 4 +- .../discourse-yearly-review/default.nix | 4 +- .../discourse/prebuild-asset-processor.patch | 28 +- .../web-apps/discourse/rubyEnv/Gemfile | 43 +- .../web-apps/discourse/rubyEnv/Gemfile.lock | 984 ++++++++-------- .../web-apps/discourse/rubyEnv/gemset.nix | 1007 ++++++++++------- .../discourse/safe-exec-from-nix-store.patch | 13 + .../sass_embedded_vendored_dart_sass.patch | 28 + .../unicorn_logging_and_timeout.patch | 25 - pkgs/servers/web-apps/discourse/update.py | 62 +- 17 files changed, 1491 insertions(+), 1041 deletions(-) create mode 100644 pkgs/servers/web-apps/discourse/safe-exec-from-nix-store.patch create mode 100644 pkgs/servers/web-apps/discourse/sass_embedded_vendored_dart_sass.patch delete mode 100644 pkgs/servers/web-apps/discourse/unicorn_logging_and_timeout.patch diff --git a/pkgs/servers/web-apps/discourse/default.nix b/pkgs/servers/web-apps/discourse/default.nix index 3125d926840d..d4a84a5ec3d2 100644 --- a/pkgs/servers/web-apps/discourse/default.nix +++ b/pkgs/servers/web-apps/discourse/default.nix @@ -11,7 +11,8 @@ nixosTests, defaultGemConfig, - ruby_3_3, + ruby_3_4, + fetchzip, gzip, gnutar, git, @@ -53,18 +54,18 @@ }: let - version = "2026.1.4"; + version = "2026.7.0"; src = fetchFromGitHub { owner = "discourse"; repo = "discourse"; rev = "v${version}"; - sha256 = "sha256-kQYDKZIMsWByuCZQfUlwhoIew5QykVylRMh6xvrHIBY="; + sha256 = "sha256-rp1s/8bCWsDc0Z0Ia6NysL6byAD/sTQmEHHXwN3uUkE="; }; pnpm = pnpm_10; - ruby = ruby_3_3; + ruby = ruby_3_4; runtimeDeps = [ # For backups, themes and assets @@ -176,129 +177,171 @@ let --chdir '${discourse}/share/discourse' ''; - rubyEnv = bundlerEnv { - name = "discourse-ruby-env-${version}"; - inherit version ruby; - gemdir = ./rubyEnv; - gemset = import ./rubyEnv/gemset.nix; - gemConfig = defaultGemConfig // { - mini_racer = attrs: { - buildInputs = [ icu78 ]; - dontBuild = false; - NIX_LDFLAGS = "-licui18n"; + rubyEnv = + let + # these hashes are auto-updated by update.py + dart-x64-hash = "sha256-2rnqNeEr8PFMuFa4IhutxxXui1dCw3XQVqCV5ZwsUR8="; + dart-arm64-hash = "sha256-8sgc9IaeWSRnURFtMuSOqnKACkDc5WynmLIboYWwoSM="; + in + bundlerEnv rec { + name = "discourse-ruby-env-${version}"; + inherit version ruby; + gemdir = ./rubyEnv; + gemset = import (gemdir + "/gemset.nix") src; + passthru = { + # these MUST be passthru'd for update.py to function correctly (to update dart-dart-x64-hash and dart-arm64-hash) + inherit dart-x64-hash dart-arm64-hash gemset; }; - libv8-node = - attrs: - let - noopScript = writeShellScript "noop" "exit 0"; - linkFiles = writeShellScript "link-files" '' - cd ../.. - - mkdir -p vendor/v8/${stdenv.hostPlatform.system}/libv8/obj/ - ln -s "${nodejs-slim_22.libv8}/lib/libv8.a" vendor/v8/${stdenv.hostPlatform.system}/libv8/obj/libv8_monolith.a - - ln -s ${nodejs-slim_22.libv8}/include vendor/v8/include - - mkdir -p ext/libv8-node - echo '--- !ruby/object:Libv8::Node::Location::Vendor {}' >ext/libv8-node/.location.yml - ''; - in - { + gemConfig = defaultGemConfig // { + mini_racer = attrs: { + buildInputs = [ icu78 ]; dontBuild = false; + NIX_LDFLAGS = "-licui18n"; + }; + libv8-node = + attrs: + let + noopScript = writeShellScript "noop" "exit 0"; + linkFiles = writeShellScript "link-files" '' + cd ../.. + + mkdir -p vendor/v8/${stdenv.hostPlatform.system}/libv8/obj/ + ln -s "${nodejs-slim_22.libv8}/lib/libv8.a" vendor/v8/${stdenv.hostPlatform.system}/libv8/obj/libv8_monolith.a + + ln -s ${nodejs-slim_22.libv8}/include vendor/v8/include + + mkdir -p ext/libv8-node + echo '--- !ruby/object:Libv8::Node::Location::Vendor {}' >ext/libv8-node/.location.yml + ''; + in + { + dontBuild = false; + postPatch = '' + cp ${noopScript} libexec/build-libv8 + cp ${noopScript} libexec/build-monolith + cp ${noopScript} libexec/download-node + cp ${noopScript} libexec/extract-node + cp ${linkFiles} libexec/inject-libv8 + ''; + }; + mini_suffix = attrs: { + propagatedBuildInputs = [ libpsl ]; + dontBuild = false; + # Use our libpsl instead of the vendored one, which isn't + # available for aarch64. It has to be called + # libpsl.x86_64.so or it isn't found. postPatch = '' - cp ${noopScript} libexec/build-libv8 - cp ${noopScript} libexec/build-monolith - cp ${noopScript} libexec/download-node - cp ${noopScript} libexec/extract-node - cp ${linkFiles} libexec/inject-libv8 + cp $(readlink -f ${lib.getLib libpsl}/lib/libpsl.so) vendor/libpsl.x86_64.so ''; }; - mini_suffix = attrs: { - propagatedBuildInputs = [ libpsl ]; - dontBuild = false; - # Use our libpsl instead of the vendored one, which isn't - # available for aarch64. It has to be called - # libpsl.x86_64.so or it isn't found. - postPatch = '' - cp $(readlink -f ${lib.getLib libpsl}/lib/libpsl.so) vendor/libpsl.x86_64.so - ''; - }; - tokenizers = attrs: { - cargoDeps = rustPlatform.fetchCargoVendor { - inherit (buildRubyGem { inherit (attrs) gemName version source; }) - name - src - unpackPhase - nativeBuildInputs - ; - hash = "sha256-Yxcerq4Wil1nrEzHoEmsTAj4VnUmrwRlA3WO2b72yOc="; + tokenizers = attrs: { + cargoDeps = rustPlatform.fetchCargoVendor { + inherit (buildRubyGem { inherit (attrs) gemName version source; }) + name + src + unpackPhase + nativeBuildInputs + ; + hash = "sha256-BWOnHSgEkhK1yYcQIYMbGz8HyATuQ8tFk8QzoNiuML8="; + }; + + dontBuild = false; + + nativeBuildInputs = [ + cargo + rustc + rustPlatform.cargoSetupHook + rustPlatform.bindgenHook + ]; + + disallowedReferences = [ + rustc.unwrapped + ]; + + preInstall = '' + export CARGO_HOME="$PWD/../.cargo/" + ''; + + postInstall = '' + find $out -type f -name .rustc_info.json -delete + ''; }; + tiktoken_ruby = attrs: { + cargoDeps = rustPlatform.fetchCargoVendor { + inherit (buildRubyGem { inherit (attrs) gemName version source; }) + name + src + unpackPhase + nativeBuildInputs + ; + hash = "sha256-OIkSavAjja1atbeyPAKFXsXoYI3nUk9c5G3RFBj53Uk="; + }; - dontBuild = false; + dontBuild = false; - nativeBuildInputs = [ - cargo - rustc - rustPlatform.cargoSetupHook - rustPlatform.bindgenHook - ]; + nativeBuildInputs = [ + cargo + rustc + rustPlatform.cargoSetupHook + rustPlatform.bindgenHook + ]; - disallowedReferences = [ - rustc.unwrapped - ]; + disallowedReferences = [ + rustc.unwrapped + ]; - preInstall = '' - export CARGO_HOME="$PWD/../.cargo/" - ''; + preInstall = '' + export CARGO_HOME="$PWD/../.cargo/" + ''; - postInstall = '' - find $out -type f -name .rustc_info.json -delete - ''; - }; - tiktoken_ruby = attrs: { - cargoDeps = rustPlatform.fetchCargoVendor { - inherit (buildRubyGem { inherit (attrs) gemName version source; }) - name - src - unpackPhase - nativeBuildInputs - ; - hash = "sha256-zyGK+XJpMls6w0Uydegqsj4TH4IrVxANm0qmpR7+95I="; + postInstall = '' + #ls $GEM_HOME/gems/${attrs.gemName}-${attrs.version}/lib + #mv -v $GEM_HOME/gems/${attrs.gemName}-${attrs.version}/lib/{glfm_markdown/glfm_markdown.so,} + find $out -type f -name .rustc_info.json -delete + ''; + }; + sass-embedded = attrs: { + # pre-download dart sass with the version matching sass-embedded. this is the same behavior as sass-embedded does internally + # but packages don't get internet access during build so it can't do it itself + env = + let + system-code = + if stdenv.system == "x86_64-linux" then + "linux-x64" + else if stdenv.system == "aarch64-linux" then + "linux-arm64" + else + "unsupported-system-triple-download-will-fail"; + hash = + if stdenv.system == "x86_64-linux" then + dart-x64-hash + else if stdenv.system == "aarch64-linux" then + dart-arm64-hash + else + "unsupported-system"; + in + attrs.env or { } + // { + DART_SASS_VENDORED = fetchzip { + inherit hash; + url = "https://github.com/sass/dart-sass/releases/download/${attrs.version}/dart-sass-${attrs.version}-${system-code}.tar.gz"; + }; + }; + dontBuild = false; + patches = [ + ./sass_embedded_vendored_dart_sass.patch + ]; }; - - dontBuild = false; - - nativeBuildInputs = [ - cargo - rustc - rustPlatform.cargoSetupHook - rustPlatform.bindgenHook - ]; - - disallowedReferences = [ - rustc.unwrapped - ]; - - preInstall = '' - export CARGO_HOME="$PWD/../.cargo/" - ''; - - postInstall = '' - #ls $GEM_HOME/gems/${attrs.gemName}-${attrs.version}/lib - #mv -v $GEM_HOME/gems/${attrs.gemName}-${attrs.version}/lib/{glfm_markdown/glfm_markdown.so,} - find $out -type f -name .rustc_info.json -delete - ''; }; + + groups = [ + "default" + "assets" + "development" + "test" + ]; }; - groups = [ - "default" - "assets" - "development" - "test" - ]; - }; - assets = stdenv.mkDerivation { pname = "discourse-assets"; inherit version src; @@ -307,7 +350,7 @@ let pname = "discourse-assets"; inherit version src pnpm; fetcherVersion = 3; - hash = "sha256-xft/2x0iti0yJ53uI9q2+FSvKgWWfKQzlMlPFz3RZsE="; + hash = "sha256-T0qcUYHqpjeGlyozcaiVI/Art0zh2PLyuMzbquhfe/o="; }; nativeBuildInputs = runtimeDeps ++ [ @@ -345,10 +388,16 @@ let # assets precompilation task. ./assets_rake_command.patch - # Little does he know, so he decided there is no need to generate the - # theme-transpiler over and over again. Which at the same time allows the removal - # of javascript devDependencies from the runtime environment. + # Because the required dependencies to execute the build at runtime don't exist, and + # because we fail to copy tmp/ (the default directory where the asset processor is cached, + # see notes in the discourse `installPhase`) we need to change the directory to something under + # frontend/ which is moved over as expected. ./prebuild-asset-processor.patch + + # safe_exec.rb, which is used to execute ImageMagick among other things, restricts executable paths to standard FHS paths + # which breaks on nix. this patch adds the entire /nix/store to allowed paths, which is sub-optimal but + # still provides some benifits over disabling entirely. + ./safe-exec-from-nix-store.patch ]; env.RAILS_ENV = "production"; @@ -398,6 +447,7 @@ let runHook preBuild patchShebangs script/ + patchShebangs bin/ bundle exec rake assets:precompile runHook postBuild @@ -441,10 +491,6 @@ let # Add the path to the CA cert bundle to make TLS work ./action_mailer_ca_cert.patch - # Log Unicorn messages to the journal and make request timeout - # configurable - ./unicorn_logging_and_timeout.patch - # Use the Ruby API version in the plugin gem path, to match the # one constructed by bundlerEnv ./plugin_gem_api_version.patch @@ -457,11 +503,17 @@ let # Make sure the notification email setting applies ./notification_email.patch - # Little does he know, so he decided there is no need to generate the - # theme-transpiler over and over again. Which at the same time allows the removal - # of javascript devDependencies from the runtime environment. + # Because the required dependencies to execute the build at runtime don't exist, and + # because we fail to copy tmp/ (the default directory where the asset processor is cached, + # see notes in the discourse `installPhase`) we need to change the directory to something under + # frontend/ which is moved over as expected. ./prebuild-asset-processor.patch + # safe_exec.rb, which is used to execute ImageMagick among other things, restricts executable paths to standard FHS paths + # which breaks on nix. this patch adds the entire /nix/store to allowed paths, which is sub-optimal but + # still provides some benifits over disabling entirely. + ./safe-exec-from-nix-store.patch + # Our app/assets/generated folder is a symlink, but the ruby File.mkdir_p doesn't allow # a symlink in the way to the last directory. This patch explicitly resolves the symlink. ./resolve_generated_assets_symlink.patch @@ -494,6 +546,9 @@ let cp -r . $out/share/discourse rm -r $out/share/discourse/log ln -sf /var/log/discourse $out/share/discourse/log + # we don't copy `tmp` from ${assets}, which means that any pre-cached content will be re-generated later + # however, we also can't copy `tmp` because then it would not be writeable by discourse, which it must be + # and we can't write to /var/lib/discourse/tmp, because you can't do that in a build. this sucks. ln -sf /var/lib/discourse/tmp $out/share/discourse/tmp ln -sf /run/discourse/config $out/share/discourse/config ln -sf /run/discourse/public $out/share/discourse/public diff --git a/pkgs/servers/web-apps/discourse/notification_email.patch b/pkgs/servers/web-apps/discourse/notification_email.patch index 9a64b1c1f9ea..7c6369e120ad 100644 --- a/pkgs/servers/web-apps/discourse/notification_email.patch +++ b/pkgs/servers/web-apps/discourse/notification_email.patch @@ -1,11 +1,10 @@ diff --git a/db/fixtures/990_settings.rb b/db/fixtures/990_settings.rb -deleted file mode 100644 -index 6f21e58813..0000000000 +index c64d9fbc205..d8cf8d88010 100644 --- a/db/fixtures/990_settings.rb -+++ /dev/null -@@ -1,12 +0,0 @@ --# frozen_string_literal: true -- ++++ b/db/fixtures/990_settings.rb +@@ -1,14 +1,3 @@ + # frozen_string_literal: true + -if SiteSetting.notification_email == SiteSetting.defaults[:notification_email] - # don't crash for invalid hostname, which is possible in dev - begin @@ -16,3 +15,5 @@ index 6f21e58813..0000000000 - end - end -end +- + SiteSetting.api_key_last_used_epoch = Time.now if SiteSetting.api_key_last_used_epoch.blank? diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-bbcode-color/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-bbcode-color/default.nix index 78744b8933f2..b7025a045d42 100644 --- a/pkgs/servers/web-apps/discourse/plugins/discourse-bbcode-color/default.nix +++ b/pkgs/servers/web-apps/discourse/plugins/discourse-bbcode-color/default.nix @@ -9,8 +9,8 @@ mkDiscoursePlugin { src = fetchFromGitHub { owner = "discourse"; repo = "discourse-bbcode-color"; - rev = "8c621d07a7a60b94d717fd435b0f137e89db99cd"; - sha256 = "sha256-+LqlJpg9s2GbZE136FUDIRn9C10a7IYPPu1crkMqMSA="; + rev = "b68e1c3bfbfe2468f70af47045276e4463568fe3"; + sha256 = "sha256-AM3AMZFaTTf9Q6ulr9qoTZafykPFBTkXvtkmU+TAPew="; }; meta = { homepage = "https://github.com/discourse/discourse-bbcode-color"; diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-docs/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-docs/default.nix index 23bedcf7d3df..da083a671aab 100644 --- a/pkgs/servers/web-apps/discourse/plugins/discourse-docs/default.nix +++ b/pkgs/servers/web-apps/discourse/plugins/discourse-docs/default.nix @@ -9,8 +9,8 @@ mkDiscoursePlugin { src = fetchFromGitHub { owner = "discourse"; repo = "discourse-docs"; - rev = "742515b059c27803a7b813ae420b65ceba1e8798"; - sha256 = "sha256-AG4WYskmEdW68n2XX4t139I3rlc0PNAL8cTehVvEgAs="; + rev = "0796384551e3f9d328c57e88577098be05d816c7"; + sha256 = "sha256-lZ8BlFaQcd9H+bom2igbJl4Ty7qmqtpbOpGbqIF8nEo="; }; meta = { homepage = "https://github.com/discourse/discourse-docs"; diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-events/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-events/default.nix index a0a59a6495f7..d356d6b3f2ca 100644 --- a/pkgs/servers/web-apps/discourse/plugins/discourse-events/default.nix +++ b/pkgs/servers/web-apps/discourse/plugins/discourse-events/default.nix @@ -10,8 +10,8 @@ mkDiscoursePlugin { src = fetchFromGitHub { owner = "angusmcleod"; repo = "discourse-events"; - rev = "3004435beb0913296dbaf8e5b3cd65be7b84df56"; - sha256 = "sha256-TQ+mcd2IAswxqY6OJfXk+d770WBNBZ73bB2aAfxYSDs="; + rev = "5e22962b7346dbcdb579e7c3abb13c5c965c3c42"; + sha256 = "sha256-IZ7xJaPb44CZOtg4xA4crCe4//oZO3pjkgvXOM1lihE="; }; meta = { homepage = "https://github.com/angusmcleod/discourse-events"; diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/default.nix index d018474b9609..e730800ec70f 100644 --- a/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/default.nix +++ b/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/default.nix @@ -11,8 +11,8 @@ mkDiscoursePlugin { src = fetchFromGitHub { owner = "jonmbake"; repo = "discourse-ldap-auth"; - rev = "0f5749ca6443d63999f78ed8eac49dead1b322bc"; - sha256 = "sha256-QquREAexMJjza+TtDveqJ3/sgjPCziv2oje4fKL6uz4="; + rev = "9776c1d021696e5bfdb8857093b8434063bc6ae1"; + sha256 = "sha256-ZXYuplYF1xjxqcKT7+u/zkjh0fCmIgQ+cWBhs7NFm14="; }; meta = { homepage = "https://github.com/jonmbake/discourse-ldap-auth"; diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/default.nix index d4a4f2e2e263..aa9437d33559 100644 --- a/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/default.nix +++ b/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/default.nix @@ -10,8 +10,8 @@ mkDiscoursePlugin { src = fetchFromGitHub { owner = "discourse"; repo = "discourse-prometheus"; - rev = "14d2328911c3b7ed5b38c4713c52cd835793be5a"; - sha256 = "sha256-GpNh+7091Lj0JW+RB9EOgxFNOCkFVvpPd0vbbpFcvcE="; + rev = "ce51879d2c487cf74ca08d6d83d6ccb41cb28738"; + sha256 = "sha256-OhzWC8dgfwhre1HF5sjqXAeIJd3wuknzb12RMCz3+4Y="; }; patches = [ diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-saved-searches/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-saved-searches/default.nix index f40aea26be30..64d955f6e317 100644 --- a/pkgs/servers/web-apps/discourse/plugins/discourse-saved-searches/default.nix +++ b/pkgs/servers/web-apps/discourse/plugins/discourse-saved-searches/default.nix @@ -9,8 +9,8 @@ mkDiscoursePlugin { src = fetchFromGitHub { owner = "discourse"; repo = "discourse-saved-searches"; - rev = "d13a708d33fc24bb6cc111e8d84fb896caf81ef4"; - sha256 = "sha256-3hnmtHR1k1bZKH3ezauQPr7pfbQYRTbGV8a39w6m6F8="; + rev = "a930ddee76321bb929989a2edbabb799199f1445"; + sha256 = "sha256-etcN88cIgaVvVAtE+z3zNacpNpwCp+cn2lE1DzeICyk="; }; meta = { homepage = "https://github.com/discourse/discourse-saved-searches"; diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-yearly-review/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-yearly-review/default.nix index 6e023a571438..132422792950 100644 --- a/pkgs/servers/web-apps/discourse/plugins/discourse-yearly-review/default.nix +++ b/pkgs/servers/web-apps/discourse/plugins/discourse-yearly-review/default.nix @@ -9,8 +9,8 @@ mkDiscoursePlugin { src = fetchFromGitHub { owner = "discourse"; repo = "discourse-yearly-review"; - rev = "7e7df7878212ad976031cbbc17a0dd4ca1d55def"; - sha256 = "sha256-+6CmXgXEyQb6CNSqaVqbfXQCc+XJQGDQnw9vgAlse0g="; + rev = "97720c573f04ce32544ef1e9353b12005de0bdec"; + sha256 = "sha256-ZhkrPYFjhtNoh6jQhqPTMZJqHMyZo3tdbtSl3MuOJz0="; }; meta = { homepage = "https://github.com/discourse/discourse-yearly-review"; diff --git a/pkgs/servers/web-apps/discourse/prebuild-asset-processor.patch b/pkgs/servers/web-apps/discourse/prebuild-asset-processor.patch index cc3cabcf241c..774907ceaad2 100644 --- a/pkgs/servers/web-apps/discourse/prebuild-asset-processor.patch +++ b/pkgs/servers/web-apps/discourse/prebuild-asset-processor.patch @@ -1,23 +1,13 @@ diff --git a/lib/asset_processor.rb b/lib/asset_processor.rb -index 06e8cadbb4..b3368d4912 100644 +index bacb376c856..11d7d7edd32 100644 --- a/lib/asset_processor.rb +++ b/lib/asset_processor.rb -@@ -1,7 +1,7 @@ - # frozen_string_literal: true - +@@ -3,7 +3,7 @@ class AssetProcessor -- PROCESSOR_PATH = "tmp/asset-processor.js" -+ PROCESSOR_PATH = "frontend/asset-processor.js" - - @mutex = Mutex.new - @ctx_init = Mutex.new -@@ -28,7 +28,9 @@ class AssetProcessor - end - - def self.build_production_asset_processor -- File.write(PROCESSOR_PATH, build_asset_processor) -+ if (!Rails.env.production? or !File.file?(PROCESSOR_PATH)) -+ File.write(PROCESSOR_PATH, build_asset_processor) -+ end - PROCESSOR_PATH - end + BASE_COMPILER_VERSION = 113 + +- PROCESSOR_DIR = "tmp/asset-processor" ++ PROCESSOR_DIR = "frontend/asset-processor.build" + LOCK_FILE = "#{PROCESSOR_DIR}/build.lock" + + CACHE_DEPENDENCY_GLOBS = %w[ diff --git a/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile b/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile index 18ecc0c61e5e..0cb16063f2c9 100644 --- a/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile +++ b/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -ruby "~> 3.3" +ruby "~> 3.4" source "https://rubygems.org" # if there is a super emergency and rubygems is playing up, try @@ -20,7 +20,7 @@ gem "propshaft" gem "json" # this will eventually be added to rails, -# allows us to precompile all our templates in the unicorn master +# allows us to precompile all our templates in the app server master gem "actionview_precompiler", require: false gem "discourse-seed-fu" @@ -63,7 +63,9 @@ gem "fastimage" gem "aws-sdk-s3", require: false gem "aws-sdk-sns", require: false +gem "aws-sdk-sts", require: false gem "aws-sdk-mediaconvert", require: false +gem "aws-sdk-bedrockruntime", require: false gem "excon" gem "unf", require: false @@ -72,6 +74,7 @@ gem "email_reply_trimmer" gem "image_optim" gem "multi_json" gem "mustache" +gem "liquid", "5.12.0" gem "nokogiri" gem "loofah" gem "css_parser", require: false @@ -97,14 +100,14 @@ gem "rake" gem "thor", require: false gem "diffy", require: false gem "rinku" -gem "sidekiq" +gem "sidekiq", ">= 7.3.10" # ensuring it won't get downgraded to accomodate a connection_pool upgrade gem "mini_scheduler" gem "mini_racer" gem "highline", require: false -# When unicorn is not used anymore, we can use Rack 3 +# TODO: upgrade to Rack 3 now that Unicorn has been removed gem "rack", "< 3" gem "rack-protection" # security @@ -127,6 +130,7 @@ group :test do gem "rails-dom-testing", require: false gem "minio_runner", require: false gem "capybara-playwright-driver" + gem "puma", require: false end group :test, :development do @@ -142,7 +146,6 @@ group :test, :development do gem "shoulda-matchers", require: false gem "rspec-html-matchers" - gem "pry-stack_explorer", require: false gem "debug", ">= 1.0.0", require: "debug/prelude" gem "rubocop-discourse", require: false gem "parallel_tests" @@ -160,7 +163,6 @@ group :development do gem "ruby-prof", require: false, platform: :mri gem "bullet", require: !!ENV["BULLET"] gem "better_errors", platform: :mri, require: !!ENV["BETTER_ERRORS"] - gem "binding_of_caller" gem "yaml-lint" gem "yard" gem "ruby-lsp", require: false @@ -194,10 +196,12 @@ gem "htmlentities", require: false gem "rack-mini-profiler", require: ["enable_rails_patches"] -gem "unicorn", require: false, platform: :ruby -gem "puma", require: false gem "pitchfork", require: false +# Used by discourse-prometheus to collect socket queue stats. +# Was previously a transitive dependency of the unicorn gem. +gem "raindrops", require: false, platform: :ruby + gem "rbtrace", require: false, platform: :mri # required for feed importing and embedding @@ -224,6 +228,8 @@ gem "rqrcode" gem "rubyzip", require: false +gem "landlock", require: false + gem "sshkey", require: false gem "rchardet", require: false @@ -272,19 +278,10 @@ gem "iso8601" gem "rrule" group :migrations, optional: true do - gem "extralite-bundle", require: "extralite" - - # auto-loading - gem "zeitwerk" - - # databases - gem "trilogy" - - # CLI - gem "ruby-progressbar" - - # non-cryptographic hashing algorithm for generating placeholder IDs - gem "digest-xxhash" + gem "migrations-core", path: "migrations/core" + gem "migrations-tooling", path: "migrations/tooling" + gem "migrations-converters", path: "migrations/converters" + gem "migrations-importer", path: "migrations/importer" end gem "dry-initializer", "~> 3.1" @@ -301,13 +298,15 @@ gem "zendesk_api", require: false # for discourse-subscriptions gem "stripe", require: false -# for discourse-github +# for discourse-code-review gem "sawyer", require: false gem "octokit", require: false # for discourse-ai gem "tokenizers", require: false gem "tiktoken_ruby", require: false +gem "smarter_json", require: false +gem "json_completer", require: false gem "discourse_ai-tokenizers", require: false gem "ed25519" # TODO: remove this as existing ssl gem should handle this gem "Ascii85", require: false diff --git a/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile.lock b/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile.lock index 2183789763f8..d2cdb9f438e7 100644 --- a/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile.lock +++ b/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile.lock @@ -1,17 +1,68 @@ +PATH + remote: migrations/converters + specs: + migrations-converters (0.0.1) + activesupport + colored2 + i18n + markbridge (>= 0.3.1) + migrations-core + pg + zeitwerk + +PATH + remote: migrations/core + specs: + migrations-core (0.0.1) + activesupport + colored2 + concurrent-ruby + digest-xxhash + extralite-bundle + i18n + json + lru_redux + samovar + unicode-display_width + zeitwerk + +PATH + remote: migrations/importer + specs: + migrations-importer (0.0.1) + activerecord + activesupport + colored2 + i18n + migrations-core + pg + zeitwerk + +PATH + remote: migrations/tooling + specs: + migrations-tooling (0.0.1) + activerecord + activesupport + colored2 + i18n + migrations-core + zeitwerk + GEM remote: https://rubygems.org/ specs: Ascii85 (2.0.1) - actionmailer (8.0.4) - actionpack (= 8.0.4) - actionview (= 8.0.4) - activejob (= 8.0.4) - activesupport (= 8.0.4) + actionmailer (8.0.5) + actionpack (= 8.0.5) + actionview (= 8.0.5) + activejob (= 8.0.5) + activesupport (= 8.0.5) mail (>= 2.8.0) rails-dom-testing (~> 2.2) - actionpack (8.0.4) - actionview (= 8.0.4) - activesupport (= 8.0.4) + actionpack (8.0.5) + actionview (= 8.0.5) + activesupport (= 8.0.5) nokogiri (>= 1.8.5) rack (>= 2.2.4) rack-session (>= 1.0.1) @@ -19,8 +70,8 @@ GEM rails-dom-testing (~> 2.2) rails-html-sanitizer (~> 1.6) useragent (~> 0.16) - actionview (8.0.4) - activesupport (= 8.0.4) + actionview (8.0.5) + activesupport (= 8.0.5) builder (~> 3.1) erubi (~> 1.11) rails-dom-testing (~> 2.2) @@ -29,16 +80,16 @@ GEM actionview (>= 6.0.a) active_model_serializers (0.8.4) activemodel (>= 3.0) - activejob (8.0.4) - activesupport (= 8.0.4) + activejob (8.0.5) + activesupport (= 8.0.5) globalid (>= 0.3.6) - activemodel (8.0.4) - activesupport (= 8.0.4) - activerecord (8.0.4) - activemodel (= 8.0.4) - activesupport (= 8.0.4) + activemodel (8.0.5) + activesupport (= 8.0.5) + activerecord (8.0.5) + activemodel (= 8.0.5) + activesupport (= 8.0.5) timeout (>= 0.4.0) - activesupport (8.0.4) + activesupport (8.0.5) base64 benchmark (>= 0.3) bigdecimal @@ -51,20 +102,26 @@ GEM securerandom (>= 0.3) tzinfo (~> 2.0, >= 2.0.5) uri (>= 0.13.1) - addressable (2.8.8) + addressable (2.9.0) public_suffix (>= 2.0.2, < 8.0) afm (1.0.0) annotaterb (4.20.0) activerecord (>= 6.0.0) activesupport (>= 6.0.0) ast (2.4.3) + auth-sanitizer (0.1.4) + version_gem (~> 1.1, >= 1.1.9) aws-eventstream (1.4.0) aws-partitions (1.1134.0) - aws-sdk-core (3.227.0) + aws-sdk-bedrockruntime (1.74.0) + aws-sdk-core (~> 3, >= 3.244.0) + aws-sigv4 (~> 1.5) + aws-sdk-core (3.254.0) aws-eventstream (~> 1, >= 1.3.0) aws-partitions (~> 1, >= 1.992.0) aws-sigv4 (~> 1.9) base64 + bigdecimal jmespath (~> 1, >= 1.6.1) logger aws-sdk-kms (1.99.0) @@ -73,13 +130,16 @@ GEM aws-sdk-mediaconvert (1.165.0) aws-sdk-core (~> 3, >= 3.227.0) aws-sigv4 (~> 1.5) - aws-sdk-s3 (1.182.0) - aws-sdk-core (~> 3, >= 3.216.0) + aws-sdk-s3 (1.227.0) + aws-sdk-core (~> 3, >= 3.254.0) aws-sdk-kms (~> 1) aws-sigv4 (~> 1.5) aws-sdk-sns (1.96.0) aws-sdk-core (~> 3, >= 3.216.0) aws-sigv4 (~> 1.5) + aws-sdk-sts (1.12.0) + aws-sdk-core (~> 3, >= 3.110.0) + aws-sigv4 (~> 1.1) aws-sigv4 (1.12.1) aws-eventstream (~> 1, >= 1.0.2) base64 (0.3.0) @@ -89,12 +149,10 @@ GEM rack (>= 0.9.0) rouge (>= 1.0.0) bigdecimal (3.3.1) - binding_of_caller (1.0.1) - debug_inspector (>= 1.2.0) - bootsnap (1.19.0) + bootsnap (1.24.5) msgpack (~> 1.2) builder (3.3.0) - bullet (8.1.0) + bullet (8.1.3) activesupport (>= 3.0.0) uniform_notifier (~> 1.11) capybara (3.40.0) @@ -106,18 +164,22 @@ GEM rack-test (>= 0.6.3) regexp_parser (>= 1.5, < 3.0) xpath (~> 3.2) - capybara-playwright-driver (0.5.7) + capybara-playwright-driver (0.5.9) addressable capybara playwright-ruby-client (>= 1.16.0) - cbor (0.5.10.1) + cbor (0.5.10.3) certified (1.0.0) - cgi (0.5.0) + cgi (0.5.1) chunky_png (1.4.0) coderay (1.1.3) colored2 (4.0.3) - concurrent-ruby (1.3.5) + concurrent-ruby (1.3.7) connection_pool (2.5.5) + console (1.36.0) + fiber-annotation + fiber-local (~> 1.1) + json cose (1.3.1) cbor (~> 0.5.9) openssl-signature_algorithm (~> 1.0) @@ -126,24 +188,24 @@ GEM bigdecimal rexml crass (1.0.6) - css_parser (1.21.1) + css_parser (3.0.0) addressable + ssrf_filter (~> 1.5) csv (3.3.5) - date (3.5.0) - debug (1.11.0) + date (3.5.1) + debug (1.11.1) irb (~> 1.10) reline (>= 0.3.8) - debug_inspector (1.2.0) diff-lcs (1.6.2) diffy (3.4.4) digest (3.2.1) digest-xxhash (0.2.9) - discourse-emojis (1.0.44) + discourse-emojis (1.0.46) discourse-fonts (0.0.19) discourse-seed-fu (2.3.12) activerecord (>= 3.1) activesupport (>= 3.1) - discourse_ai-tokenizers (0.4) + discourse_ai-tokenizers (0.4.2) activesupport (>= 6.0) tiktoken_ruby (~> 0.0.15) tokenizers (~> 0.6.3) @@ -156,94 +218,99 @@ GEM dry-initializer (3.2.0) ed25519 (1.4.0) email_reply_trimmer (0.2.0) - erb (6.0.0) + erb (6.0.4) erubi (1.13.1) - excon (1.3.2) + excon (1.5.0) logger - exifr (1.4.1) - extralite-bundle (2.13) + exifr (1.5.1) + extralite-bundle (2.14) fabrication (3.0.0) faker (3.5.3) i18n (>= 1.8.11, < 2) - faraday (2.14.0) + faraday (2.14.3) faraday-net_http (>= 2.0, < 3.5) json logger - faraday-multipart (1.1.1) + faraday-multipart (1.2.0) multipart-post (~> 2.0) - faraday-net_http (3.4.2) + faraday-net_http (3.4.4) net-http (~> 0.5) - faraday-retry (2.3.2) + faraday-retry (2.4.0) faraday (~> 2.0) fast_blank (1.0.1) - fastimage (2.3.1) - ffi (1.17.2) - ffi (1.17.2-aarch64-linux-gnu) - ffi (1.17.2-aarch64-linux-musl) - ffi (1.17.2-arm-linux-gnu) - ffi (1.17.2-arm-linux-musl) - ffi (1.17.2-arm64-darwin) - ffi (1.17.2-x86_64-darwin) - ffi (1.17.2-x86_64-linux-gnu) - ffi (1.17.2-x86_64-linux-musl) + fastimage (2.4.1) + ffi (1.17.4) + ffi (1.17.4-aarch64-linux-gnu) + ffi (1.17.4-aarch64-linux-musl) + ffi (1.17.4-arm64-darwin) + ffi (1.17.4-x86_64-darwin) + ffi (1.17.4-x86_64-linux-gnu) + ffi (1.17.4-x86_64-linux-musl) + fiber-annotation (0.2.0) + fiber-local (1.1.0) + fiber-storage + fiber-storage (1.0.1) fspath (3.1.2) globalid (1.3.0) activesupport (>= 6.1) goldiloader (6.0.0) activerecord (>= 7.2, < 8.3) activesupport (>= 7.2, < 8.3) - google-protobuf (4.33.2) + google-protobuf (4.35.0) bigdecimal - rake (>= 13) - google-protobuf (4.33.2-aarch64-linux-gnu) + rake (~> 13.3) + google-protobuf (4.35.0-aarch64-linux-gnu) bigdecimal - rake (>= 13) - google-protobuf (4.33.2-aarch64-linux-musl) + rake (~> 13.3) + google-protobuf (4.35.0-aarch64-linux-musl) bigdecimal - rake (>= 13) - google-protobuf (4.33.2-arm64-darwin) + rake (~> 13.3) + google-protobuf (4.35.0-arm64-darwin) bigdecimal - rake (>= 13) - google-protobuf (4.33.2-x86_64-darwin) + rake (~> 13.3) + google-protobuf (4.35.0-x86_64-darwin) bigdecimal - rake (>= 13) - google-protobuf (4.33.2-x86_64-linux-gnu) + rake (~> 13.3) + google-protobuf (4.35.0-x86_64-linux-gnu) bigdecimal - rake (>= 13) - google-protobuf (4.33.2-x86_64-linux-musl) + rake (~> 13.3) + google-protobuf (4.35.0-x86_64-linux-musl) bigdecimal - rake (>= 13) + rake (~> 13.3) guess_html_encoding (0.0.11) hana (1.3.7) hashdiff (1.2.1) hashery (2.1.2) - hashie (5.0.0) + hashie (5.1.0) + logger highline (3.1.2) reline htmlentities (4.4.2) http_accept_language (2.1.1) - i18n (1.14.7) + i18n (1.14.8) concurrent-ruby (~> 1.0) - image_optim (0.31.4) + image_optim (0.32.0) exifr (~> 1.2, >= 1.2.2) fspath (~> 3.0) image_size (>= 1.5, < 4) in_threads (~> 1.3) progress (~> 3.0, >= 3.0.1) - image_size (3.4.0) + image_size (3.6.0) in_threads (1.6.0) inflection (1.0.0) - io-console (0.8.1) - irb (1.15.3) + io-console (0.8.2) + irb (1.18.0) pp (>= 0.6.0) + prism (>= 1.3.0) rdoc (>= 4.0.0) reline (>= 0.4.2) iso8601 (0.13.0) jmespath (1.6.2) - json (2.17.1) - json-schema (6.0.0) + json (2.19.9) + json-schema (6.2.0) addressable (~> 2.8) - bigdecimal (~> 3.1) + bigdecimal (>= 3.1, < 5) + json_completer (1.2.0) json_schemer (2.5.0) bigdecimal hana (~> 1.3) @@ -251,16 +318,21 @@ GEM simpleidn (~> 0.2) jwt (2.10.1) base64 - kgio (2.11.4) + landlock (0.3) language_server-protocol (3.17.0.5) - libv8-node (24.1.0.0) - libv8-node (24.1.0.0-aarch64-linux) - libv8-node (24.1.0.0-arm64-darwin) - libv8-node (24.1.0.0-x86_64-darwin) - libv8-node (24.1.0.0-x86_64-linux) - libv8-node (24.1.0.0-x86_64-linux-musl) + libv8-node (24.12.0.1) + libv8-node (24.12.0.1-aarch64-linux) + libv8-node (24.12.0.1-aarch64-linux-musl) + libv8-node (24.12.0.1-arm64-darwin) + libv8-node (24.12.0.1-x86_64-darwin) + libv8-node (24.12.0.1-x86_64-linux) + libv8-node (24.12.0.1-x86_64-linux-musl) lint_roller (1.1.0) - listen (3.9.0) + liquid (5.12.0) + bigdecimal + strscan (>= 3.1.1) + listen (3.10.0) + logger rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) literate_randomizer (0.4.0) @@ -271,8 +343,8 @@ GEM railties (>= 4) request_store (~> 1.0) logstash-event (1.2.02) - logster (2.20.1) - loofah (2.24.1) + logster (2.21.0) + loofah (2.25.1) crass (~> 1.0.2) nokogiri (>= 1.12.0) lru_redux (1.1.0) @@ -283,40 +355,43 @@ GEM net-imap net-pop net-smtp + markbridge (0.3.1) matrix (0.4.3) maxminddb (0.1.22) memory_profiler (1.1.0) - message_bus (4.4.1) - rack (>= 1.1.3) + message_bus (4.5.2) + rack (> 2, < 4) messageformat-wrapper (1.1.0) mini_racer (>= 0.6.3) method_source (1.1.0) mime-types (3.7.0) logger mime-types-data (~> 3.2025, >= 3.2025.0507) - mime-types-data (3.2025.0924) + mime-types-data (3.2026.0414) mini_mime (1.1.5) mini_portile2 (2.8.9) - mini_racer (0.19.1) - libv8-node (~> 24.1.0.0) - mini_scheduler (0.18.0) - sidekiq (>= 6.5, < 8.0) + mini_racer (0.21.4) + libv8-node (~> 24.12.0.1) + mini_scheduler (0.20.0) + sidekiq (>= 6.5, < 9.0) mini_sql (1.6.0) mini_suffix (0.3.3) ffi (~> 1.9) - minio_runner (1.0.1) - minitest (5.26.2) - mocha (2.8.2) + minio_runner (1.1.0) + minitest (6.0.6) + drb (~> 2.0) + prism (~> 1.5) + mocha (3.1.0) ruby2_keywords (>= 0.0.5) - msgpack (1.8.0) - multi_json (1.18.0) - multi_xml (0.7.2) - bigdecimal (~> 3.1) + msgpack (1.8.3) + multi_json (1.20.1) + multi_xml (0.9.1) + bigdecimal (>= 3.1, < 5) multipart-post (2.4.1) - mustache (1.1.1) - net-http (0.8.0) + mustache (1.1.2) + net-http (0.9.1) uri (>= 0.11.1) - net-imap (0.5.12) + net-imap (0.6.4.1) date net-protocol net-pop (0.1.2) @@ -326,31 +401,31 @@ GEM net-smtp (0.5.1) net-protocol nio4r (2.7.5) - nokogiri (1.18.10) + nokogiri (1.19.3) mini_portile2 (~> 2.8.2) racc (~> 1.4) - nokogiri (1.18.10-aarch64-linux-gnu) + nokogiri (1.19.3-aarch64-linux-gnu) racc (~> 1.4) - nokogiri (1.18.10-aarch64-linux-musl) + nokogiri (1.19.3-aarch64-linux-musl) racc (~> 1.4) - nokogiri (1.18.10-arm-linux-gnu) + nokogiri (1.19.3-arm64-darwin) racc (~> 1.4) - nokogiri (1.18.10-arm-linux-musl) + nokogiri (1.19.3-x86_64-darwin) racc (~> 1.4) - nokogiri (1.18.10-arm64-darwin) + nokogiri (1.19.3-x86_64-linux-gnu) racc (~> 1.4) - nokogiri (1.18.10-x86_64-darwin) + nokogiri (1.19.3-x86_64-linux-musl) racc (~> 1.4) - nokogiri (1.18.10-x86_64-linux-gnu) - racc (~> 1.4) - nokogiri (1.18.10-x86_64-linux-musl) - racc (~> 1.4) - oauth (1.1.3) + oauth (1.1.5) + auth-sanitizer (~> 0.1, >= 0.1.3) base64 (~> 0.1) - oauth-tty (~> 1.0, >= 1.0.6) - snaky_hash (~> 2.0) + cgi + oauth-tty (~> 1.0, >= 1.0.8) + snaky_hash (~> 2.0, >= 2.0.4) version_gem (~> 1.1, >= 1.1.9) - oauth-tty (1.0.6) + oauth-tty (1.0.8) + auth-sanitizer (~> 0.1, >= 0.1.3) + cgi version_gem (~> 1.1, >= 1.1.9) oauth2 (1.4.11) faraday (>= 0.17.3, < 3.0) @@ -358,7 +433,7 @@ GEM multi_json (~> 1.3) multi_xml (~> 0.5) rack (>= 1.2, < 4) - octokit (5.6.1) + octokit (10.0.0) faraday (>= 1, < 3) sawyer (~> 0.9) oj (3.16.12) @@ -368,8 +443,9 @@ GEM hashie (>= 3.4.6) rack (>= 2.2.3) rack-protection - omniauth-facebook (9.0.0) - omniauth-oauth2 (~> 1.2) + omniauth-facebook (10.0.0) + bigdecimal + omniauth-oauth2 (>= 1.2, < 3) omniauth-github (2.0.0) omniauth (~> 2.0) omniauth-oauth2 (~> 1.7.1) @@ -393,59 +469,58 @@ GEM openssl (> 2.0) optimist (3.2.1) ostruct (0.6.3) - parallel (1.27.0) - parallel_tests (5.5.0) + parallel (2.1.0) + parallel_tests (5.7.0) parallel - parser (3.3.10.0) + parser (3.3.11.1) ast (~> 2.4.1) racc pastel (0.8.0) tty-color (~> 0.5) - pdf-reader (2.15.0) + pdf-reader (2.15.1) Ascii85 (>= 1.0, < 3.0, != 2.0.0) afm (>= 0.2.1, < 2) hashery (~> 2.0) ruby-rc4 ttfunk - pg (1.6.2) - pg (1.6.2-aarch64-linux) - pg (1.6.2-aarch64-linux-musl) - pg (1.6.2-arm64-darwin) - pg (1.6.2-x86_64-darwin) - pg (1.6.2-x86_64-linux) - pg (1.6.2-x86_64-linux-musl) - pitchfork (0.18.1) + pg (1.6.3) + pg (1.6.3-aarch64-linux) + pg (1.6.3-aarch64-linux-musl) + pg (1.6.3-arm64-darwin) + pg (1.6.3-x86_64-darwin) + pg (1.6.3-x86_64-linux) + pg (1.6.3-x86_64-linux-musl) + pitchfork (0.18.2) logger rack (>= 2.0) - playwright-ruby-client (1.57.0) + playwright-ruby-client (1.60.0) + base64 concurrent-ruby (>= 1.1.6) mime-types (>= 3.0) pp (0.6.3) prettyprint prettier_print (1.2.1) prettyprint (0.2.0) - prism (1.6.0) + prism (1.9.0) progress (3.6.0) - propshaft (1.3.1) + propshaft (1.3.2) actionpack (>= 7.0.0) activesupport (>= 7.0.0) rack - pry (0.15.2) + pry (0.16.0) coderay (~> 1.1) method_source (~> 1.0) + reline (>= 0.6.0) pry-rails (0.3.11) pry (>= 0.13.0) - pry-stack_explorer (0.6.1) - binding_of_caller (~> 1.0) - pry (~> 0.13) - psych (5.2.6) + psych (5.4.0) date stringio - public_suffix (7.0.0) - puma (7.1.0) + public_suffix (7.0.5) + puma (8.0.2) nio4r (~> 2.0) racc (1.8.1) - rack (2.2.21) + rack (2.2.23) rack-mini-profiler (4.0.1) rack (>= 1.2.0) rack-protection (3.2.0) @@ -462,8 +537,8 @@ GEM activesupport (>= 5.0.0) minitest nokogiri (>= 1.6) - rails-html-sanitizer (1.6.2) - loofah (~> 2.21) + rails-html-sanitizer (1.7.0) + loofah (~> 2.25) nokogiri (>= 1.15.7, != 1.16.7, != 1.16.6, != 1.16.5, != 1.16.4, != 1.16.3, != 1.16.2, != 1.16.1, != 1.16.0.rc1, != 1.16.0) rails_failover (2.3.0) activerecord (>= 6.1, < 9.0) @@ -472,9 +547,9 @@ GEM rails_multisite (7.0.0) activerecord (>= 7.1) railties (>= 7.1) - railties (8.0.4) - actionpack (= 8.0.4) - activesupport (= 8.0.4) + railties (8.0.5) + actionpack (= 8.0.5) + activesupport (= 8.0.5) irb (~> 1.13) rackup (>= 1.0.0) rake (>= 12.2) @@ -483,32 +558,34 @@ GEM zeitwerk (~> 2.6) rainbow (3.1.1) raindrops (0.20.1) - rake (13.3.1) - rake-compiler-dock (1.10.0) + rake (13.4.2) + rake-compiler-dock (1.12.0) rb-fsevent (0.11.2) rb-inotify (0.11.1) ffi (~> 1.0) - rb_sys (0.9.119) - rake-compiler-dock (= 1.10.0) - rbs (3.9.5) + rb_sys (0.9.128) + rake-compiler-dock (= 1.12.0) + rbs (4.0.2) logger - rbtrace (0.5.3) + prism (>= 1.6.0) + tsort + rbtrace (0.5.4) ffi (>= 1.0.6) msgpack (>= 0.4.3) optimist (>= 3.0.0) - rchardet (1.10.0) - rdoc (6.17.0) + rchardet (1.10.2) + rdoc (7.2.0) erb psych (>= 4.0.0) tsort redcarpet (3.6.1) redis (5.4.0) redis-client (>= 0.22.0) - redis-client (0.26.1) + redis-client (0.30.0) connection_pool redis-namespace (1.11.0) redis (>= 4) - regexp_parser (2.11.3) + regexp_parser (2.12.0) reline (0.6.3) io-console (~> 0.5) request_store (1.7.0) @@ -516,12 +593,13 @@ GEM rexml (3.4.4) rinku (2.0.6) rotp (6.3.0) - rouge (4.7.0) - rqrcode (3.1.1) + rouge (5.0.0) + strscan (~> 3.1) + rqrcode (3.2.0) chunky_png (~> 1.0) rqrcode_core (~> 2.0) - rqrcode_core (2.0.1) - rrule (0.7.0) + rqrcode_core (2.1.0) + rrule (0.8.0) activesupport (>= 2.3) rspec (3.13.2) rspec-core (~> 3.13.0) @@ -535,21 +613,21 @@ GEM rspec-html-matchers (0.10.0) nokogiri (~> 1) rspec (>= 3.0.0.a) - rspec-mocks (3.13.7) + rspec-mocks (3.13.8) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.13.0) rspec-multi-mock (0.3.1) rspec (>= 3.7.0) - rspec-rails (8.0.2) + rspec-rails (8.0.4) actionpack (>= 7.2) activesupport (>= 7.2) railties (>= 7.2) - rspec-core (~> 3.13) - rspec-expectations (~> 3.13) - rspec-mocks (~> 3.13) - rspec-support (~> 3.13) - rspec-support (3.13.6) - rss (0.3.1) + rspec-core (>= 3.13.0, < 5.0.0) + rspec-expectations (>= 3.13.0, < 5.0.0) + rspec-mocks (>= 3.13.0, < 5.0.0) + rspec-support (>= 3.13.0, < 5.0.0) + rspec-support (3.13.7) + rss (0.3.3) rexml rswag-specs (2.17.0) activesupport (>= 5.2, < 8.2) @@ -558,88 +636,89 @@ GEM rspec-core (>= 2.14) rtlcss (0.2.1) mini_racer (>= 0.6.3) - rubocop (1.81.7) + rubocop (1.86.1) json (~> 2.3) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.1.0) - parallel (~> 1.10) + parallel (>= 1.10) parser (>= 3.3.0.2) rainbow (>= 2.2.2, < 4.0) regexp_parser (>= 2.9.3, < 3.0) - rubocop-ast (>= 1.47.1, < 2.0) + rubocop-ast (>= 1.49.0, < 2.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 2.4.0, < 4.0) - rubocop-ast (1.48.0) + rubocop-ast (1.49.1) parser (>= 3.3.7.2) - prism (~> 1.4) - rubocop-capybara (2.22.1) + prism (~> 1.7) + rubocop-capybara (2.23.0) lint_roller (~> 1.1) - rubocop (~> 1.72, >= 1.72.1) - rubocop-discourse (3.13.3) + rubocop (~> 1.81) + rubocop-discourse (3.18.0) activesupport (>= 6.1) lint_roller (>= 1.1.0) - rubocop (>= 1.73.2) - rubocop-capybara (>= 2.22.0) + rubocop-capybara (>= 2.23.0) + rubocop-discourse-base (>= 1.0.0) rubocop-factory_bot (>= 2.27.0) rubocop-rails (>= 2.30.3) rubocop-rspec (>= 3.0.1) rubocop-rspec_rails (>= 2.31.0) + rubocop-discourse-base (1.0.0) + rubocop (>= 1.80.0) rubocop-factory_bot (2.28.0) lint_roller (~> 1.1) rubocop (~> 1.72, >= 1.72.1) - rubocop-rails (2.33.4) + rubocop-rails (2.34.3) activesupport (>= 4.2.0) lint_roller (~> 1.1) rack (>= 1.1) rubocop (>= 1.75.0, < 2.0) rubocop-ast (>= 1.44.0, < 2.0) - rubocop-rspec (3.8.0) + rubocop-rspec (3.9.0) lint_roller (~> 1.1) rubocop (~> 1.81) rubocop-rspec_rails (2.32.0) lint_roller (~> 1.1) rubocop (~> 1.72, >= 1.72.1) rubocop-rspec (~> 3.5) - ruby-lsp (0.26.4) + ruby-lsp (0.26.9) language_server-protocol (~> 3.17.0) prism (>= 1.2, < 2.0) rbs (>= 3, < 5) ruby-lsp-rails (0.4.8) ruby-lsp (>= 0.26.0, < 0.27.0) - ruby-lsp-rspec (0.1.28) + ruby-lsp-rspec (0.1.29) ruby-lsp (~> 0.26.0) - ruby-prof (1.7.2) + ruby-prof (2.0.5) base64 + ostruct ruby-progressbar (1.13.0) ruby-rc4 (0.1.5) - ruby-readability (0.7.2) + ruby-readability (0.7.3) guess_html_encoding (>= 0.0.4) nokogiri (>= 1.6.0) ruby2_keywords (0.0.5) - rubyzip (2.4.1) + rubyzip (3.3.1) + samovar (2.5.1) + console (~> 1.0) sanitize (7.0.0) crass (~> 1.0.2) nokogiri (>= 1.16.8) - sass-embedded (1.91.0) + sass-embedded (1.100.0) google-protobuf (~> 4.31) rake (>= 13) - sass-embedded (1.91.0-aarch64-linux-gnu) + sass-embedded (1.100.0-aarch64-linux-gnu) google-protobuf (~> 4.31) - sass-embedded (1.91.0-aarch64-linux-musl) + sass-embedded (1.100.0-aarch64-linux-musl) google-protobuf (~> 4.31) - sass-embedded (1.91.0-arm-linux-gnueabihf) + sass-embedded (1.100.0-arm64-darwin) google-protobuf (~> 4.31) - sass-embedded (1.91.0-arm-linux-musleabihf) + sass-embedded (1.100.0-x86_64-darwin) google-protobuf (~> 4.31) - sass-embedded (1.91.0-arm64-darwin) + sass-embedded (1.100.0-x86_64-linux-gnu) google-protobuf (~> 4.31) - sass-embedded (1.91.0-x86_64-darwin) + sass-embedded (1.100.0-x86_64-linux-musl) google-protobuf (~> 4.31) - sass-embedded (1.91.0-x86_64-linux-gnu) - google-protobuf (~> 4.31) - sass-embedded (1.91.0-x86_64-linux-musl) - google-protobuf (~> 4.31) - sassc-embedded (1.80.5) + sassc-embedded (1.80.8) sass-embedded (~> 1.80) sawyer (0.9.3) addressable (>= 2.3.5) @@ -647,12 +726,12 @@ GEM securerandom (0.4.1) shoulda-matchers (7.0.1) activesupport (>= 7.1) - sidekiq (7.3.9) + sidekiq (7.3.10) base64 - connection_pool (>= 2.3.0) + connection_pool (>= 2.3.0, < 3) logger - rack (>= 2.2.4) - redis-client (>= 0.22.2) + rack (>= 2.2.4, < 3.3) + redis-client (>= 0.23.0, < 1) simplecov (0.22.0) docile (~> 1.1) simplecov-html (~> 0.11) @@ -660,46 +739,46 @@ GEM simplecov-html (0.13.2) simplecov_json_formatter (0.1.4) simpleidn (0.2.3) - snaky_hash (2.0.3) + smarter_json (1.2.6) + bigdecimal + snaky_hash (2.0.4) hashie (>= 0.1.0, < 6) version_gem (>= 1.1.8, < 3) - sqlite3 (2.8.1) + sqlite3 (2.9.5) mini_portile2 (~> 2.8.0) - sqlite3 (2.8.1-aarch64-linux-gnu) - sqlite3 (2.8.1-aarch64-linux-musl) - sqlite3 (2.8.1-arm-linux-gnu) - sqlite3 (2.8.1-arm-linux-musl) - sqlite3 (2.8.1-arm64-darwin) - sqlite3 (2.8.1-x86_64-darwin) - sqlite3 (2.8.1-x86_64-linux-gnu) - sqlite3 (2.8.1-x86_64-linux-musl) + sqlite3 (2.9.5-aarch64-linux-gnu) + sqlite3 (2.9.5-aarch64-linux-musl) + sqlite3 (2.9.5-arm64-darwin) + sqlite3 (2.9.5-x86_64-darwin) + sqlite3 (2.9.5-x86_64-linux-gnu) + sqlite3 (2.9.5-x86_64-linux-musl) sshkey (3.0.0) - stackprof (0.2.27) - stringio (3.1.9) + ssrf_filter (1.5.0) + stackprof (0.2.28) + stringio (3.2.0) stripe (11.1.0) + strscan (3.1.8) syntax_tree (6.3.0) prettier_print (>= 1.2.0) - test-prof (1.5.0) - thor (1.4.0) - tiktoken_ruby (0.0.15.1) + test-prof (1.6.1) + thor (1.5.0) + tiktoken_ruby (0.0.16) rb_sys (~> 0.9) - tiktoken_ruby (0.0.15.1-aarch64-linux) - tiktoken_ruby (0.0.15.1-aarch64-linux-musl) - tiktoken_ruby (0.0.15.1-arm-linux) - tiktoken_ruby (0.0.15.1-arm64-darwin) - tiktoken_ruby (0.0.15.1-x86_64-darwin) - tiktoken_ruby (0.0.15.1-x86_64-linux) - tiktoken_ruby (0.0.15.1-x86_64-linux-musl) - timeout (0.5.0) - tokenizers (0.6.3) + tiktoken_ruby (0.0.16-aarch64-linux) + tiktoken_ruby (0.0.16-aarch64-linux-musl) + tiktoken_ruby (0.0.16-arm64-darwin) + tiktoken_ruby (0.0.16-x86_64-darwin) + tiktoken_ruby (0.0.16-x86_64-linux) + tiktoken_ruby (0.0.16-x86_64-linux-musl) + timeout (0.6.1) + tokenizers (0.6.4) rb_sys - tokenizers (0.6.3-aarch64-linux) - tokenizers (0.6.3-aarch64-linux-musl) - tokenizers (0.6.3-arm64-darwin) - tokenizers (0.6.3-x86_64-darwin) - tokenizers (0.6.3-x86_64-linux) - tokenizers (0.6.3-x86_64-linux-musl) - trilogy (2.9.0) + tokenizers (0.6.4-aarch64-linux) + tokenizers (0.6.4-aarch64-linux-musl) + tokenizers (0.6.4-arm64-darwin) + tokenizers (0.6.4-x86_64-darwin) + tokenizers (0.6.4-x86_64-linux) + tokenizers (0.6.4-x86_64-linux-musl) tsort (0.2.0) ttfunk (1.8.0) bigdecimal (~> 3.1) @@ -715,23 +794,20 @@ GEM tty-screen (0.8.2) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - tzinfo-data (1.2025.2) + tzinfo-data (1.2026.2) tzinfo (>= 1.0.0) unf (0.2.0) unicode-display_width (3.2.0) unicode-emoji (~> 4.1) - unicode-emoji (4.1.0) - unicorn (6.1.0) - kgio (~> 2.6) - raindrops (~> 0.7) + unicode-emoji (4.2.0) uniform_notifier (1.18.0) uri (1.1.1) useragent (0.16.11) - version_gem (1.1.9) + version_gem (1.1.13) web-push (3.0.1) jwt (~> 2.0) openssl (~> 3.0) - webmock (3.25.1) + webmock (3.26.2) addressable (>= 2.8.0) crack (>= 0.3.2) hashdiff (>= 0.4.0, < 2.0.0) @@ -740,8 +816,8 @@ GEM xpath (3.2.0) nokogiri (~> 1.8) yaml-lint (0.1.2) - yard (0.9.38) - zeitwerk (2.7.3) + yard (0.9.44) + zeitwerk (2.8.2) zendesk_api (1.38.0.rc1) faraday (> 2.0.0) faraday-multipart @@ -753,11 +829,6 @@ GEM PLATFORMS aarch64-linux-gnu aarch64-linux-musl - arm-linux - arm-linux-gnu - arm-linux-gnueabihf - arm-linux-musl - arm-linux-musleabihf arm64-darwin ruby x86_64-darwin @@ -777,11 +848,12 @@ DEPENDENCIES addressable afm annotaterb + aws-sdk-bedrockruntime aws-sdk-mediaconvert aws-sdk-s3 aws-sdk-sns + aws-sdk-sts better_errors - binding_of_caller bootsnap bullet capybara @@ -797,7 +869,6 @@ DEPENDENCIES debug (>= 1.0.0) diffy digest - digest-xxhash discourse-emojis discourse-fonts discourse-seed-fu @@ -808,7 +879,6 @@ DEPENDENCIES ed25519 email_reply_trimmer excon - extralite-bundle fabrication faker faraday @@ -825,7 +895,10 @@ DEPENDENCIES inflection iso8601 json + json_completer json_schemer + landlock + liquid (= 5.12.0) listen lograge logstash-event @@ -838,6 +911,10 @@ DEPENDENCIES memory_profiler message_bus messageformat-wrapper + migrations-converters! + migrations-core! + migrations-importer! + migrations-tooling! mini_mime mini_racer mini_scheduler @@ -867,7 +944,6 @@ DEPENDENCIES pitchfork propshaft pry-rails - pry-stack_explorer puma rack (< 3) rack-mini-profiler @@ -876,6 +952,7 @@ DEPENDENCIES rails_failover rails_multisite railties (~> 8.0.0) + raindrops rake rb-fsevent rbtrace @@ -899,7 +976,6 @@ DEPENDENCIES ruby-lsp-rails ruby-lsp-rspec ruby-prof - ruby-progressbar ruby-rc4 ruby-readability rubyzip @@ -907,8 +983,9 @@ DEPENDENCIES sassc-embedded sawyer shoulda-matchers - sidekiq + sidekiq (>= 7.3.10) simplecov + smarter_json sqlite3 sshkey stackprof @@ -918,77 +995,76 @@ DEPENDENCIES thor tiktoken_ruby tokenizers - trilogy ttfunk tty-prompt tzinfo-data unf - unicorn web-push webmock yaml-lint yard - zeitwerk zendesk_api CHECKSUMS Ascii85 (2.0.1) sha256=15cb5d941808543cbb9e7e6aea3c8ec3877f154c3461e8b3673e97f7ecedbe5a - actionmailer (8.0.4) sha256=3b9270d8e19f0afb534b11c52f439937dc30028adcbbae2b244f3383ce75de4b - actionpack (8.0.4) sha256=0364c7582f32c8f404725fa30d3f6853f834c5f4964afd4a072b848c8a23cddb - actionview (8.0.4) sha256=5bd3c41ee7a59e14cf062bb5e4ee53c9a253d12fc13c8754cae368012e1a1648 + actionmailer (8.0.5) sha256=7918fac842cfe985ed21692f3d212c914a0c816e30e6fa68633177bb22f38561 + actionpack (8.0.5) sha256=c9de868975dd124a0956499140bd5e63c367865deca01292df7c3195c8da4b35 + actionview (8.0.5) sha256=6d0fa9e63df0cf2729b1f54d0988336c149eb2bbc6049f4c2834d7b62f351413 actionview_precompiler (0.4.0) sha256=33b6bd6ec4c1b856e02fdf5f6512c9eb4a92ac1c0545e941b3e354b7d540ed1c active_model_serializers (0.8.4) sha256=7350e3d3b6a5946bbec033241d908013cc85ff4d584230e6aa074225547c754c - activejob (8.0.4) sha256=cbc8a85d0e168cb90a5629c8a36fe2d08ba840103d3aed3eee0c7beb784fccce - activemodel (8.0.4) sha256=8f4e4fac3cd104b1bf30419c3745206f6f724c0e2902a939b4113f4c90730dfd - activerecord (8.0.4) sha256=bda32c171799e5ca5460447d3b7272ed14447244e2497abf2107f87fc44cbf32 - activesupport (8.0.4) sha256=894a3a6c7733b5fae5a7df3acd76c4b563f38687df8a04fa3cbd25360f3fe95a - addressable (2.8.8) sha256=7c13b8f9536cf6364c03b9d417c19986019e28f7c00ac8132da4eb0fe393b057 + activejob (8.0.5) sha256=2dabe5c3bfe284aba4687c52b930564335435dde3a60b047821f9d3bd0d2ea10 + activemodel (8.0.5) sha256=c796813d46dc1373f4c6c0ec91dfc520b53683ea773c3b3f9a12c4b3eb145bc2 + activerecord (8.0.5) sha256=89b261b6cd910c9431cf2475f3f6e5e2f5ce589805043a33ef2b004376a129e6 + activesupport (8.0.5) sha256=37f213ff6a37cf3fadfa1a28c1a9678e2cb73b59bb9ebd0eeeca653cccadcb23 + addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af afm (1.0.0) sha256=5bd4d6f6241e7014ef090985ec6f4c3e9745f6de0828ddd58bc1efdd138f4545 annotaterb (4.20.0) sha256=871b2e898d1d60c23bdc59b72a5b840678a56355bf5f6fdeb8c79d317ff98bf7 ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + auth-sanitizer (0.1.4) sha256=ded72221d4d3a7c91e34e8a87b21e6a42cbf7829697f140dcf49d542422faedc aws-eventstream (1.4.0) sha256=116bf85c436200d1060811e6f5d2d40c88f65448f2125bc77ffce5121e6e183b aws-partitions (1.1134.0) sha256=28f5f6156777ac346904a79ce6cb3b14a521e3866fee12a0da86d7b500266d3e - aws-sdk-core (3.227.0) sha256=99071fc5e3ca9347873fd114574319740c3041745df3c74e27875bd912dfc79e + aws-sdk-bedrockruntime (1.74.0) sha256=fc5eb0ab9485fc847bfcef058b8c50f2f7996d4a8266ce3562da2daa5bf1dea5 + aws-sdk-core (3.254.0) sha256=ee3e3220b8468a3c9e59daba18e6ec897bf5c7ce8adcc0670cfa2f1f092112fe aws-sdk-kms (1.99.0) sha256=ba292fc3ffd672532aae2601fe55ff424eee78da8e23c23ba6ce4037138275a8 aws-sdk-mediaconvert (1.165.0) sha256=d955a571cd8b0407c0778e1d0f2333a70bf9ab48e36c81da8c5b317db24001e4 - aws-sdk-s3 (1.182.0) sha256=d0fc3579395cb6cb69bf6e975240ce031fc673190e74c8dddbdd6c18572b450d + aws-sdk-s3 (1.227.0) sha256=552b23bf9a37c7db4957e9291543e61c8de886cf31d1d45ea3b429df0feea939 aws-sdk-sns (1.96.0) sha256=f92b3c7203c53181b1cafb3dbbea85f330002ad696175bda829cfef359fa6dd4 + aws-sdk-sts (1.12.0) sha256=9bbd64223dd2423540291d9faaac4a169ace8cfe123b1075c9a127fcd65e061f aws-sigv4 (1.12.1) sha256=6973ff95cb0fd0dc58ba26e90e9510a2219525d07620c8babeb70ef831826c00 base64 (0.3.0) sha256=27337aeabad6ffae05c265c450490628ef3ebd4b67be58257393227588f5a97b benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c better_errors (2.10.1) sha256=f798f1bac93f3e775925b7fcb24cffbcf0bb62ee2210f5350f161a6b75fc0a73 bigdecimal (3.3.1) sha256=eaa01e228be54c4f9f53bf3cc34fe3d5e845c31963e7fcc5bedb05a4e7d52218 - binding_of_caller (1.0.1) sha256=2b2902abff4246ddcfbc4da9b69bc4a019e22aeb300c2ff6289a173d4b90b29a - bootsnap (1.19.0) sha256=d3e54558c1a9ea10cb095eb1eb8e921ae83fd4d5764b8809f63aec18ce9f60b5 + bootsnap (1.24.5) sha256=36b677448524d279b470469aabd5dff4a980e3fa4931a0df68da4a500eb1b6c4 builder (3.3.0) sha256=497918d2f9dca528fdca4b88d84e4ef4387256d984b8154e9d5d3fe5a9c8835f - bullet (8.1.0) sha256=604b7e2636ec2137dcab3ba61a56248c39a0004a0c9405d58bad0686d23b98ff + bullet (8.1.3) sha256=c8163c527324fe1180775be48719875726891622f0a73784658b2992acf3c7cb capybara (3.40.0) sha256=42dba720578ea1ca65fd7a41d163dd368502c191804558f6e0f71b391054aeef - capybara-playwright-driver (0.5.7) sha256=875a1928077d56be8b484f84674901a2374752d7842d93de2045bbede1aad242 - cbor (0.5.10.1) sha256=79cdf79f18dcd9ee97e0b849c6d573e5a2e3ddc1954d180f384d6ed2612b6df0 + capybara-playwright-driver (0.5.9) sha256=4c17fed20817b7e1bde2cfc8186e7bf5cd72017ce1aa695e35130f8e600e7282 + cbor (0.5.10.3) sha256=c3aa1d0c7e9bbffe8de4bed554f588d7926c62276ffe2dd7fabb65bae801d28a certified (1.0.0) sha256=aa4cdf0e90e7ee96f6e0ce3daae39eaa8f0486124e0d92daf64d2105aeb9069c - cgi (0.5.0) sha256=fe99f65bb2c146e294372ebb27602adbc3b4c008e9ea7038c6bd48c1ec9759da + cgi (0.5.1) sha256=e93fcafc69b8a934fe1e6146121fa35430efa8b4a4047c4893764067036f18e9 chunky_png (1.4.0) sha256=89d5b31b55c0cf4da3cf89a2b4ebc3178d8abe8cbaf116a1dba95668502fdcfe coderay (1.1.3) sha256=dc530018a4684512f8f38143cd2a096c9f02a1fc2459edcfe534787a7fc77d4b colored2 (4.0.3) sha256=63e1038183976287efc43034f5cca17fb180b4deef207da8ba78d051cbce2b37 - concurrent-ruby (1.3.5) sha256=813b3e37aca6df2a21a3b9f1d497f8cbab24a2b94cab325bffe65ee0f6cbebc6 + concurrent-ruby (1.3.7) sha256=4412caec3a5ea2e5fdc52076724c071a81f2c0593d83b2ac8cbb8ca63b3151b0 connection_pool (2.5.5) sha256=e54ff92855753df1fd7c59fa04a398833355f27dd14c074f8c83a05f72a716ad + console (1.36.0) sha256=45599ea906cf80a73d8941f03abf873fe66a6a954e0bac5bc1c01e2cdc406f07 cose (1.3.1) sha256=d5d4dbcd6b035d513edc4e1ab9bc10e9ce13b4011c96e3d1b8fe5e6413fd6de5 cppjieba_rb (0.4.4) sha256=319a7ab57b6ec28a8d1b223487ecd114432f1930d7740db2f99c1991e6c8faaf crack (1.0.1) sha256=ff4a10390cd31d66440b7524eb1841874db86201d5b70032028553130b6d4c7e crass (1.0.6) sha256=dc516022a56e7b3b156099abc81b6d2b08ea1ed12676ac7a5657617f012bd45d - css_parser (1.21.1) sha256=6cfd3ffc0a97333b39d2b1b49c95397b05e0e3b684d68f77ec471ba4ec2ef7c7 + css_parser (3.0.0) sha256=eaf0e9283fd581d06e815235ceef4f0910c0b394c606355dbc69f93e84443885 csv (3.3.5) sha256=6e5134ac3383ef728b7f02725d9872934f523cb40b961479f69cf3afa6c8e73f - date (3.5.0) sha256=5e74fd6c04b0e65d97ad4f3bb5cb2d8efb37f386cc848f46310b4593ffc46ee5 - debug (1.11.0) sha256=1425db64cfa0130c952684e3dc974985be201dd62899bf4bbe3f8b5d6cf1aef2 - debug_inspector (1.2.0) sha256=9bdfa02eebc3da163833e6a89b154084232f5766087e59573b70521c77ea68a2 + date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 + debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 digest (3.2.1) sha256=ab3312b4e272d7d5dc41c564c86a25861a1f34ac5153374199a0b74861395947 digest-xxhash (0.2.9) sha256=a989d8309c03c4136a4bea9981ec0a146a2750de7f3dfb7b5624a3038aa598d7 - discourse-emojis (1.0.44) sha256=63425a32379fb471d58f5eac9a1e931fc5a94efb7d327f71f1580af4dfe4edb3 + discourse-emojis (1.0.46) sha256=e986526ec835eb8de1640da6a853767272a3fc15b756666f072ab95103f3c93c discourse-fonts (0.0.19) sha256=78d4ddd671615908303a675427039d8d787c935e6deae184c6e143c18c6e0033 discourse-seed-fu (2.3.12) sha256=4f61d95c11ed54609046cd04eb3a51b531c5fa863fa86d1bea7d74264e5c75e4 - discourse_ai-tokenizers (0.4) sha256=54d7ddcc5479f3bb3057b90f4a85106b4602a07336b51d372c1a1dd8f08104c5 + discourse_ai-tokenizers (0.4.2) sha256=61c2f254582a3ae69255115b2b072904361003612b5b0f52aa64773817aae413 discourse_dev_assets (0.0.6) sha256=4dfe7946927aa3d61a4ba89b5aef39d6daaeb70e35d7125dc481806a5c0aea4e discourse_math_bundle (1.0.1) sha256=c7d82fa65c9680cab2f77daeba32c1b89e500faccd2269e050ab27d5e1bc8337 docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e @@ -996,122 +1072,129 @@ CHECKSUMS dry-initializer (3.2.0) sha256=37d59798f912dc0a1efe14a4db4a9306989007b302dcd5f25d0a2a20c166c4e3 ed25519 (1.4.0) sha256=16e97f5198689a154247169f3453ef4cfd3f7a47481fde0ae33206cdfdcac506 email_reply_trimmer (0.2.0) sha256=05843fa5ee1a2037235f1f3c876e922f613e2b4406fea5bb14212d1708d6c525 - erb (6.0.0) sha256=2730893f9d8c9733f16cab315a4e4b71c1afa9cabc1a1e7ad1403feba8f52579 + erb (6.0.4) sha256=38e3803694be357fe2bfe312487c74beaf9fb4e5beb3e22498952fe1645b95d9 erubi (1.13.1) sha256=a082103b0885dbc5ecf1172fede897f9ebdb745a4b97a5e8dc63953db1ee4ad9 - excon (1.3.2) sha256=a089babe98638e58042a7d542b2bbd183304527e33d612b6dde22fa491a544a5 - exifr (1.4.1) sha256=768374cc6b6ff3743acba57c1c35229bdd8c6b9fbc1285952047fc1215c4b894 - extralite-bundle (2.13) sha256=0d00338dd3b348f44a02bb9e93db3714231e7240a48320f1ee3a1db5197db3cc + excon (1.5.0) sha256=c503ad1d0123bc8ab2a062ff3789dc891ec368cb9e13765ab88a9c58c8bb6d50 + exifr (1.5.1) sha256=ad87a5dbc92946fbf1d8ccd178d557d95d9168e8b3c5c5f381ea2bffcc312521 + extralite-bundle (2.14) sha256=906c6e61dba586d6a0857e96ba985eef458ecd1b5ee009c8495c2c92ce6f18f4 fabrication (3.0.0) sha256=a6a0bfad9071348ad3cb1701df788524b888c0cdd044b988893e7509f7463be3 faker (3.5.3) sha256=b961482dc0bb15ccb9a98ea7878b925669e9ae8f5e59b607da540b768137d765 - faraday (2.14.0) sha256=8699cfe5d97e55268f2596f9a9d5a43736808a943714e3d9a53e6110593941cd - faraday-multipart (1.1.1) sha256=77a18ff40149030fd1aef55bb4fc7a67ce46419a8a3fcd010e28c2526e8d8903 - faraday-net_http (3.4.2) sha256=f147758260d3526939bf57ecf911682f94926a3666502e24c69992765875906c - faraday-retry (2.3.2) sha256=2402d2029032ebd238a2046221e67f6ef0da78c5a8ce8cd4f8b9c62e4d6451d1 + faraday (2.14.3) sha256=1882247e6766615c8220b4392bf1d27f6ebb63d8e28267587cef1fb0bf37f278 + faraday-multipart (1.2.0) sha256=7d89a949693714176f612323ca13746a2ded204031a6ba528adee788694ef757 + faraday-net_http (3.4.4) sha256=0e78af151747ed1b00f33e25973b4bc220d7f16c00c39676817c8b12331eb588 + faraday-retry (2.4.0) sha256=7b79c48fb7e56526faf247b12d94a680071ff40c9fda7cf1ec1549439ad11ebe fast_blank (1.0.1) sha256=269fc30414fed4e6403bc4a49081e1ea539f8b9226e59276ed1efaefabaa17ea - fastimage (2.3.1) sha256=23c629f1f3e7d61bcfcc06c25b3d2418bc6bf41d2e615dbf5132c0e3b63ecce9 - ffi (1.17.2) sha256=297235842e5947cc3036ebe64077584bff583cd7a4e94e9a02fdec399ef46da6 - ffi (1.17.2-aarch64-linux-gnu) sha256=c910bd3cae70b76690418cce4572b7f6c208d271f323d692a067d59116211a1a - ffi (1.17.2-aarch64-linux-musl) sha256=69e6556b091d45df83e6c3b19d3c54177c206910965155a6ec98de5e893c7b7c - ffi (1.17.2-arm-linux-gnu) sha256=d4a438f2b40224ae42ec72f293b3ebe0ba2159f7d1bd47f8417e6af2f68dbaa5 - ffi (1.17.2-arm-linux-musl) sha256=977dfb7f3a6381206dbda9bc441d9e1f9366bf189a634559c3b7c182c497aaa3 - ffi (1.17.2-arm64-darwin) sha256=54dd9789be1d30157782b8de42d8f887a3c3c345293b57ffb6b45b4d1165f813 - ffi (1.17.2-x86_64-darwin) sha256=981f2d4e32ea03712beb26e55e972797c2c5a7b0257955d8667ba58f2da6440e - ffi (1.17.2-x86_64-linux-gnu) sha256=05d2026fc9dbb7cfd21a5934559f16293815b7ce0314846fee2ac8efbdb823ea - ffi (1.17.2-x86_64-linux-musl) sha256=97c0eb3981414309285a64dc4d466bd149e981c279a56371ef811395d68cb95c + fastimage (2.4.1) sha256=c64bebd46b6fd8943ab70c1e6e85ff728f970f2e48f92ecd249b6bc3a540ad20 + ffi (1.17.4) sha256=bcd1642e06f0d16fc9e09ac6d49c3a7298b9789bcb58127302f934e437d60acf + ffi (1.17.4-aarch64-linux-gnu) sha256=b208f06f91ffd8f5e1193da3cae3d2ccfc27fc36fba577baf698d26d91c080df + ffi (1.17.4-aarch64-linux-musl) sha256=9286b7a615f2676245283aef0a0a3b475ae3aae2bb5448baace630bb77b91f39 + ffi (1.17.4-arm64-darwin) sha256=19071aaf1419251b0a46852abf960e77330a3b334d13a4ab51d58b31a937001b + ffi (1.17.4-x86_64-darwin) sha256=aa70390523cf3235096cf64962b709b4cfbd5c082a2cb2ae714eb0fe2ccda496 + ffi (1.17.4-x86_64-linux-gnu) sha256=9d3db14c2eae074b382fa9c083fe95aec6e0a1451da249eab096c34002bc752d + ffi (1.17.4-x86_64-linux-musl) sha256=3fdf9888483de005f8ef8d1cf2d3b20d86626af206cbf780f6a6a12439a9c49e + fiber-annotation (0.2.0) sha256=7abfadf1d119f508867d4103bf231c0354d019cc39a5738945dec2edadaf6c03 + fiber-local (1.1.0) sha256=c885f94f210fb9b05737de65d511136ea602e00c5105953748aa0f8793489f06 + fiber-storage (1.0.1) sha256=f48e5b6d8b0be96dac486332b55cee82240057065dc761c1ea692b2e719240e1 fspath (3.1.2) sha256=b5ac9bafb97e2c8f8f9e303cd98ebd484be76fe9aa588bc4d01c6d99e78c9d75 globalid (1.3.0) sha256=05c639ad6eb4594522a0b07983022f04aa7254626ab69445a0e493aa3786ff11 goldiloader (6.0.0) sha256=613db1b28e9964291255a67a521f04d481b6afd6b9ca56ea1a612fd86e9a89c7 - google-protobuf (4.33.2) sha256=748150d6c642fd655ef39efa23ecf2abe6d616020039a6d1c1764be1da530315 - google-protobuf (4.33.2-aarch64-linux-gnu) sha256=822b2dcb707e94e652cd994642c31035935fca021adfac6164772c511eb7acd4 - google-protobuf (4.33.2-aarch64-linux-musl) sha256=c4b64428183cfd1953ec8c37beec1036668c8ec0865cfb0b18df21181ca397ee - google-protobuf (4.33.2-arm64-darwin) sha256=6d0ac185fed18768e5f16338455b1e4b7c38a97fc46f352e709f7a3007b64e1d - google-protobuf (4.33.2-x86_64-darwin) sha256=87cde586234674562cf099e2b708a65e376e2d39b0f0f48281f4b4ea182b47f8 - google-protobuf (4.33.2-x86_64-linux-gnu) sha256=73cba041477afcac92ff383fcbdec195ea28d96b994876d1deaa944d18f91786 - google-protobuf (4.33.2-x86_64-linux-musl) sha256=97cdf4f772c5540f9274603b00f1474ed5e6e2238b1d8b1585e77f941a36bd2c + google-protobuf (4.35.0) sha256=95346162c792ed78c9a28cbf2d937a53f706de6df36a27471582f63f03c30c0d + google-protobuf (4.35.0-aarch64-linux-gnu) sha256=2cabd61b420918aec1564f9f7414e455bf922d20c5f8139d62783df5558a7aea + google-protobuf (4.35.0-aarch64-linux-musl) sha256=f6b11f3420a4564f68e8233c95eac6924f6a727dfc2f81a56af2e09add551501 + google-protobuf (4.35.0-arm64-darwin) sha256=66ab26d3fc82b8950702e53ab16c198e3c0ea3f2a38aaaf1f32152da45593ac5 + google-protobuf (4.35.0-x86_64-darwin) sha256=05eb5c8bc9899135befff496fc0a3642e7ff3d0943f043841dcc456f5654fea0 + google-protobuf (4.35.0-x86_64-linux-gnu) sha256=999226f3b00cd9fddb1b26851d16060212fa1d90c406aaad47e574682b716059 + google-protobuf (4.35.0-x86_64-linux-musl) sha256=be0218520d77b2aee898b363514b03819f6f63f9c041ae0d0d79b4ce5247bffd guess_html_encoding (0.0.11) sha256=cab6468b945f38673fc41ad147fbbc89693b3c6c34b03b071e2ed669a603e098 hana (1.3.7) sha256=5425db42d651fea08859811c29d20446f16af196308162894db208cac5ce9b0d hashdiff (1.2.1) sha256=9c079dbc513dfc8833ab59c0c2d8f230fa28499cc5efb4b8dd276cf931457cd1 hashery (2.1.2) sha256=d239cc2310401903f6b79d458c2bbef5bf74c46f3f974ae9c1061fb74a404862 - hashie (5.0.0) sha256=9d6c4e51f2a36d4616cbc8a322d619a162d8f42815a792596039fc95595603da + hashie (5.1.0) sha256=c266471896f323c446ea8207f8ffac985d2718df0a0ba98651a3057096ca3870 highline (3.1.2) sha256=67cbd34d19f6ef11a7ee1d82ffab5d36dfd5b3be861f450fc1716c7125f4bb4a htmlentities (4.4.2) sha256=bbafbdf69f2eca9262be4efef7e43e6a1de54c95eb600f26984f71d2fe96c5c3 http_accept_language (2.1.1) sha256=0043f0d55a148cf45b604dbdd197cb36437133e990016c68c892d49dbea31634 - i18n (1.14.7) sha256=ceba573f8138ff2c0915427f1fc5bdf4aa3ab8ae88c8ce255eb3ecf0a11a5d0f - image_optim (0.31.4) sha256=5bffd0891268e8d189d46ee4b8599918581bba1032d244e6ace4779a434776c0 - image_size (3.4.0) sha256=c6a580513fe74947e25e5d3f0aea1e33add6c20f7d0007efa65504317b7f029a + i18n (1.14.8) sha256=285778639134865c5e0f6269e0b818256017e8cde89993fdfcbfb64d088824a5 + image_optim (0.32.0) sha256=457d5ea28ee93244c2aabc7134e06455587fb670f210e88e1be40aea882c2ba3 + image_size (3.6.0) sha256=1b9c4196cb658bf503a887920543a3991e927a4b767a5c770fb9665bce0dcb28 in_threads (1.6.0) sha256=91a7e6138d279dc632f59b8a9a409e47148948e297c0f69c92f9a2479a182149 inflection (1.0.0) sha256=ceba9b26fc28b9af82e33e822d28f78a4312af75687efec81d5ef1062498d355 - io-console (0.8.1) sha256=1e15440a6b2f67b6ea496df7c474ed62c860ad11237f29b3bd187f054b925fcb - irb (1.15.3) sha256=4349edff1efa7ff7bfd34cb9df74a133a588ba88c2718098b3b4468b81184aaa + io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc + irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 iso8601 (0.13.0) sha256=298c2b15b7be5fa95a1372813d36a2257656cd8e906dfbc1f5cb409851425aa2 jmespath (1.6.2) sha256=238d774a58723d6c090494c8879b5e9918c19485f7e840f2c1c7532cf84ebcb1 - json (2.17.1) sha256=e0e4824541336a44915436f53e7ea74c687314fb8f88080fa1456f6a34ead92e - json-schema (6.0.0) sha256=79ecaffba197008912933f66f6c5428f5ce7716e42bb1a8f0d56079f2d58633f + json (2.19.9) sha256=9b9025b7cdddafa38d316eca0b2358488e42d417045c1b90d216a9fefe46b79a + json-schema (6.2.0) sha256=e8bff46ed845a22c1ab2bd0d7eccf831c01fe23bb3920caa4c74db4306813666 + json_completer (1.2.0) sha256=4665749172634eccb208c562eb59ea81dd7a612a1fa9a36df441ac473ff177b1 json_schemer (2.5.0) sha256=2f01fb4cce721a4e08dd068fc2030cffd0702a7f333f1ea2be6e8991f00ae396 jwt (2.10.1) sha256=e6424ae1d813f63e761a04d6284e10e7ec531d6f701917fadcd0d9b2deaf1cc5 - kgio (2.11.4) sha256=bda7a2146115998a5b07154e708e0ac02c38dcee7e793c33e2e14f600fdfffc6 + landlock (0.3) sha256=841ae1ef1318082a485ae919b6a481ceb9c2d3ac9294ada27e2a3c529446b23c language_server-protocol (3.17.0.5) sha256=fd1e39a51a28bf3eec959379985a72e296e9f9acfce46f6a79d31ca8760803cc - libv8-node (24.1.0.0) sha256=2f0e9ac629c4c5753eaf7001952bb6dce4eb596f3dc0df3049ee7d9cfb9471cd - libv8-node (24.1.0.0-aarch64-linux) sha256=fe7787bdb082d1101f65d8f42572ec6c634776a334d82b9fedded152e1d4f358 - libv8-node (24.1.0.0-arm64-darwin) sha256=f34bdd85787a32a16db137ffbe83feb1cd09f4d69ff3c43cd2f0a675656ee16b - libv8-node (24.1.0.0-x86_64-darwin) sha256=243cfae376d7d54b02fb9e8cfd2a2a08e791d066fb78252925a825f05805083b - libv8-node (24.1.0.0-x86_64-linux) sha256=0857486e64f7bd4133d4aa607c42d0abade1ab53dffcbfd30f12e0b7dba8f157 - libv8-node (24.1.0.0-x86_64-linux-musl) sha256=080a243ac014054780cc0d0be2c18b93642a139d09622c0cfd1ebc8614d24437 + libv8-node (24.12.0.1) sha256=d93d23b861bfe5de3ba829e34a142402fb83b4c3592dd58d9ac4e027588d739a + libv8-node (24.12.0.1-aarch64-linux) sha256=22bd0246cde85d70c88cf772727ac3677a20ac1d169105f82efe5f1f7c39f755 + libv8-node (24.12.0.1-aarch64-linux-musl) sha256=791b5960f79525e87d1bd1e5f2bf3715ef2a38bac6c97f297853e98a8411ba89 + libv8-node (24.12.0.1-arm64-darwin) sha256=124904a46b4a15c01ac024b4cf537dcf199cfb49a309cc59f66315e156e48339 + libv8-node (24.12.0.1-x86_64-darwin) sha256=5eee594393e7a27dc230a7fca5f9f72fc11ed58bce655624a683f4d027bf2d16 + libv8-node (24.12.0.1-x86_64-linux) sha256=e1236be4765edc109bd6ecef2989cf781bdcbac6f6e2cb3236ec9568540a9cfa + libv8-node (24.12.0.1-x86_64-linux-musl) sha256=7563175534c40893815bfd28e8fe27e12ff1656700c7208f53de06d14001712b lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 - listen (3.9.0) sha256=db9e4424e0e5834480385197c139cb6b0ae0ef28cc13310cfd1ca78377d59c67 + liquid (5.12.0) sha256=5a3c2c2430cd925d21c53e4ed9abea52cd0a9da53b541422f81dee79aca2a673 + listen (3.10.0) sha256=c6e182db62143aeccc2e1960033bebe7445309c7272061979bb098d03760c9d2 literate_randomizer (0.4.0) sha256=05073c9b383983b1ed7e26c40b963468e91bc86e663b3eeff3a4af91b84217b1 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 lograge (0.14.0) sha256=42371a75823775f166f727639f5ddce73dd149452a55fc94b90c303213dc9ae1 logstash-event (1.2.02) sha256=89a7dc60fac67070a5f60ba07409e541b09cb58906c391e90cb74b9f217467ae - logster (2.20.1) sha256=a84bbe58e7f99c4eb0246ea3a952ed87950f63aeea3cdbe7147018d10cc9a2a8 - loofah (2.24.1) sha256=655a30842b70ec476410b347ab1cd2a5b92da46a19044357bbd9f401b009a337 + logster (2.21.0) sha256=5edc71ea98d5f89fe081556893f77b7c4d2617341dae7d421fc37539cfb13a02 + loofah (2.25.1) sha256=d436c73dbd0c1147b16c4a41db097942d217303e1f7728704b37e4df9f6d2e04 lru_redux (1.1.0) sha256=ee71d0ccab164c51de146c27b480a68b3631d5b4297b8ffe8eda1c72de87affb lz4-ruby (0.3.3) sha256=011be5ee230cfddc8308d4e2e0b05300c7bc755a887de799377ca6c5b6aede89 mail (2.9.0) sha256=6fa6673ecd71c60c2d996260f9ee3dd387d4673b8169b502134659ece6d34941 + markbridge (0.3.1) sha256=a36dff4e79e666fe7f944d4a806f507212191b80d22878ab3ee9008d9df975a3 matrix (0.4.3) sha256=a0d5ab7ddcc1973ff690ab361b67f359acbb16958d1dc072b8b956a286564c5b maxminddb (0.1.22) sha256=50933be438fbed9dceabef4163eab41884bd8830d171fdb8f739bee769c4907e memory_profiler (1.1.0) sha256=79a17df7980a140c83c469785905409d3027ca614c42c086089d128b805aa8f8 - message_bus (4.4.1) sha256=719ec5c3167e6571030dee0f43eafa99dbf68ae67fca6fd63c265ff55c0c2adb + message_bus (4.5.2) sha256=f1381bce05d9560e5ea7dfa56e44dfdf0080bda0ac02f4011eb662bb7dd9e778 messageformat-wrapper (1.1.0) sha256=ecea879626e412d1bc841c457dacfcbb1a62cf88ca83573e4ea34bb371f160bc method_source (1.1.0) sha256=181301c9c45b731b4769bc81e8860e72f9161ad7d66dd99103c9ab84f560f5c5 + migrations-converters (0.0.1) + migrations-core (0.0.1) + migrations-importer (0.0.1) + migrations-tooling (0.0.1) mime-types (3.7.0) sha256=dcebf61c246f08e15a4de34e386ebe8233791e868564a470c3fe77c00eed5e56 - mime-types-data (3.2025.0924) sha256=f276bca15e59f35767cbcf2bc10e023e9200b30bd6a572c1daf7f4cc24994728 + mime-types-data (3.2026.0414) sha256=461c4c655373a44bd6c5fe54bcf5b7776026ea96e808144b1ec465c4b99148cc mini_mime (1.1.5) sha256=8681b7e2e4215f2a159f9400b5816d85e9d8c6c6b491e96a12797e798f8bccef mini_portile2 (2.8.9) sha256=0cd7c7f824e010c072e33f68bc02d85a00aeb6fce05bb4819c03dfd3c140c289 - mini_racer (0.19.1) sha256=3e4ec1bfbb3ebb39c23d8fc4b6e641b5dc6767a173a8938356c271895e5d6de3 - mini_scheduler (0.18.0) sha256=d2f084f38da8d76c5844a92f0d6bd01fc9982a8b5e6c7679b6cf44c82da33503 + mini_racer (0.21.4) sha256=ccf5e37288097f079d84449e111cd4e2170b37f3b80b30900766ffa6df4632db + mini_scheduler (0.20.0) sha256=bd8948228bf4a48a603a8e20de850d16b68295413d8651c8c05288f4c6997b05 mini_sql (1.6.0) sha256=5296637f6a4af5bb43e06788037e9a2968ff9c8eb65928befcba8cb41f42d6ee mini_suffix (0.3.3) sha256=8d1d33f92f69a2247c9b7d27173235da90479d955cdb863b63a7f53843b722e7 - minio_runner (1.0.1) sha256=3675ad7abd79177b3fdd9f37e20fe46f7d4dcbb41f3f30a53db2207277241795 - minitest (5.26.2) sha256=f021118a6185b9ba9f5af71f2ba103ad770c75afde9f2ab8da512677c550cde3 - mocha (2.8.2) sha256=1f77e729db47e72b4ef776461ce20caeec2572ffdf23365b0a03608fee8f4eee - msgpack (1.8.0) sha256=e64ce0212000d016809f5048b48eb3a65ffb169db22238fb4b72472fecb2d732 - multi_json (1.18.0) sha256=23f70cf73e2895a33e6d10f0ec955b28ef5627ca4bbad0f292e7d16f4675596f - multi_xml (0.7.2) sha256=307a96dc48613badb7b2fc174fd4e62d7c7b619bc36ea33bfd0c49f64f5787ce + minio_runner (1.1.0) sha256=ebb2bedea253011fcd34ed3229706c9b453f0f363601dee7ce065e0163bdcf2f + minitest (6.0.6) sha256=153ea36d1d987a62942382b61075745042a2b3123b1cd48f4c3675af9cc7d6f1 + mocha (3.1.0) sha256=75f42d69ebfb1f10b32489dff8f8431d37a418120ecdfc07afe3bc183d4e1d56 + msgpack (1.8.3) sha256=8bda4a6428d3244e50d6bd55854d354edbada88a4e1f4f5731a39a0f86bee6a1 + multi_json (1.20.1) sha256=2f3934e805cc45ef91b551a1f89d0e9191abd06a5e04a2ef09a6a036c452ca6d + multi_xml (0.9.1) sha256=7ce766b59c17241ed62976caeae1fae9b2431b263398c35396239a68c4a64e57 multipart-post (2.4.1) sha256=9872d03a8e552020ca096adadbf5e3cb1cd1cdd6acd3c161136b8a5737cdb4a8 - mustache (1.1.1) sha256=90891fdd50b53919ca334c8c1031eada1215e78d226d5795e523d6123a2717d0 - net-http (0.8.0) sha256=df42c47ce9f9e95ad32a317c97c12f945bc1af365288837ea4ff259876ecb46d - net-imap (0.5.12) sha256=cb8cd05bd353fcc19b6cbc530a9cb06b577a969ea10b7ddb0f37787f74be4444 + mustache (1.1.2) sha256=d420243400354da78ded2d81541b381ad8d94e8e9b95022d0d71d66f8ef36c00 + net-http (0.9.1) sha256=25ba0b67c63e89df626ed8fac771d0ad24ad151a858af2cc8e6a716ca4336996 + net-imap (0.6.4.1) sha256=29f0360d75a7efd3539f16ac1957dea5c0a51ddeceb348db4553c3120914ea0d net-pop (0.1.2) sha256=848b4e982013c15b2f0382792268763b748cce91c9e91e36b0f27ed26420dff3 net-protocol (0.2.2) sha256=aa73e0cba6a125369de9837b8d8ef82a61849360eba0521900e2c3713aa162a8 net-smtp (0.5.1) sha256=ed96a0af63c524fceb4b29b0d352195c30d82dd916a42f03c62a3a70e5b70736 nio4r (2.7.5) sha256=6c90168e48fb5f8e768419c93abb94ba2b892a1d0602cb06eef16d8b7df1dca1 - nokogiri (1.18.10) sha256=d5cc0731008aa3b3a87b361203ea3d19b2069628cb55e46ac7d84a0445e69cc1 - nokogiri (1.18.10-aarch64-linux-gnu) sha256=7fb87235d729c74a2be635376d82b1d459230cc17c50300f8e4fcaabc6195344 - nokogiri (1.18.10-aarch64-linux-musl) sha256=7e74e58314297cc8a8f1b533f7212d1999dbe2639a9ee6d97b483ea2acc18944 - nokogiri (1.18.10-arm-linux-gnu) sha256=51f4f25ab5d5ba1012d6b16aad96b840a10b067b93f35af6a55a2c104a7ee322 - nokogiri (1.18.10-arm-linux-musl) sha256=1c6ea754e51cecc85c30ee8ab1e6aa4ce6b6e134d01717e9290e79374a9e00aa - nokogiri (1.18.10-arm64-darwin) sha256=c2b0de30770f50b92c9323fa34a4e1cf5a0af322afcacd239cd66ee1c1b22c85 - nokogiri (1.18.10-x86_64-darwin) sha256=536e74bed6db2b5076769cab5e5f5af0cd1dccbbd75f1b3e1fa69d1f5c2d79e2 - nokogiri (1.18.10-x86_64-linux-gnu) sha256=ff5ba26ba2dbce5c04b9ea200777fd225061d7a3930548806f31db907e500f72 - nokogiri (1.18.10-x86_64-linux-musl) sha256=0651fccf8c2ebbc2475c8b1dfd7ccac3a0a6d09f8a41b72db8c21808cb483385 - oauth (1.1.3) sha256=71ca1b534561bf31a9b2aee01147384064b555e796d1a0fe2591806bb4bdd633 - oauth-tty (1.0.6) sha256=9e8bd1861d367cce18318d8f214f2e1a1d7cb3898de0a9ea79162b4fdecb3152 + nokogiri (1.19.3) sha256=78312cbac32a40c812780d9678221b79d51288eec00054c1a8d15f7ce05960e8 + nokogiri (1.19.3-aarch64-linux-gnu) sha256=46b89e5d7b9e844c2ee360794240c6ea2a4e6fa0c5892a4ed487db621224b639 + nokogiri (1.19.3-aarch64-linux-musl) sha256=8392dfdcd21be7a94dbbe9ccc138dea01b97b24cb2dc02a114ca98bfb1d9a0b7 + nokogiri (1.19.3-arm64-darwin) sha256=71b9bd424b1b7abc18b05052a1a3cfd3627abdca62be280854cc411791357e42 + nokogiri (1.19.3-x86_64-darwin) sha256=77f3fba57d46c53ab31e62fc6c28f705109d1bf6264356c76f132b2be5728d4d + nokogiri (1.19.3-x86_64-linux-gnu) sha256=2f5078620fe12e83669b5b17311b32532a8153d02eee7ad06948b926d6080976 + nokogiri (1.19.3-x86_64-linux-musl) sha256=248c906d2166eca5efb56d52fdee5f9a1f51d69a72e2b64fdac647b4ce39ea3f + oauth (1.1.5) sha256=0ec467908f5819a54d1659d33e8bb520e8475cc87a452d6ecfaa5db351999cca + oauth-tty (1.0.8) sha256=d9a63b67af17c22517f868c59f12178e4ee19a367536d1a6dcb74d9d07a41e07 oauth2 (1.4.11) sha256=6739fcc8872bc94f476b0cae3e8bd78a56d8364b1b79b0757794c25e152d5c10 - octokit (5.6.1) sha256=48efb2c2aa83c2c394358f073d35ad71d4ac0f14870cd00ceebd3ef3949fe495 + octokit (10.0.0) sha256=82e99a539b7637b7e905e6d277bb0c1a4bed56735935cc33db6da7eae49a24e8 oj (3.16.12) sha256=ad9fad6a06dabcf4cfe6a420690a4375377685c16eee0ae88e8d38a43ed7b556 omniauth (2.1.2) sha256=def03277298b8f8a5d3ff16cdb2eb5edb9bffed60ee7dda24cc0c89b3ae6a0ce - omniauth-facebook (9.0.0) sha256=440ad8dd9edc9ebec1fd6607b787667c8ce70d2969c2030d7e9ca42a271af854 + omniauth-facebook (10.0.0) sha256=dfdc6cbada5387572d554784861546cf6382f9fa16c4731cbe5813e570fcb9e1 omniauth-github (2.0.0) sha256=1ca26576125a97e27d3f8dc39cd98853d7382dd0fc04a40d3b9ec345ee378649 omniauth-google-oauth2 (1.0.1) sha256=2ed7a4ac8d98ab824c95e0d6760784abf1248262b3ba2ab56ec7ebd7074d12a6 omniauth-oauth (1.2.1) sha256=25bf22c90234280fa825200490f03ff1ce7d76f1a4fbd6c882c6c5b169c58da8 @@ -1121,150 +1204,148 @@ CHECKSUMS openssl-signature_algorithm (1.3.0) sha256=a3b40b5e8276162d4a6e50c7c97cdaf1446f9b2c3946a6fa2c14628e0c957e80 optimist (3.2.1) sha256=8cf8a0fd69f3aa24ab48885d3a666717c27bc3d9edd6e976e18b9d771e72e34e ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 - parallel (1.27.0) sha256=4ac151e1806b755fb4e2dc2332cbf0e54f2e24ba821ff2d3dcf86bf6dc4ae130 - parallel_tests (5.5.0) sha256=783c1e4da27c4096a7b360f080ae03cf1122cb0dfdb4fe827013e0521642f666 - parser (3.3.10.0) sha256=ce3587fa5cc55a88c4ba5b2b37621b3329aadf5728f9eafa36bbd121462aabd6 + parallel (2.1.0) sha256=b35258865c2e31134c5ecb708beaaf6772adf9d5efae28e93e99260877b09356 + parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c + parser (3.3.11.1) sha256=d17ace7aabe3e72c3cc94043714be27cc6f852f104d81aa284c2281aecc65d54 pastel (0.8.0) sha256=481da9fb7d2f6e6b1a08faf11fa10363172dc40fd47848f096ae21209f805a75 - pdf-reader (2.15.0) sha256=c5025750bec8de7b11cfd1d1ccc2b944d2782c3638cd15b5ee1531d1206c0886 - pg (1.6.2) sha256=58614afd405cc9c2c9e15bffe8432e0d6cfc58b722344ad4a47c73a85189c875 - pg (1.6.2-aarch64-linux) sha256=0503c6be5b0ca5ca3aaf91f2ed638f90843313cb81e8e7d7b60ad4bb62c3d131 - pg (1.6.2-aarch64-linux-musl) sha256=c4402447c56279bea80472770522e95c8a2ff49b7f3e534d0cdb01eb27fd6eb8 - pg (1.6.2-arm64-darwin) sha256=4d44500b28d5193b26674583d199a6484f80f1f2ea9cf54f7d7d06a1b7e316b6 - pg (1.6.2-x86_64-darwin) sha256=c441a55723584e2ae41749bf26024d7ffdfe1841b442308ed50cd6b7fda04115 - pg (1.6.2-x86_64-linux) sha256=525f438137f2d1411a1ebcc4208ec35cb526b5a3b285a629355c73208506a8ea - pg (1.6.2-x86_64-linux-musl) sha256=e5c8668ffeaf7a9c3458a3dcb002dffa6d8ee1fca9ae534ffef861d2b15644ca - pitchfork (0.18.1) sha256=98f294024352c208d28732f7c009eed0d9ccae48d878a3b42722687338713059 - playwright-ruby-client (1.57.0) sha256=978bd6a25a0e85c633216bf0d73e050217ca640025b8258caf6ea8034f3e9ef4 + pdf-reader (2.15.1) sha256=18c6a986a84a3117fa49f4279fc2de51f5d2399b71833df5d2bccd595c7068ce + pg (1.6.3) sha256=1388d0563e13d2758c1089e35e973a3249e955c659592d10e5b77c468f628a99 + pg (1.6.3-aarch64-linux) sha256=0698ad563e02383c27510b76bf7d4cd2de19cd1d16a5013f375dd473e4be72ea + pg (1.6.3-aarch64-linux-musl) sha256=06a75f4ea04b05140146f2a10550b8e0d9f006a79cdaf8b5b130cde40e3ecc2c + pg (1.6.3-arm64-darwin) sha256=7240330b572e6355d7c75a7de535edb5dfcbd6295d9c7777df4d9dddfb8c0e5f + pg (1.6.3-x86_64-darwin) sha256=ee2e04a17c0627225054ffeb43e31a95be9d7e93abda2737ea3ce4a62f2729d6 + pg (1.6.3-x86_64-linux) sha256=5d9e188c8f7a0295d162b7b88a768d8452a899977d44f3274d1946d67920ae8d + pg (1.6.3-x86_64-linux-musl) sha256=9c9c90d98c72f78eb04c0f55e9618fe55d1512128e411035fe229ff427864009 + pitchfork (0.18.2) sha256=95d0b5a25792ebc94d627abd8a206652ff22acff1cc32ecd42c71669ead4ab94 + playwright-ruby-client (1.60.0) sha256=942242d6130e797b21213d9c49dc09d31235cab429a9edae73401ed112c94853 pp (0.6.3) sha256=2951d514450b93ccfeb1df7d021cae0da16e0a7f95ee1e2273719669d0ab9df6 prettier_print (1.2.1) sha256=a72838b5f23facff21f90a5423cdcdda19e4271092b41f4ea7f50b83929e6ff9 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 - prism (1.6.0) sha256=bfc0281a81718c4872346bc858dc84abd3a60cae78336c65ad35c8fbff641c6b + prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 progress (3.6.0) sha256=360ed306dfa43d6174e847d563c70736dca249e2333cfec4b0387306c86cd573 - propshaft (1.3.1) sha256=9acc664ef67e819ffa3d95bd7ad4c3623ea799110c5f4dee67fa7e583e74c392 - pry (0.15.2) sha256=12d54b8640d3fa29c9211dd4ffb08f3fd8bf7a4fd9b5a73ce5b59c8709385b6b + propshaft (1.3.2) sha256=1d56a3e56a92c21bfc29caf07406b5386b00d4c47ddf357cf989a5a234b1389e + pry (0.16.0) sha256=d76c69065698ed1f85e717bd33d7942c38a50868f6b0673c636192b3d1b6054e pry-rails (0.3.11) sha256=a69e28e24a34d75d1f60bcf241192a54253f8f7ef8a62cba1e75750a9653593d - pry-stack_explorer (0.6.1) sha256=a2dbea9b47c4ad00cf5c1ce21499f8128b915089e90015f7bafb6e9453baf340 - psych (5.2.6) sha256=814328aa5dcb6d604d32126a20bc1cbcf05521a5b49dbb1a8b30a07e580f316e - public_suffix (7.0.0) sha256=f7090b5beb0e56f9f10d79eed4d5fbe551b3b425da65877e075dad47a6a1b095 - puma (7.1.0) sha256=e45c10cb124f224d448c98db653a75499794edbecadc440ad616cf50f2fd49dd + psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 + puma (8.0.2) sha256=c8ed871dfbbe66448ea9ffd46692342d9804d4071522b52b5331b7b6e7b686fb racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f - rack (2.2.21) sha256=14e2f72f0765455fe424ff601588ac5ce84e95784f59e99251ffe1527152f739 + rack (2.2.23) sha256=a8fe9d7e07064770b8ec123663fded8a59ef7e2b6db5cda7173d45a5718ab69c rack-mini-profiler (4.0.1) sha256=485810c23211f908196c896ea10cad72ed68780ee2998bec1f1dfd7558263d78 rack-protection (3.2.0) sha256=3c74ba7fc59066453d61af9bcba5b6fe7a9b3dab6f445418d3b391d5ea8efbff rack-session (1.0.2) sha256=a02115e5420b4de036839b9811e3f7967d73446a554b42aa45106af335851d76 rack-test (2.2.0) sha256=005a36692c306ac0b4a9350355ee080fd09ddef1148a5f8b2ac636c720f5c463 rackup (1.0.1) sha256=ba86604a28989fe1043bff20d819b360944ca08156406812dca6742b24b3c249 rails-dom-testing (2.3.0) sha256=8acc7953a7b911ca44588bf08737bc16719f431a1cc3091a292bca7317925c1d - rails-html-sanitizer (1.6.2) sha256=35fce2ca8242da8775c83b6ba9c1bcaad6751d9eb73c1abaa8403475ab89a560 + rails-html-sanitizer (1.7.0) sha256=28b145cceaf9cc214a9874feaa183c3acba036c9592b19886e0e45efc62b1e89 rails_failover (2.3.0) sha256=eed6ea0674fd6f9f6b070ad297ad2ead121ecf9202920f6068b6a4f29d9491c9 rails_multisite (7.0.0) sha256=7aacf364ed86d2bee73fb679cbfe6c343ce89067b9746b3d5857fffc57f036f2 - railties (8.0.4) sha256=8203d853dcffab4abcdd05c193f101676a92068075464694790f6d8f72d5cb47 + railties (8.0.5) sha256=ad98c6e9a096b7e8cf63c70872b60ec6c1d4152be2a4ffa63483ec02a837a9d5 rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a raindrops (0.20.1) sha256=aa0eb9ff6834f2d9e232ba688bd49cb30be893bc5a3452e74722c94c1fab4730 - rake (13.3.1) sha256=8c9e89d09f66a26a01264e7e3480ec0607f0c497a861ef16063604b1b08eb19c - rake-compiler-dock (1.10.0) sha256=dd62ee19df2a185a3315697e560cfa8cc9129901332152851e023fab0e94bf11 + rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 + rake-compiler-dock (1.12.0) sha256=f13205c2738f3d2053afcd03491a9e4541b22a59a0bfc53fc8bc883bd8188023 rb-fsevent (0.11.2) sha256=43900b972e7301d6570f64b850a5aa67833ee7d87b458ee92805d56b7318aefe rb-inotify (0.11.1) sha256=a0a700441239b0ff18eb65e3866236cd78613d6b9f78fea1f9ac47a85e47be6e - rb_sys (0.9.119) sha256=64393fa148e402e1b79b64496d2aabfc7df79da6b822b8bb48dc1141eaf40b4b - rbs (3.9.5) sha256=eabaaf60aee84e38cbf94839c6e1b9cd145c7295fc3cc0e88c92e4069b1119b0 - rbtrace (0.5.3) sha256=c432292f305d9ab12fd47d9722e0d5210d983758a951fe6107c36cc955cb923f - rchardet (1.10.0) sha256=d5ea2ed61a720a220f1914778208e718a0c7ed2a484b6d357ba695aa7001390f - rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 + rb_sys (0.9.128) sha256=9ab81f4d6d4e1895de18762232362d1264475aa7035756b50441e442130538fd + rbs (4.0.2) sha256=af75671e66cd03434cc546622741ebf83f6197ec4328375805306330bf78ef25 + rbtrace (0.5.4) sha256=8279e40076530f0301e255d0669cfe0d7d31ef872d1ae475c486e5a1199b757b + rchardet (1.10.2) sha256=e041cb195f464dc10e49ab130f78c8b5956cd9a4f4f6df84e0c183b87c135f33 + rdoc (7.2.0) sha256=8650f76cd4009c3b54955eb5d7e3a075c60a57276766ebf36f9085e8c9f23192 redcarpet (3.6.1) sha256=d444910e6aa55480c6bcdc0cdb057626e8a32c054c29e793fa642ba2f155f445 redis (5.4.0) sha256=798900d869418a9fc3977f916578375b45c38247a556b61d58cba6bb02f7d06b - redis-client (0.26.1) sha256=1e39d2862c4516a75ff777ee6ed08827af39336bfece4a48e944244891d9a073 + redis-client (0.30.0) sha256=743f11ed42f0a41a0341554087b077479fec7e2d47a7c123fd90a12c0db5e477 redis-namespace (1.11.0) sha256=e91a1aa2b2d888b6dea1d4ab8d39e1ae6fac3426161feb9d91dd5cca598a2239 - regexp_parser (2.11.3) sha256=ca13f381a173b7a93450e53459075c9b76a10433caadcb2f1180f2c741fc55a4 + regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb reline (0.6.3) sha256=1198b04973565b36ec0f11542ab3f5cfeeec34823f4e54cebde90968092b1835 request_store (1.7.0) sha256=e1b75d5346a315f452242a68c937ef8e48b215b9453a77a6c0acdca2934c88cb rexml (3.4.4) sha256=19e0a2c3425dfbf2d4fc1189747bdb2f849b6c5e74180401b15734bc97b5d142 rinku (2.0.6) sha256=8b60670e3143f3db2b37efa262971ce3619ec23092045498ef9f077d82828d7d rotp (6.3.0) sha256=75d40087e65ed0d8022c33055a6306c1c400d1c12261932533b5d6cbcd868854 - rouge (4.7.0) sha256=dba5896715c0325c362e895460a6d350803dbf6427454f49a47500f3193ea739 - rqrcode (3.1.1) sha256=4c2e1e36dab80720062388cfc827986ab622dc652437214a5fb6382985b6f00f - rqrcode_core (2.0.1) sha256=52f76d97ec837fa91b15a15a95c5c2740b22d722db5d6b071f76d4b40a3ba98a - rrule (0.7.0) sha256=816b6ac33c5705addfe25de3c3de05003ae68ae2ca02cf5c0e805ee387851f87 + rouge (5.0.0) sha256=e2de9bba2f9cb88f8a73bca3643b560b2b398f32f91bf716f584477bc0175ebc + rqrcode (3.2.0) sha256=64c1494ca6bb67d731330f38b50e3fd09eeab4f5dcd04b608e21218d1d0b9542 + rqrcode_core (2.1.0) sha256=f303b85df89c1b8fc5ee8dc19808c9dc4330e6329b660d99d4a8cbb36ca13051 + rrule (0.8.0) sha256=abb19a334efe441879012de9c2f5589372a20097a63a70f5ff9d3b0b4504a4f2 rspec (3.13.2) sha256=206284a08ad798e61f86d7ca3e376718d52c0bc944626b2349266f239f820587 rspec-core (3.13.6) sha256=a8823c6411667b60a8bca135364351dda34cd55e44ff94c4be4633b37d828b2d rspec-expectations (3.13.5) sha256=33a4d3a1d95060aea4c94e9f237030a8f9eae5615e9bd85718fe3a09e4b58836 rspec-html-matchers (0.10.0) sha256=d424bfeb0104884478be299b6695b56c2d0432bb77dc9cedecb5138e91c0e9ae - rspec-mocks (3.13.7) sha256=0979034e64b1d7a838aaaddf12bf065ea4dc40ef3d4c39f01f93ae2c66c62b1c + rspec-mocks (3.13.8) sha256=086ad3d3d17533f4237643de0b5c42f04b66348c28bf6b9c2d3f4a3b01af1d47 rspec-multi-mock (0.3.1) sha256=289470f28d1d9dcdecabf70e9a14f97b0dc7e3dba090dfbe4c98c64ebd53794c - rspec-rails (8.0.2) sha256=113139a53f5d068d4f48d1c29ad5f982013ed9b0daa69d7f7b266eda5d433ace - rspec-support (3.13.6) sha256=2e8de3702427eab064c9352fe74488cc12a1bfae887ad8b91cba480ec9f8afb2 - rss (0.3.1) sha256=b46234c04551b925180f8bedfc6f6045bf2d9998417feda72f300e7980226737 + rspec-rails (8.0.4) sha256=06235692fc0892683d3d34977e081db867434b3a24ae0dd0c6f3516bad4e22df + rspec-support (3.13.7) sha256=0640e5570872aafefd79867901deeeeb40b0c9875a36b983d85f54fb7381c47c + rss (0.3.3) sha256=37ef1ec4d691d67edbe92159079a4e89a0965e6a6b32246009ae3d734d12d1ab rswag-specs (2.17.0) sha256=a3b2bdf6df89f8741fe4a4ee47ceb1e77dc13e1c96bbe07352117d6e61afa9e3 rtlcss (0.2.1) sha256=213d5a00bf61267f93a7a516d699d77e1cc5f396743abb33c01e3f3243a7bf60 - rubocop (1.81.7) sha256=6fb5cc298c731691e2a414fe0041a13eb1beed7bab23aec131da1bcc527af094 - rubocop-ast (1.48.0) sha256=22df9bbf3f7a6eccde0fad54e68547ae1e2a704bf8719e7c83813a99c05d2e76 - rubocop-capybara (2.22.1) sha256=ced88caef23efea53f46e098ff352f8fc1068c649606ca75cb74650970f51c0c - rubocop-discourse (3.13.3) sha256=637395e37ac45f0c5ba4376d7648b5f1e3a8406697c38befb66a9729738a059f + rubocop (1.86.1) sha256=44415f3f01d01a21e01132248d2fd0867572475b566ca188a0a42133a08d4531 + rubocop-ast (1.49.1) sha256=4412f3ee70f6fe4546cc489548e0f6fcf76cafcfa80fa03af67098ffed755035 + rubocop-capybara (2.23.0) sha256=f9ea1ba3a7561ee8e88cf76fc378ce517ce5327155f305ee7b5c2500e5aee357 + rubocop-discourse (3.18.0) sha256=bdb31f13cbb1ed82443b5a53b36efbce3b52a77b7a0f3ee7b421ce81d937ce0b + rubocop-discourse-base (1.0.0) sha256=a4121f0f2a8e32c3259fee22106af9fd35372cbeac14b0c69673bdee79b472b7 rubocop-factory_bot (2.28.0) sha256=4b17fc02124444173317e131759d195b0d762844a71a29fe8139c1105d92f0cb - rubocop-rails (2.33.4) sha256=34ec8f6637706dc224483d949ccc88b3e41596a81a11a1ec0c7d74ecbea356b5 - rubocop-rspec (3.8.0) sha256=28440dccb3f223a9938ca1f946bd3438275b8c6c156dab909e2cb8bc424cab33 + rubocop-rails (2.34.3) sha256=10d37989024865ecda8199f311f3faca990143fbac967de943f88aca11eb9ad2 + rubocop-rspec (3.9.0) sha256=8fa70a3619408237d789aeecfb9beef40576acc855173e60939d63332fdb55e2 rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 - ruby-lsp (0.26.4) sha256=1cb3046a066c8f1983dfe5f0cd3baa76034d6ba156e8ab460b15ab129d37a9f7 + ruby-lsp (0.26.9) sha256=33a01c001c00a76b4e821efc04ed7572983430f31ca5d6f3e343d0b6ccab4129 ruby-lsp-rails (0.4.8) sha256=f09d1f926d4063deeb2f3049311925c20dfe6c912371e3bcd04a265a865c44ae - ruby-lsp-rspec (0.1.28) sha256=0db3b3ffba08c6d70eb7831e79090a1863f572fe131ed0ecfce8a2f7d01bf491 - ruby-prof (1.7.2) sha256=270424fcac37e611f2d15a55226c4628e234f8434e1d7c25ca8a2155b9fc4340 + ruby-lsp-rspec (0.1.29) sha256=798be579723376cd56b17d32373288fb1163e4cfe2024c7d068516a1cf214ee5 + ruby-prof (2.0.5) sha256=dbc3b5112089538ac33303145db0cbd77cbdcdbc05b09e44a967ff72a36d6c0e ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby-rc4 (0.1.5) sha256=00cc40a39d20b53f5459e7ea006a92cf584e9bc275e2a6f7aa1515510e896c03 - ruby-readability (0.7.2) sha256=7351ddc89ac62ecdd35336acb1313ac29dc1dad9745d59f25109ec2215c6580c + ruby-readability (0.7.3) sha256=bd213fab037118cc15d999e167a8ea2cc6b689dc78c033e78fb36a2a37efc241 ruby2_keywords (0.0.5) sha256=ffd13740c573b7301cf7a2e61fc857b2a8e3d3aff32545d6f8300d8bae10e3ef - rubyzip (2.4.1) sha256=8577c88edc1fde8935eb91064c5cb1aef9ad5494b940cf19c775ee833e075615 + rubyzip (3.3.1) sha256=2ed92112c7c43ba2b2527f35e6d99d9c2c99270b640aad5227516436481b1e4e + samovar (2.5.1) sha256=8a9fc41eb8868084f0321eb41678c485cfbc7d282fb306c0be67c3284b1d2394 sanitize (7.0.0) sha256=269d1b9d7326e69307723af5643ec032ff86ad616e72a3b36d301ac75a273984 - sass-embedded (1.91.0) sha256=bd01003af7959f73205ba828aaf033209c26b35598d73cad14a83907ca8cb847 - sass-embedded (1.91.0-aarch64-linux-gnu) sha256=932bf7223ffbbdeefc91cd364de6bf9dbfdc7d80201911eb4dae8d9a7f5bee50 - sass-embedded (1.91.0-aarch64-linux-musl) sha256=08449fac861094055a1afe7da376f887f8192b3dba6658db1de7be17d32355c4 - sass-embedded (1.91.0-arm-linux-gnueabihf) sha256=8e971474d34bdf15a31f5d4b0d7fcfb8bee87177d875323d7cc6d24e95602ca6 - sass-embedded (1.91.0-arm-linux-musleabihf) sha256=6134921019684df17c71f976404a2a23c561d8ced727dcf7ab78ad33c18210b6 - sass-embedded (1.91.0-arm64-darwin) sha256=04df4cb5661ea0c4bd2f2e819e73f22fee97307e58117ea158ae6c828ece9a77 - sass-embedded (1.91.0-x86_64-darwin) sha256=8deab415ffc209249f27369a620be2497221ad40fe60fa86b6e961b13622ea76 - sass-embedded (1.91.0-x86_64-linux-gnu) sha256=f94852f7b5442a2a34994544a578f7157cd64dc1a3b7b922baf059328734e813 - sass-embedded (1.91.0-x86_64-linux-musl) sha256=d8cd06bc64fea00070fc4c89d306d7def0d7b343510b52ad9c86f9b285853bbf - sassc-embedded (1.80.5) sha256=b2720c938de54e9798bea17bc044ea0df05f552acec30b8e9a79060cceb9cb3e + sass-embedded (1.100.0) sha256=b7d4831f304be5ba8717b2a1307644164b63dc158113a67f469e90578d3fc092 + sass-embedded (1.100.0-aarch64-linux-gnu) sha256=c13187f8eaae7e7e64246b18eb896534a84465a17198829ef65730db4662860e + sass-embedded (1.100.0-aarch64-linux-musl) sha256=1b0945a66cd4e40f505db73b1e790e2561e07e6d9fd04ef6ebbf279835666b3f + sass-embedded (1.100.0-arm64-darwin) sha256=d294b32c3b7bed293ad39bd392713c07f1df5454e65fa0f8d80dadbdba8a0cf4 + sass-embedded (1.100.0-x86_64-darwin) sha256=3db80c837a60712de3461d5aa1be43c7056a0584d7182a8ae7a8996d64ab46d3 + sass-embedded (1.100.0-x86_64-linux-gnu) sha256=58dd0a8a4f0dd78881b90d8b0e4d0eed042d54865b19b71384d91091ade93e18 + sass-embedded (1.100.0-x86_64-linux-musl) sha256=03dbee81bf93e770c725caf0c895e04c7b049ebef56b8a7002fcf21e6bedf7c5 + sassc-embedded (1.80.8) sha256=ea62825e4031cc8267e6befd492bcf8e29f11ccc18500f4e8ee9adb7feb6d563 sawyer (0.9.3) sha256=0d0f19298408047037638639fe62f4794483fb04320269169bd41af2bdcf5e41 securerandom (0.4.1) sha256=cc5193d414a4341b6e225f0cb4446aceca8e50d5e1888743fac16987638ea0b1 shoulda-matchers (7.0.1) sha256=b4bfd8744c10e0a36c8ac1a687f921ee7e25ed529e50488d61b79a8688749c77 - sidekiq (7.3.9) sha256=1108712e1def89002b28e3545d5ae15d4a57ffd4d2c25d97bb1360988826b5a7 + sidekiq (7.3.10) sha256=781eb4f65ef36042534ad73d72f211283afb7fee82eec786ada4ed1972ef8e3c simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246 simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 simpleidn (0.2.3) sha256=08ce96f03fa1605286be22651ba0fc9c0b2d6272c9b27a260bc88be05b0d2c29 - snaky_hash (2.0.3) sha256=25a3d299566e8153fb02fa23fd9a9358845950f7a523ddbbe1fa1e0d79a6d456 - sqlite3 (2.8.1) sha256=acd0ac7912a4d92b2484b5befb6faa8d496497eb1e38bdbe8d7818fb8d05d726 - sqlite3 (2.8.1-aarch64-linux-gnu) sha256=9bce166d3e3595a42fc92c28d986ea11d499b55be8bd1cd491be04af30029543 - sqlite3 (2.8.1-aarch64-linux-musl) sha256=34912f6acf3e9c43c7998c6f99ba3146708e654cf9716b2983e260315cdeed72 - sqlite3 (2.8.1-arm-linux-gnu) sha256=9118d6abb5ca7ea4f1b50a6c42c763e612670f5eb673bbdf12e8d3bd63339bde - sqlite3 (2.8.1-arm-linux-musl) sha256=48a50815521f812713310190589a8ae196fa48b70b62b72f5766bafebae77e33 - sqlite3 (2.8.1-arm64-darwin) sha256=3cb617640577ec9c1b7c09744d1e368ad3d3851c2494540f5f007387da943477 - sqlite3 (2.8.1-x86_64-darwin) sha256=0028f5dd0b7a1ee6f1dadf31fc632abf7d815cb0baa0606549634fa45578f92e - sqlite3 (2.8.1-x86_64-linux-gnu) sha256=878f4a0c5c2c4d9d4345afe2a142a87805f388a24aa8a3c2dfe2f964d7686b7a - sqlite3 (2.8.1-x86_64-linux-musl) sha256=0c191ddfd71437b439e107a0d148630bef29a1eebd7b28bcc931470c328f657d + smarter_json (1.2.6) sha256=6638a2d23954e26d268212b4c8f5b9871d31b72f3d169371cca1082c1a722b45 + snaky_hash (2.0.4) sha256=2b12758c57defa6796341a1620f84b1a23737421d8d7e2575d0550b53cc4fece + sqlite3 (2.9.5) sha256=04572973a3f943ad50a8adfffc8dd752a5f06e4c3db2026f71838fed8a982606 + sqlite3 (2.9.5-aarch64-linux-gnu) sha256=78075b6337d3d182c6d2b4691049ed45cd220826160c9ea18946bf6a1de200dc + sqlite3 (2.9.5-aarch64-linux-musl) sha256=18c801185deb4adc01ddb281e8f672a39e3d1729979ca91e39439cd3eac0402d + sqlite3 (2.9.5-arm64-darwin) sha256=d0cf444a70fc9395d513cfbcc1e6719e224aa645314e3824cb0474c721425aa2 + sqlite3 (2.9.5-x86_64-darwin) sha256=8e9caae38bd7ebb29cbeee3e7ab1d12dc2327d9a1b92c7fcf0dda05589627a81 + sqlite3 (2.9.5-x86_64-linux-gnu) sha256=233dbcb6714148dd23bc5aeb33e8efd6eac974969564ddd5794c23d5f52b231e + sqlite3 (2.9.5-x86_64-linux-musl) sha256=e7d3a7474e8af0f96150c21abc203fbab5437206bfcdf11deab7741c0ca516f2 sshkey (3.0.0) sha256=655ba351d6e01a48dfe59d65530af8975c777b8cc57a061770de3228ff2d11cd - stackprof (0.2.27) sha256=aff6d28656c852e74cf632cc2046f849033dc1dedffe7cb8c030d61b5745e80c - stringio (3.1.9) sha256=c111af13d3a73eab96a3bc2655ecf93788d13d28cb8e25c1dcbff89ace885121 + ssrf_filter (1.5.0) sha256=e03dcdb9d1730d7f6710532a606b3543df2a448a0293ce04a2d995523c5a97f6 + stackprof (0.2.28) sha256=4ec2ace02f386012b40ca20ef80c030ad711831f59511da12e83b34efb0f9a04 + stringio (3.2.0) sha256=c37cb2e58b4ffbd33fe5cd948c05934af997b36e0b6ca6fdf43afa234cf222e1 stripe (11.1.0) sha256=a76e82cc7e4d2433803ca5fbe9453d019df376236f0b9fbcb7f36e6dd327f98d + strscan (3.1.8) sha256=aae2db611a225559f21ffbb71765c9a4e60fd262534a9ea84f4f11c7f32f679e syntax_tree (6.3.0) sha256=56e25a9692c798ec94c5442fe94c5e94af76bef91edc8bb02052cbdecf35f13d - test-prof (1.5.0) sha256=da487be26216fdd2cf3a4901c9a3e63c8af87964aa28740757f9c26a4cd4eae8 - thor (1.4.0) sha256=8763e822ccb0f1d7bee88cde131b19a65606657b847cc7b7b4b82e772bcd8a3d - tiktoken_ruby (0.0.15.1) sha256=fe3860fdd5a3697ee2bee6f066d5310dfd28bb4284f94865f346d228bb0df834 - tiktoken_ruby (0.0.15.1-aarch64-linux) sha256=e2c5d00b20c10bd220a103a271011bfa828e159cfba3b99d2c4029069bbb9198 - tiktoken_ruby (0.0.15.1-aarch64-linux-musl) sha256=2b58d9f2b0615d876a767b756c117b1438e68354513aff3d540b665b8eb6559c - tiktoken_ruby (0.0.15.1-arm-linux) sha256=078faa950c93ec0929d6f70acc7f7374b044cb2561ee74fccf8ffbaf71068ed9 - tiktoken_ruby (0.0.15.1-arm64-darwin) sha256=942d15acdaa6de172e9c72644c8acb115f601152b81dc765957e10c526204a48 - tiktoken_ruby (0.0.15.1-x86_64-darwin) sha256=e7978a186e548c7c81ac5183f5ed2b57c69924aeec5d0a1ce2222892628fdab1 - tiktoken_ruby (0.0.15.1-x86_64-linux) sha256=cc53f9c43e8a4d434831b5a5b10d94d4eb07ad15d0582d568e0e9c8293447dfc - tiktoken_ruby (0.0.15.1-x86_64-linux-musl) sha256=84c8fe1a94732cb241a3f353d2c191df56c6242614237d2433e510d8fab3ee26 - timeout (0.5.0) sha256=852aefd13f41d84c2d0d83099b275034c6517395884b58e635acc8847c9190cb - tokenizers (0.6.3) sha256=cb76b8e86893695f6cfe661861cb24680755bf1fb42dca1ddd3cdfef9f657994 - tokenizers (0.6.3-aarch64-linux) sha256=9d54a23f2e2246cc942d183af4549e3972b937d9b01f7a387cb146bf698eee84 - tokenizers (0.6.3-aarch64-linux-musl) sha256=c178d8556769256857d77fb396f8ab004b29d058f59c620a2cfc56b01b501e27 - tokenizers (0.6.3-arm64-darwin) sha256=29a6a5582dce106d846a906ee9e4254c12db45a3855c3ff6881d4be8be03e6b6 - tokenizers (0.6.3-x86_64-darwin) sha256=4b71386cc08ceff5f86b448c74b2b297c00a280a1d502399b6cda23ef94e01fd - tokenizers (0.6.3-x86_64-linux) sha256=77a45cbde59daac33bdda1a74d45c18080478992a00ee7d898e7b8d15d0b3149 - tokenizers (0.6.3-x86_64-linux-musl) sha256=a4b08c53bf0c8f7674c3abd03e013f0bb7c0c2457174b116c2872a37c64f0297 - trilogy (2.9.0) sha256=a2d63b663ba68a4758e15d1f9afb228f5d16efc7fe7cea68699e1c106ef6067f + test-prof (1.6.1) sha256=0332d9c39a7c118ed942b2db582f055d9f24964d150004ec6b964d2fa262499e + thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 + tiktoken_ruby (0.0.16) sha256=2bac3503f1830b11f5fbe64ea8b7696f0ba995a721fad2c75b3f76350ae1504d + tiktoken_ruby (0.0.16-aarch64-linux) sha256=014e5ba44b99158916ff57db61d2cb3fdbc6d176644d3f6bbf36a7d36ef9467d + tiktoken_ruby (0.0.16-aarch64-linux-musl) sha256=0519bb7eed1ebe0202c302103e9edf8754e4ea3029f63573c0d0a24649f701aa + tiktoken_ruby (0.0.16-arm64-darwin) sha256=3da6fe850bf920d08c7eb736673f50bc9d08e8f2e17d34904ad3185a73fc9da7 + tiktoken_ruby (0.0.16-x86_64-darwin) sha256=4776d9f6d2f00ec4386260f3ef379347fd2dc375361c750fef7e96b57364c5be + tiktoken_ruby (0.0.16-x86_64-linux) sha256=4d970b8e68a86972ec81799306116480b33a558c06bb4fe0092852280a4b76b2 + tiktoken_ruby (0.0.16-x86_64-linux-musl) sha256=6a0400a7aba9da6146b30af5d7e4375167c5e5a291853ce47768985916c4d183 + timeout (0.6.1) sha256=78f57368a7e7bbadec56971f78a3f5ecbcfb59b7fcbb0a3ed6ddc08a5094accb + tokenizers (0.6.4) sha256=7881f2afee7e605dec6be0c382d4bd138622b77263a67ca66f4ef3156e8e8f47 + tokenizers (0.6.4-aarch64-linux) sha256=4898a86c726106967a929a318ffaacb7fa99a6cba5b50e3957f80151c0d7789a + tokenizers (0.6.4-aarch64-linux-musl) sha256=351428bcf096c931666ee148d23b875b0e519749a57a5d2984e319af11ea791f + tokenizers (0.6.4-arm64-darwin) sha256=ab123cb46e8df7e118bee0833d0bc21d4004a0d39816c0def56503be59de26c3 + tokenizers (0.6.4-x86_64-darwin) sha256=102b143e71e59bc7ff29e5920f356ad74bbc941ae2d4e3a495ee92311ace7394 + tokenizers (0.6.4-x86_64-linux) sha256=cdec6e5b007d73de094cdc7e097e4ab9a545f37f9c30e376a53800c3a552a447 + tokenizers (0.6.4-x86_64-linux-musl) sha256=588031377e3f586b66687fc9dc59f901dea47d863733d871bf6801657e312c72 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f ttfunk (1.8.0) sha256=a7cbc7e489cc46e979dde04d34b5b9e4f5c8f1ee5fc6b1a7be39b829919d20ca tty-color (0.6.0) sha256=6f9c37ca3a4e2367fb2e6d09722762647d6f455c111f05b59f35730eeb24332a @@ -1273,27 +1354,26 @@ CHECKSUMS tty-reader (0.9.0) sha256=c62972c985c0b1566f0e56743b6a7882f979d3dc32ff491ed490a076f899c2b1 tty-screen (0.8.2) sha256=c090652115beae764336c28802d633f204fb84da93c6a968aa5d8e319e819b50 tzinfo (2.0.6) sha256=8daf828cc77bcf7d63b0e3bdb6caa47e2272dcfaf4fbfe46f8c3a9df087a829b - tzinfo-data (1.2025.2) sha256=a92375a1fbb47d38fe88fd514c40a38cc8f97d168da2a6479f15185e86470939 + tzinfo-data (1.2026.2) sha256=7db0d3d3d53b8d7601fc183fccc8c6d056a3004e14eb59ea995bf6aec4ae10bc unf (0.2.0) sha256=e6bcc2e101d80e3f9459753db747d5926aada1aaaf61e629e93359da9a5b04ab unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 - unicode-emoji (4.1.0) sha256=4997d2d5df1ed4252f4830a9b6e86f932e2013fbff2182a9ce9ccabda4f325a5 - unicorn (6.1.0) sha256=45dd987add4c2b084c1880a68373af42797a704ad7441faff9b14b4982aa0fc0 + unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f uniform_notifier (1.18.0) sha256=4787785556f66f6418486da0f1d78b3239aaff98e2e7938fb05e2062b0ffce9d uri (1.1.1) sha256=379fa58d27ffb1387eaada68c749d1426738bd0f654d812fcc07e7568f5c57c6 useragent (0.16.11) sha256=700e6413ad4bb954bb63547fa098dddf7b0ebe75b40cc6f93b8d54255b173844 - version_gem (1.1.9) sha256=0c1a0962ae543c84a00889bb018d9f14d8f8af6029d26b295d98774e3d2eb9a4 + version_gem (1.1.13) sha256=77f3035ac45877cd14610648fec2d23bd8c10fa13dfcf63a588825aa98587260 web-push (3.0.1) sha256=5b4dd2f2bba3bd8951da6416492fe920a6f203d14d3080f943c5d01c0cc4b18d - webmock (3.25.1) sha256=ab9d5d9353bcbe6322c83e1c60a7103988efc7b67cd72ffb9012629c3d396323 + webmock (3.26.2) sha256=774556f2ea6371846cca68c01769b2eac0d134492d21f6d0ab5dd643965a4c90 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 wisper (2.0.1) sha256=ce17bc5c3a166f241a2e6613848b025c8146fce2defba505920c1d1f3f88fae6 xpath (3.2.0) sha256=6dfda79d91bb3b949b947ecc5919f042ef2f399b904013eb3ef6d20dd3a4082e yaml-lint (0.1.2) sha256=e3960b171766ae187338a169815e99fe10fcb0d9c22b1c539e8d57e114324c8a - yard (0.9.38) sha256=721fb82afb10532aa49860655f6cc2eaa7130889df291b052e1e6b268283010f - zeitwerk (2.7.3) sha256=b2e86b4a9b57d26ba68a15230dcc7fe6f040f06831ce64417b0621ad96ba3e85 + yard (0.9.44) sha256=eb087e9b631ccd887b049f303d489963945452d5e2a7eb49a5a74a7cf6887f28 + zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 zendesk_api (1.38.0.rc1) sha256=9ebe2575d223ed1c0651b2d10df6c010141cda49d524c38532b472f7e8bb3f7a RUBY VERSION - ruby 3.3.1p55 + ruby 3.4.7p58 BUNDLED WITH 2.7.2 diff --git a/pkgs/servers/web-apps/discourse/rubyEnv/gemset.nix b/pkgs/servers/web-apps/discourse/rubyEnv/gemset.nix index ab25c69fbcb2..9e781f718be7 100644 --- a/pkgs/servers/web-apps/discourse/rubyEnv/gemset.nix +++ b/pkgs/servers/web-apps/discourse/rubyEnv/gemset.nix @@ -1,4 +1,4 @@ -{ +src: { actionmailer = { dependencies = [ "actionpack" @@ -12,10 +12,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0jyyfp786csg4hmsxfywi8131p1pk51jzi8i9d9zn2lzw7c714iv"; + sha256 = "0qc5ycibnxricdlgmrihds0hqjli5hhksbv947nqbsfg8b4gl63r"; type = "gem"; }; - version = "8.0.4"; + version = "8.0.5"; }; actionpack = { dependencies = [ @@ -37,10 +37,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1nyd4f58r11b0x5gsjlnyk2k9y2kd0zhv8szf82g9j1j5xccfr03"; + sha256 = "0dabvb49acbwvy91587cbn36ghv3bsyl14a9aq4ll4nxfn4qdpn9"; type = "gem"; }; - version = "8.0.4"; + version = "8.0.5"; }; actionview = { dependencies = [ @@ -58,10 +58,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0j0n38p02s73r9a8fg615z8m78n9agpf9d9b0v7i97m5wwgc9lsv"; + sha256 = "04ql6lpvdmrl5169y166pfr9w53c6f40jkgmn4ljgkzh7pkaj3vd"; type = "gem"; }; - version = "8.0.4"; + version = "8.0.5"; }; actionview_precompiler = { dependencies = [ "actionview" ]; @@ -94,25 +94,26 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1knc9xwfnyqcxqzfsfix210ai2yhw9ps7j19aq5bk30n1rfsij6b"; + sha256 = "047asb83p78zh93v0q1svrfl6da3aqqbjlkwd2jap172pz1ybard"; type = "gem"; }; - version = "8.0.4"; + version = "8.0.5"; }; activemodel = { dependencies = [ "activesupport" ]; groups = [ "default" "development" + "migrations" "test" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1z8dff84qgqinhwsj0i91r674vvg412kg72162zv216i7jn4yklg"; + sha256 = "1hjv2kmv7i0jk8zkng3pxa1kdd90qpgr3v60qvs764yw8qyq35n7"; type = "gem"; }; - version = "8.0.4"; + version = "8.0.5"; }; activerecord = { dependencies = [ @@ -123,15 +124,16 @@ groups = [ "default" "development" + "migrations" "test" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0cmz9k27zy0746zpljg28ir4857df9r3nza4c1acmrcr2wbjr8xx"; + sha256 = "1ri9l5v4601bxwrkl105k1ccxxg2wpvg6x94rwqr834irnv63cl9"; type = "gem"; }; - version = "8.0.4"; + version = "8.0.5"; }; activesupport = { dependencies = [ @@ -151,15 +153,16 @@ groups = [ "default" "development" + "migrations" "test" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0np97w7kc9dx7kx092nzhy3g6qxmqivcsfnzlzjzmd9kfxn3ljl9"; + sha256 = "08ybmp63qrfaxq7bv7mvb4xvfb4fcylw2a0szankzkrpdbzi7wip"; type = "gem"; }; - version = "8.0.4"; + version = "8.0.5"; }; addressable = { dependencies = [ "public_suffix" ]; @@ -171,10 +174,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0mxhjgihzsx45l9wh2n0ywl9w0c6k70igm5r0d63dxkcagwvh4vw"; + sha256 = "1by7h2lwziiblizpd5yx87jsq8ppdhzvwf08ga34wzqgcv1nmpvz"; type = "gem"; }; - version = "2.8.8"; + version = "2.9.0"; }; afm = { groups = [ "default" ]; @@ -227,6 +230,17 @@ }; version = "2.4.3"; }; + auth-sanitizer = { + dependencies = [ "version_gem" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1p5f5x145ma9rw6i8zv955wbyb54wqhppa786hgck9ykshhj5myy"; + type = "gem"; + }; + version = "0.1.4"; + }; aws-eventstream = { groups = [ "default" ]; platforms = [ ]; @@ -247,12 +261,27 @@ }; version = "1.1134.0"; }; + aws-sdk-bedrockruntime = { + dependencies = [ + "aws-sdk-core" + "aws-sigv4" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "19fyy5dslbfsc8swwrl299nrkxzja268n1ggzixq9z45jjmv0ppw"; + type = "gem"; + }; + version = "1.74.0"; + }; aws-sdk-core = { dependencies = [ "aws-eventstream" "aws-partitions" "aws-sigv4" "base64" + "bigdecimal" "jmespath" "logger" ]; @@ -260,10 +289,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "17n7vw9djnw74x7cgwsxfi0k033l351mf56i7y3lg4yawg2iy1wr"; + sha256 = "1zhj444iybzs1ikw1p4arv3zayw9xkk1ifnsb6g3r2j6p0h34gpf"; type = "gem"; }; - version = "3.227.0"; + version = "3.254.0"; }; aws-sdk-kms = { dependencies = [ @@ -303,10 +332,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "03a55dbihv6xvgfwhx0f35rwc7q3rr0555vfpxlwpdjw75wkbz6h"; + sha256 = "0fd9xq7xyadlldgd9l9iry3fi38wwr1iaag9ax4xpirpkazj6asm"; type = "gem"; }; - version = "1.182.0"; + version = "1.227.0"; }; aws-sdk-sns = { dependencies = [ @@ -322,6 +351,20 @@ }; version = "1.96.0"; }; + aws-sdk-sts = { + dependencies = [ + "aws-sdk-core" + "aws-sigv4" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "07q6bvbgq9x1r5si0fqjzs6cx6hn9anam7qx5503ahnj7li69gcv"; + type = "gem"; + }; + version = "1.12.0"; + }; aws-sigv4 = { dependencies = [ "aws-eventstream" ]; groups = [ "default" ]; @@ -337,6 +380,7 @@ groups = [ "default" "development" + "migrations" "test" ]; platforms = [ @@ -358,6 +402,7 @@ groups = [ "default" "development" + "migrations" "test" ]; platforms = [ ]; @@ -394,6 +439,7 @@ groups = [ "default" "development" + "migrations" "test" ]; platforms = [ ]; @@ -404,20 +450,6 @@ }; version = "3.3.1"; }; - binding_of_caller = { - dependencies = [ "debug_inspector" ]; - groups = [ - "development" - "test" - ]; - platforms = [ ]; - source = { - remotes = [ "https://rubygems.org" ]; - sha256 = "16mjj15ks5ws53v2y31hxcmf46d0qjdvdaadpk7xsij2zymh4a9b"; - type = "gem"; - }; - version = "1.0.1"; - }; bootsnap = { dependencies = [ "msgpack" ]; groups = [ "default" ]; @@ -431,10 +463,10 @@ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1db0kz71iv1syq4qhjvnspa3zs0sja7fpcay175i1sm9q5c4brfk"; + sha256 = "1i5nn4750jnsd3gs0ca9zbiq1aglvzasp6j6f2s7kli4hm27gdin"; type = "gem"; }; - version = "1.19.0"; + version = "1.24.5"; }; builder = { groups = [ @@ -459,10 +491,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1zwq7g98c1mdigahb50c980a0fcc4ib1m9ivmgf3f8gc6qk7wjv0"; + sha256 = "1jy7yfn94acbcn23g9zh48b8j9jphwcqgr2vfy013zi4fd93q5n8"; type = "gem"; }; - version = "8.1.0"; + version = "8.1.3"; }; capybara = { dependencies = [ @@ -494,20 +526,20 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0hnjmbhyvfs543g96bc4sx94fdx2054ng12g925vwmkx0wl1jnl7"; + sha256 = "10kj1rh8w3qk6mg6kap1gh0p5kgmgdp1ij6gwayy3dqp139gw5sc"; type = "gem"; }; - version = "0.5.7"; + version = "0.5.9"; }; cbor = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1w3d5dhx4vjd707ihkcmq7fy78p5fgawcjdqw2byxnfw32gzgkbr"; + sha256 = "12nj07lblrdvzbbjvzkg4xi6r4npi3sm9mdywj6zxgwvgq61van3"; type = "gem"; }; - version = "0.5.10.1"; + version = "0.5.10.3"; }; certified = { groups = [ @@ -527,10 +559,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1njrjznc2j5xqqw71sp9130b9hyv59h2gfrf6yaf4in1n9dzd6gy"; + sha256 = "1s8qdw1nfh3njd47q154njlfyc2llcgi4ik13vz39adqd7yclgz9"; type = "gem"; }; - version = "0.5.0"; + version = "0.5.1"; }; chunky_png = { groups = [ "default" ]; @@ -543,18 +575,8 @@ version = "1.4.0"; }; coderay = { - groups = [ - "default" - "development" - ]; - platforms = [ - { - engine = "maglev"; - } - { - engine = "ruby"; - } - ]; + groups = [ "default" ]; + platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; sha256 = "0jvxqxzply1lwp7ysn94zjhh57vc14mcshw1ygw14ib8lhc00lyw"; @@ -563,7 +585,10 @@ version = "1.1.3"; }; colored2 = { - groups = [ "default" ]; + groups = [ + "default" + "migrations" + ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; @@ -576,20 +601,22 @@ groups = [ "default" "development" + "migrations" "test" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1ipbrgvf0pp6zxdk5ascp6i29aybz2bx9wdrlchjmpx6mhvkwfw1"; + sha256 = "1c2i64xsd35vijnb50rxb70g508s0x674xi0qpyyb8jy7bncl4j4"; type = "gem"; }; - version = "1.3.5"; + version = "1.3.7"; }; connection_pool = { groups = [ "default" "development" + "migrations" "test" ]; platforms = [ ]; @@ -600,6 +627,24 @@ }; version = "2.5.5"; }; + console = { + dependencies = [ + "fiber-annotation" + "fiber-local" + "json" + ]; + groups = [ + "default" + "migrations" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "01vg83f2q7n0q5dsq2sfjmm6mrizhyzkmw21i4ysg06g0slrwna5"; + type = "gem"; + }; + version = "1.36.0"; + }; cose = { dependencies = [ "cbor" @@ -656,15 +701,18 @@ version = "1.0.6"; }; css_parser = { - dependencies = [ "addressable" ]; + dependencies = [ + "addressable" + "ssrf_filter" + ]; groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1izp5vna86s7xivqzml4nviy01bv76arrd5is8wkncwp1by3zzbc"; + sha256 = "119q8j23xyb9pifka1n6jjrw04099zpwwdajh5pd10fm7wlfkw7a"; type = "gem"; }; - version = "1.21.1"; + version = "3.0.0"; }; csv = { groups = [ "default" ]; @@ -685,10 +733,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1rbfqkzr6i8b6538z16chvrkgywf5p5vafsgmnbmvrmh0ingsx2y"; + sha256 = "1h0db8r2v5llxdbzkzyllkfniqw9gm092qn7cbaib73v9lw0c3bm"; type = "gem"; }; - version = "3.5.0"; + version = "3.5.1"; }; debug = { dependencies = [ @@ -702,23 +750,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1wmfy5n5v2rzpr5vz698sqfj1gl596bxrqw44sahq4x0rxjdn98l"; + sha256 = "1djjx5332d1hdh9s782dyr0f9d4fr9rllzdcz2k0f8lz2730l2rf"; type = "gem"; }; - version = "1.11.0"; - }; - debug_inspector = { - groups = [ - "default" - "development" - ]; - platforms = [ ]; - source = { - remotes = [ "https://rubygems.org" ]; - sha256 = "18k8x9viqlkh7dbmjzh8crbjy8w480arpa766cw1dnn3xcpa1pwv"; - type = "gem"; - }; - version = "1.2.0"; + version = "1.11.1"; }; diff-lcs = { groups = [ @@ -755,7 +790,10 @@ version = "3.2.1"; }; digest-xxhash = { - groups = [ "migrations" ]; + groups = [ + "default" + "migrations" + ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; @@ -769,10 +807,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1czdwkgz82jqy5qpyckxzd7aki8zjcg9mb2yizap3d4z6wr5lhk3"; + sha256 = "0g69yc1m3f9a0xpncmmp2pya6wkjfr9si9hdckhqvsrmr1p551p9"; type = "gem"; }; - version = "1.0.44"; + version = "1.0.46"; }; discourse-fonts = { groups = [ "default" ]; @@ -808,10 +846,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1i84h7qdh78s5hvivd9nffh04ikb222ll3xrawqbpwvrak6dvmsl"; + sha256 = "04z4m8bkhxv4m990ynrbc41i0dh4543jnnqian9fcfiab1ag5hk1"; type = "gem"; }; - version = "0.4"; + version = "0.4.2"; }; discourse_dev_assets = { dependencies = [ @@ -857,6 +895,7 @@ groups = [ "default" "development" + "migrations" "test" ]; platforms = [ ]; @@ -906,10 +945,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0y95ynlfngs0s5x1w6mwralszhbi9d75lcdbdkqk75wcklzqjc17"; + sha256 = "1ncmbdjf2bwmk0jf5cxywns9zbxyfiy4h4p3pzi7yddyjhv81qrq"; type = "gem"; }; - version = "6.0.0"; + version = "6.0.4"; }; erubi = { groups = [ @@ -938,30 +977,33 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "19a4ln8s8bz2vnv15mikgr908cqqplmjnm3x5825i3k3k2zbm2d0"; + sha256 = "0l3dpg45i74ap1d7c4wyrdlc67l9vj4kgzv2l2r8mg1304fss0y5"; type = "gem"; }; - version = "1.3.2"; + version = "1.5.0"; }; exifr = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "155qqhai5z2742aqa4mwkxmqrpcv48siqz55rcx79wvgdg6790vn"; + sha256 = "0895676gyazah7rwbidkx1l92pfrazapilfcv3qznii9r7dsb1xd"; type = "gem"; }; - version = "1.4.1"; + version = "1.5.1"; }; extralite-bundle = { - groups = [ "migrations" ]; + groups = [ + "default" + "migrations" + ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1k5kglcva79sxvqj10x481r1w8ql6zdr77mv095g8j5ksf6k600d"; + sha256 = "1x0qdz794b2w9740kq2y3g6qwiggbscbm5kyhnhdd1m5vdhnwv4h"; type = "gem"; }; - version = "2.13"; + version = "2.14"; }; fabrication = { groups = [ @@ -1000,10 +1042,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1ka175ci0q9ylpcy651pjj580diplkaskycn4n7jcmbyv7jwz6c6"; + sha256 = "0y7j6yzv07zggic6g0p2v1ivnvkzsbqjnfdl4215qqb6cxz290hq"; type = "gem"; }; - version = "2.14.0"; + version = "2.14.3"; }; faraday-multipart = { dependencies = [ "multipart-post" ]; @@ -1011,10 +1053,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "00w9imp55hi81q0wsgwak90ldkk7gbyb8nzmmv8hy0s907s8z8bp"; + sha256 = "0mzp9rlqiryyi99bm9ii80hfsbbafh9wl8r3c5pif51pd54sk2bx"; type = "gem"; }; - version = "1.1.1"; + version = "1.2.0"; }; faraday-net_http = { dependencies = [ "net-http" ]; @@ -1022,10 +1064,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0v4hfmc7d4lrqqj2wl366rm9551gd08zkv2ppwwnjlnkc217aizi"; + sha256 = "125m3qri52vwh5v9dhq0dkqxf8629cxrf99yyc01pva72wasyy0f"; type = "gem"; }; - version = "3.4.2"; + version = "3.4.4"; }; faraday-retry = { dependencies = [ "faraday" ]; @@ -1033,10 +1075,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1laici6jximrz3a8rkm8qmwdmw3fgzk22qh4l8wd5srjj01d40i4"; + sha256 = "1ghys6d46j8mxkqprnlz1ks1y1w0lsa2vca7ybx2crg5ny7w8ybv"; type = "gem"; }; - version = "2.3.2"; + version = "2.4.0"; }; fast_blank = { groups = [ "default" ]; @@ -1063,10 +1105,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1sfc7svf7h1ja6zmsq9f3ps6pg0q4hymphh6rk7ipmp7ygqjkii3"; + sha256 = "085d82jw6swv4k6jxya85q7rg3vjzy2nw7hcnwx99n3gdgafnjy6"; type = "gem"; }; - version = "2.3.1"; + version = "2.4.1"; }; ffi = { groups = [ @@ -1084,10 +1126,50 @@ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "19kdyjg3kv7x0ad4xsd4swy5izsbb1vl1rpb6qqcqisr5s23awi9"; + sha256 = "1kqasqvy8d7r09ri4n6bkdwbk63j7afd9ilsw34nzlgh0qp69ldw"; type = "gem"; }; - version = "1.17.2"; + version = "1.17.4"; + }; + fiber-annotation = { + groups = [ + "default" + "migrations" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "00vcmynyvhny8n4p799rrhcx0m033hivy0s1gn30ix8rs7qsvgvs"; + type = "gem"; + }; + version = "0.2.0"; + }; + fiber-local = { + dependencies = [ "fiber-storage" ]; + groups = [ + "default" + "migrations" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "01lz929qf3xa90vra1ai1kh059kf2c8xarfy6xbv1f8g457zk1f8"; + type = "gem"; + }; + version = "1.1.0"; + }; + fiber-storage = { + groups = [ + "default" + "migrations" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1qa0j9qjwav9xb0n3isx0rbh0942xrfback392n6vs8bidnmp3pl"; + type = "gem"; + }; + version = "1.0.1"; }; fspath = { groups = [ "default" ]; @@ -1133,10 +1215,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0583agdf2jvnq78scf8008bddrmbybn27ylyydg6bza2qvb510bl"; + sha256 = "038cqc1kzxl22m3jfspkdpg0dxskga9jvgwclb4pivcjqxi62d4m"; type = "gem"; }; - version = "4.33.2"; + version = "4.35.0"; }; guess_html_encoding = { groups = [ "default" ]; @@ -1182,14 +1264,15 @@ version = "2.1.2"; }; hashie = { + dependencies = [ "logger" ]; groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1nh3arcrbz1rc1cr59qm53sdhqm137b258y8rcb4cvd3y98lwv4x"; + sha256 = "0w1qrab701d3a63aj2qavwc2fpcqmkzzh1w2x93c88zkjqc4frn2"; type = "gem"; }; - version = "5.0.0"; + version = "5.1.0"; }; highline = { dependencies = [ "reline" ]; @@ -1227,15 +1310,16 @@ groups = [ "default" "development" + "migrations" "test" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "03sx3ahz1v5kbqjwxj48msw3maplpp2iyzs22l4jrzrqh4zmgfnf"; + sha256 = "1994i044vdmzzkyr76g8rpl1fq1532wf0sb21xg5r1ilj5iphmr8"; type = "gem"; }; - version = "1.14.7"; + version = "1.14.8"; }; image_optim = { dependencies = [ @@ -1249,20 +1333,20 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1h3n8x1rlxz4mkk49lij22x1nn0qk5cvir3fsj4x3s382a4x1zsv"; + sha256 = "18rb5j4fl2p43f7fh47jf2v7yn2mckh38wdwmb148cp9isi5wza5"; type = "gem"; }; - version = "0.31.4"; + version = "0.32.0"; }; image_size = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "16h2gxxk212mlvphf03x1z1ddb9k3vm0lgsxbvi4fjg77x8q19f6"; + sha256 = "0a6b1p75nrmr1xvmqykn9dx947lrld1hb4l7m01zb2v5rfb4370v"; type = "gem"; }; - version = "3.4.0"; + version = "3.6.0"; }; in_threads = { groups = [ "default" ]; @@ -1293,14 +1377,15 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1jszj95hazqqpnrjjzr326nn1j32xmsc9xvd97mbcrrgdc54858y"; + sha256 = "1k0lk3pwadm2myvpg893n8jshmrf2sigrd4ki15lymy7gixaxqyn"; type = "gem"; }; - version = "0.8.1"; + version = "0.8.2"; }; irb = { dependencies = [ "pp" + "prism" "rdoc" "reline" ]; @@ -1312,10 +1397,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1aja320qnimlnfc80wf2i2x8i99kl5sdzfacsfzzfzzs3vzysja3"; + sha256 = "1qs8a9vprg7s8krgq4s0pygr91hclqqyz98ik15p0m1sf2h5956y"; type = "gem"; }; - version = "1.15.3"; + version = "1.18.0"; }; iso8601 = { groups = [ "default" ]; @@ -1341,15 +1426,16 @@ groups = [ "default" "development" + "migrations" "test" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0bnrx8s6lvs5l47hi24gzca76s2clxz3xx9naj8l8sik852q5r70"; + sha256 = "16mp8vzgxa8nsa81np042za453j8b0ihpjkf666s7byxrnvjb44v"; type = "gem"; }; - version = "2.17.1"; + version = "2.19.9"; }; json-schema = { dependencies = [ @@ -1364,10 +1450,20 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0gv3b0nry1sn1n7imfs2drqyfp4g8b2zcrizjc98j04pl7xszv3r"; + sha256 = "0rinh4347nvl9jm0r4mk7gi1zh1iz367w3dxn8d2r8j5v1pg9gz8"; type = "gem"; }; - version = "6.0.0"; + version = "6.2.0"; + }; + json_completer = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1cbpy4zlgb21yins7a8z59hpmpc1x9cynqn512rcqkk3fa8p8ra6"; + type = "gem"; + }; + version = "1.2.0"; }; json_schemer = { dependencies = [ @@ -1396,25 +1492,15 @@ }; version = "2.10.1"; }; - kgio = { + landlock = { groups = [ "default" ]; - platforms = [ - { - engine = "maglev"; - } - { - engine = "rbx"; - } - { - engine = "ruby"; - } - ]; + platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1ipzvw7n0kz1w8rkqybyxvf3hb601a770khm0xdqm68mc4aa59xx"; + sha256 = "0g5j8sa54g1agsiav54jmk9w5fffh6jbc6g9b942l20q2gpy26l4"; type = "gem"; }; - version = "2.11.4"; + version = "0.3"; }; language_server-protocol = { groups = [ @@ -1435,10 +1521,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1kbijkxrqzgf94qdzh1xdxcypr6wnqmra0bhmwz7bif45739l3ig"; + sha256 = "16kkimc2gq64ka6xabarqfs87yq24ha4mqr9m0xxxrdzc6w26gfr"; type = "gem"; }; - version = "24.1.0.0"; + version = "24.12.0.1"; }; lint_roller = { groups = [ @@ -1454,8 +1540,23 @@ }; version = "1.1.0"; }; + liquid = { + dependencies = [ + "bigdecimal" + "strscan" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0wx6lan7kvhxz0i18m1vlnfhmkajxamxjkiyqlhmv4nd60j2qg2s"; + type = "gem"; + }; + version = "5.12.0"; + }; listen = { dependencies = [ + "logger" "rb-fsevent" "rb-inotify" ]; @@ -1466,15 +1567,16 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0rwwsmvq79qwzl6324yc53py02kbrcww35si720490z5w0j497nv"; + sha256 = "1ln9c0vx165hkfbn2817qw4m6i77xcxh6q0r5v6fqfhlcbdq5qf6"; type = "gem"; }; - version = "3.9.0"; + version = "3.10.0"; }; literate_randomizer = { groups = [ "default" "development" + "test" ]; platforms = [ ]; source = { @@ -1488,6 +1590,7 @@ groups = [ "default" "development" + "migrations" "test" ]; platforms = [ ]; @@ -1529,10 +1632,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1a52r46d263h2kkxng7amrihz5c7xm9ak8vf4jq4x77rwxcbwjx8"; + sha256 = "00isn77kjxf33x17vbhx6hbjckbwggvr6s2mh7h9zy6mk3m73p2y"; type = "gem"; }; - version = "2.20.1"; + version = "2.21.0"; }; loofah = { dependencies = [ @@ -1547,13 +1650,16 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0dx316q03x6rpdbl610rdaj2vfd5s8fanixk21j4gv3h5f230nk5"; + sha256 = "011fdngxzr1p9dq2hxqz7qq1glj2g44xnhaadjqlf48cplywfdnl"; type = "gem"; }; - version = "2.24.1"; + version = "2.25.1"; }; lru_redux = { - groups = [ "default" ]; + groups = [ + "default" + "migrations" + ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; @@ -1599,6 +1705,19 @@ }; version = "2.9.0"; }; + markbridge = { + groups = [ + "default" + "migrations" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "18vmz6fqs0797smpha6jh0dij4kja1pq0jjdjizzwrp6g57gyvd3"; + type = "gem"; + }; + version = "0.3.1"; + }; matrix = { groups = [ "default" @@ -1645,10 +1764,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1nra1ifgapr67kb6zjkzws5gdnwrzbm463zf1l1p2rby2v1wb7ki"; + sha256 = "0y77v5yvnqmn3q0z80mcl2yq006zvx26x9fzlxg0wmnr0p71nf7i"; type = "gem"; }; - version = "4.4.1"; + version = "4.5.2"; }; messageformat-wrapper = { dependencies = [ "mini_racer" ]; @@ -1662,11 +1781,7 @@ version = "1.1.0"; }; method_source = { - groups = [ - "default" - "development" - "test" - ]; + groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; @@ -1675,6 +1790,81 @@ }; version = "1.1.0"; }; + migrations-converters = { + dependencies = [ + "activesupport" + "colored2" + "i18n" + "markbridge" + "migrations-core" + "pg" + "zeitwerk" + ]; + groups = [ "migrations" ]; + platforms = [ ]; + source = { + path = "${src}/migrations/converters"; + type = "path"; + }; + version = "0.0.1"; + }; + migrations-core = { + dependencies = [ + "activesupport" + "colored2" + "concurrent-ruby" + "digest-xxhash" + "extralite-bundle" + "i18n" + "json" + "lru_redux" + "samovar" + "unicode-display_width" + "zeitwerk" + ]; + groups = [ "migrations" ]; + platforms = [ ]; + source = { + path = "${src}/migrations/core"; + type = "path"; + }; + version = "0.0.1"; + }; + migrations-importer = { + dependencies = [ + "activerecord" + "activesupport" + "colored2" + "i18n" + "migrations-core" + "pg" + "zeitwerk" + ]; + groups = [ "migrations" ]; + platforms = [ ]; + source = { + path = "${src}/migrations/importer"; + type = "path"; + }; + version = "0.0.1"; + }; + migrations-tooling = { + dependencies = [ + "activerecord" + "activesupport" + "colored2" + "i18n" + "migrations-core" + "zeitwerk" + ]; + groups = [ "migrations" ]; + platforms = [ ]; + source = { + path = "${src}/migrations/tooling"; + type = "path"; + }; + version = "0.0.1"; + }; mime-types = { dependencies = [ "logger" @@ -1700,10 +1890,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0a27k4jcrx7pvb0p59fn1frh14iy087c2aygrdkmgwsrbshvqxpj"; + sha256 = "1k28j6ww8rf43r5i8278jvm2cq3pnzsvqm7yqpb4p93kadjlq726"; type = "gem"; }; - version = "3.2025.0924"; + version = "3.2026.0414"; }; mini_mime = { groups = [ @@ -1739,10 +1929,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1qvdbmg8jwf2as1r7a3kl5kngp5m87kbdi4g7p13kfrypfzw2kiy"; + sha256 = "1nrj8vgsdzv60y8302xqycvhn5z2shf137j4hjfhfzq9i1rf7xfc"; type = "gem"; }; - version = "0.19.1"; + version = "0.21.4"; }; mini_scheduler = { dependencies = [ "sidekiq" ]; @@ -1750,10 +1940,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "00rmlcnwhi6gnrwpcv2yicm9ij8zs1mhsbx98ic6rmx8iprq9w6j"; + sha256 = "01bvk73g922jq34531ix86aq5dhn1n2xw84f79h8m97lici4i2dx"; type = "gem"; }; - version = "0.18.0"; + version = "0.20.0"; }; mini_sql = { groups = [ "default" ]; @@ -1781,24 +1971,29 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "158p4ivp485j7njk0gqznk5lszbgwh7y4dwzvlzpn5vrpmxasx9n"; + sha256 = "0bygpmih2ph6rvkxw09n6q7kyicvdiq2jcpd6k6iy0aklbgbxcpb"; type = "gem"; }; - version = "1.0.1"; + version = "1.1.0"; }; minitest = { + dependencies = [ + "drb" + "prism" + ]; groups = [ "default" "development" + "migrations" "test" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1qyda32pf9jivaw2m7yymxshqxxd0fhjn7zpbagvmfc5c65128gh"; + sha256 = "1wfnqyfayx9n9j7x871v2ars4hjhfisi1dl24fa64ylq3mns6ghm"; type = "gem"; }; - version = "5.26.2"; + version = "6.0.6"; }; mocha = { dependencies = [ "ruby2_keywords" ]; @@ -1809,10 +2004,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1vjfizp8yq0319dkc8yzzxr2bv5f1ki1qiknyx72prs7vclyfxqz"; + sha256 = "0mhx9qyiig73mw3zrk8f28ca8dqx8gwgipw94jri07zvxdljvx3m"; type = "gem"; }; - version = "2.8.2"; + version = "3.1.0"; }; msgpack = { groups = [ "default" ]; @@ -1826,20 +2021,20 @@ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0cnpnbn2yivj9gxkh8mjklbgnpx6nf7b8j2hky01dl0040hy0k76"; + sha256 = "18g6ps30z6m365bly7sfialavnsf6m6qamdxsr84w96k51j4mnlb"; type = "gem"; }; - version = "1.8.0"; + version = "1.8.3"; }; multi_json = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0vsrfm36zlg7jbrd1fjbr8kmdvr8bfayrw0hdlza75987vvhrxr3"; + sha256 = "0vfaab23d85617ps412ydb8ap4ci1sfzi8ainn8yyifc0pl38f9g"; type = "gem"; }; - version = "1.18.0"; + version = "1.20.1"; }; multi_xml = { dependencies = [ "bigdecimal" ]; @@ -1847,10 +2042,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1kl7ax7zcj8czlxs6vn3kdhpnz1dwva4y5zwnavssfv193f9cyih"; + sha256 = "0msflv26i6i3jr9w761k4qdl7cp9zbhymjkn57b1w90pkjsndrvw"; type = "gem"; }; - version = "0.7.2"; + version = "0.9.1"; }; multipart-post = { groups = [ "default" ]; @@ -1867,10 +2062,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1l0p4wx15mi3wnamfv92ipkia4nsx8qi132c6g51jfdma3fiz2ch"; + sha256 = "003cyf76zmki1lnh55cvir7dkn0s70dm909dxn6sfk9m00s2886l"; type = "gem"; }; - version = "1.1.1"; + version = "1.1.2"; }; net-http = { dependencies = [ "uri" ]; @@ -1878,10 +2073,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0vdlxiv9h9gzliz8722j6spw2nwl5z0rfz1i5b9mmsgrx5yc8hnz"; + sha256 = "15k96fj6qwbaiv6g52l538ass95ds1qwgynqdridz29yqrkhpfi5"; type = "gem"; }; - version = "0.8.0"; + version = "0.9.1"; }; net-imap = { dependencies = [ @@ -1892,10 +2087,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0i24prs7yy1p1zdps2x1ksb7lmvbn2f0llxwdjdw3z2ksddx136b"; + sha256 = "03ga2h4i5hsk8pdlicyfvqfsbh55vrbikb0nkx9x7vx7fl6kdw19"; type = "gem"; }; - version = "0.5.12"; + version = "0.6.4.1"; }; net-pop = { dependencies = [ "net-protocol" ]; @@ -1931,7 +2126,10 @@ version = "0.5.1"; }; nio4r = { - groups = [ "default" ]; + groups = [ + "default" + "test" + ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; @@ -1953,14 +2151,16 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1hcwwr2h8jnqqxmf8mfb52b0dchr7pm064ingflb78wa00qhgk6m"; + sha256 = "1s30b7h7qpyim30m8060xs415mbr3ci7i5hdg09chh1aqfx2qcbq"; type = "gem"; }; - version = "1.18.10"; + version = "1.19.3"; }; oauth = { dependencies = [ + "auth-sanitizer" "base64" + "cgi" "oauth-tty" "snaky_hash" "version_gem" @@ -1969,21 +2169,25 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0cynpns6p04i4pza1lcnwxavar20713i3q5fnalk3gv18m9ipjki"; + sha256 = "1jlwk58v6pdarxp2sibsr1f4gs10nn5kxlsr2r6sa6aqiy86gi0f"; type = "gem"; }; - version = "1.1.3"; + version = "1.1.5"; }; oauth-tty = { - dependencies = [ "version_gem" ]; + dependencies = [ + "auth-sanitizer" + "cgi" + "version_gem" + ]; groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0liirgg4yaqng7makq4di6rpq78s5r7j33wd64ccwz1n3n3d32wy"; + sha256 = "01qylh3rskdpvjkd2dkm6sdf2klf2w99zib8z0bjbhhpmxkkp9nr"; type = "gem"; }; - version = "1.0.6"; + version = "1.0.8"; }; oauth2 = { dependencies = [ @@ -2011,10 +2215,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "15g4kyag6gmxxq6d03472h7srm3imlsks1wg6nac7hl3mb1b5vs8"; + sha256 = "1s14kbjfm9vdvcrwqdarfdbfsjqs1jxpglp60plvfdvnkd9rmsc2"; type = "gem"; }; - version = "5.6.1"; + version = "10.0.0"; }; oj = { dependencies = [ @@ -2046,15 +2250,18 @@ version = "2.1.2"; }; omniauth-facebook = { - dependencies = [ "omniauth-oauth2" ]; + dependencies = [ + "bigdecimal" + "omniauth-oauth2" + ]; groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0m7q38kjm94wgq6h7hk9546yg33wcs3vf1v6zp0vx7nwkvfxh2j4"; + sha256 = "1qdrziqfa4sqpqf77i0nzbwq4qyg8qaqd127alnmg1skvax6rp6z"; type = "gem"; }; - version = "9.0.0"; + version = "10.0.0"; }; omniauth-github = { dependencies = [ @@ -2168,8 +2375,18 @@ version = "3.2.1"; }; ostruct = { - groups = [ "default" ]; - platforms = [ ]; + groups = [ + "default" + "development" + ]; + platforms = [ + { + engine = "maglev"; + } + { + engine = "ruby"; + } + ]; source = { remotes = [ "https://rubygems.org" ]; sha256 = "04nrir9wdpc4izqwqbysxyly8y7hsfr4fsv69rw91lfi9d5fv8lm"; @@ -2186,10 +2403,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0c719bfgcszqvk9z47w2p8j2wkz5y35k48ywwas5yxbbh3hm3haa"; + sha256 = "0mlkn1vhh9lr7vljibpgspwsswk7mzm8nw6bbr616c9fbj35hlmk"; type = "gem"; }; - version = "1.27.0"; + version = "2.1.0"; }; parallel_tests = { dependencies = [ "parallel" ]; @@ -2200,10 +2417,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0rpn88b55q0kf21gxd7x1p5j44fg0fp81w30nfkrch3wl96iwg3q"; + sha256 = "0p003p7qpdc04m7r7yhv3579fxlxgwhpgy4fmyw27hm2dk2645rz"; type = "gem"; }; - version = "5.5.0"; + version = "5.7.0"; }; parser = { dependencies = [ @@ -2218,10 +2435,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1mmb59323ldv6vxfmy98azgsla9k3di3fasvpb28hnn5bkx8fdff"; + sha256 = "0m2xqvn1la62hji1mn04y59giikww95p2hs0r4y2rrz3mdxcwyni"; type = "gem"; }; - version = "3.3.10.0"; + version = "3.3.11.1"; }; pastel = { dependencies = [ "tty-color" ]; @@ -2246,20 +2463,23 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "11h8dhhd2c8mxssibk9q6qn7ilj4p71crlfirw8pppn8pr85f0n5"; + sha256 = "1kk8f1f5kkdwsbskv0vikcwx5xaivv19y9zl97x1fcaam23akihq"; type = "gem"; }; - version = "2.15.0"; + version = "2.15.1"; }; pg = { - groups = [ "default" ]; + groups = [ + "default" + "migrations" + ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0xf8i58shwvwlka4ld12nxcgqv0d5r1yizsvw74w5jaw83yllqaq"; + sha256 = "16caca7lcz5pwl82snarqrayjj9j7abmxqw92267blhk7rbd120k"; type = "gem"; }; - version = "1.6.2"; + version = "1.6.3"; }; pitchfork = { dependencies = [ @@ -2270,13 +2490,14 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0n9hf4w76s124ysa6y6q92pcrnfhxq4w1xrjhz90ihjj8c199wlq"; + sha256 = "155bskm6j5n78b6jxhqwzyn25zsjcqh8mgbsc96wkswjayibbl4m"; type = "gem"; }; - version = "0.18.1"; + version = "0.18.2"; }; playwright-ruby-client = { dependencies = [ + "base64" "concurrent-ruby" "mime-types" ]; @@ -2287,10 +2508,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1x4y7r7h7a3fmy62bf1501jcl5q20lzdgw3b44rwd18fbaidd2wp"; + sha256 = "0ls8r49d27j0ffpfva99nk53a4nk17f4k71x44hpny8f2gb448ll"; type = "gem"; }; - version = "1.57.0"; + version = "1.60.0"; }; pp = { dependencies = [ "prettyprint" ]; @@ -2339,15 +2560,16 @@ groups = [ "default" "development" + "migrations" "test" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0sqwckzzpj1mmmjnqcvqmq6adlxbhkf5ij3b6ir4i33ih4d2ih5z"; + sha256 = "11ggfikcs1lv17nhmhqyyp6z8nq5pkfcj6a904047hljkxm0qlvv"; type = "gem"; }; - version = "1.6.0"; + version = "1.9.0"; }; progress = { groups = [ "default" ]; @@ -2369,28 +2591,25 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "14n3fhz5hzpsczp4spqc26csfgk2qga7mgcm7px9z0byyr76dk4s"; + sha256 = "17iqn4sa59c9z5y3bpvxqka00srqnl379w6a57y1phljdbjs6mhx"; type = "gem"; }; - version = "1.3.1"; + version = "1.3.2"; }; pry = { dependencies = [ "coderay" "method_source" + "reline" ]; - groups = [ - "default" - "development" - "test" - ]; + groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0ssv704qg75mwlyagdfr9xxbzn1ziyqgzm0x474jkynk8234pm8j"; + sha256 = "0kh5nv8v74k1ccy6gc7nd04aaf1cjkbk7g8pwy2izvcqaq36jv6p"; type = "gem"; }; - version = "0.15.2"; + version = "0.16.0"; }; pry-rails = { dependencies = [ "pry" ]; @@ -2403,23 +2622,6 @@ }; version = "0.3.11"; }; - pry-stack_explorer = { - dependencies = [ - "binding_of_caller" - "pry" - ]; - groups = [ - "development" - "test" - ]; - platforms = [ ]; - source = { - remotes = [ "https://rubygems.org" ]; - sha256 = "0h7kp99r8vpvpbvia079i58932qjz2ci9qhwbk7h1bf48ydymnx2"; - type = "gem"; - }; - version = "0.6.1"; - }; psych = { dependencies = [ "date" @@ -2433,10 +2635,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0vii1xc7x81hicdbp7dlllhmbw5w3jy20shj696n0vfbbnm2hhw1"; + sha256 = "1dx5bc3s1mb1i53np4cdkypg7ccygnvagr3hglyndbqilrljvxql"; type = "gem"; }; - version = "5.2.6"; + version = "5.4.0"; }; public_suffix = { groups = [ @@ -2447,21 +2649,21 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "15dhl6k4gbax0xz8frfs4nsb6lg5zgax9vkr1pqzjmhfxddhn2gp"; + sha256 = "08znfv30pxmdkjyihvbjqbvv874dj3nybmmyscl958dy3f7v12qs"; type = "gem"; }; - version = "7.0.0"; + version = "7.0.5"; }; puma = { dependencies = [ "nio4r" ]; - groups = [ "default" ]; + groups = [ "test" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1pa9zpr51kqnsq549p6apvnr95s9flx6bnwqii24s8jg2b5i0p74"; + sha256 = "1yw6nvkvddriacmva8hm0za0961d6j96dm7zm6748rmyzcfqgvf8"; type = "gem"; }; - version = "7.1.0"; + version = "8.0.2"; }; racc = { groups = [ @@ -2493,10 +2695,10 @@ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0fgpa9qm5qgza69fjnagg2alxs2wmj41aq7z4kj5yib50wpzgqhl"; + sha256 = "175ni9qsai9x2ykwvdbd5dzfyncaxpyn6dhjxjw70iq60xz9vzm8"; type = "gem"; }; - version = "2.2.21"; + version = "2.2.23"; }; rack-mini-profiler = { dependencies = [ "rack" ]; @@ -2603,10 +2805,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0q55i6mpad20m2x1lg5pkqfpbmmapk0sjsrvr1sqgnj2hb5f5z1m"; + sha256 = "128y5g3fyi8fds41jasrr4va1jrs7hcamzklk1523k7rxb64bc98"; type = "gem"; }; - version = "1.6.2"; + version = "1.7.0"; }; rails_failover = { dependencies = [ @@ -2656,10 +2858,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0iybsmr8yv8gg6a4cikmh0394sk707qr7h85vny4mazzvi9xh0w2"; + sha256 = "1md96yl05v436jkgz9725cax9hf61sv74267cg7yidwnl3lwd65d"; type = "gem"; }; - version = "8.0.4"; + version = "8.0.5"; }; rainbow = { groups = [ @@ -2704,20 +2906,20 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "175iisqb211n0qbfyqd8jz2g01q6xj038zjf4q0nm8k6kz88k7lc"; + sha256 = "009p524zl0p0kfa65nii8wdmaigkmawv9pbvlcffky7islmmp0nb"; type = "gem"; }; - version = "13.3.1"; + version = "13.4.2"; }; rake-compiler-dock = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "04dzjh7angq23s2m489k06ci5jccz865czk92lrml61avwcywqnx"; + sha256 = "08w033c3p25wr0zwbgx0b4mb4ha5kqd4j0ydmx9j0gcgfg10acpi"; type = "gem"; }; - version = "1.10.0"; + version = "1.12.0"; }; rb-fsevent = { groups = [ @@ -2753,13 +2955,17 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0jqbykm424fw92xvh8mqlsfzfzgwmcm6sjb4kfvy20p492hkyfb4"; + sha256 = "1z9q0l9l5r210jsmcmq3lxd4fr0j5lv348kn33g9a62fdm6izf4s"; type = "gem"; }; - version = "0.9.119"; + version = "0.9.128"; }; rbs = { - dependencies = [ "logger" ]; + dependencies = [ + "logger" + "prism" + "tsort" + ]; groups = [ "default" "development" @@ -2767,10 +2973,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1c0r26dhdr4jiklc0g7wjmr5q56dp7hwcfa8z75khkp8mrhazfpa"; + sha256 = "09ggg2zk0qrh0mc3fa23xjbn2gzqxd0jfqj6qm6460ydcqg6fxdg"; type = "gem"; }; - version = "3.9.5"; + version = "4.0.2"; }; rbtrace = { dependencies = [ @@ -2789,20 +2995,20 @@ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0gwjrdawjv630xhzwld9b0vrh391sph255vxshpv36jx60pjjcn4"; + sha256 = "0yvmkccs3rc6qisy86idhzpk2z8dzsf6dl2mw80h63skfq0f8yc2"; type = "gem"; }; - version = "0.5.3"; + version = "0.5.4"; }; rchardet = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "03rr05qam5d6gcsnsjs85bnwg80qww484xql347j42kj3bb2xsnm"; + sha256 = "0csz2dybi0y1w22dzxpllkcnr5dmr1w0y4xb947c2ka6bwcwnhg0"; type = "gem"; }; - version = "1.10.0"; + version = "1.10.2"; }; rdoc = { dependencies = [ @@ -2818,10 +3024,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1dq2bani47fzyqpb4psizfmzxiznvzlajmdikdgik67wd3jx8l0g"; + sha256 = "14iiyb4yi1chdzrynrk74xbhmikml3ixgdayjma3p700singfl46"; type = "gem"; }; - version = "6.17.0"; + version = "7.2.0"; }; redcarpet = { groups = [ "generic_import" ]; @@ -2850,10 +3056,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0wx0v68lh924x544mkpydcrkkbr7i386xvkpyxgsf5j55j3d4f8y"; + sha256 = "0xz4nl6jr8chzliw39s75mzfr7s7fyq8fh2m841im97h8bni2gvl"; type = "gem"; }; - version = "0.26.1"; + version = "0.30.0"; }; redis-namespace = { dependencies = [ "redis" ]; @@ -2875,10 +3081,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "192mzi0wgwl024pwpbfa6c2a2xlvbh3mjd75a0sakdvkl60z64ya"; + sha256 = "1fwfw26a32rps78920nn29shqg2zmqv72i89j1fap41isshida9m"; type = "gem"; }; - version = "2.11.3"; + version = "2.12.0"; }; reline = { dependencies = [ "io-console" ]; @@ -2940,6 +3146,7 @@ version = "6.3.0"; }; rouge = { + dependencies = [ "strscan" ]; groups = [ "default" "development" @@ -2954,10 +3161,10 @@ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0fd77qcz603mli4lyi97cjzkv02hsfk60m495qv5qcn02mkqk9fv"; + sha256 = "1g2y2z07niw4ylbgf6zr6a7kjaqbaqxn98xwff58zf4w5yx9ppp2"; type = "gem"; }; - version = "4.7.0"; + version = "5.0.0"; }; rqrcode = { dependencies = [ @@ -2968,20 +3175,20 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "03zhns2jjf5nbx522dr4cpf25dkak0kwikw84c3201xqv8v1wbjc"; + sha256 = "0hlm1cfqs891irh4pl6wynsfm7nh7w7baf0g6cqxfrxvlr64khb4"; type = "gem"; }; - version = "3.1.1"; + version = "3.2.0"; }; rqrcode_core = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "12m97c5b9m3n3w3nnpfv4bbj42vlqb2ranm12ldsjzw3xjbnvxsj"; + sha256 = "0l9hl5nb7jx8sjchsrlv6bk30hywr449ihcdxv2qy6wwz1fvh0zk"; type = "gem"; }; - version = "2.0.1"; + version = "2.1.0"; }; rrule = { dependencies = [ "activesupport" ]; @@ -2989,10 +3196,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "11qzhn3y6pl01rfcy0nawa5fcfh00pgc7qsxwbgss1ap7k1nlsw1"; + sha256 = "1wm40i2hnfwxzzsp0fm6jw0a4wlkb3sw5s9d05wihi7y9qrrmcdb"; type = "gem"; }; - version = "0.7.0"; + version = "0.8.0"; }; rspec = { dependencies = [ @@ -3075,10 +3282,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "071bqrk2rblk3zq3jk1xxx0dr92y0szi5pxdm8waimxici706y89"; + sha256 = "0iqxmw0knjiz5nf6pgr8ihs6cjzh89f0ppj3fqiz8cvms79x6sh8"; type = "gem"; }; - version = "3.13.7"; + version = "3.13.8"; }; rspec-multi-mock = { dependencies = [ "rspec" ]; @@ -3111,10 +3318,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1kis8dfxlvi6gdzrv9nsn3ckw0c2z7armhni917qs1jx7yjkjc8i"; + sha256 = "1pr29snnnlgkqv80vbi4795l6rxq3l47x5rl7lyni4h8zj95c8q6"; type = "gem"; }; - version = "8.0.2"; + version = "8.0.4"; }; rspec-support = { groups = [ @@ -3125,10 +3332,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1cmgz34hwj5s3jwxhyl8mszs24nci12ffbrmr5jb1si74iqf739f"; + sha256 = "0z64h5rznm2zv21vjdjshz4v0h7bxvg02yc6g7yzxakj11byah06"; type = "gem"; }; - version = "3.13.6"; + version = "3.13.7"; }; rss = { dependencies = [ "rexml" ]; @@ -3136,10 +3343,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0dv74a07j3ih5ykyszs1k2cjvgs5c1pzrvcb1wc2bfai8p038qml"; + sha256 = "1ayi296p6gdf15h28ckbd9g9d8499sd0fn91x7dpxmlisv21xvrp"; type = "gem"; }; - version = "0.3.1"; + version = "0.3.3"; }; rswag-specs = { dependencies = [ @@ -3192,10 +3399,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "157hg99cq6ys670sw8xbggnvxc9yl50h1zhllki925kkihlwrdbg"; + sha256 = "0ca5inh368d4l24a2v2nbd3p4xc6s0pqs91j27h226nh04zmyha4"; type = "gem"; }; - version = "1.81.7"; + version = "1.86.1"; }; rubocop-ast = { dependencies = [ @@ -3210,10 +3417,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0xifbp09jfl1hdy9wwgq9dq2l7mf8y2ycm5d1zgcqvks7yzrppr2"; + sha256 = "0dahfpnzz63hyqxa03x8rypnrxzwyvh4i5a8ri34bzpnf3pg64j4"; type = "gem"; }; - version = "1.48.0"; + version = "1.49.1"; }; rubocop-capybara = { dependencies = [ @@ -3228,17 +3435,17 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "030wymq0jrblrdswl1lncj60dhcg5wszz6708qzsbziyyap8rn6f"; + sha256 = "0mz3mvjh09awggp0bwsmf4rfaz2irrwc6vzpiklfh7jnlyiipspr"; type = "gem"; }; - version = "2.22.1"; + version = "2.23.0"; }; rubocop-discourse = { dependencies = [ "activesupport" "lint_roller" - "rubocop" "rubocop-capybara" + "rubocop-discourse-base" "rubocop-factory_bot" "rubocop-rails" "rubocop-rspec" @@ -3251,10 +3458,25 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "17q5i9rjk5vanvpqphwpcr0aiqzinm47cv9plidhqpy4gbirawv3"; + sha256 = "02yf6zcq3ki1nkkkw3vsgfkm4fyfzdpb6lss7d285vdirc9izcxx"; type = "gem"; }; - version = "3.13.3"; + version = "3.18.0"; + }; + rubocop-discourse-base = { + dependencies = [ "rubocop" ]; + groups = [ + "default" + "development" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1dvjniwyxgbkjv3b055cpqn3fdgxz5m108pfkwjw6clf587iy4m4"; + type = "gem"; + }; + version = "1.0.0"; }; rubocop-factory_bot = { dependencies = [ @@ -3290,10 +3512,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1danlfzfqx3x1kna248sm2b1br5ki369r51x90jc4vbh6xk8zv1l"; + sha256 = "1llsxc8wm2pq8glpv5mczd1h36fazbri3wwrh7dfqra80a4pklqh"; type = "gem"; }; - version = "2.33.4"; + version = "2.34.3"; }; rubocop-rspec = { dependencies = [ @@ -3308,10 +3530,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0cxb9i1brf1cks8anv8mdj65n9rq6jyldyd1ij9sj8zjng60si18"; + sha256 = "1qjmvcpk6qwxjdh3w5smr2n7c1glxsdzpv5fi7bkg0j034v0m9wg"; type = "gem"; }; - version = "3.8.0"; + version = "3.9.0"; }; rubocop-rspec_rails = { dependencies = [ @@ -3342,10 +3564,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1xx96yfi5aqm1d3aps2nl5mls0vnm8xwvw75vy1ik3vc0rm09cqw"; + sha256 = "0aa1mg6bdl23wgrxd98wycq3963jfpnh9z0yh976p9q03h01r81k"; type = "gem"; }; - version = "0.26.4"; + version = "0.26.9"; }; ruby-lsp-rails = { dependencies = [ "ruby-lsp" ]; @@ -3364,13 +3586,16 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "14gl3g8gg8p8zknd07hkzrrgaqqq184pj7l3nw7dgih8pbzv7cqd"; + sha256 = "1raf477s25l50rylq0p2rzj664gvi0r3fckxn5bcsxikf9wyb2vr"; type = "gem"; }; - version = "0.1.28"; + version = "0.1.29"; }; ruby-prof = { - dependencies = [ "base64" ]; + dependencies = [ + "base64" + "ostruct" + ]; groups = [ "development" ]; platforms = [ { @@ -3382,10 +3607,10 @@ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0h23zjwma8car8jpq7af8gw39qi88rn24mass7r13ripmky28117"; + sha256 = "03kcdnip5zv7m529xc05pk6vsz6prfq5s5036g1qllw9408vbhyv"; type = "gem"; }; - version = "1.7.2"; + version = "2.0.5"; }; ruby-progressbar = { groups = [ @@ -3420,10 +3645,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "032qqqaj5v09a7r5jpblv7dc37f278qv3b1nag9wsbn6kb4dslbk"; + sha256 = "0hf2xwvjlsmkizkk7h3qvj4vdiicxal6gqcrv4awq63i0fmky8dx"; type = "gem"; }; - version = "0.7.2"; + version = "0.7.3"; }; ruby2_keywords = { groups = [ @@ -3440,17 +3665,28 @@ version = "0.0.5"; }; rubyzip = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0khy3d43cr2i4x9as2k41ckrjb4wkpcycdbzaara4fy4qw923n9f"; + type = "gem"; + }; + version = "3.3.1"; + }; + samovar = { + dependencies = [ "console" ]; groups = [ "default" - "test" + "migrations" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "05an0wz87vkmqwcwyh5rjiaavydfn5f4q1lixcsqkphzvj7chxw5"; + sha256 = "15133m5jihv7pv00dcrg51yvrkw5qiw1dd0y6bq89046p0gc97wa"; type = "gem"; }; - version = "2.4.1"; + version = "2.5.1"; }; sanitize = { dependencies = [ @@ -3475,10 +3711,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0ixqik50ffd82jnkrmwqanrjd7106gqala58bch777wmywx000dx"; + sha256 = "14n07y6mg44y8rzsc4w12pf66jqn8iv318dj2y3vmrab60gq7m5p"; type = "gem"; }; - version = "1.91.0"; + version = "1.100.0"; }; sassc-embedded = { dependencies = [ "sass-embedded" ]; @@ -3486,10 +3722,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0gnbp770q1krka70phyf59amzw0dx92c0yx1psc9fkp5in9hqwmj"; + sha256 = "0qymnvzbgbg9ir70yl0qrhfg2acfrwmlkzdywrkq5k1i81g84qpa"; type = "gem"; }; - version = "1.80.5"; + version = "1.80.8"; }; sawyer = { dependencies = [ @@ -3509,6 +3745,7 @@ groups = [ "default" "development" + "migrations" "test" ]; platforms = [ ]; @@ -3545,10 +3782,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "19xm4s49hq0kpfbmvhnjskzmfjjxw5d5sm7350mh12gg3lp7220i"; + sha256 = "0g4fxxr1kvd4mn3cgvl2xrzznfi827r74gfp999l4q7kbvvb87kq"; type = "gem"; }; - version = "7.3.9"; + version = "7.3.10"; }; simplecov = { dependencies = [ @@ -3601,6 +3838,17 @@ }; version = "0.2.3"; }; + smarter_json = { + dependencies = [ "bigdecimal" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0i9bf8d2q251riqr65ix5yvk27c7p7swid0jh8k6vqjl779a4f36"; + type = "gem"; + }; + version = "1.2.6"; + }; snaky_hash = { dependencies = [ "hashie" @@ -3610,10 +3858,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0mnllrwhs7psw6xxs8x5yx85k12qjfdgs8zs0bxm70bfascx58r5"; + sha256 = "1kpyqhybal05bmby5myq45s768qs9gw205hs6jb6gynyay67a4ib"; type = "gem"; }; - version = "2.0.3"; + version = "2.0.4"; }; sqlite3 = { dependencies = [ "mini_portile2" ]; @@ -3621,10 +3869,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "09np0n6zn63qinzbsf0yxfbn8jcdm9pzpgmmhhj2pnd429wsrl5c"; + sha256 = "01i6k25fv3w3f5ph5cix9ipg19ajsy6zrzxdm18ashzrldrjjmq4"; type = "gem"; }; - version = "2.8.1"; + version = "2.9.5"; }; sshkey = { groups = [ "default" ]; @@ -3636,6 +3884,16 @@ }; version = "3.0.0"; }; + ssrf_filter = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1xlpb8y555frl82cx4q2i922mps36mmn0ajk21kpy3bks6wwsgg0"; + type = "gem"; + }; + version = "1.5.0"; + }; stackprof = { groups = [ "default" ]; platforms = [ @@ -3648,10 +3906,10 @@ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "03788mbipmihq2w7rznzvv0ks0s9z1321k1jyr6ffln8as3d5xmg"; + sha256 = "014s1zxlxcw35shislar3y1i3mqa0c6gh3m21js14q1q5zharhjf"; type = "gem"; }; - version = "0.2.27"; + version = "0.2.28"; }; stringio = { groups = [ @@ -3662,10 +3920,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "08aii379my5zvk0jb3nb50yx321pz7n5a9mwlfbangm7sc9sy4f1"; + sha256 = "1q92y9627yisykyscv0bdsrrgyaajc2qr56dwlzx7ysgigjv4z63"; type = "gem"; }; - version = "3.1.9"; + version = "3.2.0"; }; stripe = { groups = [ "default" ]; @@ -3677,6 +3935,26 @@ }; version = "11.1.0"; }; + strscan = { + groups = [ + "default" + "development" + ]; + platforms = [ + { + engine = "maglev"; + } + { + engine = "ruby"; + } + ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "17k75zrwf4ag9yl9wjjkcb90zrm4r5jigdzv3zr5jm9239hxpqma"; + type = "gem"; + }; + version = "3.1.8"; + }; syntax_tree = { dependencies = [ "prettier_print" ]; groups = [ @@ -3696,10 +3974,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1s7asi66mhpraw3p8a5aciwzi2iwwsiwj0a97b7x5z8ncbi7nj6s"; + sha256 = "17j9cai2ykcndgn0800m9nb297sx0lpminxj8bcqw4bwkb1xjch3"; type = "gem"; }; - version = "1.5.0"; + version = "1.6.1"; }; thor = { groups = [ @@ -3710,10 +3988,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0gcarlmpfbmqnjvwfz44gdjhcmm634di7plcx2zdgwdhrhifhqw7"; + sha256 = "0wsy88vg2mazl039392hqrcwvs5nb9kq8jhhrrclir2px1gybag3"; type = "gem"; }; - version = "1.4.0"; + version = "1.5.0"; }; tiktoken_ruby = { dependencies = [ "rb_sys" ]; @@ -3721,24 +3999,25 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0d7q1nxjilj6ydjliyc48axjiz8d67andw76pvi7wsd3spyn0f7y"; + sha256 = "0kahw453axizbg3x5yi1lyasj2vgd6vshkp6zgsi22w3y41kbb1b"; type = "gem"; }; - version = "0.0.15.1"; + version = "0.0.16"; }; timeout = { groups = [ "default" "development" + "migrations" "test" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1jwhj5y89j5c6pk5hjw8jmrm3iila0krn2c31lnlrn217z8yyal5"; + sha256 = "1jxcji88mh6xsqz0mfzwnxczpg7cyniph7wpavnavfz7lxl77xbq"; type = "gem"; }; - version = "0.5.0"; + version = "0.6.1"; }; tokenizers = { dependencies = [ "rb_sys" ]; @@ -3746,20 +4025,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "153rcngyzprwvlfwlbdl3yzma1v84k5n2636zrn5ysckd3lbhxnb"; + sha256 = "0iwgirp1bwsfdyk7r9k3favj51hkppa85hz0dgn5sq3yxspz50bq"; type = "gem"; }; - version = "0.6.3"; - }; - trilogy = { - groups = [ "migrations" ]; - platforms = [ ]; - source = { - remotes = [ "https://rubygems.org" ]; - sha256 = "0zq6yrp1074yd5lflz7yqzpicpcg4bxrl7sxw5c4g2m67dk3pmm2"; - type = "gem"; - }; - version = "2.9.0"; + version = "0.6.4"; }; tsort = { groups = [ @@ -3850,6 +4119,7 @@ groups = [ "default" "development" + "migrations" "test" ]; platforms = [ ]; @@ -3866,10 +4136,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0f898y35w60mkx3sd8ld2ryzkj4cld04qlgxi3z3hzdlzfhpa8x9"; + sha256 = "1g0hmv2axxjvk7m5ksql9q0a6mnhqv4cqgqqzh0pd39vsp9x7c3x"; type = "gem"; }; - version = "1.2025.2"; + version = "1.2026.2"; }; unf = { groups = [ "default" ]; @@ -3886,6 +4156,7 @@ groups = [ "default" "development" + "migrations" "test" ]; platforms = [ ]; @@ -3900,39 +4171,16 @@ groups = [ "default" "development" + "migrations" "test" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1995yfjbvjlwrslq48gzzc9j0blkdzlbda9h90pjbm0yvzax55s9"; + sha256 = "03zqn207zypycbz5m9mn7ym763wgpk7hcqbkpx02wrbm1wank7ji"; type = "gem"; }; - version = "4.1.0"; - }; - unicorn = { - dependencies = [ - "kgio" - "raindrops" - ]; - groups = [ "default" ]; - platforms = [ - { - engine = "maglev"; - } - { - engine = "rbx"; - } - { - engine = "ruby"; - } - ]; - source = { - remotes = [ "https://rubygems.org" ]; - sha256 = "1h0gma14jjxiz6piyi6p99q7lya2mxrq79l03160hascvmx9ipa5"; - type = "gem"; - }; - version = "6.1.0"; + version = "4.2.0"; }; uniform_notifier = { groups = [ @@ -3951,6 +4199,7 @@ groups = [ "default" "development" + "migrations" "test" ]; platforms = [ ]; @@ -3980,10 +4229,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "195r5qylwxwqbllnpli9c2pzin0lky6h3fw912h88g2lmri0j6hc"; + sha256 = "0q3jb2cal9c8b0xgdz1xl47w3n1vsb1gwj06c4acsxsqqid07wvp"; type = "gem"; }; - version = "1.1.9"; + version = "1.1.13"; }; web-push = { dependencies = [ @@ -4009,10 +4258,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "08v374yrqqhjj3xjzmvwnv3yz21r22kn071yr0i67gmwaf9mv7db"; + sha256 = "142cbab47mjxmg8gc89d94sd3h7an9ligh38r9n88wb3xbr5cibp"; type = "gem"; }; - version = "3.25.1"; + version = "3.26.2"; }; webrick = { groups = [ @@ -4067,10 +4316,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "03q1hf12csqy5q2inafzi44179zaq9n5yrb0k2j2llqhzcmbh7vj"; + sha256 = "0a3zi3v7qjm7lm4yp9z2sm959533k543sc4z0ixqik8wcfdpw27b"; type = "gem"; }; - version = "0.9.38"; + version = "0.9.44"; }; zeitwerk = { groups = [ @@ -4082,10 +4331,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "119ypabas886gd0n9kiid3q41w76gz60s8qmiak6pljpkd56ps5j"; + sha256 = "04hx33lsnp4q0qf8982mz0acs1dap5s2bsmihi0n0g08249sc4kj"; type = "gem"; }; - version = "2.7.3"; + version = "2.8.2"; }; zendesk_api = { dependencies = [ diff --git a/pkgs/servers/web-apps/discourse/safe-exec-from-nix-store.patch b/pkgs/servers/web-apps/discourse/safe-exec-from-nix-store.patch new file mode 100644 index 000000000000..e3c444958a26 --- /dev/null +++ b/pkgs/servers/web-apps/discourse/safe-exec-from-nix-store.patch @@ -0,0 +1,13 @@ +diff --git a/lib/discourse/safe_exec.rb b/lib/discourse/safe_exec.rb +index c4b8a5e3ecb..31d6f0d469d 100644 +--- a/lib/discourse/safe_exec.rb ++++ b/lib/discourse/safe_exec.rb +@@ -5,7 +5,7 @@ require "landlock" + module Discourse + class SafeExec + DEFAULT_READ_PATHS = %w[/bin /etc /lib /lib64 /usr].freeze +- DEFAULT_EXECUTE_PATHS = %w[/bin /lib /lib64 /usr].freeze ++ DEFAULT_EXECUTE_PATHS = %w[/bin /lib /lib64 /usr /nix/store].freeze + + def self.capture( + *command, diff --git a/pkgs/servers/web-apps/discourse/sass_embedded_vendored_dart_sass.patch b/pkgs/servers/web-apps/discourse/sass_embedded_vendored_dart_sass.patch new file mode 100644 index 000000000000..8d7f55794fa4 --- /dev/null +++ b/pkgs/servers/web-apps/discourse/sass_embedded_vendored_dart_sass.patch @@ -0,0 +1,28 @@ +diff --git a/ext/sass/Rakefile b/ext/sass/Rakefile +index d542efd..93f97cf 100644 +--- a/ext/sass/Rakefile ++++ b/ext/sass/Rakefile +@@ -84,11 +84,18 @@ file File.absolute_path('node_modules/sass', ARCHDIR) do + end + + task 'dart-sass' => ( +- begin +- SassConfig.dart_sass +- File.absolute_path('dart-sass/sass', ARCHDIR) +- rescue NotImplementedError +- File.absolute_path('node_modules/sass', ARCHDIR) ++ p ENV ++ if ENV.has_key?('DART_SASS_VENDORED') ++ mkdir_p ARCHDIR ++ cp_r ENV.fetch('DART_SASS_VENDORED'), File.absolute_path('dart-sass', ARCHDIR) ++ else ++ raise Errno::EINVAL, "no vendored SASS" ++ begin ++ SassConfig.dart_sass ++ File.absolute_path('dart-sass/sass', ARCHDIR) ++ rescue NotImplementedError ++ File.absolute_path('node_modules/sass', ARCHDIR) ++ end + end + ) + diff --git a/pkgs/servers/web-apps/discourse/unicorn_logging_and_timeout.patch b/pkgs/servers/web-apps/discourse/unicorn_logging_and_timeout.patch deleted file mode 100644 index 897cad1b66ea..000000000000 --- a/pkgs/servers/web-apps/discourse/unicorn_logging_and_timeout.patch +++ /dev/null @@ -1,25 +0,0 @@ -diff --git a/config/unicorn.conf.rb b/config/unicorn.conf.rb -index b8c549bc0f..a7d3592013 100644 ---- a/config/unicorn.conf.rb -+++ b/config/unicorn.conf.rb -@@ -35,19 +35,7 @@ FileUtils.mkdir_p("#{discourse_path}/tmp/pids") if !File.exist?("#{discourse_pat - # feel free to point this anywhere accessible on the filesystem - pid(ENV["UNICORN_PID_PATH"] || "#{discourse_path}/tmp/pids/unicorn.pid") - --if ENV["RAILS_ENV"] == "production" -- # By default, the Unicorn logger will write to stderr. -- # Additionally, some applications/frameworks log to stderr or stdout, -- # so prevent them from going to /dev/null when daemonized here: -- stderr_path unicorn_stderr_path -- stdout_path unicorn_stdout_path -- -- # nuke workers after 30 seconds instead of 60 seconds (the default) -- timeout 30 --else -- # we want a longer timeout in dev cause first request can be really slow -- timeout(ENV["UNICORN_TIMEOUT"] && ENV["UNICORN_TIMEOUT"].to_i || 60) --end -+timeout(ENV["UNICORN_TIMEOUT"] && ENV["UNICORN_TIMEOUT"].to_i || 60) - - # important for Ruby 2.0 - preload_app true diff --git a/pkgs/servers/web-apps/discourse/update.py b/pkgs/servers/web-apps/discourse/update.py index d86ec9c439a5..6a1fa3f64b9a 100755 --- a/pkgs/servers/web-apps/discourse/update.py +++ b/pkgs/servers/web-apps/discourse/update.py @@ -1,5 +1,5 @@ #!/usr/bin/env nix-shell -#! nix-shell -i python3 -p "python3.withPackages (ps: with ps; [ requests click click-log packaging ])" bundix bundler nix-update nurl +#! nix-shell -i python3 -p "python3.withPackages (ps: with ps; [ requests click click-log packaging ])" bundix bundler nix-update nurl curl unzip from __future__ import annotations import click @@ -149,6 +149,7 @@ def _diff_file(filepath: str, old_version: DiscourseVersion, new_version: Discou with tempfile.NamedTemporaryFile(mode='w') as o, tempfile.NamedTemporaryFile(mode='w') as n: o.write(old), n.write(new) + o.flush(), n.flush() width = shutil.get_terminal_size((80, 20)).columns diff_proc = subprocess.run( ['diff', '--color=always', f'--width={width}', '-y', o.name, n.name], @@ -236,12 +237,71 @@ def update(rev): with open(rubyenv_dir / fn, 'w') as f: f.write(repo.get_file(fn, version.tag)) + # download and copy the gems that are specified as path dependencies so bundle/bundix works + # currently this is only `migrations` + with tempfile.TemporaryDirectory() as d: + print("downloading discourse gems (path dependencies) for bundix") + subprocess.check_output(['curl',f'https://codeload.github.com/discourse/discourse/zip/refs/tags/{version.tag}','-o','discourse.zip'], cwd=d) + subprocess.check_output(['unzip', f'discourse.zip'], cwd=d) + subprocess.check_output(['mv', f'discourse-{version.version}/migrations', rubyenv_dir / 'migrations'], cwd=d) + + # -- sed commands borrowed from ../../../by-name/gi/gitlab/update.py which has a similar predicament with path deps + # comment from that file: "Undo our gemset.nix patches so that bundix runs through" + subprocess.check_output( + ["sed", "-i", "-e", "s|\\${src}/||g", "gemset.nix"], cwd=rubyenv_dir + ) + subprocess.check_output( + ["sed", "-i", "-e", "s|^src:[[:space:]]||g", "gemset.nix"], cwd=rubyenv_dir + ) + # work around https://github.com/nix-community/bundix/issues/8 os.environ["BUNDLE_FORCE_RUBY_PLATFORM"] = "true" subprocess.check_output(['bundle', 'lock'], cwd=rubyenv_dir) _remove_platforms(rubyenv_dir) subprocess.check_output(['bundix'], cwd=rubyenv_dir) + # -- also from gitlab pkg, see above + subprocess.check_output( + [ + "sed", + "-i", + "-e", + "1c\\src: {", + "-e", + 's:path = \\(migrations/[^;]*\\);:path = "${src}/\\1";:g', + "gemset.nix", + ], + cwd=rubyenv_dir, + ) + subprocess.check_output(["rm", "-rf", "migrations"], cwd=rubyenv_dir) + # -- end gitlab pkg code + + # update the sass-embedded override + # must run *after* the gemfile update! + dart_sass_ver = _nix_eval('discourse.rubyEnv.gemset.sass-embedded.version') + for platform in ["x64", "arm64"]: + prev_hash = _nix_eval(f'discourse.rubyEnv.dart-{platform}-hash') + new_hash = subprocess.check_output([ + "nurl", + "--fetcher", "fetchzip", + "--hash", + f"https://github.com/sass/dart-sass/releases/download/{dart_sass_ver}/dart-sass-{dart_sass_ver}-linux-{platform}.tar.gz", + ], text=True).strip("\n") + + if prev_hash == new_hash: + click.echo(f"dart-sass for {platform} up to date!") + continue + + click.echo(f"Update vendored dart-sass for {platform} to {dart_sass_ver} (hash {prev_hash} -> {new_hash})") + + with open(Path(__file__).parent / "default.nix", 'r+') as f: + content = f.read() + content = content.replace(prev_hash, new_hash) + f.seek(0) + f.write(content) + f.truncate() + + # update the discourse package itself _call_nix_update('discourse', version.version) old_pnpm_hash = _nix_eval('discourse.assets.pnpmDeps.outputHash') From e9d12b5a3a434bfbd7b33c1ebb339573f9bc07e0 Mon Sep 17 00:00:00 2001 From: mtnash Date: Thu, 30 Jul 2026 14:29:07 -0400 Subject: [PATCH 07/44] nixos/discourse: update config to match v2026.7.0 - update nginx settings and default config according to update.py - disable mini_racer_single_threaded; although this is enabled upstream by default it was observed to cause a segfault (cherry picked from commit 3bf11276482378cdeabf2cb2caabffb8c3a5e33a) Assisted-by: OpenAI Codex (GPT-5) --- nixos/modules/services/web-apps/discourse.nix | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/nixos/modules/services/web-apps/discourse.nix b/nixos/modules/services/web-apps/discourse.nix index db5e98b32eab..7ad8705ae658 100644 --- a/nixos/modules/services/web-apps/discourse.nix +++ b/nixos/modules/services/web-apps/discourse.nix @@ -641,6 +641,8 @@ in s3_http_continue_timeout = null; s3_install_cors_rule = null; s3_asset_cdn_url = null; + s3_role_arn = null; + s3_role_session_name = null; max_user_api_reqs_per_minute = 20; max_user_api_reqs_per_day = 2880; @@ -667,7 +669,6 @@ in compress_anon_cache = false; anon_cache_store_threshold = 2; allowed_theme_repos = null; - enable_email_sync_demon = false; max_digests_enqueued_per_30_mins_per_site = 10000; cluster_name = null; multisite_config_path = "config/multisite.yml"; @@ -681,6 +682,10 @@ in allow_impersonation = true; log_line_max_chars = 160000; yjit_enabled = false; + # this option is set to `true` in discourse's defaults. + # however, having this option enabled appears to cause a segfault in mini_racer + # see https://github.com/rubyjs/mini_racer/issues/422 + mini_racer_single_threaded = false; }; services.redis.servers.discourse = @@ -951,27 +956,35 @@ in # asset pipeline enables this brotli_static on; gzip_static on; + add_header Access-Control-Allow-Origin *; ''; "~ ^/plugins/".extraConfig = cache_1y; "~ /images/emoji/".extraConfig = cache_1y; "~ ^/uploads/" = proxy { - extraConfig = cache_1y + '' + extraConfig = '' proxy_set_header X-Sendfile-Type X-Accel-Redirect; proxy_set_header X-Accel-Mapping ${cfg.package}/share/discourse/public/=/downloads/; # custom CSS location ~ /stylesheet-cache/ { + ${cache_1y} try_files $uri =404; } # this allows us to bypass rails location ~* \.(gif|png|jpg|jpeg|bmp|tif|tiff|ico|webp)$ { + ${cache_1y} try_files $uri =404; } - # SVG needs an extra header attached + # force attachment so SVGs can't render as a document on direct navigation location ~* \.(svg)$ { + ${cache_1y} + add_header Access-Control-Allow-Origin *; + add_header Content-Disposition attachment; + try_files $uri =404; } # thumbnails & optimized images location ~ /_?optimized/ { + ${cache_1y} try_files $uri =404; } ''; From 740a6eb288c7174c99825bcfbedc5daff42c5a65 Mon Sep 17 00:00:00 2001 From: mtnash Date: Mon, 3 Aug 2026 00:04:02 -0400 Subject: [PATCH 08/44] discourse: 2026.7.0 -> 2026.7.1 extremely minor update, only changed version and hash (cherry picked from commit 7191c8573c036c73af0193ed94ec60ca2e95666e) Assisted-by: OpenAI Codex (GPT-5) --- pkgs/servers/web-apps/discourse/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/servers/web-apps/discourse/default.nix b/pkgs/servers/web-apps/discourse/default.nix index d4a84a5ec3d2..d9102d56d003 100644 --- a/pkgs/servers/web-apps/discourse/default.nix +++ b/pkgs/servers/web-apps/discourse/default.nix @@ -54,13 +54,13 @@ }: let - version = "2026.7.0"; + version = "2026.7.1"; src = fetchFromGitHub { owner = "discourse"; repo = "discourse"; rev = "v${version}"; - sha256 = "sha256-rp1s/8bCWsDc0Z0Ia6NysL6byAD/sTQmEHHXwN3uUkE="; + sha256 = "sha256-sGygaOCygtDVjg8uBGdDVaRouUKib8aAukaBAY8aQ9w="; }; pnpm = pnpm_10; From ac300c7104a0ee849ff62def03fac104a5493225 Mon Sep 17 00:00:00 2001 From: SchweGELBin Date: Sun, 16 Aug 2026 23:17:55 +0200 Subject: [PATCH 09/44] libsignal-ffi: 0.97.2 -> 0.100.0 (cherry picked from commit 90648e7970e14479169b811f38c80d247908fffa) --- pkgs/by-name/li/libsignal-ffi/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/li/libsignal-ffi/package.nix b/pkgs/by-name/li/libsignal-ffi/package.nix index d5f380fb9654..074d7df30905 100644 --- a/pkgs/by-name/li/libsignal-ffi/package.nix +++ b/pkgs/by-name/li/libsignal-ffi/package.nix @@ -13,14 +13,14 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "libsignal-ffi"; # must match the version used in mautrix-signal # see https://github.com/mautrix/signal/issues/401 - version = "0.97.2"; + version = "0.100.0"; src = fetchFromGitHub { fetchSubmodules = true; owner = "signalapp"; repo = "libsignal"; tag = "v${finalAttrs.version}"; - hash = "sha256-p9NIt+n7MTsYWAFS+FOuSGMJUZi8rBlTb6ATgVJ+uU8="; + hash = "sha256-ATK0wnTbT3b8lFAwXSm5j31LXywCh70iOTgUL6Pfd+Q="; }; postPatch = @@ -46,7 +46,7 @@ rustPlatform.buildRustPackage (finalAttrs: { NIX_LDFLAGS = if stdenv.hostPlatform.isDarwin then "-lc++" else "-lstdc++"; }; - cargoHash = "sha256-JtNGubDMrUINCCiawrAW63L1trcBCAIibFpojK8mzhc="; + cargoHash = "sha256-OuJdAi2TbtpQlXSr7PpLuBqeHYx0l2ax5byoEZ5PGj8="; cargoBuildFlags = [ "-p" From a527458dbf053f6a255eed22148242ab4ccb0c39 Mon Sep 17 00:00:00 2001 From: SchweGELBin Date: Sun, 16 Aug 2026 23:18:18 +0200 Subject: [PATCH 10/44] mautrix-signal: 26.07 -> 26.08 (cherry picked from commit 6d5291c735695097da85f6a12adcd38a00c5be1c) --- pkgs/by-name/ma/mautrix-signal/package.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/ma/mautrix-signal/package.nix b/pkgs/by-name/ma/mautrix-signal/package.nix index 27d3f2040855..246426482bf9 100644 --- a/pkgs/by-name/ma/mautrix-signal/package.nix +++ b/pkgs/by-name/ma/mautrix-signal/package.nix @@ -20,14 +20,14 @@ let in buildGoModule rec { pname = "mautrix-signal"; - version = "26.07"; - tag = "v0.2607.0"; + version = "26.08"; + tag = "v0.2608.0"; src = fetchFromGitHub { owner = "mautrix"; repo = "signal"; inherit tag; - hash = "sha256-l6IIL2bClC6t5+P0/AkFIjkD/eDpQnnmA8x4i5ROaY4="; + hash = "sha256-B06szaP9QbdVy6rmnGAVkavzgzFrJXeWCN1iIvUzbzc="; }; buildInputs = @@ -46,7 +46,7 @@ buildGoModule rec { CGO_LDFLAGS = toString [ cppStdLib ]; }; - vendorHash = "sha256-0ifGza94s4+ED5OrlrqoDKIDZIYJWJhB2q3LJRpKiJs="; + vendorHash = "sha256-KoFLr5As31/YyusfA3bxTnI1V73F6KGWLSZPg0LZa78="; ldflags = [ "-X" From dd744b59e649e7aac03cdea3c90963514ede7e9b Mon Sep 17 00:00:00 2001 From: Jack Rosenberg Date: Wed, 12 Aug 2026 16:47:13 +0200 Subject: [PATCH 11/44] fosrl-pangolin: 1.21.0 -> 1.21.1 (cherry picked from commit 8956875863aa283c08f2f9f43dcfb9316ebcfab7) --- pkgs/by-name/fo/fosrl-pangolin/package.nix | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/pkgs/by-name/fo/fosrl-pangolin/package.nix b/pkgs/by-name/fo/fosrl-pangolin/package.nix index 7f73cd3d3690..e34fad16e016 100644 --- a/pkgs/by-name/fo/fosrl-pangolin/package.nix +++ b/pkgs/by-name/fo/fosrl-pangolin/package.nix @@ -36,7 +36,7 @@ in buildNpmPackage (finalAttrs: { pname = "pangolin"; - version = "1.21.0"; + version = "1.21.1"; __structuredAttrs = true; enableParallelBuilding = true; @@ -45,12 +45,12 @@ buildNpmPackage (finalAttrs: { owner = "fosrl"; repo = "pangolin"; tag = finalAttrs.version; - hash = "sha256-LR4UO2xrTLKmemDVsJWtEQoV2bDy6U2ahxTtA+SDymI="; + hash = "sha256-zfXHev0bN3KVkoiSQ+2WQCgmcCtWi3dib6EiaYmthTo="; }; nodejs = nodejs_22; npmDepsFetcherVersion = 2; - npmDepsHash = "sha256-EBectG1zNdUb30SlhAzy9rCwF/mYHAV4HZTRbk2CbDY="; + npmDepsHash = "sha256-9wPn2nSD9VxMyHywrG52WrChsrJ/ctnKGlMZZEymP6A="; nativeBuildInputs = [ esbuild @@ -64,11 +64,11 @@ buildNpmPackage (finalAttrs: { # upstream inconsistently updates this # so leaving this here in case it's needed - postPatch = '' - substituteInPlace server/lib/consts.ts --replace-fail \ - 'export const APP_VERSION = "${lib.versions.majorMinor finalAttrs.version + ".0"}";' \ - 'export const APP_VERSION = "${finalAttrs.version}";' - ''; + # postPatch = '' + # substituteInPlace server/lib/consts.ts --replace-fail \ + # 'export const APP_VERSION = "${lib.versions.majorMinor finalAttrs.version + ".0"}";' \ + # 'export const APP_VERSION = "${finalAttrs.version}";' + # ''; preBuild = '' npm run set:${db false} From 690fd394dc4ad872fe3075c3238da920f48c6cab Mon Sep 17 00:00:00 2001 From: liberodark Date: Thu, 20 Aug 2026 07:55:50 +0200 Subject: [PATCH 12/44] temurin-bin: fix eval on unsupported systems (cherry picked from commit e0ad45d45a15cecb325676c501a2a9e4b7a3a943) --- pkgs/development/compilers/temurin-bin/jdk-linux-base.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/compilers/temurin-bin/jdk-linux-base.nix b/pkgs/development/compilers/temurin-bin/jdk-linux-base.nix index 8fe6a9f59b3a..42cc9add8331 100644 --- a/pkgs/development/compilers/temurin-bin/jdk-linux-base.nix +++ b/pkgs/development/compilers/temurin-bin/jdk-linux-base.nix @@ -56,7 +56,7 @@ let else "${name-prefix}-${sourcePerArch.packageType}-bin"; - version = sourcePerArch.${cpuName}.version or (throw "unsupported CPU ${cpuName}"); + version = sourcePerArch.${cpuName}.version or "unsupported"; src = fetchurl { inherit (sourcePerArch.${cpuName}) url sha256; From 2bab4f5bcd922787357efa4f5a1f14fdfc196bc3 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 21 Aug 2026 00:42:28 +0000 Subject: [PATCH 13/44] gh: 2.97.0 -> 2.98.0 (cherry picked from commit 1fdd467b8d33edaebc08d86efdfc62c09215f172) --- pkgs/by-name/gh/gh/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/gh/gh/package.nix b/pkgs/by-name/gh/gh/package.nix index 863633818114..ad9d4b1303b2 100644 --- a/pkgs/by-name/gh/gh/package.nix +++ b/pkgs/by-name/gh/gh/package.nix @@ -10,7 +10,7 @@ buildGoModule (finalAttrs: { pname = "gh"; - version = "2.97.0"; + version = "2.98.0"; __structuredAttrs = true; @@ -18,10 +18,10 @@ buildGoModule (finalAttrs: { owner = "cli"; repo = "cli"; tag = "v${finalAttrs.version}"; - hash = "sha256-yG3bo7YVs1Q//9PePusU0m4TilujQMxI4Faz26iAb5g="; + hash = "sha256-2MktrI8FEvGkU2/cC6vrPtujl8fszuxz+Ey30WjRjhg="; }; - vendorHash = "sha256-XeXHMEhe1ZVWtenyYIzaYjNovaArvI0xBRWVabUF9KU="; + vendorHash = "sha256-fhFsu/LjLNFwexSfUsd4X74UD+AQojLcdxU5IqOi3GY="; nativeBuildInputs = [ installShellFiles From fa5ca9f074b1b0c05c7d5f0483cc2c26d26b4a5d Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 19 Aug 2026 07:42:58 +0000 Subject: [PATCH 14/44] keycloak: 26.7.1 -> 26.7.2 (cherry picked from commit 8200e362ff5d9894e06c230bd51d8fd11b694c9d) --- pkgs/by-name/ke/keycloak/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ke/keycloak/package.nix b/pkgs/by-name/ke/keycloak/package.nix index 11480a1ebe93..2dc77cb1703c 100644 --- a/pkgs/by-name/ke/keycloak/package.nix +++ b/pkgs/by-name/ke/keycloak/package.nix @@ -24,11 +24,11 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "keycloak"; - version = "26.7.1"; + version = "26.7.2"; src = fetchzip { url = "https://github.com/keycloak/keycloak/releases/download/${finalAttrs.version}/keycloak-${finalAttrs.version}.zip"; - hash = "sha256-YkjFJcD2G132mUm4HmyHriAK+b+3UCUeLilEMeKBZho="; + hash = "sha256-D4Hj4OHX8veFjIDbvbQN0E7C2oHVpbD2U4TV1Z8fZ8Y="; }; nativeBuildInputs = [ From 048be562542d1e9ef327dabcbfffca64e89b00e4 Mon Sep 17 00:00:00 2001 From: "nixpkgs-ci[bot]" <190413589+nixpkgs-ci[bot]@users.noreply.github.com> Date: Fri, 21 Aug 2026 04:18:58 +0000 Subject: [PATCH 15/44] maintainers/github-teams.json: Automated sync (cherry picked from commit cc1b7d790a6ad6ea4d431d112871bca5716e5c63) --- maintainers/github-teams.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/maintainers/github-teams.json b/maintainers/github-teams.json index 662132d06a23..381ef2cf7467 100644 --- a/maintainers/github-teams.json +++ b/maintainers/github-teams.json @@ -694,8 +694,8 @@ "eclairevoyant": 848000 }, "members": { - "Eveeifyeve": 88671402, - "daylinmorgan": 47667941 + "daylinmorgan": 47667941, + "eveeifyeve": 88671402 }, "name": "nim" }, @@ -788,10 +788,11 @@ "description": "Maintain Pantheon desktop environment and platform", "id": 4786995, "maintainers": { + "bobby285271": 20080233, "davidak": 91113 }, "members": { - "bobby285271": 20080233 + "amz-x": 18249234 }, "name": "Pantheon" }, @@ -895,7 +896,6 @@ "0x4A6F": 9675338 }, "members": { - "DarkKirb": 23011243, "dramforever": 2818072, "fgaz": 8182846, "jonhermansen": 660911 From 7cc3160de15da3df672ad4cbc738b7d6904ed0c1 Mon Sep 17 00:00:00 2001 From: Antoine Cotten Date: Sat, 4 Jul 2026 11:59:07 +0200 Subject: [PATCH 16/44] maintainers: add antoineco (cherry picked from commit b910f531faae777cdcd63af3b7395612fa91b0db) --- maintainers/maintainer-list.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index ccb50ef99e53..146d852c2f24 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -1958,6 +1958,12 @@ githubId = 14838767; name = "Jacopo Scannella"; }; + antoineco = { + email = "hello@acotten.com"; + github = "antoineco"; + githubId = 3299086; + name = "Antoine Cotten"; + }; anton-4 = { name = "Anton"; github = "Anton-4"; From 9e84c3bae345c075774ecda34bb5d240e06177b8 Mon Sep 17 00:00:00 2001 From: Antoine Cotten Date: Sat, 1 Aug 2026 20:28:17 +0200 Subject: [PATCH 17/44] tuigreet: add antoineco as maintainer (cherry picked from commit 7b9520ba59cea97e03f2c0158fbfc6db75a29f9a) --- pkgs/by-name/tu/tuigreet/package.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/tu/tuigreet/package.nix b/pkgs/by-name/tu/tuigreet/package.nix index b1a16c8f2f5d..1106b5ea22ea 100644 --- a/pkgs/by-name/tu/tuigreet/package.nix +++ b/pkgs/by-name/tu/tuigreet/package.nix @@ -36,7 +36,9 @@ rustPlatform.buildRustPackage (finalAttrs: { homepage = "https://github.com/apognu/tuigreet"; changelog = "https://github.com/apognu/tuigreet/releases/tag/${finalAttrs.version}"; license = lib.licenses.gpl3Plus; - maintainers = [ ]; + maintainers = with lib.maintainers; [ + antoineco + ]; platforms = lib.platforms.linux; mainProgram = "tuigreet"; }; From d9fc5456a91e0db44f3ee42f6acf843174fc2eaf Mon Sep 17 00:00:00 2001 From: Antoine Cotten Date: Wed, 12 Aug 2026 17:12:44 +0200 Subject: [PATCH 18/44] tuigreet: add NotAShelf as maintainer (cherry picked from commit b219f76d6b44b45bff9af3bfcacbe7da0d70ba92) --- pkgs/by-name/tu/tuigreet/package.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/by-name/tu/tuigreet/package.nix b/pkgs/by-name/tu/tuigreet/package.nix index 1106b5ea22ea..c87161a5f337 100644 --- a/pkgs/by-name/tu/tuigreet/package.nix +++ b/pkgs/by-name/tu/tuigreet/package.nix @@ -37,6 +37,7 @@ rustPlatform.buildRustPackage (finalAttrs: { changelog = "https://github.com/apognu/tuigreet/releases/tag/${finalAttrs.version}"; license = lib.licenses.gpl3Plus; maintainers = with lib.maintainers; [ + NotAShelf antoineco ]; platforms = lib.platforms.linux; From c1e3895072dcdbcabd58d12d5ddb3507d4ba2d0f Mon Sep 17 00:00:00 2001 From: Antoine Cotten Date: Sat, 1 Aug 2026 20:43:57 +0200 Subject: [PATCH 19/44] tuigreet: 0.9.1 -> 0.11.0, switch to GitHub org (cherry picked from commit 48c022362061a36cc3b5672df5f197a268ca6bda) --- pkgs/by-name/tu/tuigreet/package.nix | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/pkgs/by-name/tu/tuigreet/package.nix b/pkgs/by-name/tu/tuigreet/package.nix index c87161a5f337..d7205525edd9 100644 --- a/pkgs/by-name/tu/tuigreet/package.nix +++ b/pkgs/by-name/tu/tuigreet/package.nix @@ -8,16 +8,16 @@ }: rustPlatform.buildRustPackage (finalAttrs: { pname = "tuigreet"; - version = "0.9.1"; + version = "0.11.0"; src = fetchFromGitHub { - owner = "apognu"; + owner = "tuigreet"; repo = "tuigreet"; tag = finalAttrs.version; - hash = "sha256-e0YtpakEaaWdgu+bMr2VFoUc6+SUMFk4hYtSyk5aApY="; + hash = "sha256-4DB4Pl2UwIeab/MJaX3VfVNMsPWE6Q513z1NDdxvG3o="; }; - cargoHash = "sha256-w6ZOqpwogKoN4oqqI1gFqY8xAnfvhEBVaL8/6JXpKXs="; + cargoHash = "sha256-5Q4E8nnmQ109gcfxxctn/rne5N4Qvz2Pft6o7as2fSc="; nativeBuildInputs = [ installShellFiles @@ -33,8 +33,8 @@ rustPlatform.buildRustPackage (finalAttrs: { meta = { description = "Graphical console greeter for greetd"; - homepage = "https://github.com/apognu/tuigreet"; - changelog = "https://github.com/apognu/tuigreet/releases/tag/${finalAttrs.version}"; + homepage = "https://github.com/tuigreet/tuigreet"; + changelog = "https://github.com/tuigreet/tuigreet/releases/tag/${finalAttrs.version}"; license = lib.licenses.gpl3Plus; maintainers = with lib.maintainers; [ NotAShelf From 319055219d2ba38d50281b45b67ebd692ee232bb Mon Sep 17 00:00:00 2001 From: Antoine Cotten Date: Wed, 12 Aug 2026 17:16:16 +0200 Subject: [PATCH 20/44] tuigreet: enable __structuredAttrs (cherry picked from commit 7041f844e23e4664b4b0218d02f6e93934c06a85) --- pkgs/by-name/tu/tuigreet/package.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/by-name/tu/tuigreet/package.nix b/pkgs/by-name/tu/tuigreet/package.nix index d7205525edd9..23345ce3b1b2 100644 --- a/pkgs/by-name/tu/tuigreet/package.nix +++ b/pkgs/by-name/tu/tuigreet/package.nix @@ -10,6 +10,8 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "tuigreet"; version = "0.11.0"; + __structuredAttrs = true; + src = fetchFromGitHub { owner = "tuigreet"; repo = "tuigreet"; From 882fe4f65d8a9a5fcccfdc860b75d22da2a58f93 Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Fri, 21 Aug 2026 08:15:32 +0000 Subject: [PATCH 21/44] dolibarr: 23.0.3 -> 23.0.4 Diff: https://github.com/Dolibarr/dolibarr/compare/23.0.3...23.0.4 Changelog: https://github.com/Dolibarr/dolibarr/releases/tag/23.0.4 --- pkgs/by-name/do/dolibarr/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/do/dolibarr/package.nix b/pkgs/by-name/do/dolibarr/package.nix index faab9a3647d4..658a78085a9d 100644 --- a/pkgs/by-name/do/dolibarr/package.nix +++ b/pkgs/by-name/do/dolibarr/package.nix @@ -8,13 +8,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "dolibarr"; - version = "23.0.3"; + version = "23.0.4"; src = fetchFromGitHub { owner = "Dolibarr"; repo = "dolibarr"; tag = finalAttrs.version; - hash = "sha256-Yse1rUaxRnuXawgAk0m4U3GCZNlV0IPPpZ9Qml4heA8="; + hash = "sha256-YJKTaLGaILhCFREtAgmX+vzhXIKp0DIj6jn7TtqtFB4="; }; dontBuild = true; From f56c4e2904286a0a8a60763309cce5d5bd3ec31a Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Fri, 21 Aug 2026 06:45:44 +0000 Subject: [PATCH 22/44] tuigreet: 0.11.0 -> 0.11.1 Diff: https://github.com/tuigreet/tuigreet/compare/0.11.0...0.11.1 Changelog: https://github.com/tuigreet/tuigreet/releases/tag/0.11.1 (cherry picked from commit b2b146ec437375820292dd50d2fff1f4037b99ea) --- pkgs/by-name/tu/tuigreet/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/tu/tuigreet/package.nix b/pkgs/by-name/tu/tuigreet/package.nix index 23345ce3b1b2..86f2afa8f4ab 100644 --- a/pkgs/by-name/tu/tuigreet/package.nix +++ b/pkgs/by-name/tu/tuigreet/package.nix @@ -8,7 +8,7 @@ }: rustPlatform.buildRustPackage (finalAttrs: { pname = "tuigreet"; - version = "0.11.0"; + version = "0.11.1"; __structuredAttrs = true; @@ -16,7 +16,7 @@ rustPlatform.buildRustPackage (finalAttrs: { owner = "tuigreet"; repo = "tuigreet"; tag = finalAttrs.version; - hash = "sha256-4DB4Pl2UwIeab/MJaX3VfVNMsPWE6Q513z1NDdxvG3o="; + hash = "sha256-nZkZY4ZlywDUbOWmDpj1ubjoiLQamYCwTV72N0Lgb8g="; }; cargoHash = "sha256-5Q4E8nnmQ109gcfxxctn/rne5N4Qvz2Pft6o7as2fSc="; From 6f08d10447e31d42e7496059ef69547b9dbb27f2 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 21 Aug 2026 08:04:19 +0000 Subject: [PATCH 23/44] lucida-downloader: 0.8.0 -> 0.9.0 (cherry picked from commit 4aa9218c9481c80d5980b555c0a5cbd78932f980) --- pkgs/by-name/lu/lucida-downloader/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/lu/lucida-downloader/package.nix b/pkgs/by-name/lu/lucida-downloader/package.nix index d14bfe592209..896b0e16c9d4 100644 --- a/pkgs/by-name/lu/lucida-downloader/package.nix +++ b/pkgs/by-name/lu/lucida-downloader/package.nix @@ -7,18 +7,18 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "lucida-downloader"; - version = "0.8.0"; + version = "0.9.0"; src = fetchFromGitHub { owner = "jelni"; repo = "lucida-downloader"; tag = "v${finalAttrs.version}"; - hash = "sha256-284f3+yKkE37wZzmyW7qupvYwEkmLvco8lc5dFSiLAQ="; + hash = "sha256-7mq6xoafXqhqhe9vLdc67aGzlUrD8hTyCGkIyqndfPA="; }; passthru.updateScript = nix-update-script { }; - cargoHash = "sha256-PT8E9AqvhChKk76AA2qsAf2ICy5maQ9SK96V/vkmwy8="; + cargoHash = "sha256-lUxPPykO/U7bVgtw3yGxqD0PbqHng5bIW0krvYW7+Kw="; meta = { description = "Multithreaded client for downloading music for free with lucida"; From d2a3c3fd40140155181f663969e8c721c33f2b71 Mon Sep 17 00:00:00 2001 From: Weijia Wang <9713184+wegank@users.noreply.github.com> Date: Mon, 10 Aug 2026 22:53:46 +0200 Subject: [PATCH 24/44] ffmpeg: fix loongarch64-linux build (cherry picked from commit 98e164f1593492287a2b33317bf1a5d6f72771e5) --- pkgs/development/libraries/ffmpeg/generic.nix | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/pkgs/development/libraries/ffmpeg/generic.nix b/pkgs/development/libraries/ffmpeg/generic.nix index 91eff80b0b17..b7fc47c572f9 100644 --- a/pkgs/development/libraries/ffmpeg/generic.nix +++ b/pkgs/development/libraries/ffmpeg/generic.nix @@ -453,6 +453,15 @@ stdenv.mkDerivation ( ++ optionals (lib.versionAtLeast version "5.1") [ ./nvccflags-cpp14.patch ] + ++ optionals (lib.versionAtLeast version "8.1.2" && stdenv.hostPlatform.isLoongArch64) [ + # https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/23825 (merged, but not backported to 8.1.x or 9.0.x) + # As git.ffmpeg.org deploys Anubis, we cannot fetch this patch reliably from there. + # So instead, we fetch it from Debian. + (fetchpatch2 { + url = "https://salsa.debian.org/multimedia-team/ffmpeg/-/raw/d52aea25bc9123bfaf61f7a7e5a0d9da01c8788d/debian/patches/0001-swscale-loongarch-fix-buffer-underflow-in-yuv2plane1.patch"; + hash = "sha256-QRkb7z4Btyd9ZgV/1hh6Fb87IhkygFgVDqQdloXKL6Q="; + }) + ] ++ optionals (lib.versionAtLeast version "7.0" && lib.versionOlder version "7.1.4") [ (fetchpatch2 { name = "unbreak-hardcoded-tables.patch"; From 811b0ec835bc44a78e3e1605cbd84cd20482fcc6 Mon Sep 17 00:00:00 2001 From: emilylange Date: Fri, 21 Aug 2026 10:32:54 +0200 Subject: [PATCH 25/44] chromium,chromedriver: 151.0.7922.169 -> 151.0.7922.173 https://chromereleases.googleblog.com/2026/08/stable-channel-update-for-desktop_0404570826.html This update includes 7 security fixes. CVEs: CVE-2026-76017 CVE-2026-76018 CVE-2026-76019 CVE-2026-76020 CVE-2026-76021 CVE-2026-76022 CVE-2026-76023 (cherry picked from commit 86e75d89038f27350d85f7fe11f1985142b754b5) --- .../networking/browsers/chromium/info.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/pkgs/applications/networking/browsers/chromium/info.json b/pkgs/applications/networking/browsers/chromium/info.json index e8116ae3696e..7e9a100f5dbb 100644 --- a/pkgs/applications/networking/browsers/chromium/info.json +++ b/pkgs/applications/networking/browsers/chromium/info.json @@ -1,10 +1,10 @@ { "chromium": { - "version": "151.0.7922.169", + "version": "151.0.7922.173", "chromedriver": { - "version": "151.0.7922.170", - "hash_darwin": "sha256-DpYk2U4zCxM+eHNThABQhtp5SN09ntQKpQL9Fh0aQ8I=", - "hash_darwin_aarch64": "sha256-UO/M1Mh1nDDKqHNPBxeVd0CXX24xiIpVBA/bNNa8s3M=" + "version": "151.0.7922.174", + "hash_darwin": "sha256-ZvSYSZVVXOUVNjBkrXNQ04qdUcAj7Z2RbWPt6/rVkdo=", + "hash_darwin_aarch64": "sha256-10cDX124TzB9kIQfx+Jxzz6mgo3Aq/C+Nfwy9BR0F2c=" }, "deps": { "depot_tools": { @@ -21,8 +21,8 @@ "DEPS": { "src": { "url": "https://chromium.googlesource.com/chromium/src.git", - "rev": "4b1c7520055f77780fe76d89bb89b76e4d19f64c", - "hash": "sha256-Esamlwf17X1PzJsQRRcIJ4QwA0qHD3vslQwzdAbGJxk=", + "rev": "a96602f30358e9b5d256a0464e7e4d4bec223004", + "hash": "sha256-uumIVSzf318Xd1JB9jESXgpLxXlrvMDclOzSFQqweZ8=", "recompress": true }, "src/third_party/clang-format/script": { @@ -827,8 +827,8 @@ }, "src/v8": { "url": "https://chromium.googlesource.com/v8/v8.git", - "rev": "dccfc345769bb723321ce10168d8084f7f9ac9f7", - "hash": "sha256-uyS4w15ppEOxv/FKsdtGDzSIER5bqZtHPic6eKTIVDM=" + "rev": "4b407bc23f23059b1019cde542601c2cf8f70eb2", + "hash": "sha256-TB1A+iIyZOdlbHvim1JOaXOf9uQnoAYqbUL2+PFKUcs=" }, "src/agents/shared": { "url": "https://chromium.googlesource.com/chromium/agents.git", From 439464b6aba8b1a9af32856878f5899309916dd7 Mon Sep 17 00:00:00 2001 From: sempiternal-aurora <78790545+sempiternal-aurora@users.noreply.github.com> Date: Tue, 18 Aug 2026 00:52:13 +1000 Subject: [PATCH 26/44] ocamlPackages.buildDunePackage: allow multiple dune packages A single `dune-project` file can contain multiple packages that dune can build. This is a problem, because the default dune build command we use doesn't search through `dune-project` for dependencies, it assumes that will have already been built and can be found with findlib. See zipperposition for an example of this. Adds a new `dunePackages` argument to allow this, defaulting to `[ pname ]` for backwards compatibility. (cherry picked from commit 8c223b09535a81a78d4e85462f75404cc175a3ca) --- doc/languages-frameworks/ocaml.section.md | 3 +++ pkgs/build-support/ocaml/dune.nix | 7 ++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/doc/languages-frameworks/ocaml.section.md b/doc/languages-frameworks/ocaml.section.md index 06c2fb197105..2e392b20c3d6 100644 --- a/doc/languages-frameworks/ocaml.section.md +++ b/doc/languages-frameworks/ocaml.section.md @@ -59,6 +59,9 @@ Here is a simple package example. - The library will be installed using the `angstrom.install` file that dune generates. +- It also accepts an optional `dunePackages` argument, if there is more than one + dune package that needs to be built (see `zipperposition`) + ```nix { lib, diff --git a/pkgs/build-support/ocaml/dune.nix b/pkgs/build-support/ocaml/dune.nix index cbd1957dc2a8..6a640604b444 100644 --- a/pkgs/build-support/ocaml/dune.nix +++ b/pkgs/build-support/ocaml/dune.nix @@ -18,6 +18,7 @@ lib.extendMkDerivation { { pname, version, + dunePackages ? [ pname ], nativeBuildInputs ? [ ], enableParallelBuilding ? true, ... @@ -58,14 +59,14 @@ lib.extendMkDerivation { buildPhase = args.buildPhase or '' runHook preBuild - dune build -p ${pname} ''${enableParallelBuilding:+-j $NIX_BUILD_CORES} + dune build -p ${lib.concatStringsSep "," dunePackages} ''${enableParallelBuilding:+-j $NIX_BUILD_CORES} runHook postBuild ''; installPhase = args.installPhase or '' runHook preInstall - dune install --prefix $out --libdir $OCAMLFIND_DESTDIR ${pname} \ + dune install --prefix $out --libdir $OCAMLFIND_DESTDIR ${lib.concatStringsSep " " dunePackages} \ ${ if lib.versionAtLeast Dune.version "2.9" then "--docdir $out/share/doc --mandir $out/share/man" @@ -78,7 +79,7 @@ lib.extendMkDerivation { checkPhase = args.checkPhase or '' runHook preCheck - dune runtest -p ${pname} ''${enableParallelBuilding:+-j $NIX_BUILD_CORES} + dune runtest -p ${lib.concatStringsSep "," dunePackages} ''${enableParallelBuilding:+-j $NIX_BUILD_CORES} runHook postCheck ''; From fbdaaee21ba6e6e279e48b7ab580560c232edea7 Mon Sep 17 00:00:00 2001 From: sempiternal-aurora <78790545+sempiternal-aurora@users.noreply.github.com> Date: Wed, 19 Aug 2026 01:25:36 +1000 Subject: [PATCH 27/44] zipperposition: migrate to dunePackages (cherry picked from commit 62ac3adbe3ea80c52848fe3ae1d891bde5d2a912) --- pkgs/by-name/zi/zipperposition/package.nix | 23 ++++++---------------- 1 file changed, 6 insertions(+), 17 deletions(-) diff --git a/pkgs/by-name/zi/zipperposition/package.nix b/pkgs/by-name/zi/zipperposition/package.nix index 7096bead775e..7d34ff216122 100644 --- a/pkgs/by-name/zi/zipperposition/package.nix +++ b/pkgs/by-name/zi/zipperposition/package.nix @@ -29,17 +29,12 @@ ocamlPackages.buildDunePackage { oseq ]; - buildPhase = '' - runHook preBuild - dune build -p logtk,libzipperposition,zipperposition,zipperposition-tools ''${enableParallelBuilding:+-j $NIX_BUILD_CORES} - runHook postBuild - ''; - - installPhase = '' - runHook preInstall - dune install --prefix $out --libdir $OCAMLFIND_DESTDIR logtk libzipperposition zipperposition zipperposition-tools - runHook postInstall - ''; + dunePackages = [ + "logtk" + "libzipperposition" + "zipperposition" + "zipperposition-tools" + ]; doCheck = true; @@ -49,12 +44,6 @@ ocamlPackages.buildDunePackage { qcheck-alcotest ]; - checkPhase = '' - runHook preCheck - dune runtest -p logtk,libzipperposition,zipperposition,zipperposition-tools ''${enableParallelBuilding:+-j $NIX_BUILD_CORES} - runHook postCheck - ''; - meta = { description = "Superposition prover for full first order logic"; homepage = "https://github.com/sneeuwballen/zipperposition"; From 8b04fabbe28a36c582dbe8467a1ef37e8c0afed7 Mon Sep 17 00:00:00 2001 From: whispers Date: Mon, 17 Aug 2026 22:09:47 -0400 Subject: [PATCH 28/44] mullvad-browser: 15.0.19 -> 15.0.20 changelog: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/raw/mb-15.0.20-build1/projects/browser/Bundle-Data/Docs-MB/ChangeLog.txt firefox esr: https://www.firefox.com/en-US/firefox/140.14.0/releasenotes/ (cherry picked from commit 6a130c9821a6a5224705c5d066688d1b57538d38) --- pkgs/by-name/mu/mullvad-browser/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/mu/mullvad-browser/package.nix b/pkgs/by-name/mu/mullvad-browser/package.nix index 439f837374a3..1a4ba549c388 100644 --- a/pkgs/by-name/mu/mullvad-browser/package.nix +++ b/pkgs/by-name/mu/mullvad-browser/package.nix @@ -97,7 +97,7 @@ let ++ lib.optionals mediaSupport [ ffmpeg_7 ] ); - version = "15.0.19"; + version = "15.0.20"; sources = { x86_64-linux = fetchurl { @@ -109,7 +109,7 @@ let "https://tor.eff.org/dist/mullvadbrowser/${version}/mullvad-browser-linux-x86_64-${version}.tar.xz" "https://tor.calyxinstitute.org/dist/mullvadbrowser/${version}/mullvad-browser-linux-x86_64-${version}.tar.xz" ]; - hash = "sha256-9Vbv7A8JarYtT0Ll1bveQmwif7/IViq6geMxMqeF+S4="; + hash = "sha256-EyVih1kklIg7b3fdh6tqtEE3Xh/UPpPMZgfdxtY6c5s="; }; }; From b142cfcd1cd24193e2aa9b282a8bed805a62fba6 Mon Sep 17 00:00:00 2001 From: whispers Date: Mon, 17 Aug 2026 22:11:09 -0400 Subject: [PATCH 29/44] tor-browser: 15.0.19 -> 15.0.20 changelog: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/raw/tbb-15.0.20-build1/projects/browser/Bundle-Data/Docs-TBB/ChangeLog.txt firefox esr: https://www.firefox.com/en-US/firefox/140.14.0/releasenotes/ (cherry picked from commit b6ebb24de43ca09d9a9daedf993be249d174c2a8) --- pkgs/by-name/to/tor-browser/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/to/tor-browser/package.nix b/pkgs/by-name/to/tor-browser/package.nix index 0853039e03c2..8ed72299f59b 100644 --- a/pkgs/by-name/to/tor-browser/package.nix +++ b/pkgs/by-name/to/tor-browser/package.nix @@ -102,7 +102,7 @@ let ++ lib.optionals mediaSupport [ ffmpeg_7 ] ); - version = "15.0.19"; + version = "15.0.20"; sources = { x86_64-linux = fetchurl { @@ -112,7 +112,7 @@ let "https://tor.eff.org/dist/torbrowser/${version}/tor-browser-linux-x86_64-${version}.tar.xz" "https://tor.calyxinstitute.org/dist/torbrowser/${version}/tor-browser-linux-x86_64-${version}.tar.xz" ]; - hash = "sha256-LrSrQx9JIcpjsSO2+fRFoHP797ZfGI9FpXfVdusr4s8="; + hash = "sha256-1DAmM9YFnS2tlOLIg7MRQdx7Paor+lqrsP0p3aGNIuk="; }; i686-linux = fetchurl { @@ -122,7 +122,7 @@ let "https://tor.eff.org/dist/torbrowser/${version}/tor-browser-linux-i686-${version}.tar.xz" "https://tor.calyxinstitute.org/dist/torbrowser/${version}/tor-browser-linux-i686-${version}.tar.xz" ]; - hash = "sha256-N+TjpJrHg8cB6vwCqrTWnz4/dwzu2/r55kNmkLemWvU="; + hash = "sha256-iqvfcBsVFN25JtAKDyL94hoL/K3rM0M7pbK7gbir5ZA="; }; }; From 034820840b7427758c2fd3bf4bdc3d04d8b11345 Mon Sep 17 00:00:00 2001 From: Francesco Gazzetta Date: Fri, 21 Aug 2026 13:54:36 +0200 Subject: [PATCH 30/44] luanti: 5.16.1 -> 5.17.0 (cherry picked from commit c022cedf343226cc8a020103ba91939573e5b5b3) --- pkgs/by-name/lu/luanti/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/lu/luanti/package.nix b/pkgs/by-name/lu/luanti/package.nix index 0ff4192c4245..5a15e4bfeedc 100644 --- a/pkgs/by-name/lu/luanti/package.nix +++ b/pkgs/by-name/lu/luanti/package.nix @@ -43,13 +43,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "luanti"; - version = "5.16.1"; + version = "5.17.0"; src = fetchFromGitHub { owner = "luanti-org"; repo = "luanti"; tag = finalAttrs.version; - hash = "sha256-EzLjLkN/3BdcpWJ92QnrdhxKmY6Bz2JkOC0oX0TrUtI="; + hash = "sha256-PieiiJTpgUK7q0WiUY2EAp72ywHkDR2Mba1DCDkvCaY="; }; patches = [ From 1ef5021ddb2a33db276684c1c0ea151e9977231e Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Tue, 18 Aug 2026 09:25:25 +0000 Subject: [PATCH 31/44] gelly: 1.9.7 -> 1.10.0 (cherry picked from commit 420df93f6e78e07b6cf2837ca55a6c0d72e541d9) --- pkgs/by-name/ge/gelly/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ge/gelly/package.nix b/pkgs/by-name/ge/gelly/package.nix index 1366478800f7..a3b816dff9d5 100644 --- a/pkgs/by-name/ge/gelly/package.nix +++ b/pkgs/by-name/ge/gelly/package.nix @@ -19,16 +19,16 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "gelly"; - version = "1.9.7"; + version = "1.10.0"; src = fetchFromGitHub { owner = "Fingel"; repo = "gelly"; tag = "v${finalAttrs.version}"; - hash = "sha256-KPU16kQUmM+TOOzw8JXFjlchhFHQy9Zt7brky9YW/fE="; + hash = "sha256-YpSES6qf9W7oj2LIQcI48N2SxMbVRumQ2zxsnYgMdlg="; }; - cargoHash = "sha256-CUbQp1E+snaIuduXmEXErOoOELFXmEm3Td1y5Mou+UA="; + cargoHash = "sha256-AHcdJF8Um7gUMF1g0ZVooyoCRGEX+tXvEmPOn6BIuMw="; nativeBuildInputs = [ pkg-config From de6d53323d7628ce00ce38b29809d50283f1953d Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Fri, 21 Aug 2026 14:56:13 +0200 Subject: [PATCH 32/44] matrix-authentication-service: 1.22.0 -> 1.23.0 ChangeLog: https://github.com/element-hq/matrix-authentication-service/releases/tag/v1.23.0 (cherry picked from commit 7a01b6dd57075c82e12cf42f04350f4cf5c4221e) --- pkgs/by-name/ma/matrix-authentication-service/package.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/ma/matrix-authentication-service/package.nix b/pkgs/by-name/ma/matrix-authentication-service/package.nix index d4e3a8957006..96e2315b28bc 100644 --- a/pkgs/by-name/ma/matrix-authentication-service/package.nix +++ b/pkgs/by-name/ma/matrix-authentication-service/package.nix @@ -20,21 +20,21 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "matrix-authentication-service"; - version = "1.22.0"; + version = "1.23.0"; src = fetchFromGitHub { owner = "element-hq"; repo = "matrix-authentication-service"; tag = "v${finalAttrs.version}"; - hash = "sha256-vy9eZYtlAMPXh+xvgAOEeJd7jZirX5Y4sXmNbYLBYGI="; + hash = "sha256-DnaVIMp+pRRsNlyBZiTiqXajOgGFBT38sNLmC+IF8pU="; }; - cargoHash = "sha256-3MDbg+vfLIqSDiRqBVZs2zbrg9UUpe4Vx+Ze656yOdE="; + cargoHash = "sha256-3fBikvSbPTiIYXk7TQKoQ/YqjF5ZCoN0xQRSqCmHF9Q="; pnpmDeps = fetchPnpmDeps { inherit (finalAttrs) pname version src; fetcherVersion = 4; - hash = "sha256-9a62WlBQW8lgXluMh+DM21CkFCqFYd7yUz220G1uTIY="; + hash = "sha256-8dPqsa1/D4q7hdntV1AmbRxQyZgAf7Q/z+etj+R/jIE="; }; pnpmRoot = "frontend"; From fff5fc20f297252fa480c7e123153d5e77cfa0c6 Mon Sep 17 00:00:00 2001 From: Leona Maroni Date: Wed, 19 Aug 2026 17:40:00 +0200 Subject: [PATCH 33/44] nginxMainline: 1.31.3 -> 1.31.4 https://nginx.org/en/CHANGES https://github.com/nginx/nginx/releases/tag/release-1.31.4 (cherry picked from commit 4be16741e954f52f3809343fb5b2f3bb37449d1b) --- pkgs/servers/http/nginx/mainline.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/servers/http/nginx/mainline.nix b/pkgs/servers/http/nginx/mainline.nix index 6ebaf7704ae6..97033bf0b185 100644 --- a/pkgs/servers/http/nginx/mainline.nix +++ b/pkgs/servers/http/nginx/mainline.nix @@ -1,6 +1,6 @@ { callPackage, ... }@args: callPackage ./generic.nix args { - version = "1.31.3"; - hash = "sha256-p2V8UIEcLZLZiVOV6Lhz72A5gULE2yHrZHgRw49t1SU="; + version = "1.31.4"; + hash = "sha256-5vILZEoXpkPwWa5kZ6GXH+KBFYfQJeBxBodTofHjs8M="; } From d632c0e9814397efee4921c72233937e6c7fbcb8 Mon Sep 17 00:00:00 2001 From: Yuriy Taraday Date: Mon, 10 Aug 2026 16:40:02 +0200 Subject: [PATCH 34/44] perlPackages.HashSharedMem: 0.005 -> 0.006 Adapt to these changes: * Allow building on Mac OS * Move from Module::Build to ExtUtils::MakeMaker * Change authorship to Kurt Starsinic (cherry picked from commit eb9041526d7e81bac2c16a8d0509b44b7daa4238) --- pkgs/top-level/perl-packages.nix | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix index 52a0619a0c00..bd07d4b2df97 100644 --- a/pkgs/top-level/perl-packages.nix +++ b/pkgs/top-level/perl-packages.nix @@ -15865,20 +15865,23 @@ with self; HashSharedMem = buildPerlModule { pname = "Hash-SharedMem"; - version = "0.005"; + version = "0.006"; src = fetchurl { - url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Hash-SharedMem-0.005.tar.gz"; - hash = "sha256-Mkd2gIYC973EStqpN4lTZUVAKakm+mEfMhyb9rlAu14="; + url = "mirror://cpan/authors/id/K/KS/KSTAR/Hash-SharedMem-0.006.tar.gz"; + hash = "sha256-6gA2LUokkXUFYvJFHK61l0eDXZxWcthGPNlhwz7jh2E="; }; env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.hostPlatform.isAarch64 "-mno-outline-atomics"; buildInputs = [ ScalarString ]; + # Project uses ExtUtils::MakeMaker, can use default `make` targets + buildPhase = null; + checkPhase = null; + installPhase = null; meta = { description = "Efficient shared mutable hash"; license = with lib.licenses; [ artistic1 gpl1Plus ]; - broken = stdenv.hostPlatform.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.HashSharedMem.x86_64-darwin }; }; From 98f6f8e670c124c5872997aea73ac655dcd92389 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Fri, 21 Aug 2026 02:58:09 +0200 Subject: [PATCH 35/44] tirith: 0.3.1 -> 0.3.3 Diff: https://github.com/sheeki03/tirith/compare/v0.3.1...v0.3.3 Changelog: https://github.com/sheeki03/tirith/blob/v0.3.3/CHANGELOG.md (cherry picked from commit 09398a04c2f4d57814a94c8a6eb7414d123bf0c5) --- pkgs/by-name/ti/tirith/package.nix | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ti/tirith/package.nix b/pkgs/by-name/ti/tirith/package.nix index 3f9bd107e3fa..3cdb6e678b53 100644 --- a/pkgs/by-name/ti/tirith/package.nix +++ b/pkgs/by-name/ti/tirith/package.nix @@ -8,15 +8,15 @@ }: rustPlatform.buildRustPackage (final: { pname = "tirith"; - version = "0.3.1"; + version = "0.3.3"; src = fetchFromGitHub { owner = "sheeki03"; repo = "tirith"; tag = "v${final.version}"; - hash = "sha256-RdStW5ubqypdmFqNk9DHtUp5jHnZdXiWW/lAlSaBb3c="; + hash = "sha256-kU/HeCW4QNS1Ica69YZkdSgL3gsbDOJVGTyINZOnHUQ="; }; - cargoHash = "sha256-/V2vv02x0zSsJCcJMSttG9eekRZMK7KTk6m2VYePFa8="; + cargoHash = "sha256-r13gquMmfJhR5N8Vu3/R+3SWUyVWyJFE6fiJbqbE5n4="; cargoBuildFlags = [ "-p" @@ -30,8 +30,18 @@ rustPlatform.buildRustPackage (final: { checkFlags = [ # requires a fully functional shell environment, generating init scripts needs a patch under nix to work at build time + "--skip=bash_capability_cache_steers_default_mode" + "--skip=bash_enter_degradation_is_visible_not_silent" + "--skip=cli::clipboard::tests::copy_path_does_not_consult_sidecar" + "--skip=clipboard_watch_exits_when_stdout_pipe_closed" "--skip=init_bash_output" + "--skip=init_prompt_status_emits_marker_wrapped_snippet_zsh" + "--skip=init_prompt_status_is_idempotent_when_run_twice" + "--skip=init_prompt_status_supports_bash_and_fish_and_powershell" + "--skip=init_without_prompt_status_does_not_emit_snippet" "--skip=init_zsh_output" + # fails with: no such file or directory + "--skip=cli::checkpoint::tests::restore_checkpoint_nonzero_on_partial_failure" ]; nativeBuildInputs = lib.optionals (stdenv.buildPlatform.canExecute stdenv.hostPlatform) [ From f16c9cfb7b9df903f28ae8cfb6f50d162763a00e Mon Sep 17 00:00:00 2001 From: Austin Horstman Date: Sat, 20 Jun 2026 10:45:58 -0500 Subject: [PATCH 36/44] teams-for-linux: 2.11.1 -> 2.12.0 Update teams-for-linux and generate the macOS .icns locally during Darwin builds. electron-builder 26.15.3 tries to download its icon conversion toolset when only PNG icons are available. Using libicns keeps the build offline and points electron-builder at a prebuilt icon instead. (cherry picked from commit aa7020f8b83af113d4c98f9e0c51e1a83739056c) --- pkgs/by-name/te/teams-for-linux/package.nix | 40 +++++++++++++++------ 1 file changed, 29 insertions(+), 11 deletions(-) diff --git a/pkgs/by-name/te/teams-for-linux/package.nix b/pkgs/by-name/te/teams-for-linux/package.nix index 6533308cff6b..f090d766af06 100644 --- a/pkgs/by-name/te/teams-for-linux/package.nix +++ b/pkgs/by-name/te/teams-for-linux/package.nix @@ -6,6 +6,7 @@ alsa-utils, copyDesktopItems, electron_41, + libicns, makeDesktopItem, makeWrapper, nix-update-script, @@ -18,22 +19,23 @@ let in buildNpmPackage rec { pname = "teams-for-linux"; - version = "2.11.1"; + version = "2.12.0"; src = fetchFromGitHub { owner = "IsmaelMartinez"; repo = "teams-for-linux"; tag = "v${version}"; - hash = "sha256-XEu0x9g2mEsmY+vZtazTOzW6KNMRbrxlPck/kPNehmo="; + hash = "sha256-n9Ibno6NqiZ9W5KpPPZKD5/MTO8CKYdf/fXDf0cGsi4="; }; - npmDepsHash = "sha256-urLRj7668NX7CaDWAVxAoOg+c1TmMyvf23Je+RmFwHE="; + npmDepsHash = "sha256-euf/6RtAO84ZtbdhglBd6gRCcg2m6a+fhthNvFzMlho="; nativeBuildInputs = [ makeWrapper versionCheckHook ] - ++ lib.optionals (stdenv.hostPlatform.isLinux) [ copyDesktopItems ]; + ++ lib.optionals (stdenv.hostPlatform.isLinux) [ copyDesktopItems ] + ++ lib.optionals (stdenv.hostPlatform.isDarwin) [ libicns ]; doInstallCheck = stdenv.hostPlatform.isLinux; @@ -48,13 +50,29 @@ buildNpmPackage rec { cp -r ${electron.dist}/. "$electron_dist" chmod -R u+w "$electron_dist" - npm exec electron-builder -- \ - --dir \ - -c.npmRebuild=true \ - -c.asarUnpack="**/*.node" \ - -c.electronDist="$electron_dist" \ - -c.electronVersion=${electron.version} \ - -c.mac.identity=null + electron_builder_args=( + --dir + -c.npmRebuild=true + -c.asarUnpack="**/*.node" + -c.electronDist="$electron_dist" + -c.electronVersion=${electron.version} + -c.mac.identity=null + ) + + '' + + lib.optionalString stdenv.hostPlatform.isDarwin '' + png2icns build/icon.icns \ + build/icons/16x16.png \ + build/icons/32x32.png \ + build/icons/128x128.png \ + build/icons/256x256.png \ + build/icons/512x512.png \ + build/icons/1024x1024.png + electron_builder_args+=(-c.mac.icon=build/icon.icns) + '' + + '' + + npm exec electron-builder -- "''${electron_builder_args[@]}" runHook postBuild ''; From 83e4ecc895ec6b7b52458130c6d0b5cfe3dc8a5f Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 28 Jun 2026 10:47:19 +0000 Subject: [PATCH 37/44] teams-for-linux: 2.12.0 -> 2.13.0 (cherry picked from commit baa2cc5c61896ac96c85e8a44bdd209aaeaac036) --- pkgs/by-name/te/teams-for-linux/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/te/teams-for-linux/package.nix b/pkgs/by-name/te/teams-for-linux/package.nix index f090d766af06..f00639492b77 100644 --- a/pkgs/by-name/te/teams-for-linux/package.nix +++ b/pkgs/by-name/te/teams-for-linux/package.nix @@ -19,16 +19,16 @@ let in buildNpmPackage rec { pname = "teams-for-linux"; - version = "2.12.0"; + version = "2.13.0"; src = fetchFromGitHub { owner = "IsmaelMartinez"; repo = "teams-for-linux"; tag = "v${version}"; - hash = "sha256-n9Ibno6NqiZ9W5KpPPZKD5/MTO8CKYdf/fXDf0cGsi4="; + hash = "sha256-30jt23bsJ1XE2gclRg06AM+mk1IrerNnkbWVDRfjqHo="; }; - npmDepsHash = "sha256-euf/6RtAO84ZtbdhglBd6gRCcg2m6a+fhthNvFzMlho="; + npmDepsHash = "sha256-pz2htdFmczmZJtcrpI/X0nUUF++x2vtcYZiTWjEYglo="; nativeBuildInputs = [ makeWrapper From 088dab7fed3a7bfee952e854b41e54235c256200 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 3 Aug 2026 11:13:49 +0000 Subject: [PATCH 38/44] teams-for-linux: 2.13.0 -> 2.14.1 (cherry picked from commit 45cc1642f9724825d8cfa6406a715f39ee710285) --- pkgs/by-name/te/teams-for-linux/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/te/teams-for-linux/package.nix b/pkgs/by-name/te/teams-for-linux/package.nix index f00639492b77..4a83647f5f47 100644 --- a/pkgs/by-name/te/teams-for-linux/package.nix +++ b/pkgs/by-name/te/teams-for-linux/package.nix @@ -19,16 +19,16 @@ let in buildNpmPackage rec { pname = "teams-for-linux"; - version = "2.13.0"; + version = "2.14.1"; src = fetchFromGitHub { owner = "IsmaelMartinez"; repo = "teams-for-linux"; tag = "v${version}"; - hash = "sha256-30jt23bsJ1XE2gclRg06AM+mk1IrerNnkbWVDRfjqHo="; + hash = "sha256-0urL/M7XBBPB+RiLglUx0CQUii+Fji1dXurha/2URug="; }; - npmDepsHash = "sha256-pz2htdFmczmZJtcrpI/X0nUUF++x2vtcYZiTWjEYglo="; + npmDepsHash = "sha256-F8FxTkVDfCLp0ukNm9/ixWtglYRiJt9+va6qJdB06qI="; nativeBuildInputs = [ makeWrapper From ee7c8a3bc41e44be1acc95fe03dbdc81690728b4 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 12 Aug 2026 05:59:56 +0000 Subject: [PATCH 39/44] teams-for-linux: 2.14.1 -> 2.15.0 (cherry picked from commit 2cc5736ea4559ed7259a14266058d811f7ae44a3) --- pkgs/by-name/te/teams-for-linux/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/te/teams-for-linux/package.nix b/pkgs/by-name/te/teams-for-linux/package.nix index 4a83647f5f47..3d5a5e8befce 100644 --- a/pkgs/by-name/te/teams-for-linux/package.nix +++ b/pkgs/by-name/te/teams-for-linux/package.nix @@ -19,16 +19,16 @@ let in buildNpmPackage rec { pname = "teams-for-linux"; - version = "2.14.1"; + version = "2.15.0"; src = fetchFromGitHub { owner = "IsmaelMartinez"; repo = "teams-for-linux"; tag = "v${version}"; - hash = "sha256-0urL/M7XBBPB+RiLglUx0CQUii+Fji1dXurha/2URug="; + hash = "sha256-PYRl0Q7vsx7nKz7pkoCg3f3rRIcgCAvGiALQxHEOIjE="; }; - npmDepsHash = "sha256-F8FxTkVDfCLp0ukNm9/ixWtglYRiJt9+va6qJdB06qI="; + npmDepsHash = "sha256-FPnkCO1zf5Ts2arOa0InC7l4esRs4AuXYlVF/OYR6AI="; nativeBuildInputs = [ makeWrapper From a48a03cf9cc40a0528c9028cfd8bc00b98dc2716 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 21 Aug 2026 07:08:28 +0000 Subject: [PATCH 40/44] teams-for-linux: 2.15.0 -> 2.17.1 (cherry picked from commit 7954dcf569a568caef0ef1bc3e655c29f3b4f638) --- pkgs/by-name/te/teams-for-linux/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/te/teams-for-linux/package.nix b/pkgs/by-name/te/teams-for-linux/package.nix index 3d5a5e8befce..f365f924f489 100644 --- a/pkgs/by-name/te/teams-for-linux/package.nix +++ b/pkgs/by-name/te/teams-for-linux/package.nix @@ -19,16 +19,16 @@ let in buildNpmPackage rec { pname = "teams-for-linux"; - version = "2.15.0"; + version = "2.17.1"; src = fetchFromGitHub { owner = "IsmaelMartinez"; repo = "teams-for-linux"; tag = "v${version}"; - hash = "sha256-PYRl0Q7vsx7nKz7pkoCg3f3rRIcgCAvGiALQxHEOIjE="; + hash = "sha256-qI8+QqnrkGmQGweMcfyaXQnjNMf4htJAF9Gk97zL9jg="; }; - npmDepsHash = "sha256-FPnkCO1zf5Ts2arOa0InC7l4esRs4AuXYlVF/OYR6AI="; + npmDepsHash = "sha256-wPHap85tS3JrN4ei/HRYyzwFfVFcPkBdbY5ViEk4bwE="; nativeBuildInputs = [ makeWrapper From 39772b903852f12e499ec67ac062aca7da55e7ac Mon Sep 17 00:00:00 2001 From: Austin Horstman Date: Fri, 21 Aug 2026 10:57:20 -0500 Subject: [PATCH 41/44] teams-for-linux: Electron 41 -> 42 Electron 41 is being removed because it is EOL. Upstream v2.17.1 uses Electron 42.8.1: https://github.com/IsmaelMartinez/teams-for-linux/releases/tag/v2.17.1 (cherry picked from commit 6d31c123d47c41b210e400e00b73c34290e76d9a) --- pkgs/by-name/te/teams-for-linux/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/te/teams-for-linux/package.nix b/pkgs/by-name/te/teams-for-linux/package.nix index f365f924f489..2d31d5a5d09e 100644 --- a/pkgs/by-name/te/teams-for-linux/package.nix +++ b/pkgs/by-name/te/teams-for-linux/package.nix @@ -5,7 +5,7 @@ fetchFromGitHub, alsa-utils, copyDesktopItems, - electron_41, + electron_42, libicns, makeDesktopItem, makeWrapper, @@ -15,7 +15,7 @@ }: let - electron = electron_41; + electron = electron_42; in buildNpmPackage rec { pname = "teams-for-linux"; From f98911681d8ad8602abc33f8c0884ec007489437 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 21 Aug 2026 11:24:22 +0000 Subject: [PATCH 42/44] .github: Bump cachix/install-nix-action from 31.11.0 to 31.11.1 Bumps [cachix/install-nix-action](https://github.com/cachix/install-nix-action) from 31.11.0 to 31.11.1. - [Release notes](https://github.com/cachix/install-nix-action/releases) - [Changelog](https://github.com/cachix/install-nix-action/blob/master/RELEASE.md) - [Commits](https://github.com/cachix/install-nix-action/compare/630ae543ea3a38a9a4166f03376c02c50f408342...13d8dd58da0234aa297dedd986986ccb8e7f3e24) --- updated-dependencies: - dependency-name: cachix/install-nix-action dependency-version: 31.11.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] (cherry picked from commit f91f92f75bb38dd03d214cd24fdbcb4f6703fbd3) --- .github/workflows/build.yml | 2 +- .github/workflows/check.yml | 2 +- .github/workflows/eval.yml | 8 ++++---- .github/workflows/lint.yml | 6 +++--- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 85d97df66d60..b7ba21272be1 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -59,7 +59,7 @@ jobs: merged-as-untrusted-at: ${{ inputs.mergedSha }} target-as-trusted-at: ${{ inputs.targetSha }} - - uses: cachix/install-nix-action@630ae543ea3a38a9a4166f03376c02c50f408342 # v31.11.0 + - uses: cachix/install-nix-action@13d8dd58da0234aa297dedd986986ccb8e7f3e24 # v31.11.1 with: # Sandbox is disabled on MacOS by default. extra_nix_config: sandbox = true diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml index 8a8412701554..a39d972d2990 100644 --- a/.github/workflows/check.yml +++ b/.github/workflows/check.yml @@ -178,7 +178,7 @@ jobs: merged-as-untrusted-at: ${{ inputs.mergedSha }} target-as-trusted-at: ${{ inputs.targetSha }} - - uses: cachix/install-nix-action@630ae543ea3a38a9a4166f03376c02c50f408342 # v31.11.0 + - uses: cachix/install-nix-action@13d8dd58da0234aa297dedd986986ccb8e7f3e24 # v31.11.1 - uses: cachix/cachix-action@5f2d7c5294214f71b873db4b969586b980625e71 # v17 continue-on-error: true diff --git a/.github/workflows/eval.yml b/.github/workflows/eval.yml index 4bed665957f5..567bf3a47447 100644 --- a/.github/workflows/eval.yml +++ b/.github/workflows/eval.yml @@ -139,7 +139,7 @@ jobs: core.info(`Found pinned.json commit: ${ciPinBumpCommit}`) - name: Install Nix - uses: cachix/install-nix-action@630ae543ea3a38a9a4166f03376c02c50f408342 # v31.11.0 + uses: cachix/install-nix-action@13d8dd58da0234aa297dedd986986ccb8e7f3e24 # v31.11.1 - name: Load supported versions id: versions @@ -187,7 +187,7 @@ jobs: target-as-trusted-at: ${{ inputs.targetSha }} - name: Install Nix - uses: cachix/install-nix-action@630ae543ea3a38a9a4166f03376c02c50f408342 # v31.11.0 + uses: cachix/install-nix-action@13d8dd58da0234aa297dedd986986ccb8e7f3e24 # v31.11.1 - uses: cachix/cachix-action@5f2d7c5294214f71b873db4b969586b980625e71 # v17 continue-on-error: true @@ -277,7 +277,7 @@ jobs: merge-multiple: true - name: Install Nix - uses: cachix/install-nix-action@630ae543ea3a38a9a4166f03376c02c50f408342 # v31.11.0 + uses: cachix/install-nix-action@13d8dd58da0234aa297dedd986986ccb8e7f3e24 # v31.11.1 - name: Combine all output paths and eval stats run: | @@ -486,7 +486,7 @@ jobs: merged-as-untrusted-at: ${{ inputs.mergedSha }} - name: Install Nix - uses: cachix/install-nix-action@630ae543ea3a38a9a4166f03376c02c50f408342 # v31.11.0 + uses: cachix/install-nix-action@13d8dd58da0234aa297dedd986986ccb8e7f3e24 # v31.11.1 - name: Ensure flake outputs on all systems still evaluate run: nix flake check --all-systems --no-build './nixpkgs/untrusted?shallow=1' diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 79b7cc295650..d6d4627ada81 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -35,7 +35,7 @@ jobs: with: merged-as-untrusted-at: ${{ inputs.mergedSha }} - - uses: cachix/install-nix-action@630ae543ea3a38a9a4166f03376c02c50f408342 # v31.11.0 + - uses: cachix/install-nix-action@13d8dd58da0234aa297dedd986986ccb8e7f3e24 # v31.11.1 # TODO: Figure out how to best enable caching for the treefmt job. Cachix won't work well, # because the cache would be invalidated on every commit - treefmt checks every file. @@ -70,7 +70,7 @@ jobs: with: merged-as-untrusted-at: ${{ inputs.mergedSha }} - - uses: cachix/install-nix-action@630ae543ea3a38a9a4166f03376c02c50f408342 # v31.11.0 + - uses: cachix/install-nix-action@13d8dd58da0234aa297dedd986986ccb8e7f3e24 # v31.11.1 - uses: cachix/cachix-action@5f2d7c5294214f71b873db4b969586b980625e71 # v17 continue-on-error: true @@ -100,7 +100,7 @@ jobs: merged-as-untrusted-at: ${{ inputs.mergedSha }} target-as-trusted-at: ${{ inputs.targetSha }} - - uses: cachix/install-nix-action@630ae543ea3a38a9a4166f03376c02c50f408342 # v31.11.0 + - uses: cachix/install-nix-action@13d8dd58da0234aa297dedd986986ccb8e7f3e24 # v31.11.1 - uses: cachix/cachix-action@5f2d7c5294214f71b873db4b969586b980625e71 # v17 continue-on-error: true From b9cee0d49bc1d1df6a31275ff33ae5b08f3a93ad Mon Sep 17 00:00:00 2001 From: Weijia Wang <9713184+wegank@users.noreply.github.com> Date: Fri, 21 Aug 2026 11:02:33 +0200 Subject: [PATCH 43/44] python3Packages.skia-pathops: add wegank as maintainer (cherry picked from commit 7b4cb14ff81fd21ecf56d5b000e42db9240ea960) --- pkgs/development/python-modules/skia-pathops/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/python-modules/skia-pathops/default.nix b/pkgs/development/python-modules/skia-pathops/default.nix index 275f8814a9cb..01c5ce9cdc5b 100644 --- a/pkgs/development/python-modules/skia-pathops/default.nix +++ b/pkgs/development/python-modules/skia-pathops/default.nix @@ -72,7 +72,7 @@ buildPythonPackage rec { description = "Python access to operations on paths using the Skia library"; homepage = "https://github.com/fonttools/skia-pathops"; license = lib.licenses.bsd3; - maintainers = [ ]; + maintainers = [ lib.maintainers.wegank ]; # "The Skia team is not endian-savvy enough to support big-endian CPUs." badPlatforms = lib.platforms.bigEndian; # ERROR at //gn/BUILDCONFIG.gn:87:14: Script returned non-zero exit code. From 7b693d6c0f42a4d089d7adcb5b456ae2778d5959 Mon Sep 17 00:00:00 2001 From: Simonas Kazlauskas Date: Fri, 21 Aug 2026 21:15:08 +0300 Subject: [PATCH 44/44] nixos/frigate: use isolated /dev/shm for frame buffers Frigate will create shared memory buffers in /dev/shm and if it finds them already existing, it will reuse the buffers already there. It doing so can result in pretty hard to investigate issues if those buffers are not appropriate. This is not a problem for the official container-based workflow where each new container startup will create a fresh `/dev/shm`. ref: https://github.com/blakeblackshear/frigate/discussions/24048#discussioncomment-18109028 (cherry picked from commit 403a0526e1396425a1b7d4d0753767c6737cfffa) --- nixos/modules/services/video/frigate.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/nixos/modules/services/video/frigate.nix b/nixos/modules/services/video/frigate.nix index 5ecb88bfb8a2..387dc965cbee 100644 --- a/nixos/modules/services/video/frigate.nix +++ b/nixos/modules/services/video/frigate.nix @@ -787,6 +787,7 @@ in # Caches PrivateTmp = true; + TemporaryFileSystem = "/dev/shm:mode=1777,nosuid,nodev"; CacheDirectory = [ "frigate" # https://github.com/blakeblackshear/frigate/discussions/18129