discourse: 3.3.2 -> 3.4.2 (#394129)

Changed files
+817 -708
nixos
doc
manual
release-notes
modules
services
web-apps
tests
pkgs
servers
web-apps
discourse
plugins
discourse-assign
discourse-bbcode-color
discourse-calendar
discourse-chat-integration
discourse-data-explorer
discourse-docs
discourse-github
discourse-ldap-auth
discourse-math
discourse-openid-connect
discourse-prometheus
discourse-reactions
discourse-saved-searches
discourse-solved
discourse-voting
discourse-yearly-review
rubyEnv
+1
nixos/doc/manual/release-notes/rl-2505.section.md
···
- `programs.clash-verge.tunMode` was deprecated and removed because now service mode is necessary to start program. Without `programs.clash-verge.enable`, clash-verge-rev will refuse to start.
+
- `services.discourse` now requires PostgreSQL 15 per default. Please update before upgrading.
- `services.homepage-dashboard` now requires the `allowedHosts` option to be set in accordance with the [documentation](https://gethomepage.dev/installation/#homepage_allowed_hosts).
+7 -2
nixos/modules/services/web-apps/discourse.nix
···
cfg = config.services.discourse;
opt = options.services.discourse;
-
# Keep in sync with https://github.com/discourse/discourse_docker/blob/main/image/base/slim.Dockerfile#L5
-
upstreamPostgresqlVersion = lib.getVersion pkgs.postgresql_13;
+
# Keep in sync with https://github.com/discourse/discourse_docker/blob/main/image/base/Dockerfile PG_MAJOR
+
upstreamPostgresqlVersion = lib.getVersion pkgs.postgresql_15;
postgresqlPackage =
if config.services.postgresql.enable then config.services.postgresql.package else pkgs.postgresql;
···
dns_query_timeout_secs = null;
regex_timeout_seconds = 2;
allow_impersonation = true;
+
log_line_max_chars = 160000;
+
yjit_enabled = false;
};
services.redis.servers.discourse =
···
extraConfig
+ ''
proxy_set_header X-Request-Start "t=''${msec}";
+
proxy_set_header X-Sendfile-Type "";
+
proxy_set_header X-Accel-Mapping "";
+
proxy_set_header Client-Ip "";
'';
};
cache = time: ''
+1 -2
nixos/tests/discourse.nix
···
environment.systemPackages = [ pkgs.jq ];
-
services.postgresql.package = pkgs.postgresql_13;
+
services.postgresql.package = pkgs.postgresql_15;
services.discourse = {
enable = true;
···
services.dovecot2 = {
enable = true;
protocols = [ "imap" ];
-
modules = [ pkgs.dovecot_pigeonhole ];
};
services.postfix = {
+22 -45
pkgs/servers/web-apps/discourse/default.nix
···
bundlerEnv,
callPackage,
-
ruby_3_2,
+
ruby_3_3,
replace,
gzip,
gnutar,
···
procps,
rsync,
icu,
-
fetchYarnDeps,
-
yarn,
-
fixup-yarn-lock,
+
pnpm_9,
nodePackages,
-
nodejs_18,
+
nodejs,
jq,
moreutils,
terser,
···
}@args:
let
-
version = "3.3.2";
+
version = "3.4.2";
src = fetchFromGitHub {
owner = "discourse";
repo = "discourse";
rev = "v${version}";
-
sha256 = "sha256-FaPcUta5z/8oasw+9zGBRZnUVYD8eCo1t/XwwsFoSM8=";
+
sha256 = "sha256-glTuY9aQ7wYvFZstOP579RkdSwKKh3q9mJt4wqg3zYk=";
};
-
ruby = ruby_3_2;
+
ruby = ruby_3_3;
runtimeDeps = [
# For backups, themes and assets
···
gnutar
git
brotli
-
nodejs_18
+
nodejs
# Misc required system utils
which
···
cd ../..
mkdir -p vendor/v8/${stdenv.hostPlatform.system}/libv8/obj/
-
ln -s "${nodejs_18.libv8}/lib/libv8.a" vendor/v8/${stdenv.hostPlatform.system}/libv8/obj/libv8_monolith.a
+
ln -s "${nodejs.libv8}/lib/libv8.a" vendor/v8/${stdenv.hostPlatform.system}/libv8/obj/libv8_monolith.a
-
ln -s ${nodejs_18.libv8}/include vendor/v8/include
+
ln -s ${nodejs.libv8}/include vendor/v8/include
mkdir -p ext/libv8-node
echo '--- !ruby/object:Libv8::Node::Location::Vendor {}' >ext/libv8-node/.location.yml
···
pname = "discourse-assets";
inherit version src;
-
yarnOfflineCache = fetchYarnDeps {
-
yarnLock = src + "/yarn.lock";
-
hash = "sha256-cSQofaULCmPuWGxS+hK4KlRq9lSkCPiYvhax9X6Dor8=";
+
pnpmDeps = pnpm_9.fetchDeps {
+
pname = "discourse-assets";
+
inherit version src;
+
hash = "sha256-WyRBnuKCl5NJLtqy3HK/sJcrpMkh0PjbasGPNDV6+7Y=";
};
nativeBuildInputs = runtimeDeps ++ [
···
redis
uglify-js
terser
-
yarn
jq
moreutils
-
fixup-yarn-lock
+
nodejs
+
pnpm_9.configHook
];
outputs = [
···
# run. This means that Redis and PostgreSQL has to be running and
# database migrations performed.
preBuild = ''
-
# Yarn wants a real home directory to write cache, config, etc to
-
export HOME=$NIX_BUILD_TOP/fake_home
-
-
yarn_install() {
-
local offlineCache=$1 yarnLock=$2
-
-
# Make yarn install packages from our offline cache, not the registry
-
yarn config --offline set yarn-offline-mirror $offlineCache
-
-
# Fixup "resolved"-entries in yarn.lock to match our offline cache
-
fixup-yarn-lock $yarnLock
-
-
# Install while ignoring hook scripts
-
yarn --offline --ignore-scripts --cwd $(dirname $yarnLock) install
-
}
-
-
# Install runtime and devDependencies.
-
# The dev deps are necessary for generating the theme-transpiler executed as dependent task
-
# assets:precompile:theme_transpiler before db:migrate and unfortunately also in the runtime
-
yarn_install $yarnOfflineCache yarn.lock
-
# Patch before running postinstall hook script
patchShebangs node_modules/
patchShebangs --build app/assets/javascripts
-
yarn --offline --cwd app/assets/javascripts run postinstall
export SSL_CERT_FILE=${cacert}/etc/ssl/certs/ca-bundle.crt
redis-server >/dev/null &
···
runHook postInstall
'';
+
+
# The node_modules output by design has broken symlinks, as it refers to the source code.
+
# They are resolved in the primary discourse derivation.
+
dontCheckForBrokenSymlinks = true;
};
discourse = stdenv.mkDerivation {
···
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
-
# This needs to be copied because of symlinks in node_modules
-
# Also this needs to be full node_modules (including dev deps) because without loader.js it just throws 500
-
cp -r ${assets.node_modules} $out/share/discourse/node_modules
+
ln -sf ${assets.node_modules} $out/share/discourse/node_modules
ln -sf ${assets} $out/share/discourse/public.dist/assets
rm -r $out/share/discourse/app/assets/javascripts
-
ln -sf ${assets.javascripts} $out/share/discourse/app/assets/javascripts
+
# This needs to be copied because it contains symlinks to node_modules
+
cp -r ${assets.javascripts} $out/share/discourse/app/assets/javascripts
${lib.concatMapStringsSep "\n" (
p: "ln -sf ${p} $out/share/discourse/plugins/${p.pluginName or ""}"
) plugins}
···
maintainers = with maintainers; [ talyz ];
license = licenses.gpl2Plus;
description = "Discourse is an open source discussion platform";
-
# fails to compile mini_racer:
-
# mini_racer_v8.cc:316:45: error: no matching function for call to 'v8::ScriptOrigin::ScriptOrigin(v8::Local<v8::String>&)'
-
broken = true;
};
};
in
+2 -2
pkgs/servers/web-apps/discourse/plugins/discourse-assign/default.nix
···
src = fetchFromGitHub {
owner = "discourse";
repo = "discourse-assign";
-
rev = "6472f4593e1a4abbb457288db012ddb10f0b16f5";
-
sha256 = "sha256-+jcL/6ddXldUG0VvcWiEMaFk0f37HyOf+bOFEMzuoXo=";
+
rev = "bf2a4bdb3ea4e26ec493d8dbc1f4cc8680f6c543";
+
sha256 = "sha256-inoANPG7xlKdhnuyoRay7Oyz7OSZWzphWS599kNP4Uo=";
};
meta = with lib; {
homepage = "https://github.com/discourse/discourse-docs";
+2 -2
pkgs/servers/web-apps/discourse/plugins/discourse-bbcode-color/default.nix
···
src = fetchFromGitHub {
owner = "discourse";
repo = "discourse-bbcode-color";
-
rev = "6a26e5937b48bbf3ca9bd19e4f40adc513bcd774";
-
sha256 = "sha256-dWXvCZLxhCxte/88EnYOsy1gjBWjk24BjUM01s55CaU=";
+
rev = "ecd4befeb4eae48aa0a37a88e5aca60e59730411";
+
sha256 = "sha256-enpeXc6pE9+5EdbMIFsnWd++ixlHBKFRxbXmvJYJftg=";
};
meta = with lib; {
homepage = "https://github.com/discourse/discourse-bbcode-color";
+2 -2
pkgs/servers/web-apps/discourse/plugins/discourse-calendar/default.nix
···
src = fetchFromGitHub {
owner = "discourse";
repo = "discourse-calendar";
-
rev = "908ad614bc412f831f929ca726a4bda0b9ccaab6";
-
sha256 = "sha256-ZzzcmTY/w9wa5wTR7ofJiNVmXwoKTKaKN202O80DO9g=";
+
rev = "c1031224a552ea01958d153350c2d1254b323579";
+
sha256 = "sha256-xwaYoJpBBvbmuPsDLxczLPXU862OVcirxeYpW5sfy5A=";
};
meta = with lib; {
homepage = "https://github.com/discourse/discourse-calendar";
+2 -2
pkgs/servers/web-apps/discourse/plugins/discourse-chat-integration/default.nix
···
src = fetchFromGitHub {
owner = "discourse";
repo = "discourse-chat-integration";
-
rev = "e19808d4ad3f7d16cd9b93f315ca586f694e6288";
-
sha256 = "sha256-EplT9bQFtOvraSkFpBpe7TyNLROsdcRXz79j4MNPEs4=";
+
rev = "29ad813cd04812786780e1706cbc043810dea7d8";
+
sha256 = "sha256-5mGnHLlw3qIGi8et3WV1RXnrPB+bySi3wQryKTa5wNg=";
};
meta = with lib; {
homepage = "https://github.com/discourse/discourse-chat-integration";
+2 -2
pkgs/servers/web-apps/discourse/plugins/discourse-data-explorer/default.nix
···
src = fetchFromGitHub {
owner = "discourse";
repo = "discourse-data-explorer";
-
rev = "2d0dc39767f0c68d333f113c550731a5546c3137";
-
sha256 = "sha256-3eQDMzTjfcSip94BXy1/VcbulsTsL1EHjRs41c27+ns=";
+
rev = "2ba204a1de2638a7959e588b88f3b6c7fcf7a70f";
+
sha256 = "sha256-u8yGKANEyqm63/ZnJLe3u1nkNGZyX0wFUBIKU5GgjzY=";
};
meta = with lib; {
homepage = "https://github.com/discourse/discourse-data-explorer";
+2 -2
pkgs/servers/web-apps/discourse/plugins/discourse-docs/default.nix
···
src = fetchFromGitHub {
owner = "discourse";
repo = "discourse-docs";
-
rev = "7721b1646dead4719c02868ef7965f1b27c74eb3";
-
sha256 = "sha256-k2m88wsUmxAXC2LLvElwHVlMp6UzGSLDzEB+HJmKm5g=";
+
rev = "4e42539cda9a54d7827bcdf51b6dfbcf56d24cc9";
+
sha256 = "sha256-sv9Q0qEQVncQw3QLiro5YfVcHJAG8sJ0GTjduCZ0iP4=";
};
meta = with lib; {
homepage = "https://github.com/discourse/discourse-docs";
+9 -9
pkgs/servers/web-apps/discourse/plugins/discourse-github/Gemfile.lock
···
specs:
addressable (2.8.7)
public_suffix (>= 2.0.2, < 7.0)
-
faraday (2.12.0)
-
faraday-net_http (>= 2.0, < 3.4)
+
faraday (2.12.3)
+
faraday-net_http (>= 2.0, < 3.5)
json
logger
-
faraday-net_http (3.3.0)
-
net-http
-
json (2.7.3)
-
logger (1.6.1)
-
net-http (0.4.1)
+
faraday-net_http (3.4.0)
+
net-http (>= 0.5.0)
+
json (2.10.2)
+
logger (1.7.0)
+
net-http (0.6.0)
uri
octokit (5.6.1)
faraday (>= 1, < 3)
···
sawyer (0.9.2)
addressable (>= 2.3.5)
faraday (>= 0.17.3, < 3)
-
uri (0.13.1)
+
uri (1.0.3)
PLATFORMS
ruby
···
sawyer (= 0.9.2)
BUNDLED WITH
-
2.4.22
+
2.5.22
+2 -2
pkgs/servers/web-apps/discourse/plugins/discourse-github/default.nix
···
src = fetchFromGitHub {
owner = "discourse";
repo = "discourse-github";
-
rev = "e24de3f5cd6ec5cef17dc3e07dfb3bfac8867e08";
-
sha256 = "sha256-MbVYIsO2m0O5FriF5HphNhLcazgAJzIsl0aVd2YQGaA=";
+
rev = "59e5fc5692959c6c564ab0e09de364ccfedd6702";
+
sha256 = "sha256-b+8eSw8Kbz2CZN16Rd7c8uyH5P1iYhOJmdXu1C5UclU=";
};
meta = with lib; {
homepage = "https://github.com/discourse/discourse-github";
+12 -12
pkgs/servers/web-apps/discourse/plugins/discourse-github/gemset.nix
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "05s5pyxh7y68jphb0lgrh0ksxbp4lmbsc6a6qg0ahj15pjqx01ni";
+
sha256 = "0dxalpc0ldvjjmd7z95na9lm99d2baz48sf9axk3a6x3pn50ibdi";
type = "gem";
};
-
version = "2.12.0";
+
version = "2.12.3";
};
faraday-net_http = {
dependencies = [ "net-http" ];
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "0rg54k4skaz8z7j358p6pdzc9pr84fjq7sdlpicf7s5ig7vb1rlk";
+
sha256 = "0jp5ci6g40d6i50bsywp35l97nc2fpi9a592r2cibwicdb6y9wd1";
type = "gem";
};
-
version = "3.3.0";
+
version = "3.4.0";
};
json = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "1prbjd8r4rq6hjc6d5hn8hlpf4g9h62swxj7absjac7qqnzwrhvw";
+
sha256 = "01lbdaizhkxmrw4y8j3wpvsryvnvzmg0pfs56c52laq2jgdfmq1l";
type = "gem";
};
-
version = "2.7.3";
+
version = "2.10.2";
};
logger = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "0lwncq2rf8gm79g2rcnnyzs26ma1f4wnfjm6gs4zf2wlsdz5in9s";
+
sha256 = "00q2zznygpbls8asz5knjvvj2brr3ghmqxgr83xnrdj4rk3xwvhr";
type = "gem";
};
-
version = "1.6.1";
+
version = "1.7.0";
};
net-http = {
dependencies = [ "uri" ];
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "10n2n9aq00ih8v881af88l1zyrqgs5cl3njdw8argjwbl5ggqvm9";
+
sha256 = "1ysrwaabhf0sn24jrp0nnp51cdv0jf688mh5i6fsz63q2c6b48cn";
type = "gem";
};
-
version = "0.4.1";
+
version = "0.6.0";
};
octokit = {
dependencies = [
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "07ndgxyhzd02cg94s6rnfhkb9rwx9z72lzk368sa9j78wc9qnbfz";
+
sha256 = "04bhfvc25b07jaiaf62yrach7khhr5jlr5bx6nygg8pf11329wp9";
type = "gem";
};
-
version = "0.13.1";
+
version = "1.0.3";
};
}
+1 -2
pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/Gemfile
···
# gem "rails"
gem 'pyu-ruby-sasl', '0.0.3.3', require: false
gem 'rubyntlm', '0.3.4', require: false
-
gem 'net-ldap', '0.17.1'
-
gem 'omniauth-ldap', '1.0.5'
+
gem 'net-ldap', '0.18.0'
+3 -14
pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/Gemfile.lock
···
GEM
remote: https://rubygems.org/
specs:
-
hashie (5.0.0)
-
net-ldap (0.17.1)
-
omniauth (1.9.2)
-
hashie (>= 3.4.6)
-
rack (>= 1.6.2, < 3)
-
omniauth-ldap (1.0.5)
-
net-ldap (~> 0.12)
-
omniauth (~> 1.0)
-
pyu-ruby-sasl (~> 0.0.3.2)
-
rubyntlm (~> 0.3.4)
+
net-ldap (0.18.0)
pyu-ruby-sasl (0.0.3.3)
-
rack (2.2.7)
rubyntlm (0.3.4)
PLATFORMS
ruby
DEPENDENCIES
-
net-ldap (= 0.17.1)
-
omniauth-ldap (= 1.0.5)
+
net-ldap (= 0.18.0)
pyu-ruby-sasl (= 0.0.3.3)
rubyntlm (= 0.3.4)
BUNDLED WITH
-
2.4.10
+
2.5.22
+2 -2
pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/default.nix
···
src = fetchFromGitHub {
owner = "jonmbake";
repo = "discourse-ldap-auth";
-
rev = "edcf06957090e8d978a89fe7b07a6ba56fe35214";
-
sha256 = "sha256-VxBBip8QEXDQGDOsU5cXjUZe2HThJn20BPsNr33KhKI=";
+
rev = "fa1d661004ca99036ff628a9c4be12a81265d784";
+
sha256 = "sha256-2DYrYgC3H+e8USoo1MbJin1f5tshIUsQa6J7avnpvEc=";
};
meta = with lib; {
homepage = "https://github.com/jonmbake/discourse-ldap-auth";
+2 -52
pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/gemset.nix
···
{
-
hashie = {
-
groups = [ "default" ];
-
platforms = [ ];
-
source = {
-
remotes = [ "https://rubygems.org" ];
-
sha256 = "1nh3arcrbz1rc1cr59qm53sdhqm137b258y8rcb4cvd3y98lwv4x";
-
type = "gem";
-
};
-
version = "5.0.0";
-
};
net-ldap = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "1ycw0qsw3hap8svakl0i30jkj0ffd4lpyrn17a1j0w8mz5ainmsj";
-
type = "gem";
-
};
-
version = "0.17.1";
-
};
-
omniauth = {
-
dependencies = [
-
"hashie"
-
"rack"
-
];
-
groups = [ "default" ];
-
platforms = [ ];
-
source = {
-
remotes = [ "https://rubygems.org" ];
-
sha256 = "1jn9j54l5h7xcba2vjq74l1dk0xrwvsjxam4qhylpi52nw0h5502";
-
type = "gem";
-
};
-
version = "1.9.2";
-
};
-
omniauth-ldap = {
-
dependencies = [
-
"net-ldap"
-
"omniauth"
-
"pyu-ruby-sasl"
-
"rubyntlm"
-
];
-
groups = [ "default" ];
-
platforms = [ ];
-
source = {
-
remotes = [ "https://rubygems.org" ];
-
sha256 = "1ld3mx46xa1qhc0cpnck1n06xcxs0ag4n41zgabxri27a772f9wz";
+
sha256 = "0xqcffn3c1564c4fizp10dzw2v5g2pabdzrcn25hq05bqhsckbar";
type = "gem";
};
-
version = "1.0.5";
+
version = "0.18.0";
};
pyu-ruby-sasl = {
groups = [ "default" ];
···
type = "gem";
};
version = "0.0.3.3";
-
};
-
rack = {
-
groups = [ "default" ];
-
platforms = [ ];
-
source = {
-
remotes = [ "https://rubygems.org" ];
-
sha256 = "16w217k9z02c4hqizym8dkj6bqmmzx4qdvqpnskgzf174a5pwdxk";
-
type = "gem";
-
};
-
version = "2.2.7";
};
rubyntlm = {
groups = [ "default" ];
+2 -2
pkgs/servers/web-apps/discourse/plugins/discourse-math/default.nix
···
src = fetchFromGitHub {
owner = "discourse";
repo = "discourse-math";
-
rev = "19ab34b62ab75589419ee39af7d6ba2fec1bdc4a";
-
sha256 = "sha256-Z6+Bx1DKEE+s1flt5K/HfevzXsA+mA0YfQxmg7JQMfA=";
+
rev = "90a56a5b463546cba5017cf25168bae759bcbf77";
+
sha256 = "sha256-q8cNRIHYEkaE6QkdsHu4tPwSw3LnCNgKjbyESBXheE0=";
};
meta = with lib; {
homepage = "https://github.com/discourse/discourse-math";
+2 -2
pkgs/servers/web-apps/discourse/plugins/discourse-openid-connect/default.nix
···
src = fetchFromGitHub {
owner = "discourse";
repo = "discourse-openid-connect";
-
rev = "07e30e59bf5ca3925328e936359a5564d7f5b0af";
-
sha256 = "sha256-uqxwUjbkS2o9r9pvnTgv+3jzFhUOb8KmorT3ody2d3o=";
+
rev = "e08efecc012a5ab8fa95084be93d4fd07ccebab9";
+
sha256 = "sha256-v4UWFDdOFON+nHkH490kBQ4sXX7Mrp7KVhN1x9HML7w=";
};
meta = with lib; {
homepage = "https://github.com/discourse/discourse-openid-connect";
+1 -2
pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/Gemfile
···
source "https://rubygems.org"
# gem "rails"
-
gem "webrick", "1.8.1"
-
gem "prometheus_exporter", "2.0.6"
+
gem "prometheus_exporter", "2.2.0"
+4 -5
pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/Gemfile.lock
···
GEM
remote: https://rubygems.org/
specs:
-
prometheus_exporter (2.0.6)
+
prometheus_exporter (2.2.0)
webrick
-
webrick (1.8.1)
+
webrick (1.9.1)
PLATFORMS
ruby
DEPENDENCIES
-
prometheus_exporter (= 2.0.6)
-
webrick (= 1.8.1)
+
prometheus_exporter (= 2.2.0)
BUNDLED WITH
-
2.4.22
+
2.5.22
+2 -2
pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/default.nix
···
src = fetchFromGitHub {
owner = "discourse";
repo = "discourse-prometheus";
-
rev = "b1b899ca995783ef5eba90c35dbfc120a2949c38";
-
sha256 = "sha256-tSU1aba8EadObOsb/nRM4jAdQ6D1F9QiIaGoHi2GGDk=";
+
rev = "f46906e1d555f6838d74ea38d5037264cc1020b0";
+
sha256 = "sha256-czrxhH0L+vCZA8DKN6acW///iWJs9GIppEeaP2MOJBQ=";
};
patches = [
+4 -4
pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/gemset.nix
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "0pb4k6px8b36bvnw3d14j31s33ns60dcwxixbcgvhpzavd7fparb";
+
sha256 = "15vl8fw8vjnaj9g129dzrwk9nlrdqgffaj3rys4ba9ns2bqim9rq";
type = "gem";
};
-
version = "2.0.6";
+
version = "2.2.0";
};
webrick = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "13qm7s0gr2pmfcl7dxrmq38asaza4w0i2n9my4yzs499j731wh8r";
+
sha256 = "12d9n8hll67j737ym2zw4v23cn4vxyfkb6vyv1rzpwv6y6a3qbdl";
type = "gem";
};
-
version = "1.8.1";
+
version = "1.9.1";
};
}
+10 -14
pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/spec-import-fix-abi-version.patch
···
diff --git a/bin/collector b/bin/collector
-
index 6bd04a8caffb..119526fc6ea3 100644
+
index 4bdce08178..5edc0a4aee 100755
--- a/bin/collector
+++ b/bin/collector
-
@@ -3,12 +3,14 @@
-
+
@@ -3,9 +3,11 @@
+
Process.setproctitle("discourse prometheus-collector")
-
+
+# We need the ABI version {MAJOR}.{MINOR}.0 here.
+abi_version = ENV['GEM_PATH'].split("/")[-1]
-
[
-
"webrick-#{ENV["WEBRICK_VERSION"]}",
-
"prometheus_exporter-#{ENV["PROMETHEUS_EXPORTER_VERSION"]}",
-
].each do |spec_name|
-
spec_file =
-
- File.expand_path("../../gems/#{RUBY_VERSION}/specifications/#{spec_name}.gemspec", __FILE__)
-
+ File.expand_path("../../gems/#{abi_version}/specifications/#{spec_name}.gemspec", __FILE__)
-
spec = Gem::Specification.load(spec_file)
-
spec.activate
-
end
+
spec_file =
+
File.expand_path(
+
- "../../gems/#{RUBY_VERSION}/specifications/#{"prometheus_exporter-#{ENV["PROMETHEUS_EXPORTER_VERSION"]}"}.gemspec",
+
+ "../../gems/#{abi_version}/specifications/#{"prometheus_exporter-#{ENV["PROMETHEUS_EXPORTER_VERSION"]}"}.gemspec",
+
__FILE__,
+
)
+2 -2
pkgs/servers/web-apps/discourse/plugins/discourse-reactions/default.nix
···
src = fetchFromGitHub {
owner = "discourse";
repo = "discourse-reactions";
-
rev = "c4cde3bb12841733d1f2ac4df1bb099aae15cece";
-
sha256 = "sha256-JXyXBJX7PBYmVylZ7PE+14RnlgR4EA1XBSue1ek0P/g=";
+
rev = "4844fe7afc2fc6a809ed0249a6b42a4c92384461";
+
sha256 = "sha256-iudlFK+U+FwjNbduNTdwnT7oHww+xPz0+rZgzFUKT/8=";
};
meta = with lib; {
homepage = "https://github.com/discourse/discourse-reactions";
+2 -2
pkgs/servers/web-apps/discourse/plugins/discourse-saved-searches/default.nix
···
src = fetchFromGitHub {
owner = "discourse";
repo = "discourse-saved-searches";
-
rev = "16bde9b0bcb3b517cfabc0ea740c10b091157799";
-
sha256 = "sha256-tn1AKiRPaunqlrtcC/6NETUnNxJq1uNi+IIF0TZPbDg=";
+
rev = "b78aae086e95255b1a1e91a01e2d56b45b7aead2";
+
sha256 = "sha256-Wai+oZR+Pzjre6Th0kQDgvFOwfPRHlZkpKYYOUKNlx4=";
};
meta = with lib; {
homepage = "https://github.com/discourse/discourse-saved-searches";
+2 -2
pkgs/servers/web-apps/discourse/plugins/discourse-solved/default.nix
···
src = fetchFromGitHub {
owner = "discourse";
repo = "discourse-solved";
-
rev = "1bbdfd8f5681171dc3f0e9ea93cd56997dc7938a";
-
sha256 = "sha256-nuF/tCoHgsKE+wjQ3BRV1s1X77vjQiASLRCWErh64C4=";
+
rev = "e82c6ae1ca38ccebb34669148f8de93a3028906e";
+
sha256 = "sha256-KwpBCk4fjkZlSzgtc0OXvQupPd+aPb9nONyyALpEZhg=";
};
meta = with lib; {
homepage = "https://github.com/discourse/discourse-solved";
+3 -3
pkgs/servers/web-apps/discourse/plugins/discourse-voting/default.nix
···
name = "discourse-voting";
src = fetchFromGitHub {
owner = "discourse";
-
repo = "discourse-voting";
-
rev = "4ebcd1187b59290b79db8c61c89df9f72bf1363c";
-
sha256 = "sha256-aDJKy7Qpsj1n+HrumoORUo+R9HF3gQ0juJBKXj7GHsY=";
+
repo = "discourse-topic-voting";
+
rev = "b31bc6e037af776d2cea3f34c44b02a105b34d24";
+
sha256 = "sha256-835xFg2NnhE4HPju2j3w+N5rtRYinOBbBMerRJpnpxQ=";
};
meta = with lib; {
homepage = "https://github.com/discourse/discourse-voting";
+2 -2
pkgs/servers/web-apps/discourse/plugins/discourse-yearly-review/default.nix
···
src = fetchFromGitHub {
owner = "discourse";
repo = "discourse-yearly-review";
-
rev = "bb124c211c37873c1d54e96e7063f1868c65d0ad";
-
sha256 = "sha256-xAFpt/uVW8+Y2wwL20u/rMixcFgygwrarsdRsywsbmQ=";
+
rev = "5229931ace1ee19ef2d1b7ed2469911f315669bb";
+
sha256 = "sha256-2xgHtXB7F5XP2OmB1QswrnPk5Sf32DFoUhlU4RMEZhI=";
};
meta = with lib; {
homepage = "https://github.com/discourse/discourse-yearly-review";
+18 -16
pkgs/servers/web-apps/discourse/prebuild-theme-transpiler.patch
···
diff --git a/lib/discourse_js_processor.rb b/lib/discourse_js_processor.rb
-
index 26d142fa4d..6040aba6f4 100644
+
index f1642386c5..5a672818da 100644
--- a/lib/discourse_js_processor.rb
+++ b/lib/discourse_js_processor.rb
-
@@ -68,7 +68,7 @@ class DiscourseJsProcessor
-
TRANSPILER_PATH =
-
(
-
if Rails.env.production?
-
- "tmp/theme-transpiler.js"
-
+ "app/assets/javascripts/theme-transpiler.js"
-
else
-
"tmp/theme-transpiler/#{Process.pid}.js"
-
end
-
@@ -87,6 +87,6 @@ class DiscourseJsProcessor
-
"node",
-
"app/assets/javascripts/theme-transpiler/build.js",
-
TRANSPILER_PATH,
-
- )
-
+ ) if !Rails.env.production? or !File.file?(TRANSPILER_PATH)
+
@@ -54,7 +54,7 @@ class DiscourseJsProcessor
+
end
+
+
class Transpiler
+
- TRANSPILER_PATH = "tmp/theme-transpiler.js"
+
+ TRANSPILER_PATH = "app/assets/javascripts/theme-transpiler.js"
+
+
@mutex = Mutex.new
+
@ctx_init = Mutex.new
+
@@ -75,7 +75,9 @@ class DiscourseJsProcessor
+
end
+
+
def self.build_production_theme_transpiler
+
- File.write(TRANSPILER_PATH, build_theme_transpiler)
+
+ if (!Rails.env.production? or !File.file?(TRANSPILER_PATH))
+
+ File.write(TRANSPILER_PATH, build_theme_transpiler)
+
+ end
TRANSPILER_PATH
end
+30 -14
pkgs/servers/web-apps/discourse/rubyEnv/Gemfile
···
gem "bootsnap", require: false, platform: :mri
-
gem "actionmailer", "~> 7.1.0"
-
gem "actionpack", "~> 7.1.0"
-
gem "actionview", "~> 7.1.0"
-
gem "activemodel", "~> 7.1.0"
-
gem "activerecord", "~> 7.1.0"
-
gem "activesupport", "~> 7.1.0"
-
gem "railties", "~> 7.1.0"
+
gem "actionmailer", "~> 7.2.0"
+
gem "actionpack", "~> 7.2.0"
+
gem "actionview", "~> 7.2.0"
+
gem "activemodel", "~> 7.2.0"
+
gem "activerecord", "~> 7.2.0"
+
gem "activesupport", "~> 7.2.0"
+
gem "railties", "~> 7.2.0"
gem "sprockets-rails"
gem "json"
···
gem "mini_scheduler"
gem "execjs", require: false
-
gem "mini_racer"
+
gem "mini_racer", "0.17.pre13"
gem "highline", require: false
···
gem "syntax_tree"
gem "syntax_tree-disable_ternary"
+
+
gem "rspec-multi-mock"
end
group :development do
···
gem "reverse_markdown"
gem "tiny_tds"
gem "csv"
-
-
gem "parallel", require: false
end
group :generic_import, optional: true do
···
gem "tzinfo-data"
gem "csv", require: false
-
# TODO: Can be removed once we upgrade to Rails 7.1
-
gem "mutex_m"
-
gem "drb"
-
# dependencies for the automation plugin
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"
+
end
+
+
gem "dry-initializer", "~> 3.1"
+
+
gem "parallel"
+206 -183
pkgs/servers/web-apps/discourse/rubyEnv/Gemfile.lock
···
GEM
remote: https://rubygems.org/
specs:
-
actionmailer (7.1.3.4)
-
actionpack (= 7.1.3.4)
-
actionview (= 7.1.3.4)
-
activejob (= 7.1.3.4)
-
activesupport (= 7.1.3.4)
-
mail (~> 2.5, >= 2.5.4)
-
net-imap
-
net-pop
-
net-smtp
+
actionmailer (7.2.2.1)
+
actionpack (= 7.2.2.1)
+
actionview (= 7.2.2.1)
+
activejob (= 7.2.2.1)
+
activesupport (= 7.2.2.1)
+
mail (>= 2.8.0)
rails-dom-testing (~> 2.2)
-
actionpack (7.1.3.4)
-
actionview (= 7.1.3.4)
-
activesupport (= 7.1.3.4)
+
actionpack (7.2.2.1)
+
actionview (= 7.2.2.1)
+
activesupport (= 7.2.2.1)
nokogiri (>= 1.8.5)
racc
-
rack (>= 2.2.4)
+
rack (>= 2.2.4, < 3.2)
rack-session (>= 1.0.1)
rack-test (>= 0.6.3)
rails-dom-testing (~> 2.2)
rails-html-sanitizer (~> 1.6)
-
actionview (7.1.3.4)
-
activesupport (= 7.1.3.4)
+
useragent (~> 0.16)
+
actionview (7.2.2.1)
+
activesupport (= 7.2.2.1)
builder (~> 3.1)
erubi (~> 1.11)
rails-dom-testing (~> 2.2)
···
actionview (>= 6.0.a)
active_model_serializers (0.8.4)
activemodel (>= 3.0)
-
activejob (7.1.3.4)
-
activesupport (= 7.1.3.4)
+
activejob (7.2.2.1)
+
activesupport (= 7.2.2.1)
globalid (>= 0.3.6)
-
activemodel (7.1.3.4)
-
activesupport (= 7.1.3.4)
-
activerecord (7.1.3.4)
-
activemodel (= 7.1.3.4)
-
activesupport (= 7.1.3.4)
+
activemodel (7.2.2.1)
+
activesupport (= 7.2.2.1)
+
activerecord (7.2.2.1)
+
activemodel (= 7.2.2.1)
+
activesupport (= 7.2.2.1)
timeout (>= 0.4.0)
-
activesupport (7.1.3.4)
+
activesupport (7.2.2.1)
base64
+
benchmark (>= 0.3)
bigdecimal
-
concurrent-ruby (~> 1.0, >= 1.0.2)
+
concurrent-ruby (~> 1.0, >= 1.3.1)
connection_pool (>= 2.2.5)
drb
i18n (>= 1.6, < 2)
+
logger (>= 1.4.2)
minitest (>= 5.1)
-
mutex_m
-
tzinfo (~> 2.0)
+
securerandom (>= 0.3)
+
tzinfo (~> 2.0, >= 2.0.5)
addressable (2.8.7)
public_suffix (>= 2.0.2, < 7.0)
annotate (3.2.0)
···
aws-sigv4 (1.8.0)
aws-eventstream (~> 1, >= 1.0.2)
base64 (0.2.0)
+
benchmark (0.4.0)
better_errors (2.10.1)
erubi (>= 1.0.0)
rack (>= 0.9.0)
rouge (>= 1.0.0)
-
bigdecimal (3.1.8)
+
bigdecimal (3.1.9)
binding_of_caller (1.0.1)
debug_inspector (>= 1.2.0)
-
bootsnap (1.18.3)
+
bootsnap (1.18.4)
msgpack (~> 1.2)
builder (3.3.0)
-
bullet (7.2.0)
+
bullet (8.0.0)
activesupport (>= 3.0.0)
uniform_notifier (~> 1.11)
byebug (11.1.3)
···
cgi (0.4.1)
chunky_png (1.4.0)
coderay (1.1.3)
-
colored2 (4.0.0)
-
concurrent-ruby (1.3.3)
-
connection_pool (2.4.1)
-
cose (1.3.0)
+
colored2 (4.0.3)
+
concurrent-ruby (1.3.5)
+
connection_pool (2.5.0)
+
cose (1.3.1)
cbor (~> 0.5.9)
openssl-signature_algorithm (~> 1.0)
-
cppjieba_rb (0.4.2)
+
cppjieba_rb (0.4.4)
crack (1.0.0)
bigdecimal
rexml
crass (1.0.6)
-
css_parser (1.17.1)
+
css_parser (1.21.0)
addressable
-
csv (3.3.0)
-
date (3.3.4)
+
csv (3.3.2)
+
date (3.4.1)
debug_inspector (1.2.0)
diff-lcs (1.5.1)
-
diffy (3.4.2)
-
digest (3.1.1)
-
discourse-fonts (0.0.9)
+
diffy (3.4.3)
+
digest (3.2.0)
+
digest-xxhash (0.2.9)
+
discourse-fonts (0.0.18)
discourse-seed-fu (2.3.12)
activerecord (>= 3.1)
activesupport (>= 3.1)
···
literate_randomizer
docile (1.4.1)
drb (2.2.1)
-
email_reply_trimmer (0.1.13)
-
erubi (1.13.0)
-
excon (0.111.0)
-
execjs (2.9.1)
-
exifr (1.4.0)
+
dry-initializer (3.2.0)
+
email_reply_trimmer (0.2.0)
+
erubi (1.13.1)
+
excon (1.2.3)
+
execjs (2.10.0)
+
exifr (1.4.1)
+
extralite-bundle (2.8.2)
fabrication (2.31.0)
faker (2.23.0)
i18n (>= 1.8.11, < 2)
fakeweb (1.3.0)
-
faraday (2.10.0)
-
faraday-net_http (>= 2.0, < 3.2)
+
faraday (2.12.2)
+
faraday-net_http (>= 2.0, < 3.5)
+
json
logger
-
faraday-net_http (3.1.1)
-
net-http
+
faraday-net_http (3.4.0)
+
net-http (>= 0.5.0)
faraday-retry (2.2.1)
faraday (~> 2.0)
fast_blank (1.0.1)
fastimage (2.3.1)
-
ffi (1.17.0)
-
ffi (1.17.0-arm64-darwin)
-
ffi (1.17.0-x86_64-darwin)
+
ffi (1.17.1)
+
ffi (1.17.1-arm64-darwin)
+
ffi (1.17.1-x86_64-darwin)
fspath (3.1.2)
globalid (1.2.1)
activesupport (>= 6.1)
-
google-protobuf (4.27.2)
+
google-protobuf (4.29.3)
bigdecimal
rake (>= 13)
-
google-protobuf (4.27.2-arm64-darwin)
+
google-protobuf (4.29.3-arm64-darwin)
bigdecimal
rake (>= 13)
-
google-protobuf (4.27.2-x86_64-darwin)
+
google-protobuf (4.29.3-x86_64-darwin)
bigdecimal
rake (>= 13)
guess_html_encoding (0.0.11)
hana (1.3.7)
-
hashdiff (1.1.0)
+
hashdiff (1.1.2)
hashie (5.0.0)
-
highline (3.1.0)
+
highline (3.1.2)
reline
htmlentities (4.3.4)
http_accept_language (2.1.1)
-
i18n (1.14.5)
+
i18n (1.14.7)
concurrent-ruby (~> 1.0)
-
image_optim (0.31.3)
+
image_optim (0.31.4)
exifr (~> 1.2, >= 1.2.2)
fspath (~> 3.0)
image_size (>= 1.5, < 4)
···
progress (~> 3.0, >= 3.0.1)
image_size (3.4.0)
in_threads (1.6.0)
-
io-console (0.7.2)
-
irb (1.14.0)
+
io-console (0.8.0)
+
irb (1.15.1)
+
pp (>= 0.6.0)
rdoc (>= 4.0.0)
reline (>= 0.4.2)
iso8601 (0.13.0)
jmespath (1.6.2)
-
json (2.7.2)
-
json-schema (4.3.1)
-
addressable (>= 2.8)
-
json_schemer (2.3.0)
+
json (2.9.1)
+
json-schema (5.1.1)
+
addressable (~> 2.8)
+
bigdecimal (~> 3.1)
+
json_schemer (2.4.0)
bigdecimal
hana (~> 1.3)
regexp_parser (~> 2.0)
simpleidn (~> 0.2)
-
jwt (2.8.2)
+
jwt (2.10.1)
base64
kgio (2.11.4)
-
language_server-protocol (3.17.0.3)
-
libv8-node (18.19.0.0)
-
libv8-node (18.19.0.0-arm64-darwin)
-
libv8-node (18.19.0.0-x86_64-darwin)
+
language_server-protocol (3.17.0.4)
+
libv8-node (22.7.0.4)
+
libv8-node (22.7.0.4-arm64-darwin)
+
libv8-node (22.7.0.4-x86_64-darwin)
listen (3.9.0)
rb-fsevent (~> 0.10, >= 0.10.3)
rb-inotify (~> 0.9, >= 0.9.10)
literate_randomizer (0.4.0)
-
logger (1.6.0)
+
logger (1.6.5)
lograge (0.14.0)
actionpack (>= 4)
activesupport (>= 4)
···
request_store (~> 1.0)
logstash-event (1.2.02)
logster (2.20.0)
-
loofah (2.22.0)
+
loofah (2.24.0)
crass (~> 1.0.2)
nokogiri (>= 1.12.0)
lru_redux (1.1.0)
···
net-smtp
matrix (0.4.2)
maxminddb (0.1.22)
-
memory_profiler (1.0.2)
+
memory_profiler (1.1.0)
message_bus (4.3.8)
rack (>= 1.1.3)
messageformat-wrapper (1.1.0)
mini_racer (>= 0.6.3)
method_source (1.1.0)
mini_mime (1.1.5)
-
mini_portile2 (2.8.7)
-
mini_racer (0.14.1)
-
libv8-node (~> 18.19.0.0)
-
mini_scheduler (0.16.0)
-
sidekiq (>= 4.2.3, < 7.0)
-
mini_sql (1.5.0)
+
mini_portile2 (2.8.8)
+
mini_racer (0.17.0.pre13)
+
libv8-node (~> 22.7.0.4)
+
mini_scheduler (0.18.0)
+
sidekiq (>= 6.5, < 8.0)
+
mini_sql (1.6.0)
mini_suffix (0.3.3)
ffi (~> 1.9)
minio_runner (0.1.2)
-
minitest (5.24.1)
-
mocha (2.4.5)
+
minitest (5.25.4)
+
mocha (2.7.1)
ruby2_keywords (>= 0.0.5)
-
msgpack (1.7.2)
+
msgpack (1.7.5)
multi_json (1.15.0)
multi_xml (0.7.1)
bigdecimal (~> 3.1)
mustache (1.1.1)
-
mutex_m (0.2.0)
-
net-http (0.4.1)
+
net-http (0.6.0)
uri
-
net-imap (0.4.14)
+
net-imap (0.5.5)
date
net-protocol
net-pop (0.1.2)
···
timeout
net-smtp (0.5.0)
net-protocol
-
nio4r (2.7.3)
-
nokogiri (1.16.7)
+
nio4r (2.7.4)
+
nokogiri (1.18.2)
mini_portile2 (~> 2.8.2)
racc (~> 1.4)
-
nokogiri (1.16.7-arm64-darwin)
+
nokogiri (1.18.2-arm64-darwin)
racc (~> 1.4)
-
nokogiri (1.16.7-x86_64-darwin)
+
nokogiri (1.18.2-x86_64-darwin)
racc (~> 1.4)
oauth (1.1.0)
oauth-tty (~> 1.0, >= 1.0.1)
···
multi_json (~> 1.3)
multi_xml (~> 0.5)
rack (>= 1.2, < 4)
-
oj (3.16.4)
+
oj (3.16.9)
bigdecimal (>= 3.0)
+
ostruct (>= 0.2)
omniauth (1.9.2)
hashie (>= 3.4.6)
rack (>= 1.6.2, < 3)
···
oauth2 (~> 1.1)
omniauth (~> 1.1)
omniauth-oauth2 (>= 1.6)
-
omniauth-oauth (1.2.0)
+
omniauth-oauth (1.2.1)
oauth
omniauth (>= 1.0, < 3)
+
rack (>= 1.6.2, < 4)
omniauth-oauth2 (1.7.3)
oauth2 (>= 1.4, < 3)
omniauth (>= 1.9, < 3)
omniauth-twitter (1.4.0)
omniauth-oauth (~> 1.1)
rack
-
openssl (3.2.0)
+
openssl (3.3.0)
openssl-signature_algorithm (1.3.0)
openssl (> 2.0)
-
optimist (3.1.0)
-
parallel (1.25.1)
-
parallel_tests (4.7.1)
+
optimist (3.2.0)
+
ostruct (0.6.1)
+
parallel (1.26.3)
+
parallel_tests (4.9.0)
parallel
-
parser (3.3.4.0)
+
parser (3.3.7.0)
ast (~> 2.4.1)
racc
-
pg (1.5.4)
+
pg (1.5.9)
+
pp (0.6.2)
+
prettyprint
prettier_print (1.2.1)
+
prettyprint (0.2.0)
progress (3.6.0)
pry (0.14.2)
coderay (~> 1.1)
···
pry-stack_explorer (0.6.1)
binding_of_caller (~> 1.0)
pry (~> 0.13)
-
psych (5.1.2)
+
psych (5.2.3)
+
date
stringio
public_suffix (6.0.1)
-
puma (6.4.2)
+
puma (6.6.0)
nio4r (~> 2.0)
-
racc (1.8.0)
-
rack (2.2.9)
+
racc (1.8.1)
+
rack (2.2.10)
rack-mini-profiler (3.3.1)
rack (>= 1.2.0)
rack-protection (3.2.0)
···
rack (~> 2.2, >= 2.2.4)
rack-session (1.0.2)
rack (< 3)
-
rack-test (2.1.0)
+
rack-test (2.2.0)
rack (>= 1.3)
-
rackup (1.0.0)
+
rackup (1.0.1)
rack (< 3)
webrick
rails-dom-testing (2.2.0)
activesupport (>= 5.0.0)
minitest
nokogiri (>= 1.6)
-
rails-html-sanitizer (1.6.0)
+
rails-html-sanitizer (1.6.2)
loofah (~> 2.21)
-
nokogiri (~> 1.14)
-
rails_failover (2.1.1)
+
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.2.0)
activerecord (>= 6.1, < 8.0)
concurrent-ruby
railties (>= 6.1, < 8.0)
-
rails_multisite (6.0.0)
+
rails_multisite (6.1.0)
activerecord (>= 6.0)
railties (>= 6.0)
-
railties (7.1.3.4)
-
actionpack (= 7.1.3.4)
-
activesupport (= 7.1.3.4)
-
irb
+
railties (7.2.2.1)
+
actionpack (= 7.2.2.1)
+
activesupport (= 7.2.2.1)
+
irb (~> 1.13)
rackup (>= 1.0.0)
rake (>= 12.2)
thor (~> 1.0, >= 1.2.2)
···
ffi (>= 1.0.6)
msgpack (>= 0.4.3)
optimist (>= 3.0.0)
-
rchardet (1.8.0)
-
rdoc (6.7.0)
+
rchardet (1.9.0)
+
rdoc (6.11.0)
psych (>= 4.0.0)
redcarpet (3.6.0)
redis (4.8.1)
redis-namespace (1.11.0)
redis (>= 4)
-
regexp_parser (2.9.2)
-
reline (0.5.9)
+
regexp_parser (2.10.0)
+
reline (0.6.0)
io-console (~> 0.5)
request_store (1.7.0)
rack (>= 1.4)
-
rexml (3.3.2)
-
strscan
+
rexml (3.4.0)
rinku (2.0.6)
rotp (6.3.0)
-
rouge (4.3.0)
+
rouge (4.5.1)
rqrcode (2.2.0)
chunky_png (~> 1.0)
rqrcode_core (~> 1.0)
···
rspec-core (~> 3.13.0)
rspec-expectations (~> 3.13.0)
rspec-mocks (~> 3.13.0)
-
rspec-core (3.13.0)
+
rspec-core (3.13.2)
rspec-support (~> 3.13.0)
-
rspec-expectations (3.13.1)
+
rspec-expectations (3.13.3)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.13.0)
rspec-html-matchers (0.10.0)
nokogiri (~> 1)
rspec (>= 3.0.0.a)
-
rspec-mocks (3.13.1)
+
rspec-mocks (3.13.2)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.13.0)
-
rspec-rails (6.1.3)
-
actionpack (>= 6.1)
-
activesupport (>= 6.1)
-
railties (>= 6.1)
+
rspec-multi-mock (0.3.1)
+
rspec (>= 3.7.0)
+
rspec-rails (7.1.0)
+
actionpack (>= 7.0)
+
activesupport (>= 7.0)
+
railties (>= 7.0)
rspec-core (~> 3.13)
rspec-expectations (~> 3.13)
rspec-mocks (~> 3.13)
rspec-support (~> 3.13)
-
rspec-support (3.13.1)
-
rss (0.3.0)
+
rspec-support (3.13.2)
+
rss (0.3.1)
rexml
-
rswag-specs (2.13.0)
-
activesupport (>= 3.1, < 7.2)
-
json-schema (>= 2.2, < 5.0)
-
railties (>= 3.1, < 7.2)
+
rswag-specs (2.16.0)
+
activesupport (>= 5.2, < 8.1)
+
json-schema (>= 2.2, < 6.0)
+
railties (>= 5.2, < 8.1)
rspec-core (>= 2.14)
rtlcss (0.2.1)
mini_racer (>= 0.6.3)
-
rubocop (1.65.0)
+
rubocop (1.71.1)
json (~> 2.3)
language_server-protocol (>= 3.17.0)
parallel (~> 1.10)
parser (>= 3.3.0.2)
rainbow (>= 2.2.2, < 4.0)
-
regexp_parser (>= 2.4, < 3.0)
-
rexml (>= 3.2.5, < 4.0)
-
rubocop-ast (>= 1.31.1, < 2.0)
+
regexp_parser (>= 2.9.3, < 3.0)
+
rubocop-ast (>= 1.38.0, < 2.0)
ruby-progressbar (~> 1.7)
-
unicode-display_width (>= 2.4.0, < 3.0)
-
rubocop-ast (1.31.3)
+
unicode-display_width (>= 2.4.0, < 4.0)
+
rubocop-ast (1.38.0)
parser (>= 3.3.1.0)
rubocop-capybara (2.21.0)
rubocop (~> 1.41)
-
rubocop-discourse (3.8.1)
+
rubocop-discourse (3.9.3)
activesupport (>= 6.1)
rubocop (>= 1.59.0)
rubocop-capybara (>= 2.0.0)
···
rubocop-rspec_rails (>= 2.30.0)
rubocop-factory_bot (2.26.1)
rubocop (~> 1.61)
-
rubocop-rails (2.25.1)
+
rubocop-rails (2.29.1)
activesupport (>= 4.2.0)
rack (>= 1.1)
-
rubocop (>= 1.33.0, < 2.0)
+
rubocop (>= 1.52.0, < 2.0)
rubocop-ast (>= 1.31.1, < 2.0)
-
rubocop-rspec (3.0.3)
+
rubocop-rspec (3.4.0)
rubocop (~> 1.61)
rubocop-rspec_rails (2.30.0)
rubocop (~> 1.61)
rubocop-rspec (~> 3, >= 3.0.1)
-
ruby-prof (1.7.0)
+
ruby-prof (1.7.1)
ruby-progressbar (1.13.0)
-
ruby-readability (0.7.1)
+
ruby-readability (0.7.2)
guess_html_encoding (>= 0.0.4)
nokogiri (>= 1.6.0)
ruby2_keywords (0.0.5)
-
rubyzip (2.3.2)
-
sanitize (6.1.2)
+
rubyzip (2.4.1)
+
sanitize (7.0.0)
crass (~> 1.0.2)
-
nokogiri (>= 1.12.0)
+
nokogiri (>= 1.16.8)
sass-embedded (1.77.5)
google-protobuf (>= 3.25, < 5.0)
rake (>= 13)
···
google-protobuf (>= 3.25, < 5.0)
sassc-embedded (1.77.7)
sass-embedded (~> 1.77)
-
selenium-devtools (0.126.0)
+
securerandom (0.4.1)
+
selenium-devtools (0.132.0)
selenium-webdriver (~> 4.2)
-
selenium-webdriver (4.23.0)
+
selenium-webdriver (4.28.0)
base64 (~> 0.2)
logger (~> 1.4)
rexml (~> 3.2, >= 3.2.5)
rubyzip (>= 1.2.2, < 3.0)
websocket (~> 1.0)
-
shoulda-matchers (6.2.0)
+
shoulda-matchers (6.4.0)
activesupport (>= 5.2.0)
sidekiq (6.5.12)
connection_pool (>= 2.2.5, < 3)
···
docile (~> 1.1)
simplecov-html (~> 0.11)
simplecov_json_formatter (~> 0.1)
-
simplecov-html (0.12.3)
+
simplecov-html (0.13.1)
simplecov_json_formatter (0.1.4)
simpleidn (0.2.3)
snaky_hash (2.0.1)
hashie
version_gem (~> 1.1, >= 1.1.1)
-
sprockets (3.7.3)
+
sprockets (3.7.5)
base64
concurrent-ruby (~> 1.0)
rack (> 1, < 3)
-
sprockets-rails (3.5.1)
+
sprockets-rails (3.5.2)
actionpack (>= 6.1)
activesupport (>= 6.1)
sprockets (>= 3.0.0)
-
sqlite3 (2.0.2)
+
sqlite3 (2.5.0)
mini_portile2 (~> 2.8.0)
-
sqlite3 (2.0.2-arm64-darwin)
-
sqlite3 (2.0.2-x86_64-darwin)
+
sqlite3 (2.5.0-arm64-darwin)
+
sqlite3 (2.5.0-x86_64-darwin)
sshkey (3.0.0)
-
stackprof (0.2.26)
-
stringio (3.1.1)
-
strscan (3.1.0)
+
stackprof (0.2.27)
+
stringio (3.1.2)
syntax_tree (6.2.0)
prettier_print (>= 1.2.0)
syntax_tree-disable_ternary (1.0.0)
-
test-prof (1.3.3.1)
-
thor (1.3.1)
-
timeout (0.4.1)
+
test-prof (1.4.4)
+
thor (1.3.2)
+
timeout (0.4.3)
+
trilogy (2.9.0)
tzinfo (2.0.6)
concurrent-ruby (~> 1.0)
-
tzinfo-data (1.2024.1)
+
tzinfo-data (1.2025.1)
tzinfo (>= 1.0.0)
-
uglifier (4.2.0)
+
uglifier (4.2.1)
execjs (>= 0.3.0, < 3)
-
unf (0.1.4)
-
unf_ext
-
unf_ext (0.0.9.1)
-
unicode-display_width (2.5.0)
+
unf (0.2.0)
+
unicode-display_width (3.1.4)
+
unicode-emoji (~> 4.0, >= 4.0.4)
+
unicode-emoji (4.0.4)
unicorn (6.1.0)
kgio (~> 2.6)
raindrops (~> 0.7)
uniform_notifier (1.16.0)
-
uri (0.13.0)
+
uri (1.0.2)
+
useragent (0.16.11)
version_gem (1.1.4)
web-push (3.0.1)
jwt (~> 2.0)
openssl (~> 3.0)
-
webmock (3.23.1)
+
webmock (3.24.0)
addressable (>= 2.8.0)
crack (>= 0.3.2)
hashdiff (>= 0.4.0, < 2.0.0)
-
webrick (1.8.1)
+
webrick (1.9.1)
websocket (1.2.11)
xpath (3.2.0)
nokogiri (~> 1.8)
yaml-lint (0.1.2)
-
yard (0.9.36)
-
zeitwerk (2.6.16)
+
yard (0.9.37)
+
zeitwerk (2.7.1)
PLATFORMS
arm64-darwin-21
···
arm64-darwin-24
ruby
x86_64-darwin-22
+
x86_64-darwin-23
+
x86_64-darwin-24
DEPENDENCIES
-
actionmailer (~> 7.1.0)
-
actionpack (~> 7.1.0)
-
actionview (~> 7.1.0)
+
actionmailer (~> 7.2.0)
+
actionpack (~> 7.2.0)
+
actionview (~> 7.2.0)
actionview_precompiler
active_model_serializers (~> 0.8.3)
-
activemodel (~> 7.1.0)
-
activerecord (~> 7.1.0)
-
activesupport (~> 7.1.0)
+
activemodel (~> 7.2.0)
+
activerecord (~> 7.2.0)
+
activesupport (~> 7.2.0)
addressable
annotate
aws-sdk-s3
···
csv
diffy
digest
+
digest-xxhash
discourse-fonts
discourse-seed-fu
discourse_dev_assets
-
drb
+
dry-initializer (~> 3.1)
email_reply_trimmer
excon
execjs
+
extralite-bundle
fabrication
faker (~> 2.16)
fakeweb
···
message_bus
messageformat-wrapper
mini_mime
-
mini_racer
+
mini_racer (= 0.17.pre13)
mini_scheduler
mini_sql
mini_suffix
···
mocha
multi_json
mustache
-
mutex_m
net-http
net-imap
net-pop
···
omniauth-google-oauth2
omniauth-oauth2
omniauth-twitter
+
parallel
parallel_tests
pg
pry-byebug
···
rails-dom-testing
rails_failover
rails_multisite
-
railties (~> 7.1.0)
+
railties (~> 7.2.0)
rake
rb-fsevent
rbtrace
···
rrule
rspec
rspec-html-matchers
+
rspec-multi-mock
rspec-rails
rss
rswag-specs
rtlcss
rubocop-discourse
ruby-prof
+
ruby-progressbar
ruby-readability
rubyzip
sanitize
···
syntax_tree-disable_ternary
test-prof
thor
+
trilogy
tzinfo-data
uglifier
unf
···
webmock
yaml-lint
yard
+
zeitwerk
BUNDLED WITH
-
2.4.22
+
2.5.22
+419 -278
pkgs/servers/web-apps/discourse/rubyEnv/gemset.nix
···
"activejob"
"activesupport"
"mail"
-
"net-imap"
-
"net-pop"
-
"net-smtp"
"rails-dom-testing"
];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "0l835a50h95wlzcy76c2vg54ix3i55kqmnrmz67b11q5fjb6068z";
+
sha256 = "07xjqxmwif57wxz28ch10c3c2261ydv1x56vsiidg2icqciyaamh";
type = "gem";
};
-
version = "7.1.3.4";
+
version = "7.2.2.1";
};
actionpack = {
dependencies = [
···
"rack-test"
"rails-dom-testing"
"rails-html-sanitizer"
+
"useragent"
];
groups = [
"default"
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "1lpd0lvn6abcq5k8g0qw8kmzx6igirlqxvd1hhwmr5vaxhdwgbyw";
+
sha256 = "0d7pq6fsf041fvskzmqm12xcgk5m9d5fa6kbs1lsbmfbgc51dchp";
type = "gem";
};
-
version = "7.1.3.4";
+
version = "7.2.2.1";
};
actionview = {
dependencies = [
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "0nv1ifjhm59abc52k2hwazl38r9cc4bkfgdsl00f24gc5ljgbz21";
+
sha256 = "19arngl1nshasvbh90gzc23z1vpid2xzg3043grbmcfqyc68iz39";
type = "gem";
};
-
version = "7.1.3.4";
+
version = "7.2.2.1";
};
actionview_precompiler = {
dependencies = [ "actionview" ];
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "0qhg0izdckgyqmrsgigh1vkqg8ccrkdjhf36k9gxcbgvzpqfx2iz";
+
sha256 = "0nryqb19i3frxhanykf6lmrw0rb09863z114gi7sm55kff2mmygj";
type = "gem";
};
-
version = "7.1.3.4";
+
version = "7.2.2.1";
};
activemodel = {
dependencies = [ "activesupport" ];
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "0wmdw440l4h75zk6c4ynbnv21bj26dh8kb1kwikqkjnzfvm3ij7l";
+
sha256 = "1bzxvccj8349slymls7navb5y14anglkkasphcd6gi72kqgqd643";
type = "gem";
};
-
version = "7.1.3.4";
+
version = "7.2.2.1";
};
activerecord = {
dependencies = [
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "1wihj9xhr7yj10hh8fqw6ralanbwlisncbam8pa92czjssjfqkkq";
+
sha256 = "1fgscw775wj4l7f5pj274a984paz23zy0111giqkhl9dqdqiz8vr";
type = "gem";
};
-
version = "7.1.3.4";
+
version = "7.2.2.1";
};
activesupport = {
dependencies = [
"base64"
+
"benchmark"
"bigdecimal"
"concurrent-ruby"
"connection_pool"
"drb"
"i18n"
+
"logger"
"minitest"
-
"mutex_m"
+
"securerandom"
"tzinfo"
];
groups = [
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "0283wk1zxb76lg79dk501kcf5xy9h25qiw15m86s4nrfv11vqns5";
+
sha256 = "1xa7hr4gp2p86ly6n1j2skyx8pfg6yi621kmnh7zhxr9m7wcnaw4";
type = "gem";
};
-
version = "7.1.3.4";
+
version = "7.2.2.1";
};
addressable = {
dependencies = [ "public_suffix" ];
···
};
version = "0.2.0";
};
+
benchmark = {
+
groups = [
+
"default"
+
"development"
+
"test"
+
];
+
platforms = [ ];
+
source = {
+
remotes = [ "https://rubygems.org" ];
+
sha256 = "0jl71qcgamm96dzyqk695j24qszhcc7liw74qc83fpjljp2gh4hg";
+
type = "gem";
+
};
+
version = "0.4.0";
+
};
better_errors = {
dependencies = [
"erubi"
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "1gi7zqgmqwi5lizggs1jhc3zlwaqayy9rx2ah80sxy24bbnng558";
+
sha256 = "1k6qzammv9r6b2cw3siasaik18i6wjc5m0gw5nfdc6jj64h79z1g";
type = "gem";
};
-
version = "3.1.8";
+
version = "3.1.9";
};
binding_of_caller = {
dependencies = [ "debug_inspector" ];
···
];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "1srlq3gqirzdkhv12ljpnp5cb0f8jfrl3n8xs9iivyz2c7khvdyp";
+
sha256 = "0mdgj9yw1hmx3xh2qxyjc31y8igmxzd9h0c245ay2zkz76pl4k5c";
type = "gem";
};
-
version = "1.18.3";
+
version = "1.18.4";
};
builder = {
groups = [
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "12gacycw1adsdjp14pm43619c6lcdaddhgbdizy7gnzmnjhwh0im";
+
sha256 = "0kfyg2j6a4sg94sajnmy0scv9dxjh7jka9dlil1fzpx137g2zw3p";
type = "gem";
};
-
version = "7.2.0";
+
version = "8.0.0";
};
byebug = {
groups = [
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "1zj06gjqwykgzxmbkp2hmg3wv5kv8zz5d77acxipzcgicdjgvfan";
+
sha256 = "0drbrv5m3l3qpal7s87gvss81cbzl76gad1hqkpqfqlphf0h7qb3";
type = "gem";
};
-
version = "4.0.0";
+
version = "4.0.3";
};
concurrent-ruby = {
groups = [
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "0skwdasxq7mnlcccn6aqabl7n9r3jd7k19ryzlzzip64cn4x572g";
+
sha256 = "1ipbrgvf0pp6zxdk5ascp6i29aybz2bx9wdrlchjmpx6mhvkwfw1";
type = "gem";
};
-
version = "1.3.3";
+
version = "1.3.5";
};
connection_pool = {
-
groups = [ "default" ];
+
groups = [
+
"default"
+
"development"
+
"test"
+
];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "1x32mcpm2cl5492kd6lbjbaf17qsssmpx9kdyr7z1wcif2cwyh0g";
+
sha256 = "1z7bag6zb2vwi7wp2bkdkmk7swkj6zfnbsnc949qq0wfsgw94fr3";
type = "gem";
};
-
version = "2.4.1";
+
version = "2.5.0";
};
cose = {
dependencies = [
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "00c6x4ha7qiaaf88qdbyf240mk146zz78rbm4qwyaxmwlmk7q933";
+
sha256 = "1rbdzl9n8ppyp38y75hw06s17kp922ybj6jfvhz52p83dg6xpm6m";
type = "gem";
};
-
version = "1.3.0";
+
version = "1.3.1";
};
cppjieba_rb = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "0ijzvnm5jclyhf6ls30kv7dqy05f3hbha69f59jwbzdid7dndla5";
+
sha256 = "1bzsr3k926cwz6r0sx6p60cjyhqls7n8fd123f6qmhkfgfspm6ii";
type = "gem";
};
-
version = "0.4.2";
+
version = "0.4.4";
};
crack = {
dependencies = [
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "1rhqn05w27w2mjrf0a6ppb4fxpxbfvyhwgdxa8z886jr4qnhywzb";
+
sha256 = "0625073hwx41c246v9dvkp0rk0xgh9d0sc0gm73dbmlxnjwgalv7";
type = "gem";
};
-
version = "1.17.1";
+
version = "1.21.0";
};
csv = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "0zfn40dvgjk1xv1z8l11hr9jfg3jncwsc9yhzsz4l4rivkpivg8b";
+
sha256 = "0kmx36jjh2sahd989vcvw74lrlv07dqc3rnxchc5sj2ywqsw3w3g";
type = "gem";
};
-
version = "3.3.0";
+
version = "3.3.2";
};
date = {
-
groups = [ "default" ];
+
groups = [
+
"default"
+
"development"
+
"test"
+
];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "149jknsq999gnhy865n33fkk22s0r447k76x9pmcnnwldfv2q7wp";
+
sha256 = "0kz6mc4b9m49iaans6cbx031j9y7ldghpi5fzsdh0n3ixwa8w9mz";
type = "gem";
};
-
version = "3.3.4";
+
version = "3.4.1";
};
debug_inspector = {
groups = [
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "1qcsv29ljfhy76gq4xi8zpn6dc6nv15c41r131bdr38kwpxjzd1n";
+
sha256 = "19xaz5qmw0kg1rdsjh13vk7674bpcmjy6cnddx1cvl80vgkvjr22";
type = "gem";
};
-
version = "3.4.2";
+
version = "3.4.3";
};
digest = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "01qkpbkxq83ip3iysfh2kjrg9sh2n2q91prhyxh3vq10lcfzv9l1";
+
sha256 = "149r5nnr76g0lp0iz7xiw0zf4civrbs5zpmd5zc6agv8xj970bps";
type = "gem";
};
-
version = "3.1.1";
+
version = "3.2.0";
+
};
+
digest-xxhash = {
+
groups = [ "migrations" ];
+
platforms = [ ];
+
source = {
+
remotes = [ "https://rubygems.org" ];
+
sha256 = "1mwqln5078r4arxzngbzvr82fshl1bn836ga9dm17i03khqdi2d9";
+
type = "gem";
+
};
+
version = "0.2.9";
};
discourse-fonts = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "1q1q9fmqc7dir2nj94nai58h26zsh6fqmbr6hfax5d6xpy4pm1yf";
+
sha256 = "18bj5d0hf7bwy0pppah55aawg7yn61sjgjhh03j5lcnkxl9mrlm7";
type = "gem";
};
-
version = "0.0.9";
+
version = "0.0.18";
};
discourse-seed-fu = {
dependencies = [
···
};
version = "2.2.1";
};
+
dry-initializer = {
+
groups = [ "default" ];
+
platforms = [ ];
+
source = {
+
remotes = [ "https://rubygems.org" ];
+
sha256 = "1qy4cv0j0ahabprdbp02nc3r1606jd5dp90lzqg0mp0jz6c9gm9p";
+
type = "gem";
+
};
+
version = "3.2.0";
+
};
email_reply_trimmer = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "1jgcxifm48xq5dz9k47q43pqm5bfnf14l62l3bqhmv8f6z8dw4ki";
+
sha256 = "09f5sq41fb912jxsbzh68hmkwq9gj9p8fg0zbwikf80sxsjkz105";
type = "gem";
};
-
version = "0.1.13";
+
version = "0.2.0";
};
erubi = {
groups = [
···
];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "0qnd6ff4az22ysnmni3730c41b979xinilahzg86bn7gv93ip9pw";
+
sha256 = "1naaxsqkv5b3vklab5sbb9sdpszrjzlfsbqpy7ncbnw510xi10m0";
type = "gem";
};
-
version = "1.13.0";
+
version = "1.13.1";
};
excon = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "0ala6123d3cv965ss48iyi0q4hcbzrznfwv2f1mr91sy98cigq4h";
+
sha256 = "1am69fn9nzj2pa05fd02q4zbzn1g7c9w5g52yjzdsbhm1x9n9g95";
type = "gem";
};
-
version = "0.111.0";
+
version = "1.2.3";
};
execjs = {
groups = [
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "1yywajqlpjhrj1m43s3lfg3i4lkb6pxwccmwps7qw37ndmphdzg8";
+
sha256 = "03a590q16nhqvfms0lh42mp6a1i41w41qpdnf39zjbq5y3l8pjvb";
type = "gem";
};
-
version = "2.9.1";
+
version = "2.10.0";
};
exifr = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "11v201jljn327fwjqcsglrbdnyhivnj7j6nh6wym5zjqgrwxy3kn";
+
sha256 = "155qqhai5z2742aqa4mwkxmqrpcv48siqz55rcx79wvgdg6790vn";
type = "gem";
};
-
version = "1.4.0";
+
version = "1.4.1";
+
};
+
extralite-bundle = {
+
groups = [ "migrations" ];
+
platforms = [ ];
+
source = {
+
remotes = [ "https://rubygems.org" ];
+
sha256 = "1x73a43hjw7f9vwlhfax4rmp7hpwaadvcamnbw31hh94bx3i71lv";
+
type = "gem";
+
};
+
version = "2.8.2";
};
fabrication = {
groups = [
···
faraday = {
dependencies = [
"faraday-net_http"
+
"json"
"logger"
];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "1adx342h7s3imyrwwbda73g9ni1y07qj35br9lrzq4f5mh16qghs";
+
sha256 = "1mls9g490k63rdmjc9shqshqzznfn1y21wawkxrwp2vvbk13jwqm";
type = "gem";
};
-
version = "2.10.0";
+
version = "2.12.2";
};
faraday-net_http = {
dependencies = [ "net-http" ];
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "0f49frpfdr8czwm2mjkfny4pini6fy49b6hamw4jrppl4vsg14ys";
+
sha256 = "0jp5ci6g40d6i50bsywp35l97nc2fpi9a592r2cibwicdb6y9wd1";
type = "gem";
};
-
version = "3.1.1";
+
version = "3.4.0";
};
faraday-retry = {
dependencies = [ "faraday" ];
···
];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "07139870npj59jnl8vmk39ja3gdk3fb5z9vc0lf32y2h891hwqsi";
+
sha256 = "0fgwn1grxf4zxmyqmb9i4z2hr111585n9jnk17y6y7hhs7dv1xi6";
type = "gem";
};
-
version = "1.17.0";
+
version = "1.17.1";
};
fspath = {
groups = [ "default" ];
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "0vwnr6fmxig4pkag86yzbznpxk8ii7rhjz0rrprkqvnymhhfnscz";
+
sha256 = "0rmmp533ypc5c2r3ks8zqxchqkf1g8laig87f7hdfmwz0p07cmcs";
type = "gem";
};
-
version = "4.27.2";
+
version = "4.29.3";
};
guess_html_encoding = {
groups = [ "default" ];
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "1jf9dxgjz6z7fvymyz2acyvn9iyvwkn6d9sk7y4fxwbmfc75yimm";
+
sha256 = "0xqsnx25lm1wwgchvrl5xla5zzk3d6gbkdfj062cwggdsvgfwc1c";
type = "gem";
};
-
version = "1.1.0";
+
version = "1.1.2";
};
hashie = {
groups = [ "default" ];
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "1sxqnaz6wvkwbwzsipwsqcg1zw2kn67x7l362whv87zl5133w60l";
+
sha256 = "0jmvyhjp2v3iq47la7w6psrxbprnbnmzz0hxxski3vzn356x7jv7";
type = "gem";
};
-
version = "3.1.0";
+
version = "3.1.2";
};
htmlentities = {
groups = [ "default" ];
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "1ffix518y7976qih9k1lgnc17i3v6yrlh0a3mckpxdb4wc2vrp16";
+
sha256 = "03sx3ahz1v5kbqjwxj48msw3maplpp2iyzs22l4jrzrqh4zmgfnf";
type = "gem";
};
-
version = "1.14.5";
+
version = "1.14.7";
};
image_optim = {
dependencies = [
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "02iw1plldayr1l8bdw2gshq0h083h0fxwji1m1nfhzikz917c07p";
+
sha256 = "1h3n8x1rlxz4mkk49lij22x1nn0qk5cvir3fsj4x3s382a4x1zsv";
type = "gem";
};
-
version = "0.31.3";
+
version = "0.31.4";
};
image_size = {
groups = [ "default" ];
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "08d2lx42pa8jjav0lcjbzfzmw61b8imxr9041pva8xzqabrczp7h";
+
sha256 = "18pgvl7lfjpichdfh1g50rpz0zpaqrpr52ybn9liv1v9pjn9ysnd";
type = "gem";
};
-
version = "0.7.2";
+
version = "0.8.0";
};
irb = {
dependencies = [
+
"pp"
"rdoc"
"reline"
];
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "05g6vpz3997q4j3xhrliswfx3g5flsn5cfn1p1s4h6dx7c0hbn2k";
+
sha256 = "1478m97wiy6nwg6lnl0szy39p46acsvrhax552vsh1s2mi2sgg6r";
type = "gem";
};
-
version = "1.14.0";
+
version = "1.15.1";
};
iso8601 = {
groups = [ "default" ];
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "0b4qsi8gay7ncmigr0pnbxyb17y3h8kavdyhsh7nrlqwr35vb60q";
+
sha256 = "048danb0x10mpch6mf88mky35zjn6wk4hpbqq68ssbq58i3fzgfj";
type = "gem";
};
-
version = "2.7.2";
+
version = "2.9.1";
};
json-schema = {
-
dependencies = [ "addressable" ];
+
dependencies = [
+
"addressable"
+
"bigdecimal"
+
];
groups = [
"default"
"development"
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "09bq393nrxa7hmphc3li8idgxdnb5hwgj15d0q5qsh4l5g1qvrnm";
+
sha256 = "1gzrf6q4d9kbixj6bpi2bp8dizmqxcmlq30ni86h3ifzpkcrm0mk";
type = "gem";
};
-
version = "4.3.1";
+
version = "5.1.1";
};
json_schemer = {
dependencies = [
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "0dgbrps0ydiyxcgj5n4dny0cmzwj125x1s792l7m5jjrp1rs27wz";
+
sha256 = "093wb42zyy0a7kk7zxdvs0jivm0knlaz9lrsncjxjj2ppcbn3jsn";
type = "gem";
};
-
version = "2.3.0";
+
version = "2.4.0";
};
jwt = {
dependencies = [ "base64" ];
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "04mw326i9vsdcqwm4bf0zvnqw237f8l7022nhlbmak92bqqpg62s";
+
sha256 = "1i8wmzgb5nfhvkx1f6bhdwfm7v772172imh439v3xxhkv3hllhp6";
type = "gem";
};
-
version = "2.8.2";
+
version = "2.10.1";
};
kgio = {
groups = [ "default" ];
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "0gvb1j8xsqxms9mww01rmdl78zkd72zgxaap56bhv8j45z05hp1x";
+
sha256 = "0scnz2fvdczdgadvjn0j9d49118aqm3hj66qh8sd2kv6g1j65164";
type = "gem";
};
-
version = "3.17.0.3";
+
version = "3.17.0.4";
};
libv8-node = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "13gmrl4lq1rfpdn76v5nid2hsajhrw27s6n88j09v26f0axgp4vp";
+
sha256 = "1ki1vjkq8nhmlz7rqi1ic0mjmbjsa7d1bgcvkzdl4q9vhaa5dzvn";
type = "gem";
};
-
version = "18.19.0.0";
+
version = "22.7.0.4";
};
listen = {
dependencies = [
···
logger = {
groups = [
"default"
+
"development"
"test"
];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "0gpg8gzi0xwymw4aaq2iafcbx31i3xzkg3fb30mdxn1d4qhc3dqa";
+
sha256 = "0sz584vw17pwrrc5zg6yd8lqcgfpjf4qplq3s7fr0r3505nybky3";
type = "gem";
};
-
version = "1.6.0";
+
version = "1.6.5";
};
lograge = {
dependencies = [
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "1zkjqf37v2d7s11176cb35cl83wls5gm3adnfkn2zcc61h3nxmqh";
+
sha256 = "07pfa5kgl7k2hxlzzn89qna6bmiyrxlchgbzi0885frsi08agrk1";
type = "gem";
};
-
version = "2.22.0";
+
version = "2.24.0";
};
lru_redux = {
groups = [ "default" ];
···
];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "1pv28xh8mss25fj4nd5r6zds1br8ssr2bpxr0md5pskv38m5qz0f";
+
sha256 = "1y58ba08n4lx123c0hjcc752fc4x802mjy39qj1hq50ak3vpv8br";
type = "gem";
};
-
version = "1.0.2";
+
version = "1.1.0";
};
message_bus = {
dependencies = [ "rack" ];
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "1q1f2sdw3y3y9mnym9dhjgsjr72sq975cfg5c4yx7gwv8nmzbvhk";
+
sha256 = "0x8asxl83msn815lwmb2d7q5p29p7drhjv5va0byhk60v9n16iwf";
type = "gem";
};
-
version = "2.8.7";
+
version = "2.8.8";
};
mini_racer = {
dependencies = [ "libv8-node" ];
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "1ling4ynn7na1cw69wzn8zn00jifwjrnprnynn05rcca1pzs58d1";
+
sha256 = "168a3crdgakm9mk5yrqlqsrx587rm7sk1f2l7sfs9cg87f7xb7ji";
type = "gem";
};
-
version = "0.14.1";
+
version = "0.17.0.pre13";
};
mini_scheduler = {
dependencies = [ "sidekiq" ];
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "19c72wlr0zsrg1fiak61h0z1b3glv2l23041xvlwv2i71fw5xavy";
+
sha256 = "00rmlcnwhi6gnrwpcv2yicm9ij8zs1mhsbx98ic6rmx8iprq9w6j";
type = "gem";
};
-
version = "0.16.0";
+
version = "0.18.0";
};
mini_sql = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "0yrxjmwhfnvcwbj9vscyq0z67sq09zl8qhmzgakq2ywy4yvcpwgg";
+
sha256 = "1vnn88gv935szjz2hndnisfgys19k9z07237w11vpxaad9zn75jj";
type = "gem";
};
-
version = "1.5.0";
+
version = "1.6.0";
};
mini_suffix = {
dependencies = [ "ffi" ];
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "0jj629q3vw5yn90q4di4dyb87pil4a8qfm2srhgy5nc8j2n33v1i";
+
sha256 = "0izrg03wn2yj3gd76ck7ifbm9h2kgy8kpg4fk06ckpy4bbicmwlw";
type = "gem";
};
-
version = "5.24.1";
+
version = "5.25.4";
};
mocha = {
dependencies = [ "ruby2_keywords" ];
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "04k1k9cmdv7q2p1b2z2y1k9dn1hhwjdlwkrp46gfq84v7887xhdl";
+
sha256 = "0lgqyxxdxgfik77a7lk2hjkr6flimgxr4gcbg3y7bg1ybn6m6zcg";
type = "gem";
};
-
version = "2.4.5";
+
version = "2.7.1";
};
msgpack = {
groups = [ "default" ];
···
];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "1a5adcb7bwan09mqhj3wi9ib52hmdzmqg7q08pggn3adibyn5asr";
+
sha256 = "1a5fsgchkpcca4wf3pipbb2jbj523l7fbaq37j10cr0yymwlkc7z";
type = "gem";
};
-
version = "1.7.2";
+
version = "1.7.5";
};
multi_json = {
groups = [ "default" ];
···
};
version = "1.1.1";
};
-
mutex_m = {
-
groups = [ "default" ];
-
platforms = [ ];
-
source = {
-
remotes = [ "https://rubygems.org" ];
-
sha256 = "1ma093ayps1m92q845hmpk0dmadicvifkbf05rpq9pifhin0rvxn";
-
type = "gem";
-
};
-
version = "0.2.0";
-
};
net-http = {
dependencies = [ "uri" ];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "10n2n9aq00ih8v881af88l1zyrqgs5cl3njdw8argjwbl5ggqvm9";
+
sha256 = "1ysrwaabhf0sn24jrp0nnp51cdv0jf688mh5i6fsz63q2c6b48cn";
type = "gem";
};
-
version = "0.4.1";
+
version = "0.6.0";
};
net-imap = {
dependencies = [
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "0rc08fxm10vv73bg0nqyp5bdvl4cvzb3y4cdk4kwmxx414zln652";
+
sha256 = "0ak8w6ypw4lba1y1mdmqwvkrh84ps6h9kd7hn029h9k85j9sirmb";
type = "gem";
};
-
version = "0.4.14";
+
version = "0.5.5";
};
net-pop = {
dependencies = [ "net-protocol" ];
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "017nbw87dpr4wyk81cgj8kxkxqgsgblrkxnmmadc77cg9gflrfal";
+
sha256 = "1a9www524fl1ykspznz54i0phfqya4x45hqaz67in9dvw1lfwpfr";
type = "gem";
};
-
version = "2.7.3";
+
version = "2.7.4";
};
nokogiri = {
dependencies = [
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "15gysw8rassqgdq3kwgl4mhqmrgh7nk2qvrcqp4ijyqazgywn6gq";
+
sha256 = "1gzqcs1kkykj8lrnbxc1iwr1wqmmaml8l6wyxdvy0vqq6gxiqyck";
type = "gem";
};
-
version = "1.16.7";
+
version = "1.18.2";
};
oauth = {
dependencies = [
···
version = "1.4.11";
};
oj = {
-
dependencies = [ "bigdecimal" ];
+
dependencies = [
+
"bigdecimal"
+
"ostruct"
+
];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "0b2narmcw4723lfyy7j0l4pfyv5n0qnmkm4mqgi832p5cg31k090";
+
sha256 = "091kbavd1rfiwr6kn1laladspyk67y6hdlsdilz752nqxm9w3ibg";
type = "gem";
};
-
version = "3.16.4";
+
version = "3.16.9";
};
omniauth = {
dependencies = [
···
dependencies = [
"oauth"
"omniauth"
+
"rack"
];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "0yw2vzx633p9wpdkd4jxsih6mw604mj7f6myyfikmj4d95c8d9z7";
+
sha256 = "1a4dqmlv3if6hb4ddyx4y5v7vkpi7zq901104nl0ya1l0b4j5gr5";
type = "gem";
};
-
version = "1.2.0";
+
version = "1.2.1";
};
omniauth-oauth2 = {
dependencies = [
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "054d6ybgjdzxw567m7rbnd46yp6gkdbc5ihr536vxd3p15vbhjrw";
+
sha256 = "0ygfbbs3c61d32ymja2k6sznj5pr540cip9z91lhzcvsr4zmffpz";
type = "gem";
};
-
version = "3.2.0";
+
version = "3.3.0";
};
openssl-signature_algorithm = {
dependencies = [ "openssl" ];
···
];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "0q4jqq3v1bxlfr9jgqmahnygkvl81lr6s1rhm8qg66c9xr9nz241";
+
sha256 = "073pk2rhyjq2vhdiz3xh2s884r15cvprw1yfjs7h9bmwdf1f9j81";
+
type = "gem";
+
};
+
version = "3.2.0";
+
};
+
ostruct = {
+
groups = [ "default" ];
+
platforms = [ ];
+
source = {
+
remotes = [ "https://rubygems.org" ];
+
sha256 = "05xqijcf80sza5pnlp1c8whdaay8x5dc13214ngh790zrizgp8q9";
type = "gem";
};
-
version = "3.1.0";
+
version = "0.6.1";
};
parallel = {
groups = [
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "145bn5q7ysnjj02jdf1x4nc1f0xxrv7ihgz9yr1j7sinmawqkq0j";
+
sha256 = "1vy7sjs2pgz4i96v5yk9b7aafbffnvq7nn419fgvw55qlavsnsyq";
type = "gem";
};
-
version = "1.25.1";
+
version = "1.26.3";
};
parallel_tests = {
dependencies = [ "parallel" ];
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "0q5q38sfrpwgcqwf5sl6xals5w11xayh8i9nq1vxya2sbrzrgbcq";
+
sha256 = "0nikqa0h9znbg31p3hl4y3280sqggjd7m47gmjydxw6iasm66l09";
type = "gem";
};
-
version = "4.7.1";
+
version = "4.9.0";
};
parser = {
dependencies = [
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "10ly2wind06nylyqa5724ld2l0l46d3ag4fm04ifjgw7qdlpf94d";
+
sha256 = "16qi2qhpszm842awxghmsp64yvvawafq96w5jw98irz3f4bh2jbl";
type = "gem";
};
-
version = "3.3.4.0";
+
version = "3.3.7.0";
};
pg = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "0pfj771p5a29yyyw58qacks464sl86d5m3jxjl5rlqqw2m3v5xq4";
+
sha256 = "1p2gqqrm895fzr9vi8d118zhql67bm8ydjvgqbq1crdnfggzn7kn";
type = "gem";
};
-
version = "1.5.4";
+
version = "1.5.9";
+
};
+
pp = {
+
dependencies = [ "prettyprint" ];
+
groups = [
+
"default"
+
"development"
+
"test"
+
];
+
platforms = [ ];
+
source = {
+
remotes = [ "https://rubygems.org" ];
+
sha256 = "1zxnfxjni0r9l2x42fyq0sqpnaf5nakjbap8irgik4kg1h9c6zll";
+
type = "gem";
+
};
+
version = "0.6.2";
};
prettier_print = {
groups = [
···
};
version = "1.2.1";
};
+
prettyprint = {
+
groups = [
+
"default"
+
"development"
+
"test"
+
];
+
platforms = [ ];
+
source = {
+
remotes = [ "https://rubygems.org" ];
+
sha256 = "14zicq3plqi217w6xahv7b8f7aj5kpxv1j1w98344ix9h5ay3j9b";
+
type = "gem";
+
};
+
version = "0.2.0";
+
};
progress = {
groups = [ "default" ];
platforms = [ ];
···
version = "0.6.1";
};
psych = {
-
dependencies = [ "stringio" ];
+
dependencies = [
+
"date"
+
"stringio"
+
];
groups = [
"default"
"development"
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "0s5383m6004q76xm3lb732bp4sjzb6mxb6rbgn129gy2izsj4wrk";
+
sha256 = "1vjrx3yd596zzi42dcaq5xw7hil1921r769dlbz08iniaawlp9c4";
type = "gem";
};
-
version = "5.1.2";
+
version = "5.2.3";
};
public_suffix = {
groups = [
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "0i2vaww6qcazj0ywva1plmjnj6rk23b01szswc5jhcq7s2cikd1y";
+
sha256 = "11xd3207k5rl6bz0qxhcb3zcr941rhx7ig2f19gxxmdk7s3hcp7j";
type = "gem";
};
-
version = "6.4.2";
+
version = "6.6.0";
};
racc = {
groups = [
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "021s7maw0c4d9a6s07vbmllrzqsj2sgmrwimlh8ffkvwqdjrld09";
+
sha256 = "0byn0c9nkahsl93y9ln5bysq4j31q8xkf2ws42swighxd4lnjzsa";
type = "gem";
};
-
version = "1.8.0";
+
version = "1.8.1";
};
rack = {
groups = [
···
];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "0hj0rkw2z9r1lcg2wlrcld2n3phwrcgqcp7qd1g9a7hwgalh2qzx";
+
sha256 = "0ax778fsfvlhj7c11n0d1wdcb8bxvkb190a9lha5d91biwzyx9g4";
type = "gem";
};
-
version = "2.2.9";
+
version = "2.2.10";
};
rack-mini-profiler = {
dependencies = [ "rack" ];
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "1ysx29gk9k14a14zsp5a8czys140wacvp91fja8xcja0j1hzqq8c";
+
sha256 = "0qy4ylhcfdn65a5mz2hly7g9vl0g13p5a0rmm6sc0sih5ilkcnh0";
type = "gem";
};
-
version = "2.1.0";
+
version = "2.2.0";
};
rackup = {
dependencies = [
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "1wbr03334ba9ilcq25wh9913xciwj0j117zs60vsqm0zgwdkwpp9";
+
sha256 = "0jf2ncj2nx56vh96hh2nh6h4r530nccxh87z7c2f37wq515611ms";
type = "gem";
};
-
version = "1.0.0";
+
version = "1.0.1";
};
rails-dom-testing = {
dependencies = [
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "1pm4z853nyz1bhhqr7fzl44alnx4bjachcr6rh6qjj375sfz3sc6";
+
sha256 = "0q55i6mpad20m2x1lg5pkqfpbmmapk0sjsrvr1sqgnj2hb5f5z1m";
type = "gem";
};
-
version = "1.6.0";
+
version = "1.6.2";
};
rails_failover = {
dependencies = [
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "1yxbh9xim46jqv9ap63ygvwv9bglbkqssn5hvr065gqly32mi407";
+
sha256 = "0pvwgm413fza8q1zc3mmzx504wiljm9d7b9qrkzfzsb2yzpidxs2";
type = "gem";
};
-
version = "2.1.1";
+
version = "2.2.0";
};
rails_multisite = {
dependencies = [
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "1zlfmm19k0p19jzknimqhhzs1phswmfgispph9b5fkag0w3ajxci";
+
sha256 = "1al624kvcxa5ijprali9gxp0bqv1w1573iswb5fkg4p2i4xvimvv";
type = "gem";
};
-
version = "6.0.0";
+
version = "6.1.0";
};
railties = {
dependencies = [
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "1z0slb2dlwrwgqijbk37hl4r9bh4h8vzcyswz6a9srl8lzrljq3c";
+
sha256 = "07zy8b88qxx493pc5sfkzvxqj3zcf363r1128n3hsvfx2vqipwg3";
type = "gem";
};
-
version = "7.1.3.4";
+
version = "7.2.2.1";
};
rainbow = {
groups = [
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "1isj1b3ywgg2m1vdlnr41lpvpm3dbyarf1lla4dfibfmad9csfk9";
+
sha256 = "1455yhd1arccrns3ghhvn4dl6gnrf4zn1xxsaa33ffyqrn399216";
type = "gem";
};
-
version = "1.8.0";
+
version = "1.9.0";
};
rdoc = {
dependencies = [ "psych" ];
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "0ygk2zk0ky3d88v3ll7qh6xqvbvw5jin0hqdi1xkv1dhaw7myzdi";
+
sha256 = "0h00mb8wcj937srrafpjzq0klfi8rfpd4b3xpbvn9ghrn2wnzimy";
type = "gem";
};
-
version = "6.7.0";
+
version = "6.11.0";
};
redcarpet = {
groups = [ "generic_import" ];
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "0ik40vcv7mqigsfpqpca36hpmnx0536xa825ai5qlkv3mmkyf9ss";
+
sha256 = "0qccah61pjvzyyg6mrp27w27dlv6vxlbznzipxjcswl7x3fhsvyb";
type = "gem";
};
-
version = "2.9.2";
+
version = "2.10.0";
};
reline = {
dependencies = [ "io-console" ];
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "0y6kyz7kcilwdpfy3saqfgnar38vr5ys9sp40ndffy6h1znxfbax";
+
sha256 = "1lirwlw59apc8m1wjk85y2xidiv0fkxjn6f7p84yqmmyvish6qjp";
type = "gem";
};
-
version = "0.5.9";
+
version = "0.6.0";
};
request_store = {
dependencies = [ "rack" ];
···
version = "1.7.0";
};
rexml = {
-
dependencies = [ "strscan" ];
groups = [
"default"
-
"development"
"test"
];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "0zr5qpa8lampaqzhdcjcvyqnrqcjl7439mqjlkjz43wdhmpnh4s5";
+
sha256 = "1ch4k2y80r4glr579kxliqnxld2qa91ydq8fiqam38bzpbps3gpg";
type = "gem";
};
-
version = "3.3.2";
+
version = "3.4.0";
};
rinku = {
groups = [ "default" ];
···
];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "072qvvrcqj0yfr3b0j932mlhvn41i38bq37z7z07i3ikagndkqwy";
+
sha256 = "1pchwrkr0994v7mh054lcp0na3bk3mj2sk0dc33bn6bhxrnirj1a";
type = "gem";
};
-
version = "4.3.0";
+
version = "4.5.1";
};
rqrcode = {
dependencies = [
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "0k252n7s80bvjvpskgfm285a3djjjqyjcarlh3aq7a4dx2s94xsm";
+
sha256 = "001kazj244cb6fbkmh7ap74csbr78717qaskqzqpir1q8xpdmywl";
type = "gem";
};
-
version = "3.13.0";
+
version = "3.13.2";
};
rspec-expectations = {
dependencies = [
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "0022nxs9gqfhx35n4klibig770n0j31pnkd8anz00yvrvkdghk41";
+
sha256 = "0n3cyrhsa75x5wwvskrrqk56jbjgdi2q1zx0irllf0chkgsmlsqf";
type = "gem";
};
-
version = "3.13.1";
+
version = "3.13.3";
};
rspec-html-matchers = {
dependencies = [
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "0f3vgp43hajw716vmgjv6f4ar6f97zf50snny6y3fy9kkj4qjw88";
+
sha256 = "1vxxkb2sf2b36d8ca2nq84kjf85fz4x7wqcvb8r6a5hfxxfk69r3";
type = "gem";
};
-
version = "3.13.1";
+
version = "3.13.2";
+
};
+
rspec-multi-mock = {
+
dependencies = [ "rspec" ];
+
groups = [
+
"development"
+
"test"
+
];
+
platforms = [ ];
+
source = {
+
remotes = [ "https://rubygems.org" ];
+
sha256 = "0k3rafylxilq9jzdz450vgiwf3bvz4a9l3ppmgncv78xipr71518";
+
type = "gem";
+
};
+
version = "0.3.1";
};
rspec-rails = {
dependencies = [
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "0nqwvyma86zchh4ki416h7cms38h521ghyypaq27b6yvkmp3h8yw";
+
sha256 = "0izfwfb9bfb5q3wjgjc85b9nlkribqn8vk75zadafv08qilmnn4l";
type = "gem";
};
-
version = "6.1.3";
+
version = "7.1.0";
};
rspec-support = {
groups = [
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "03z7gpqz5xkw9rf53835pa8a9vgj4lic54rnix9vfwmp2m7pv1s8";
+
sha256 = "1v6v6xvxcpkrrsrv7v1xgf7sl0d71vcfz1cnrjflpf6r7x3a58yf";
type = "gem";
};
-
version = "3.13.1";
+
version = "3.13.2";
};
rss = {
dependencies = [ "rexml" ];
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "1wv27axi39hhr0nmaffdl5bdjqiafcvp9xhfgnsgfczsblja50sn";
+
sha256 = "0dv74a07j3ih5ykyszs1k2cjvgs5c1pzrvcb1wc2bfai8p038qml";
type = "gem";
};
-
version = "0.3.0";
+
version = "0.3.1";
};
rswag-specs = {
dependencies = [
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "1iyqd95l8r8m6jna451xb20lsp0jiajk1gbw845qlyqf6d69xyx2";
+
sha256 = "149apnslj99w2fvhlwk39k9wf5zlh1f03j0xs8pbvc08qj2n18lb";
type = "gem";
};
-
version = "2.13.0";
+
version = "2.16.0";
};
rtlcss = {
dependencies = [ "mini_racer" ];
···
"parser"
"rainbow"
"regexp_parser"
-
"rexml"
"rubocop-ast"
"ruby-progressbar"
"unicode-display_width"
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "18g462bccr0rvszc7kirr89laggdf6254p7pqsckk3izg901chv2";
+
sha256 = "1ypwxjy2cp44278m9ljg3s937n2cd6x4yskcyzf1k9m3hkjd3pyk";
type = "gem";
};
-
version = "1.65.0";
+
version = "1.71.1";
};
rubocop-ast = {
dependencies = [ "parser" ];
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "063qgvqbyv354icl2sgx758z22wzq38hd9skc3n96sbpv0cdc1qv";
+
sha256 = "1bi6pgnii77763dzwhafcp8lrmnh4n1bqbdimhc9lfj4zs96gpsg";
type = "gem";
};
-
version = "1.31.3";
+
version = "1.38.0";
};
rubocop-capybara = {
dependencies = [ "rubocop" ];
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "1bcy1zl88f4fxjsda2nf6k13kqrj60z8nsqdv9z51fdkv0aj82wk";
+
sha256 = "13n46107615lc8lkx4dh38hpzv4qxx4a0m6dvf0r21zxnvz7ysyl";
type = "gem";
};
-
version = "3.8.1";
+
version = "3.9.3";
};
rubocop-factory_bot = {
dependencies = [ "rubocop" ];
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "19g6m8ladix1dq8darrqnhbj6n3cgp2ivxnh48yj3nrgw0z97229";
+
sha256 = "1ahpgc22shmkk1n96rz3islcpx5sgg4z3mblynjz8qjxipsgrhj1";
type = "gem";
};
-
version = "2.25.1";
+
version = "2.29.1";
};
rubocop-rspec = {
dependencies = [ "rubocop" ];
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "0495y1bwv5j6r9dak7860i6qnm68c53vz2bx2js5lwm6p7py147f";
+
sha256 = "11a89mzbby49hbd8nhkjrxpr8bq24fafl728mjkk15ccd8xw28c7";
type = "gem";
};
-
version = "3.0.3";
+
version = "3.4.0";
};
rubocop-rspec_rails = {
dependencies = [
···
];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "0hnalxnvli6248g34n0bj8p3v35vpabak34qjg778bbaavbqg5h5";
+
sha256 = "097ac9ns2j29zj5fw08libz8izibrlfgg6vkj55d4bzrii296qq2";
type = "gem";
};
-
version = "1.7.0";
+
version = "1.7.1";
};
ruby-progressbar = {
groups = [
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "11kqx5yp6syd99k1ksnw84b0sc3cr7icf63dibn2m025qg27ml2i";
+
sha256 = "032qqqaj5v09a7r5jpblv7dc37f278qv3b1nag9wsbn6kb4dslbk";
type = "gem";
};
-
version = "0.7.1";
+
version = "0.7.2";
};
ruby2_keywords = {
groups = [
···
version = "0.0.5";
};
rubyzip = {
-
groups = [ "default" ];
+
groups = [
+
"default"
+
"test"
+
];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "0grps9197qyxakbpw02pda59v45lfgbgiyw48i0mq9f2bn9y6mrz";
+
sha256 = "05an0wz87vkmqwcwyh5rjiaavydfn5f4q1lixcsqkphzvj7chxw5";
type = "gem";
};
-
version = "2.3.2";
+
version = "2.4.1";
};
sanitize = {
dependencies = [
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "1c9j1rwdp87k7b7mawf8agpdycdr2dsl2wvjipmcy1c55kllp2qp";
+
sha256 = "111r4xdcf6ihdnrs6wkfc6nqdzrjq0z69x9sf83r7ri6fffip796";
type = "gem";
};
-
version = "6.1.2";
+
version = "7.0.0";
};
sass-embedded = {
dependencies = [
···
};
version = "1.77.7";
};
+
securerandom = {
+
groups = [
+
"default"
+
"development"
+
"test"
+
];
+
platforms = [ ];
+
source = {
+
remotes = [ "https://rubygems.org" ];
+
sha256 = "1cd0iriqfsf1z91qg271sm88xjnfd92b832z49p1nd542ka96lfc";
+
type = "gem";
+
};
+
version = "0.4.1";
+
};
selenium-devtools = {
dependencies = [ "selenium-webdriver" ];
groups = [ "test" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "0ph7b947h5cgqyhb5a4jk467bggx48xy619ggh6p38ys8bjszp1l";
+
sha256 = "076vwy4x41hahcwni4bjkpc6fira79y1f9qbvx6w5ciwvn99k9qa";
type = "gem";
};
-
version = "0.126.0";
+
version = "0.132.0";
};
selenium-webdriver = {
dependencies = [
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "00dq3450kadsvxh1lpndasy0bab0ilrjhrnvlicfmkvrx3gfs2j9";
+
sha256 = "1lw9b8gxr921akpc02zvwkig5m0m6y6xd438c6f1ysf3c8h75xsc";
type = "gem";
};
-
version = "4.23.0";
+
version = "4.28.0";
};
shoulda-matchers = {
dependencies = [ "activesupport" ];
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "1pfq0w167v4055k0km64sxik1qslhsi32wl2jlidmfzkqmcw00m7";
+
sha256 = "1c082vpfdf3865xq6xayxw2hwqswhnc9g030p1gi4hmk9dzvnmch";
type = "gem";
};
-
version = "6.2.0";
+
version = "6.4.0";
};
sidekiq = {
dependencies = [
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "0yx01bxa8pbf9ip4hagqkp5m0mqfnwnw2xk8kjraiywz4lrss6jb";
+
sha256 = "02zi3rwihp7rlnp9x18c9idnkx7x68w6jmxdhyc0xrhjwrz0pasx";
type = "gem";
};
-
version = "0.12.3";
+
version = "0.13.1";
};
simplecov_json_formatter = {
groups = [
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "0lyc6mx4yalsnxc9yp4a5xra4nz1nwwbk5634wlfncml0ll1bnnw";
+
sha256 = "10ykzsa76cf8kvbfkszlvbyn4ckcx1mxjhfvwxzs7y28cljhzhkj";
type = "gem";
};
-
version = "3.7.3";
+
version = "3.7.5";
};
sprockets-rails = {
dependencies = [
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "0j7gwm749b3ff6544wxa878fpd1kvf2qc9fafassi8c7735jcin4";
+
sha256 = "17hiqkdpcjyyhlm997mgdcr45v35j5802m5a979i5jgqx5n8xs59";
type = "gem";
};
-
version = "3.5.1";
+
version = "3.5.2";
};
sqlite3 = {
dependencies = [ "mini_portile2" ];
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "0k8myqn1g7sfmxs1h0x7jijh5ybszxw5153l0aq0w1cxp3zm6vij";
+
sha256 = "0sqshkafxa1r34yj4yxisd4kddmjq9jrhx6azqy3z71nwqv01yl7";
type = "gem";
};
-
version = "2.0.2";
+
version = "2.5.0";
};
sshkey = {
groups = [ "default" ];
···
];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "1gdqqwnampxmc54nf6zfy9apkmkpdavzipvfssmjlhnrrjy8qh7f";
+
sha256 = "03788mbipmihq2w7rznzvv0ks0s9z1321k1jyr6ffln8as3d5xmg";
type = "gem";
};
-
version = "0.2.26";
+
version = "0.2.27";
};
stringio = {
groups = [
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "07mfqb40b2wh53k33h91zva78f9zwcdnl85jiq74wnaw2wa6wiak";
+
sha256 = "0cd1kdrf62p2ya3ia4rz49d5012bqinvqjmcgkakknswz0l1hkr0";
type = "gem";
};
-
version = "3.1.1";
-
};
-
strscan = {
-
groups = [
-
"default"
-
"development"
-
"test"
-
];
-
platforms = [ ];
-
source = {
-
remotes = [ "https://rubygems.org" ];
-
sha256 = "0mamrl7pxacbc79ny5hzmakc9grbjysm3yy6119ppgsg44fsif01";
-
type = "gem";
-
};
-
version = "3.1.0";
+
version = "3.1.2";
};
syntax_tree = {
dependencies = [ "prettier_print" ];
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "0lxik4ngvbphivyhss9i59c67zxkc0z7k0r683qshw1gdkfxzd8f";
+
sha256 = "1vsk2ca9kfrxhyd2xiiyr28hmxkh9vd8j2vwl5f1yfnkv4z52n8s";
type = "gem";
};
-
version = "1.3.3.1";
+
version = "1.4.4";
};
thor = {
groups = [
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "1vq1fjp45az9hfp6fxljhdrkv75cvbab1jfrwcw738pnsiqk8zps";
+
sha256 = "1nmymd86a0vb39pzj2cwv57avdrl6pl3lf5bsz58q594kqxjkw7f";
type = "gem";
};
-
version = "1.3.1";
+
version = "1.3.2";
};
timeout = {
-
groups = [ "default" ];
+
groups = [
+
"default"
+
"development"
+
"test"
+
];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "16mvvsmx90023wrhf8dxc1lpqh0m8alk65shb7xcya6a9gflw7vg";
+
sha256 = "03p31w5ghqfsbz5mcjzvwgkw3h9lbvbknqvrdliy8pxmn9wz02cm";
type = "gem";
};
-
version = "0.4.1";
+
version = "0.4.3";
+
};
+
trilogy = {
+
groups = [ "migrations" ];
+
platforms = [ ];
+
source = {
+
remotes = [ "https://rubygems.org" ];
+
sha256 = "0zq6yrp1074yd5lflz7yqzpicpcg4bxrl7sxw5c4g2m67dk3pmm2";
+
type = "gem";
+
};
+
version = "2.9.0";
};
tzinfo = {
dependencies = [ "concurrent-ruby" ];
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "1rg1dmx6mknjazb8qq0j9sb9fah470my5sbjb6f3pa6si5018682";
+
sha256 = "02yz3x0qxnnwbf7k18yck5pggbnyy43rq0d5w2r6rwlk3981m31d";
type = "gem";
};
-
version = "1.2024.1";
+
version = "1.2025.1";
};
uglifier = {
dependencies = [ "execjs" ];
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "0wgh7bzy68vhv9v68061519dd8samcy8sazzz0w3k8kqpy3g4s5f";
+
sha256 = "1apmqsad2y1avffh79f4lfysfppz94fvpyi7lkkj3z8bn60jpm3m";
type = "gem";
};
-
version = "4.2.0";
+
version = "4.2.1";
};
unf = {
-
dependencies = [ "unf_ext" ];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "0bh2cf73i2ffh4fcpdn9ir4mhq8zi50ik0zqa1braahzadx536a9";
+
sha256 = "1aq4bfddln9kx4lycqdgmahsssljsm3vfgbmb6a3y3nq07hw5g76";
type = "gem";
};
-
version = "0.1.4";
+
version = "0.2.0";
};
-
unf_ext = {
-
groups = [ "default" ];
+
unicode-display_width = {
+
dependencies = [ "unicode-emoji" ];
+
groups = [
+
"default"
+
"development"
+
"test"
+
];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "1sf6bxvf6x8gihv6j63iakixmdddgls58cpxpg32chckb2l18qcj";
+
sha256 = "1has87asspm6m9wgqas8ghhhwyf2i1yqrqgrkv47xw7jq3qjmbwc";
type = "gem";
};
-
version = "0.0.9.1";
+
version = "3.1.4";
};
-
unicode-display_width = {
+
unicode-emoji = {
groups = [
"default"
"development"
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "1d0azx233nags5jx3fqyr23qa2rhgzbhv8pxp46dgbg1mpf82xky";
+
sha256 = "0ajk6rngypm3chvl6r0vwv36q1931fjqaqhjjya81rakygvlwb1c";
type = "gem";
};
-
version = "2.5.0";
+
version = "4.0.4";
};
unicorn = {
dependencies = [
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "094gk72ckazf495qc76gk09b5i318d5l9m7bicg2wxlrjcm3qm96";
+
sha256 = "09qyg6a29cfgd46qid8qvx4sjbv596v19ym73xvhanbyxd6500xk";
+
type = "gem";
+
};
+
version = "1.0.2";
+
};
+
useragent = {
+
groups = [
+
"default"
+
"development"
+
"test"
+
];
+
platforms = [ ];
+
source = {
+
remotes = [ "https://rubygems.org" ];
+
sha256 = "0i1q2xdjam4d7gwwc35lfnz0wyyzvnca0zslcfxm9fabml9n83kh";
type = "gem";
};
-
version = "0.13.0";
+
version = "0.16.11";
};
version_gem = {
groups = [ "default" ];
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "158d2ikjfzw43kgm095klp43ihphk0cv5xjprk44w73xfv03i9qg";
+
sha256 = "08kixkdp41dw39kqfxf2wp5m4z9b6fxg6yfa6xin0wy7dxzka0dy";
type = "gem";
};
-
version = "3.23.1";
+
version = "3.24.0";
};
webrick = {
groups = [
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "13qm7s0gr2pmfcl7dxrmq38asaza4w0i2n9my4yzs499j731wh8r";
+
sha256 = "12d9n8hll67j737ym2zw4v23cn4vxyfkb6vyv1rzpwv6y6a3qbdl";
type = "gem";
};
-
version = "1.8.1";
+
version = "1.9.1";
};
websocket = {
groups = [
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "1r0b8w58p7gy06wph1qdjv2p087hfnmhd9jk23vjdj803dn761am";
+
sha256 = "14k9lb9a60r9z2zcqg08by9iljrrgjxdkbd91gw17rkqkqwi1sd6";
type = "gem";
};
-
version = "0.9.36";
+
version = "0.9.37";
};
zeitwerk = {
groups = [
"default"
"development"
+
"migrations"
"test"
];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "08cfb35232p9s1r4jqv8wacv38vxh699mgbr9y03ga89gx9lipqp";
+
sha256 = "0mi7b90hvc6nqv37q27df4i2m27yy56yfy2ki5073474a1h9hi89";
type = "gem";
};
-
version = "2.6.16";
+
version = "2.7.1";
};
+34 -21
pkgs/servers/web-apps/discourse/update.py
···
#!/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 prefetch-yarn-deps
+
#! nix-shell -i python3 -p "python3.withPackages (ps: with ps; [ requests click click-log packaging ])" bundix bundler nix-update nurl
from __future__ import annotations
import click
···
return self._latest_commit_sha
-
def get_yarn_lock_hash(self, rev: str, path: str):
-
yarnLockText = self.get_file(path, rev)
-
with tempfile.NamedTemporaryFile(mode='w') as lockFile:
-
lockFile.write(yarnLockText)
-
hash = subprocess.check_output(['prefetch-yarn-deps', lockFile.name]).decode().strip()
-
return subprocess.check_output(["nix", "hash", "to-sri", "--type", "sha256", hash]).decode().strip()
-
def get_file(self, filepath, rev):
"""Return file contents at a given rev.
···
r = requests.get(f'https://raw.githubusercontent.com/{self.owner}/{self.repo}/{rev}/{filepath}')
r.raise_for_status()
return r.text
+
+
+
def _get_build_lock_hash():
+
nixpkgs_path = Path(__file__).parent / '../../../../'
+
output = subprocess.run(['nix-build', '-A', 'discourse'], text=True, cwd=nixpkgs_path, capture_output=True)
+
# The line is of the form " got: sha256-xxx"
+
lines = [i.strip() for i in output.stderr.splitlines()]
+
new_hash_lines = [i.strip("got:").strip() for i in lines if i.startswith("got:")]
+
if len(new_hash_lines) == 0:
+
if output.returncode != 0:
+
print("Error while fetching new hash with nix build")
+
print(output.stderr)
+
print("No hash change is needed")
+
return None
+
if len(new_hash_lines) > 1:
+
print(new_hash_lines)
+
raise Exception("Got an unexpected number of new hash lines:")
+
return new_hash_lines[0]
def _call_nix_update(pkg, version):
···
_call_nix_update('discourse', version.version)
-
old_yarn_hash = _nix_eval('discourse.assets.yarnOfflineCache.outputHash')
-
new_yarn_hash = repo.get_yarn_lock_hash(version.tag, "yarn.lock")
-
click.echo(f"Updating yarn lock hash: {old_yarn_hash} -> {new_yarn_hash}")
+
old_pnpm_hash = _nix_eval('discourse.assets.pnpmDeps.outputHash')
+
new_pnpm_hash = _get_build_lock_hash()
+
if new_pnpm_hash is not None:
+
click.echo(f"Updating yarn lock hash: {old_pnpm_hash} -> {new_pnpm_hash}")
-
with open(Path(__file__).parent / "default.nix", 'r+') as f:
-
content = f.read()
-
content = content.replace(old_yarn_hash, new_yarn_hash)
-
f.seek(0)
-
f.write(content)
-
f.truncate()
+
with open(Path(__file__).parent / "default.nix", 'r+') as f:
+
content = f.read()
+
content = content.replace(old_pnpm_hash, new_pnpm_hash)
+
f.seek(0)
+
f.write(content)
+
f.truncate()
@cli.command()
···
{'name': 'discourse-saved-searches'},
{'name': 'discourse-solved'},
{'name': 'discourse-spoiler-alert'},
-
{'name': 'discourse-voting'},
+
{'name': 'discourse-voting', 'repo_name': "discourse-topic-voting"},
{'name': 'discourse-yearly-review'},
]
···
# https://meta.discourse.org/t/pinning-plugin-and-theme-versions-for-older-discourse-installs/156971
# this makes sure we don't upgrade plugins to revisions that
# are incompatible with the packaged Discourse version
+
repo_latest_commit = repo.latest_commit_sha
try:
-
compatibility_spec = repo.get_file('.discourse-compatibility', repo.latest_commit_sha)
+
compatibility_spec = repo.get_file('.discourse-compatibility', repo_latest_commit)
versions = [(DiscourseVersion(discourse_version), plugin_rev.strip(' '))
for [discourse_version, plugin_rev]
in [line.lstrip("< ").split(':')
···
discourse_version = DiscourseVersion(_get_current_package_version('discourse'))
versions = list(filter(lambda ver: ver[0] >= discourse_version, versions))
if versions == []:
-
rev = repo.latest_commit_sha
+
rev = repo_latest_commit
else:
rev = versions[0][1]
print(rev)
except requests.exceptions.HTTPError:
-
rev = repo.latest_commit_sha
+
rev = repo_latest_commit
filename = _nix_eval(f'builtins.unsafeGetAttrPos "src" discourse.plugins.{name}')
if filename is None: