diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index be7bd9bd31cb..bca0aad1b873 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -24970,10 +24970,11 @@ name = "Mason Mackaman"; }; usertam = { - email = "nix@usertam.dev"; + name = "Samuel Tam"; + email = "code@usertam.dev"; github = "usertam"; githubId = 22500027; - name = "Samuel Tam"; + keys = [ { fingerprint = "EC4E E490 3C82 3698 2CAB D206 2D87 60B0 229E 2560"; } ]; }; uskudnik = { email = "urban.skudnik@gmail.com"; diff --git a/nixos/modules/services/monitoring/prometheus/exporters.nix b/nixos/modules/services/monitoring/prometheus/exporters.nix index caf7afcc1e07..258d13e3c7c7 100644 --- a/nixos/modules/services/monitoring/prometheus/exporters.nix +++ b/nixos/modules/services/monitoring/prometheus/exporters.nix @@ -56,6 +56,7 @@ let "blackbox" "borgmatic" "buildkite-agent" + "ecoflow" "chrony" "collectd" "deluge" @@ -122,6 +123,7 @@ let "statsd" "surfboard" "systemd" + "tibber" "unbound" "unpoller" "v2ray" diff --git a/nixos/modules/services/monitoring/prometheus/exporters/ecoflow.nix b/nixos/modules/services/monitoring/prometheus/exporters/ecoflow.nix new file mode 100644 index 000000000000..0b85f614016f --- /dev/null +++ b/nixos/modules/services/monitoring/prometheus/exporters/ecoflow.nix @@ -0,0 +1,151 @@ +{ + config, + lib, + pkgs, + ... +}: +let + cfg = config.services.prometheus.exporters.ecoflow; + inherit (lib) mkOption types; +in +{ + port = 2112; + extraOpts = { + exporterType = mkOption { + type = types.enum [ + "rest" + "mqtt" + ]; + default = "rest"; + example = "mqtt"; + description = '' + The type of exporter you'd like to use. + Possible values: "rest" and "mqtt". Default value is "rest". + Choose "rest" for the ecoflow online cloud api use "rest" and define: accessKey, secretKey. + Choose "mqtt" for the lan realtime integration use "mqtt" and define: email, password, devices. + ''; + }; + ecoflowAccessKeyFile = mkOption { + type = types.path; + default = /etc/ecoflow-access-key; + description = '' + Path to the file with your personal api access string from the Ecoflow development website https://developer-eu.ecoflow.com. + Do to share or commit your plaintext scecrets to a public repo use: agenix or soaps. + ''; + }; + ecoflowSecretKeyFile = mkOption { + type = types.path; + default = /etc/ecoflow-secret-key; + description = '' + Path to the file with your personal api secret string from the Ecoflow development website https://developer-eu.ecoflow.com. + Do to share or commit your plaintext scecrets to a public repo use: agenix or soaps. + ''; + }; + ecoflowEmailFile = mkOption { + type = types.path; + default = /etc/ecoflow-email; + description = '' + Path to the file with your personal ecoflow app login email address. + Do to share or commit your plaintext scecrets to a public repo use: agenix or soaps. + ''; + }; + ecoflowPasswordFile = mkOption { + type = types.path; + default = /etc/ecoflow-password; + description = '' + Path to the file with your personal ecoflow app login email password. + Do to share or commit your plaintext passwords to a public repo use: agenix or soaps here! + ''; + }; + ecoflowDevicesFile = mkOption { + type = types.path; + default = /etc/ecoflow-devices; + description = '' + File must contain one line, example: R3300000,R3400000,NC430000,.... + The list of devices serial numbers separated by comma. For instance: SN1,SN2,SN3. + Instead of "devicesFile" you can specify "devicesPrettynamesFile" which will also work. You can specify both. + Do to share or commit your plaintext serial numbers to a public repo use: agenix or soaps. + ''; + }; + ecoflowDevicesPrettyNamesFile = mkOption { + type = types.path; + default = /etc/ecoflow-devices-pretty-names; + description = '' + File must contain one line, example: {"R3300000":"Delta 2","R3400000":"Delta Pro",...} + The key/value map of custom names for your devices. Key is a serial number, value is a device name you want + to see in Grafana Dashboard. It's helpful to see a meaningful name in Grafana dashboard instead of a serialnumber. + Do to share or commit your plaintext serial numbers to a public repo use: agenix or soaps. + ''; + }; + debug = mkOption { + type = types.str; + default = "0"; + example = "1"; + description = '' + Enable debug log messages. Disabled by default. Set to "1" to enable. + ''; + }; + prefix = mkOption { + type = types.str; + default = "ecoflow"; + example = "ecoflow_privateSite"; + description = '' + The prefix that will be added to all metrics. Default value is ecoflow. + For instance metric bms_bmsStatus.minCellTemp will be exported to prometheus as ecoflow.bms_bmsStatus.minCellTemp. + With default value "ecoflow" you can use Grafana Dashboard with ID 17812 without any changes. + ''; + }; + scrapingInterval = mkOption { + type = types.ints.positive; + default = 30; + example = 120; + description = '' + Scrapping interval in seconds. How often should the exporter execute requests to Ecoflow Rest API in order to get the data. + Default value is 30 seconds. Align this value with your prometheus scraper interval settings. + ''; + }; + mqttDeviceOfflineThreshold = mkOption { + type = types.ints.positive; + default = 60; + example = 120; + description = '' + The threshold in seconds which indicates how long we should wait for a metric message from MQTT broker. + Default value: 60 seconds. If we don't receive message within 60 seconds we consider that device is offline. + If we don't receive messages within the threshold for all devices, we'll try to reconnect to the MQTT broker. + There is a strange behavior that MQTT stop sends messages if you open Ecoflow mobile app and then close it). + ''; + }; + }; + serviceOpts = { + environment = { + PROMETHEUS_ENABLED = "1"; + EXPORTER_TYPE = cfg.exporterType; + DEBUG_ENABLED = cfg.debug; + METRIC_PREFIX = cfg.prefix; + SCRAPING_INTERVAL = toString cfg.scrapingInterval; + MQTT_DEVICE_OFFLINE_THRESHOLD_SECONDS = toString cfg.mqttDeviceOfflineThreshold; + }; + script = '' + export ECOFLOW_ACCESS_KEY="$(cat ${toString cfg.ecoflowAccessKeyFile})" + export ECOFLOW_SECRET_KEY="$(cat ${toString cfg.ecoflowSecretKeyFile})" + export ECOFLOW_EMAIL="$(cat ${toString cfg.ecoflowEmailFile})" + export ECOFLOW_PASSWORD="$(cat ${toString cfg.ecoflowPasswordFile})" + export ECOFLOW_DEVICES="$(cat ${toString cfg.ecoflowDevicesFile})" + export ECOFLOW_DEVICES_PRETTY_NAMES="$(cat ${toString cfg.ecoflowDevicesPrettyNamesFile})" + exec ${lib.getExe pkgs.go-ecoflow-exporter}''; + serviceConfig = { + AmbientCapabilities = [ "CAP_NET_BIND_SERVICE" ]; + CapabilityBoundingSet = [ "CAP_NET_BIND_SERVICE" ]; + MemoryDenyWriteExecute = true; + NoNewPrivileges = true; + ProtectSystem = "strict"; + Restart = "on-failure"; + RestrictAddressFamilies = [ + "AF_INET" + "AF_INET6" + ]; + RestrictNamespaces = true; + User = "prometheus"; # context needed to runtime access encrypted token and secrets + }; + }; +} diff --git a/nixos/modules/services/monitoring/prometheus/exporters/tibber.nix b/nixos/modules/services/monitoring/prometheus/exporters/tibber.nix new file mode 100644 index 000000000000..670f23a54d20 --- /dev/null +++ b/nixos/modules/services/monitoring/prometheus/exporters/tibber.nix @@ -0,0 +1,44 @@ +{ + config, + lib, + pkgs, + ... +}: +let + cfg = config.services.prometheus.exporters.tibber; + inherit (lib) mkOption types concatStringsSep; +in +{ + port = 9489; + extraOpts = { + apiTokenPath = mkOption { + type = types.path; + default = null; + description = '' + Add here the path to your personal Tibber API Token ('Bearer Token') File. + Get your personal Tibber API Token here: https://developer.tibber.com + Do not share your personal plaintext Tibber API Token via github. (see: ryantm/agenix, mic92/sops) + ''; + }; + }; + serviceOpts = { + script = '' + export TIBBER_TOKEN="$(cat ${toString cfg.apiTokenPath})" + exec ${pkgs.prometheus-tibber-exporter}/bin/tibber-exporter --listen-address ${cfg.listenAddress}:${toString cfg.port} ${concatStringsSep " \\\n " cfg.extraFlags} + ''; + serviceConfig = { + AmbientCapabilities = [ "CAP_NET_BIND_SERVICE" ]; + CapabilityBoundingSet = [ "CAP_NET_BIND_SERVICE" ]; + MemoryDenyWriteExecute = true; + NoNewPrivileges = true; + ProtectSystem = "strict"; + Restart = "on-failure"; + RestrictAddressFamilies = [ + "AF_INET" + "AF_INET6" + ]; + RestrictNamespaces = true; + User = "prometheus"; # context needed to runtime access encrypted token and secrets + }; + }; +} diff --git a/nixos/modules/services/web-apps/glance.nix b/nixos/modules/services/web-apps/glance.nix index fbc310daea77..69170858f7c8 100644 --- a/nixos/modules/services/web-apps/glance.nix +++ b/nixos/modules/services/web-apps/glance.nix @@ -125,7 +125,7 @@ in ProtectKernelModules = true; ProtectKernelTunables = true; ProtectControlGroups = true; - ProcSubset = "pid"; + ProcSubset = "all"; RestrictNamespaces = true; RestrictRealtime = true; SystemCallArchitectures = "native"; diff --git a/nixos/tests/rke2/multi-node.nix b/nixos/tests/rke2/multi-node.nix index 57447388290b..075e0c5146ca 100644 --- a/nixos/tests/rke2/multi-node.nix +++ b/nixos/tests/rke2/multi-node.nix @@ -6,26 +6,32 @@ import ../make-test-python.nix ( ... }: let - pauseImage = pkgs.dockerTools.streamLayeredImage { - name = "test.local/pause"; + throwSystem = throw "RKE2: Unsupported system: ${pkgs.stdenv.hostPlatform.system}"; + coreImages = + { + aarch64-linux = rke2.images-core-linux-arm64-tar-zst; + x86_64-linux = rke2.images-core-linux-amd64-tar-zst; + } + .${pkgs.stdenv.hostPlatform.system} or throwSystem; + canalImages = + { + aarch64-linux = rke2.images-canal-linux-arm64-tar-zst; + x86_64-linux = rke2.images-canal-linux-amd64-tar-zst; + } + .${pkgs.stdenv.hostPlatform.system} or throwSystem; + helloImage = pkgs.dockerTools.buildImage { + name = "test.local/hello"; tag = "local"; - contents = pkgs.buildEnv { - name = "rke2-pause-image-env"; + compressor = "zstd"; + copyToRoot = pkgs.buildEnv { + name = "rke2-hello-image-env"; paths = with pkgs; [ - tini - bashInteractive coreutils socat ]; }; - config.Entrypoint = [ - "/bin/tini" - "--" - "/bin/sleep" - "inf" - ]; }; - # A daemonset that responds 'server' on port 8000 + # A daemonset that responds 'hello' on port 8000 networkTestDaemonset = pkgs.writeText "test.yml" '' apiVersion: apps/v1 kind: DaemonSet @@ -44,113 +50,133 @@ import ../make-test-python.nix ( spec: containers: - name: test - image: test.local/pause:local + image: test.local/hello:local imagePullPolicy: Never resources: limits: memory: 20Mi - command: ["socat", "TCP4-LISTEN:8000,fork", "EXEC:echo server"] + command: ["socat", "TCP4-LISTEN:8000,fork", "EXEC:echo hello"] ''; tokenFile = pkgs.writeText "token" "p@s$w0rd"; - agentTokenFile = pkgs.writeText "agent-token" "p@s$w0rd"; + agentTokenFile = pkgs.writeText "agent-token" "agentP@s$w0rd"; + # Let flannel use eth1 to enable inter-node communication in tests + canalConfig = pkgs.writeText "rke2-canal-config.yaml" '' + apiVersion: helm.cattle.io/v1 + kind: HelmChartConfig + metadata: + name: rke2-canal + namespace: kube-system + spec: + valuesContent: |- + flannel: + iface: "eth1" + ''; in { name = "${rke2.name}-multi-node"; meta.maintainers = rke2.meta.maintainers; nodes = { - server1 = - { pkgs, ... }: + server = { - networking.firewall.enable = false; - networking.useDHCP = false; - networking.defaultGateway = "192.168.1.1"; - networking.interfaces.eth1.ipv4.addresses = pkgs.lib.mkForce [ - { - address = "192.168.1.1"; - prefixLength = 24; - } + config, + nodes, + pkgs, + ... + }: + { + # Setup image archives to be imported by rke2 + systemd.tmpfiles.settings."10-rke2" = { + "/var/lib/rancher/rke2/agent/images/rke2-images-core.tar.zst" = { + "L+".argument = "${coreImages}"; + }; + "/var/lib/rancher/rke2/agent/images/rke2-images-canal.tar.zst" = { + "L+".argument = "${canalImages}"; + }; + "/var/lib/rancher/rke2/agent/images/hello.tar.zst" = { + "L+".argument = "${helloImage}"; + }; + # Copy the canal config so that rke2 can write the remaining default values to it + "/var/lib/rancher/rke2/server/manifests/rke2-canal-config.yaml" = { + "C".argument = "${canalConfig}"; + }; + }; + + # Canal CNI with VXLAN + networking.firewall.allowedUDPPorts = [ 8472 ]; + networking.firewall.allowedTCPPorts = [ + # Kubernetes API + 6443 + # Canal CNI health checks + 9099 + # RKE2 supervisor API + 9345 ]; - virtualisation.memorySize = 1536; - virtualisation.diskSize = 4096; + # RKE2 needs more resources than the default + virtualisation.cores = 4; + virtualisation.memorySize = 4096; + virtualisation.diskSize = 8092; services.rke2 = { enable = true; role = "server"; + package = rke2; inherit tokenFile; inherit agentTokenFile; - nodeName = "${rke2.name}-server1"; - package = rke2; - nodeIP = "192.168.1.1"; + # Without nodeIP the apiserver starts with the wrong service IP family + nodeIP = config.networking.primaryIPAddress; disable = [ "rke2-coredns" "rke2-metrics-server" "rke2-ingress-nginx" - ]; - extraFlags = [ - "--cluster-reset" + "rke2-snapshot-controller" + "rke2-snapshot-controller-crd" + "rke2-snapshot-validation-webhook" ]; }; }; - server2 = - { pkgs, ... }: + agent = { - networking.firewall.enable = false; - networking.useDHCP = false; - networking.defaultGateway = "192.168.1.2"; - networking.interfaces.eth1.ipv4.addresses = pkgs.lib.mkForce [ - { - address = "192.168.1.2"; - prefixLength = 24; - } - ]; - - virtualisation.memorySize = 1536; - virtualisation.diskSize = 4096; - - services.rke2 = { - enable = true; - role = "server"; - serverAddr = "https://192.168.1.1:6443"; - inherit tokenFile; - inherit agentTokenFile; - nodeName = "${rke2.name}-server2"; - package = rke2; - nodeIP = "192.168.1.2"; - disable = [ - "rke2-coredns" - "rke2-metrics-server" - "rke2-ingress-nginx" - ]; + config, + nodes, + pkgs, + ... + }: + { + # Setup image archives to be imported by rke2 + systemd.tmpfiles.settings."10-rke2" = { + "/var/lib/rancher/rke2/agent/images/rke2-images-core.linux-amd64.tar.zst" = { + "L+".argument = "${coreImages}"; + }; + "/var/lib/rancher/rke2/agent/images/rke2-images-canal.linux-amd64.tar.zst" = { + "L+".argument = "${canalImages}"; + }; + "/var/lib/rancher/rke2/agent/images/hello.tar.zst" = { + "L+".argument = "${helloImage}"; + }; + "/var/lib/rancher/rke2/server/manifests/rke2-canal-config.yaml" = { + "C".argument = "${canalConfig}"; + }; }; - }; - agent1 = - { pkgs, ... }: - { - networking.firewall.enable = false; - networking.useDHCP = false; - networking.defaultGateway = "192.168.1.3"; - networking.interfaces.eth1.ipv4.addresses = pkgs.lib.mkForce [ - { - address = "192.168.1.3"; - prefixLength = 24; - } - ]; + # Canal CNI health checks + networking.firewall.allowedTCPPorts = [ 9099 ]; + # Canal CNI with VXLAN + networking.firewall.allowedUDPPorts = [ 8472 ]; - virtualisation.memorySize = 1536; - virtualisation.diskSize = 4096; + # The agent node can work with less resources + virtualisation.memorySize = 2048; + virtualisation.diskSize = 8092; services.rke2 = { enable = true; role = "agent"; - tokenFile = agentTokenFile; - serverAddr = "https://192.168.1.2:6443"; - nodeName = "${rke2.name}-agent1"; package = rke2; - nodeIP = "192.168.1.3"; + tokenFile = agentTokenFile; + serverAddr = "https://${nodes.server.networking.primaryIPAddress}:9345"; + nodeIP = config.networking.primaryIPAddress; }; }; }; @@ -158,53 +184,42 @@ import ../make-test-python.nix ( testScript = let kubectl = "${pkgs.kubectl}/bin/kubectl --kubeconfig=/etc/rancher/rke2/rke2.yaml"; - ctr = "${pkgs.containerd}/bin/ctr -a /run/k3s/containerd/containerd.sock"; jq = "${pkgs.jq}/bin/jq"; - ping = "${pkgs.iputils}/bin/ping"; in + # python '' - machines = [server1, server2, agent1] + start_all() - for machine in machines: - machine.start() - machine.wait_for_unit("rke2") + server.wait_for_unit("rke2-server") + agent.wait_for_unit("rke2-agent") - # wait for the agent to show up - server1.succeed("${kubectl} get node ${rke2.name}-agent1") + # Wait for the agent to be ready + server.wait_until_succeeds(r"""${kubectl} wait --for='jsonpath={.status.conditions[?(@.type=="Ready")].status}=True' nodes/agent""") - for machine in machines: - machine.succeed("${pauseImage} | ${ctr} image import -") - - server1.succeed("${kubectl} cluster-info") - server1.wait_until_succeeds("${kubectl} get serviceaccount default") + server.succeed("${kubectl} cluster-info") + server.wait_until_succeeds("${kubectl} get serviceaccount default") # Now create a pod on each node via a daemonset and verify they can talk to each other. - server1.succeed("${kubectl} apply -f ${networkTestDaemonset}") - server1.wait_until_succeeds( + server.succeed("${kubectl} apply -f ${networkTestDaemonset}") + server.wait_until_succeeds( f'[ "$(${kubectl} get ds test -o json | ${jq} .status.numberReady)" -eq {len(machines)} ]' ) # Get pod IPs - pods = server1.succeed("${kubectl} get po -o json | ${jq} '.items[].metadata.name' -r").splitlines() + pods = server.succeed("${kubectl} get po -o json | ${jq} '.items[].metadata.name' -r").splitlines() pod_ips = [ - server1.succeed(f"${kubectl} get po {n} -o json | ${jq} '.status.podIP' -cr").strip() for n in pods + server.succeed(f"${kubectl} get po {n} -o json | ${jq} '.status.podIP' -cr").strip() for n in pods ] - # Verify each server can ping each pod ip + # Verify each node can ping each pod ip for pod_ip in pod_ips: - server1.succeed(f"${ping} -c 1 {pod_ip}") - agent1.succeed(f"${ping} -c 1 {pod_ip}") - - # Verify the pods can talk to each other - resp = server1.wait_until_succeeds(f"${kubectl} exec {pods[0]} -- socat TCP:{pod_ips[1]}:8000 -") - assert resp.strip() == "server" - resp = server1.wait_until_succeeds(f"${kubectl} exec {pods[1]} -- socat TCP:{pod_ips[0]}:8000 -") - assert resp.strip() == "server" - - # Cleanup - server1.succeed("${kubectl} delete -f ${networkTestDaemonset}") - for machine in machines: - machine.shutdown() + # The CNI sometimes needs a little time + server.wait_until_succeeds(f"ping -c 1 {pod_ip}", timeout=5) + agent.wait_until_succeeds(f"ping -c 1 {pod_ip}", timeout=5) + # Verify the server can exec into the pod + # for pod in pods: + # resp = server.succeed(f"${kubectl} exec {pod} -- socat TCP:{pod_ip}:8000 -") + # assert resp.strip() == "hello", f"Unexpected response from hello daemonset: {resp.strip()}" ''; } ) diff --git a/nixos/tests/rke2/single-node.nix b/nixos/tests/rke2/single-node.nix index 32a90e17f58f..28117a8b84ce 100644 --- a/nixos/tests/rke2/single-node.nix +++ b/nixos/tests/rke2/single-node.nix @@ -6,69 +6,83 @@ import ../make-test-python.nix ( ... }: let - pauseImage = pkgs.dockerTools.streamLayeredImage { - name = "test.local/pause"; + throwSystem = throw "RKE2: Unsupported system: ${pkgs.stdenv.hostPlatform.system}"; + coreImages = + { + aarch64-linux = rke2.images-core-linux-arm64-tar-zst; + x86_64-linux = rke2.images-core-linux-amd64-tar-zst; + } + .${pkgs.stdenv.hostPlatform.system} or throwSystem; + canalImages = + { + aarch64-linux = rke2.images-canal-linux-arm64-tar-zst; + x86_64-linux = rke2.images-canal-linux-amd64-tar-zst; + } + .${pkgs.stdenv.hostPlatform.system} or throwSystem; + helloImage = pkgs.dockerTools.buildImage { + name = "test.local/hello"; tag = "local"; - contents = pkgs.buildEnv { - name = "rke2-pause-image-env"; - paths = with pkgs; [ - tini - (hiPrio coreutils) - busybox - ]; - }; - config.Entrypoint = [ - "/bin/tini" - "--" - "/bin/sleep" - "inf" - ]; + compressor = "zstd"; + copyToRoot = pkgs.hello; + config.Entrypoint = [ "${pkgs.hello}/bin/hello" ]; }; - testPodYaml = pkgs.writeText "test.yaml" '' - apiVersion: v1 - kind: Pod + testJobYaml = pkgs.writeText "test.yaml" '' + apiVersion: batch/v1 + kind: Job metadata: name: test spec: - containers: - - name: test - image: test.local/pause:local - imagePullPolicy: Never - command: ["sh", "-c", "sleep inf"] + template: + spec: + containers: + - name: test + image: "test.local/hello:local" + restartPolicy: Never ''; in { name = "${rke2.name}-single-node"; meta.maintainers = rke2.meta.maintainers; - nodes.machine = - { pkgs, ... }: { - networking.firewall.enable = false; - networking.useDHCP = false; - networking.defaultGateway = "192.168.1.1"; - networking.interfaces.eth1.ipv4.addresses = pkgs.lib.mkForce [ - { - address = "192.168.1.1"; - prefixLength = 24; - } - ]; + config, + nodes, + pkgs, + ... + }: + { + # Setup image archives to be imported by rke2 + systemd.tmpfiles.settings."10-rke2" = { + "/var/lib/rancher/rke2/agent/images/rke2-images-core.tar.zst" = { + "L+".argument = "${coreImages}"; + }; + "/var/lib/rancher/rke2/agent/images/rke2-images-canal.tar.zst" = { + "L+".argument = "${canalImages}"; + }; + "/var/lib/rancher/rke2/agent/images/hello.tar.zst" = { + "L+".argument = "${helloImage}"; + }; + }; - virtualisation.memorySize = 1536; - virtualisation.diskSize = 4096; + # RKE2 needs more resources than the default + virtualisation.cores = 4; + virtualisation.memorySize = 4096; + virtualisation.diskSize = 8092; services.rke2 = { enable = true; role = "server"; package = rke2; - nodeIP = "192.168.1.1"; + # Without nodeIP the apiserver starts with the wrong service IP family + nodeIP = config.networking.primaryIPAddress; + # Slightly reduce resource consumption disable = [ "rke2-coredns" "rke2-metrics-server" "rke2-ingress-nginx" - ]; - extraFlags = [ - "--cluster-reset" + "rke2-snapshot-controller" + "rke2-snapshot-controller-crd" + "rke2-snapshot-validation-webhook" ]; }; }; @@ -76,23 +90,19 @@ import ../make-test-python.nix ( testScript = let kubectl = "${pkgs.kubectl}/bin/kubectl --kubeconfig=/etc/rancher/rke2/rke2.yaml"; - ctr = "${pkgs.containerd}/bin/ctr -a /run/k3s/containerd/containerd.sock"; in + # python '' start_all() - machine.wait_for_unit("rke2") + machine.wait_for_unit("rke2-server") machine.succeed("${kubectl} cluster-info") - machine.wait_until_succeeds( - "${pauseImage} | ${ctr} -n k8s.io image import -" - ) machine.wait_until_succeeds("${kubectl} get serviceaccount default") - machine.succeed("${kubectl} apply -f ${testPodYaml}") - machine.succeed("${kubectl} wait --for 'condition=Ready' pod/test") - machine.succeed("${kubectl} delete -f ${testPodYaml}") - - machine.shutdown() + machine.succeed("${kubectl} apply -f ${testJobYaml}") + machine.wait_until_succeeds("${kubectl} wait --for 'condition=complete' job/test") + output = machine.succeed("${kubectl} logs -l batch.kubernetes.io/job-name=test") + assert output.rstrip() == "Hello, world!", f"unexpected output of test job: {output}" ''; } ) diff --git a/pkgs/applications/networking/cluster/rke2/builder.nix b/pkgs/applications/networking/cluster/rke2/builder.nix index d09ca95fd11f..215423e3ad59 100644 --- a/pkgs/applications/networking/cluster/rke2/builder.nix +++ b/pkgs/applications/networking/cluster/rke2/builder.nix @@ -134,15 +134,21 @@ let passthru = { inherit updateScript; tests = + let + moduleTests = + let + package_version = + "rke2_" + lib.replaceStrings [ "." ] [ "_" ] (lib.versions.majorMinor rke2Version); + in + lib.mapAttrs (name: value: nixosTests.rke2.${name}.${package_version}) nixosTests.rke2; + in { version = testers.testVersion { package = rke2; version = "v${version}"; }; } - // lib.optionalAttrs stdenv.hostPlatform.isLinux { - inherit (nixosTests) rke2; - }; + // moduleTests; } // (lib.mapAttrs (_: value: fetchurl value) imagesVersions); meta = with lib; { diff --git a/pkgs/applications/networking/instant-messengers/profanity/default.nix b/pkgs/applications/networking/instant-messengers/profanity/default.nix index 5ea2ed6bc1b3..fa4ca8190625 100644 --- a/pkgs/applications/networking/instant-messengers/profanity/default.nix +++ b/pkgs/applications/networking/instant-messengers/profanity/default.nix @@ -37,15 +37,15 @@ gtk3, }: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "profanity"; - version = "0.14.0"; + version = "0.15.0"; src = fetchFromGitHub { owner = "profanity-im"; repo = "profanity"; - rev = version; - hash = "sha256-u/mp+vtMj602LfrulA+nhLNH8K6sqKIOuPJzhZusVmE="; + rev = finalAttrs.version; + hash = "sha256-3TmnbTnL8SPSd3seThavOOJVELi8kWLSlZlAub24KZ4="; }; patches = [ @@ -106,10 +106,6 @@ stdenv.mkDerivation rec { ++ lib.optionals pythonPluginSupport [ "--enable-python-plugins" ] ++ lib.optionals omemoSupport [ "--enable-omemo" ]; - preAutoreconf = '' - mkdir m4 - ''; - doCheck = true; LC_ALL = "en_US.utf8"; @@ -126,4 +122,4 @@ stdenv.mkDerivation rec { maintainers = [ maintainers.devhell ]; platforms = platforms.unix; }; -} +}) diff --git a/pkgs/applications/virtualization/docker/default.nix b/pkgs/applications/virtualization/docker/default.nix index 2f9e3d58aae5..c4fbc8b1c4a0 100644 --- a/pkgs/applications/virtualization/docker/default.nix +++ b/pkgs/applications/virtualization/docker/default.nix @@ -360,15 +360,17 @@ rec { # Get revisions from # https://github.com/moby/moby/tree/${version}/hack/dockerfile/install/* docker_25 = callPackage dockerGen rec { - version = "25.0.6"; - cliRev = "v${version}"; - cliHash = "sha256-7ZKjlONL5RXEJZrvssrL1PQMNANP0qTw4myGKdtd19U="; + version = "25.0.8"; + # Upstream forgot to tag release + # https://github.com/docker/cli/issues/5789 + cliRev = "43987fca488a535d810c429f75743d8c7b63bf4f"; + cliHash = "sha256-OwufdfuUPbPtgqfPeiKrQVkOOacU2g4ommHb770gV40="; mobyRev = "v${version}"; - mobyHash = "sha256-+zkhUMeVD3HNq8WrWQmLskq+HykvD5kzSACmf67YbJE="; - runcRev = "v1.1.12"; - runcHash = "sha256-N77CU5XiGYIdwQNPFyluXjseTeaYuNJ//OsEUS0g/v0="; - containerdRev = "v1.7.20"; - containerdHash = "sha256-Q9lTzz+G5PSoChy8MZtbOpO81AyNWXC+CgGkdOg14uY="; + mobyHash = "sha256-n7GdjQEceqyC7E2sPXQWyxpRThtH35eM/J20yLa5NSs="; + runcRev = "v1.2.4"; + runcHash = "sha256-LdYCMxdqDP7rKo6Ek/B1DE6QvUFrltbSJVggkVkXQZo="; + containerdRev = "v1.7.25"; + containerdHash = "sha256-T0F5bwxSCqa4Czs/W01NaAlJJFvgrzkBC1y/r+muivA="; tiniRev = "v0.19.0"; tiniHash = "sha256-ZDKu/8yE5G0RYFJdhgmCdN3obJNyRWv6K/Gd17zc1sI="; }; @@ -393,10 +395,24 @@ rec { cliHash = "sha256-7laxRfssh2aGfJeZI0PsJ/MCiy2npigSmCa1SUlWY4s="; mobyRev = "v${version}"; mobyHash = "sha256-q+VCJZ93jvPJQE0xn89prH/6spsarVY3VUEmgwyMxU4="; - runcRev = "v1.2.3"; - runcHash = "sha256-SdeCmPttMXQdIn3kGWsIM3dfhQCx1C5bMyAM889VVUc="; - containerdRev = "v1.7.24"; - containerdHash = "sha256-03vJs61AnTuFAdImZjBfn1izFcoalVJdVs9DZeDcABI="; + runcRev = "v1.2.4"; + runcHash = "sha256-LdYCMxdqDP7rKo6Ek/B1DE6QvUFrltbSJVggkVkXQZo="; + containerdRev = "v1.7.25"; + containerdHash = "sha256-T0F5bwxSCqa4Czs/W01NaAlJJFvgrzkBC1y/r+muivA="; + tiniRev = "v0.19.0"; + tiniHash = "sha256-ZDKu/8yE5G0RYFJdhgmCdN3obJNyRWv6K/Gd17zc1sI="; + }; + + docker_28 = callPackage dockerGen rec { + version = "28.0.4"; + cliRev = "v${version}"; + cliHash = "sha256-DLUcmxbCxJs3EA96SGaesA+GzvHq6DC2vrGe5PvA0dE="; + mobyRev = "v${version}"; + mobyHash = "sha256-yvz8MUOU61OuphPaIDu6+1wsbCXkIxJYQKK0fhcVwp0="; + runcRev = "v1.2.6"; + runcHash = "sha256-XMN+YKdQOQeOLLwvdrC6Si2iAIyyHD5RgZbrOHrQE/g="; + containerdRev = "v1.7.27"; + containerdHash = "sha256-H94EHnfW2Z59KcHcbfJn+BipyZiNUvHe50G5EXbrIps="; tiniRev = "v0.19.0"; tiniHash = "sha256-ZDKu/8yE5G0RYFJdhgmCdN3obJNyRWv6K/Gd17zc1sI="; }; diff --git a/pkgs/by-name/as/ashell/package.nix b/pkgs/by-name/as/ashell/package.nix index f89bd96f66c4..a270b3fb92a2 100644 --- a/pkgs/by-name/as/ashell/package.nix +++ b/pkgs/by-name/as/ashell/package.nix @@ -9,20 +9,22 @@ pipewire, libpulseaudio, wayland, + udev, + vulkan-loader, }: rustPlatform.buildRustPackage rec { pname = "ashell"; - version = "0.4.0"; + version = "0.4.1"; src = fetchFromGitHub { owner = "MalpenZibo"; repo = "ashell"; tag = version; - hash = "sha256-a0yvmAq/4TDe+W1FLeLPSLppX81G6fdAOhzDmDJg3II="; + hash = "sha256-J97MRYYkNx8Ze4vcxZTDVOSQLCANyIBcDtqZEsEZ80w="; }; useFetchCargoVendor = true; - cargoHash = "sha256-Vh/+4iApi+03ZmMIDSXc9Mn408v3wC+WlNJsXNcva+Q="; + cargoHash = "sha256-XDcCCKq/NOzaKTDwVu0GCeGV70IlJ2TvD0w8ib+lEhg="; nativeBuildInputs = [ pkg-config @@ -33,12 +35,14 @@ rustPlatform.buildRustPackage rec { runtimeDependencies = [ wayland libGL + vulkan-loader ]; buildInputs = [ libpulseaudio libxkbcommon pipewire + udev ] ++ runtimeDependencies; meta = { diff --git a/pkgs/by-name/bi/bird3/package.nix b/pkgs/by-name/bi/bird3/package.nix index 279199cafb4f..40459a43611f 100644 --- a/pkgs/by-name/bi/bird3/package.nix +++ b/pkgs/by-name/bi/bird3/package.nix @@ -11,11 +11,11 @@ stdenv.mkDerivation rec { pname = "bird"; - version = "3.0.1"; + version = "3.1.0"; src = fetchurl { url = "https://bird.network.cz/download/bird-${version}.tar.gz"; - hash = "sha256-iGhAPKqE4lVLtuYK2+fGV+e7fErEGRDjmPNeI2upD6E="; + hash = "sha256-xxY49Xb0MWcEN++dkL6lZZK8VjcB3nhpg/RCJk7Hdiw="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/ca/cargo-deb/package.nix b/pkgs/by-name/ca/cargo-deb/package.nix index bc7da112850b..f54a2c67e987 100644 --- a/pkgs/by-name/ca/cargo-deb/package.nix +++ b/pkgs/by-name/ca/cargo-deb/package.nix @@ -8,17 +8,17 @@ rustPlatform.buildRustPackage rec { pname = "cargo-deb"; - version = "2.11.3"; + version = "2.11.4"; src = fetchFromGitHub { owner = "kornelski"; repo = "cargo-deb"; rev = "v${version}"; - hash = "sha256-QDx7ZP/5z1YgD3RzLmwDE3KLY+5nMncYy97aveFH03w="; + hash = "sha256-E0PU0j0n1ITP65D+p1upn3cBFBKkoCbyHe6S5XxDAyU="; }; useFetchCargoVendor = true; - cargoHash = "sha256-ZN0TAQzt7LrHxoM4qAuMUm5Goaq1BuNBmd4kDGjiK4Q="; + cargoHash = "sha256-uPLXUx+nbUqXJM83RHxuXWiVWEWp5c+v5A0dOESL9oA="; nativeBuildInputs = [ makeWrapper diff --git a/pkgs/by-name/cl/claude-code/package-lock.json b/pkgs/by-name/cl/claude-code/package-lock.json index 9e1f0bc44794..56560fe90f17 100644 --- a/pkgs/by-name/cl/claude-code/package-lock.json +++ b/pkgs/by-name/cl/claude-code/package-lock.json @@ -5,13 +5,13 @@ "packages": { "": { "dependencies": { - "@anthropic-ai/claude-code": "^0.2.59" + "@anthropic-ai/claude-code": "^0.2.62" } }, "node_modules/@anthropic-ai/claude-code": { - "version": "0.2.59", - "resolved": "https://registry.npmjs.org/@anthropic-ai/claude-code/-/claude-code-0.2.59.tgz", - "integrity": "sha512-hcUHEiPUmkgU00J4/1dlLgWvf5ZkWOjMpUrXhMq2o143LOElKuTGxPGt2RtmFHKk6DesFZcV/gabZYkcTqraBw==", + "version": "0.2.62", + "resolved": "https://registry.npmjs.org/@anthropic-ai/claude-code/-/claude-code-0.2.62.tgz", + "integrity": "sha512-Mod9/kbqKy344lm5YmDJLn8dR3HYlA2zGCQy4exU7hmECNqg3KlTAz8u4O4YdiRMxXeUJ3Izi9YSJUT7oZOKdg==", "hasInstallScript": true, "license": "SEE LICENSE IN README.md", "bin": { diff --git a/pkgs/by-name/cl/claude-code/package.nix b/pkgs/by-name/cl/claude-code/package.nix index f213dbb17bd8..d7dc872039d9 100644 --- a/pkgs/by-name/cl/claude-code/package.nix +++ b/pkgs/by-name/cl/claude-code/package.nix @@ -6,14 +6,14 @@ buildNpmPackage rec { pname = "claude-code"; - version = "0.2.59"; + version = "0.2.62"; src = fetchzip { url = "https://registry.npmjs.org/@anthropic-ai/claude-code/-/claude-code-${version}.tgz"; - hash = "sha256-XHHWmDw9qBM4fQ975wSk12hJnr4+1H4AhlNc+IBV3qs="; + hash = "sha256-O6jkpx3OxEh/npZjyJb+osoeJrG+HZ6NRB9T4EMkdf8="; }; - npmDepsHash = "sha256-KorQlEB90EDE+NIxyUh1apqCDzgrCpwcaOy2mt2mz1s="; + npmDepsHash = "sha256-tVA4VbPaPc+KwZzUK0QI9In3QSXXoELaNM2U65wxGGA="; postPatch = '' cp ${./package-lock.json} package-lock.json diff --git a/pkgs/by-name/cp/cpp-utilities/package.nix b/pkgs/by-name/cp/cpp-utilities/package.nix index 400aa112808a..add68cdfa169 100644 --- a/pkgs/by-name/cp/cpp-utilities/package.nix +++ b/pkgs/by-name/cp/cpp-utilities/package.nix @@ -9,13 +9,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "cpp-utilities"; - version = "5.27.3"; + version = "5.28.0"; src = fetchFromGitHub { owner = "Martchus"; repo = "cpp-utilities"; rev = "v${finalAttrs.version}"; - sha256 = "sha256-/602rIjPZ6b9bMTpfjKz+XWpAlKoTHyCKUyGIA9qpto="; + sha256 = "sha256-EdqM7RsvJzMQWtwqnohbC5JJRVZJYgpTLJW1rPmTB4s="; }; nativeBuildInputs = [ cmake ]; diff --git a/pkgs/by-name/de/descent3-unwrapped/package.nix b/pkgs/by-name/de/descent3-unwrapped/package.nix index d97165bd9093..cdb4c73d07e2 100644 --- a/pkgs/by-name/de/descent3-unwrapped/package.nix +++ b/pkgs/by-name/de/descent3-unwrapped/package.nix @@ -20,11 +20,11 @@ stdenv.mkDerivation rec { # the wrapped version of Descent 3. Once there’s a stable version of Descent # 3 that supports the -additionaldir command-line option, we can stop using # an unstable version of Descent 3. - version = "1.5.0-beta-unstable-2025-03-22"; + version = "1.5.0-beta-unstable-2025-03-25"; src = fetchFromGitHub { owner = "DescentDevelopers"; repo = "Descent3"; - rev = "55827d453f835df944b7071ed336ba6a5c30a976"; + rev = "67244d953588c8c63baa17c150076153c526258b"; leaveDotGit = true; # Descent 3 is supposed to display its Git commit hash in the bottom right # corner of the main menu. That feature only works if either the .git @@ -50,7 +50,7 @@ stdenv.mkDerivation rec { git rev-parse --verify HEAD | tr --delete '\n' > git-hash.txt rm -r .git ''; - hash = "sha256-RZCkApFwbBtAnBWimupsaTcItwAWNJCntIu6S0UOcyU="; + hash = "sha256-lRTzy5GQJ5J9ban7Q6pBmHHXgHNpgemlYYlzmUnvFW0="; }; hardeningDisable = [ "format" ]; diff --git a/pkgs/by-name/dp/dprint/plugins/dprint-plugin-json.nix b/pkgs/by-name/dp/dprint/plugins/dprint-plugin-json.nix index 2d8702539a0a..01b0c1bdfaa3 100644 --- a/pkgs/by-name/dp/dprint/plugins/dprint-plugin-json.nix +++ b/pkgs/by-name/dp/dprint/plugins/dprint-plugin-json.nix @@ -1,7 +1,7 @@ { mkDprintPlugin }: mkDprintPlugin { description = "JSON/JSONC code formatter."; - hash = "sha256-Sw+HkUb4K2wrLuQRZibr8gOCR3Rz36IeId4Vd4LijmY="; + hash = "sha256-uFcFLi9aYsBrAqkhFmg9GI+LKiV19LxdNjxQ85EH9To="; initConfig = { configExcludes = [ "**/*-lock.json" ]; configKey = "json"; @@ -9,6 +9,6 @@ mkDprintPlugin { }; pname = "dprint-plugin-json"; updateUrl = "https://plugins.dprint.dev/dprint/json/latest.json"; - url = "https://plugins.dprint.dev/json-0.19.4.wasm"; - version = "0.19.4"; + url = "https://plugins.dprint.dev/json-0.20.0.wasm"; + version = "0.20.0"; } diff --git a/pkgs/by-name/dp/dprint/plugins/dprint-plugin-jupyter.nix b/pkgs/by-name/dp/dprint/plugins/dprint-plugin-jupyter.nix index f1ac0eae9708..6d3533bf2f61 100644 --- a/pkgs/by-name/dp/dprint/plugins/dprint-plugin-jupyter.nix +++ b/pkgs/by-name/dp/dprint/plugins/dprint-plugin-jupyter.nix @@ -1,7 +1,7 @@ { mkDprintPlugin }: mkDprintPlugin { description = "Jupyter notebook code block formatter."; - hash = "sha256-877CEZbMlj9cHkFtl16XCnan37SeEGUL3BHaUKUv8S4="; + hash = "sha256-IlGwt2TnKeH9NwmUmU1keaTInXgYQVLIPNnr30A9lsM="; initConfig = { configExcludes = [ ]; configKey = "jupyter"; @@ -9,6 +9,6 @@ mkDprintPlugin { }; pname = "dprint-plugin-jupyter"; updateUrl = "https://plugins.dprint.dev/dprint/jupyter/latest.json"; - url = "https://plugins.dprint.dev/jupyter-0.1.5.wasm"; - version = "0.1.5"; + url = "https://plugins.dprint.dev/jupyter-0.2.0.wasm"; + version = "0.2.0"; } diff --git a/pkgs/by-name/dp/dprint/plugins/dprint-plugin-markdown.nix b/pkgs/by-name/dp/dprint/plugins/dprint-plugin-markdown.nix index 0d17600f6827..d33a4a32311c 100644 --- a/pkgs/by-name/dp/dprint/plugins/dprint-plugin-markdown.nix +++ b/pkgs/by-name/dp/dprint/plugins/dprint-plugin-markdown.nix @@ -1,7 +1,7 @@ { mkDprintPlugin }: mkDprintPlugin { description = "Markdown code formatter."; - hash = "sha256-PIEN9UnYC8doJpdzS7M6QEHQNQtj7WwXAgvewPsTjqs="; + hash = "sha256-fBy+G+DkJqhrCyyaMjmXRe1VeSeCYO+XmJ8ogwAoptA="; initConfig = { configExcludes = [ ]; configKey = "markdown"; @@ -9,6 +9,6 @@ mkDprintPlugin { }; pname = "dprint-plugin-markdown"; updateUrl = "https://plugins.dprint.dev/dprint/markdown/latest.json"; - url = "https://plugins.dprint.dev/markdown-0.17.8.wasm"; - version = "0.17.8"; + url = "https://plugins.dprint.dev/markdown-0.18.0.wasm"; + version = "0.18.0"; } diff --git a/pkgs/by-name/dp/dprint/plugins/dprint-plugin-toml.nix b/pkgs/by-name/dp/dprint/plugins/dprint-plugin-toml.nix index c45e02804f64..de518669f248 100644 --- a/pkgs/by-name/dp/dprint/plugins/dprint-plugin-toml.nix +++ b/pkgs/by-name/dp/dprint/plugins/dprint-plugin-toml.nix @@ -1,7 +1,7 @@ { mkDprintPlugin }: mkDprintPlugin { description = "TOML code formatter."; - hash = "sha256-4g/nu8Wo7oF+8OAyXOzs9MuGpt2RFGvD58Bafnrr3ZQ="; + hash = "sha256-ASbIESaRVC0wtSpjkHbsyD4Hus6HdjjO58aRX9Nrhik="; initConfig = { configExcludes = [ ]; configKey = "toml"; @@ -9,6 +9,6 @@ mkDprintPlugin { }; pname = "dprint-plugin-toml"; updateUrl = "https://plugins.dprint.dev/dprint/toml/latest.json"; - url = "https://plugins.dprint.dev/toml-0.6.4.wasm"; - version = "0.6.4"; + url = "https://plugins.dprint.dev/toml-0.7.0.wasm"; + version = "0.7.0"; } diff --git a/pkgs/by-name/dp/dprint/plugins/dprint-plugin-typescript.nix b/pkgs/by-name/dp/dprint/plugins/dprint-plugin-typescript.nix index a3a805827ec0..bef6fad48093 100644 --- a/pkgs/by-name/dp/dprint/plugins/dprint-plugin-typescript.nix +++ b/pkgs/by-name/dp/dprint/plugins/dprint-plugin-typescript.nix @@ -1,7 +1,7 @@ { mkDprintPlugin }: mkDprintPlugin { description = "TypeScript/JavaScript code formatter."; - hash = "sha256-urgKQOjgkoDJCH/K7DWLJCkD0iH0Ok+rvrNDI0i4uS0="; + hash = "sha256-/N6TH5hYsTHJcBWwpz874EDRxBv+SRhyPO8IyN5dzDU="; initConfig = { configExcludes = [ "**/node_modules" ]; configKey = "typescript"; @@ -16,6 +16,6 @@ mkDprintPlugin { }; pname = "dprint-plugin-typescript"; updateUrl = "https://plugins.dprint.dev/dprint/typescript/latest.json"; - url = "https://plugins.dprint.dev/typescript-0.93.3.wasm"; - version = "0.93.3"; + url = "https://plugins.dprint.dev/typescript-0.94.0.wasm"; + version = "0.94.0"; } diff --git a/pkgs/by-name/dp/dprint/plugins/g-plane-malva.nix b/pkgs/by-name/dp/dprint/plugins/g-plane-malva.nix index c01cad63c064..81bb3435fdaf 100644 --- a/pkgs/by-name/dp/dprint/plugins/g-plane-malva.nix +++ b/pkgs/by-name/dp/dprint/plugins/g-plane-malva.nix @@ -1,7 +1,7 @@ { mkDprintPlugin }: mkDprintPlugin { description = "CSS, SCSS, Sass and Less formatter."; - hash = "sha256-zt7F1tgPhPAn+gtps6+JB5RtvjIZw2n/G85Bv6kazgU="; + hash = "sha256-mFlhfqtglKtKNls96PO/2AWLL1fNC5msQCd9EgdKauE="; initConfig = { configExcludes = [ "**/node_modules" ]; configKey = "malva"; @@ -14,6 +14,6 @@ mkDprintPlugin { }; pname = "g-plane-malva"; updateUrl = "https://plugins.dprint.dev/g-plane/malva/latest.json"; - url = "https://plugins.dprint.dev/g-plane/malva-v0.11.1.wasm"; - version = "0.11.1"; + url = "https://plugins.dprint.dev/g-plane/malva-v0.11.2.wasm"; + version = "0.11.2"; } diff --git a/pkgs/by-name/dp/dprint/plugins/g-plane-markup_fmt.nix b/pkgs/by-name/dp/dprint/plugins/g-plane-markup_fmt.nix index b948d3569013..98823309f6d0 100644 --- a/pkgs/by-name/dp/dprint/plugins/g-plane-markup_fmt.nix +++ b/pkgs/by-name/dp/dprint/plugins/g-plane-markup_fmt.nix @@ -1,7 +1,7 @@ { mkDprintPlugin }: mkDprintPlugin { description = "HTML, Vue, Svelte, Astro, Angular, Jinja, Twig, Nunjucks, and Vento formatter."; - hash = "sha256-G8UnJbc+oZ60V3oi8W2SS6H06zEYfY3wpmSUp+1GF8k="; + hash = "sha256-fCvurr8f79io/jIjwCfwr/WGjvcKZtptRrx9GFfytSI="; initConfig = { configExcludes = [ ]; configKey = "markup"; @@ -19,6 +19,6 @@ mkDprintPlugin { }; pname = "g-plane-markup_fmt"; updateUrl = "https://plugins.dprint.dev/g-plane/markup_fmt/latest.json"; - url = "https://plugins.dprint.dev/g-plane/markup_fmt-v0.18.0.wasm"; - version = "0.18.0"; + url = "https://plugins.dprint.dev/g-plane/markup_fmt-v0.19.0.wasm"; + version = "0.19.0"; } diff --git a/pkgs/by-name/ea/eask-cli/package.nix b/pkgs/by-name/ea/eask-cli/package.nix index 75c90e3dc604..1e826d8cf3f0 100644 --- a/pkgs/by-name/ea/eask-cli/package.nix +++ b/pkgs/by-name/ea/eask-cli/package.nix @@ -6,16 +6,16 @@ buildNpmPackage rec { pname = "eask-cli"; - version = "0.10.3"; + version = "0.11.0"; src = fetchFromGitHub { owner = "emacs-eask"; repo = "cli"; rev = version; - hash = "sha256-PDWPamX3Jp28VLvyx5ZXtQ8sNTlYcwP3TlVPOgwnek8="; + hash = "sha256-xMay2HGw5vGvGIrbjCk0LNn5bvSiHbnpjfdGdO7BpQ4="; }; - npmDepsHash = "sha256-1VWTL4BzvSHmVIyteHkjVqLPtbrhD2MMg/I+4mnPBIw="; + npmDepsHash = "sha256-8/2DCFlQ0bQt9uajWm17qqp2zc8scHdscL6n/laSZZ8="; dontBuild = true; diff --git a/pkgs/by-name/fl/fly/package.nix b/pkgs/by-name/fl/fly/package.nix index 79ad4b5c6899..c915657f0c08 100644 --- a/pkgs/by-name/fl/fly/package.nix +++ b/pkgs/by-name/fl/fly/package.nix @@ -8,16 +8,16 @@ buildGoModule rec { pname = "fly"; - version = "7.12.1"; + version = "7.13.0"; src = fetchFromGitHub { owner = "concourse"; repo = "concourse"; rev = "v${version}"; - hash = "sha256-3RsFtU2C3XxBddyW5liAwia9I7Fc8f2+TsziiJy6rHg="; + hash = "sha256-myvYACdTqnEb8aBpBeCA1qvcnF0lwYbSo6kMgSz7iiA="; }; - vendorHash = "sha256-up77TV/A/C39LjgQ+1uQExWfMlbruLhY3H6820cRnt0="; + vendorHash = "sha256-WC4uzTgvW15IumwmsWXXeiF5qagbeb5XWRaSjd1XLvA="; subPackages = [ "fly" ]; diff --git a/pkgs/by-name/gi/giza/package.nix b/pkgs/by-name/gi/giza/package.nix index c8ce0ee8205b..6a00faae2da1 100644 --- a/pkgs/by-name/gi/giza/package.nix +++ b/pkgs/by-name/gi/giza/package.nix @@ -11,13 +11,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "giza"; - version = "1.4.4"; + version = "1.5.0"; src = fetchFromGitHub { owner = "danieljprice"; repo = "giza"; rev = "v${finalAttrs.version}"; - hash = "sha256-FlD+emPrdXYmalHqQ6jKmkZudyLtlbeHtUOjT/D6UOA="; + hash = "sha256-tNz0Lh6bzQPxsd/Vz3jh8u0JiRXT0O43hyfgbGTJUeE="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/gp/gpupad/glslang-use-combined-lib.patch b/pkgs/by-name/gp/gpupad/glslang-use-combined-lib.patch new file mode 100644 index 000000000000..945712009db1 --- /dev/null +++ b/pkgs/by-name/gp/gpupad/glslang-use-combined-lib.patch @@ -0,0 +1,15 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index a05c447..20a5c98 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -276,8 +276,8 @@ endif() + + # link glslang + find_package(glslang CONFIG REQUIRED) +-target_link_libraries(${PROJECT_NAME} PRIVATE glslang::OSDependent glslang::glslang +- glslang::MachineIndependent glslang::GenericCodeGen glslang::glslang-default-resource-limits ++target_link_libraries(${PROJECT_NAME} PRIVATE glslang::glslang ++ glslang::glslang-default-resource-limits + glslang::SPVRemapper glslang::SPIRV) + + # link SPIRV-Cross diff --git a/pkgs/by-name/gp/gpupad/package.nix b/pkgs/by-name/gp/gpupad/package.nix new file mode 100644 index 000000000000..7b076839a3d5 --- /dev/null +++ b/pkgs/by-name/gp/gpupad/package.nix @@ -0,0 +1,63 @@ +{ + lib, + stdenv, + fetchFromGitHub, + cmake, + + glslang, + imath, + ktx-tools, + openimageio, + qt6Packages, + spdlog, + spirv-cross, + vulkan-memory-allocator, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "gpupad"; + version = "2.4.0"; + + src = fetchFromGitHub { + owner = "houmain"; + repo = "gpupad"; + tag = finalAttrs.version; + hash = "sha256-yCoLvocfqYOwbsGn2r3+2iThDZCkRAUrNI71fIH7XXU="; + fetchSubmodules = true; + }; + + patches = [ + # the current version of glslang no longer separates its libs into sublibs + ./glslang-use-combined-lib.patch + ]; + + strictDeps = true; + + nativeBuildInputs = [ + cmake + qt6Packages.wrapQtAppsHook + ]; + + buildInputs = [ + glslang + imath # needed for openimageio + ktx-tools + openimageio + qt6Packages.qtbase + qt6Packages.qtdeclarative + qt6Packages.qtmultimedia + spdlog + spirv-cross + vulkan-memory-allocator + ]; + + meta = { + description = "Flexible GLSL and HLSL shader editor and IDE"; + homepage = "https://github.com/houmain/gpupad"; + changelog = "https://github.com/houmain/gpupad/blob/${finalAttrs.src.rev}/CHANGELOG.md"; + license = lib.licenses.gpl3Only; + maintainers = with lib.maintainers; [ tomasajt ]; + mainProgram = "gpupad"; + platforms = lib.platforms.linux; + }; +}) diff --git a/pkgs/by-name/ls/lswt/package.nix b/pkgs/by-name/ls/lswt/package.nix index 1bd9c04df8f3..d69a7b509f43 100644 --- a/pkgs/by-name/ls/lswt/package.nix +++ b/pkgs/by-name/ls/lswt/package.nix @@ -2,6 +2,7 @@ lib, stdenv, fetchFromSourcehut, + fetchpatch, wayland-scanner, wayland, }: @@ -17,6 +18,14 @@ stdenv.mkDerivation rec { hash = "sha256-8jP6I2zsDt57STtuq4F9mcsckrjvaCE5lavqKTjhNT0="; }; + patches = [ + # Subject: [PATCH] fix JSON formatting of identifier string + (fetchpatch { + url = "https://git.sr.ht/~leon_plickat/lswt/commit/d35786da4383388c19f5437128fd393a6f16f74f.patch"; + hash = "sha256-3RTq8BXRR7MgKV0BueoOjPORMrYVAKNbKR74hZ75W/Y="; + }) + ]; + nativeBuildInputs = [ wayland-scanner ]; buildInputs = [ wayland ]; diff --git a/pkgs/by-name/ma/ma/package.nix b/pkgs/by-name/ma/ma/package.nix new file mode 100644 index 000000000000..50063cca5c35 --- /dev/null +++ b/pkgs/by-name/ma/ma/package.nix @@ -0,0 +1,46 @@ +{ + lib, + stdenv, + tclPackages, + fetchurl, +}: + +stdenv.mkDerivation { + pname = "ma"; + version = "11"; + + src = fetchurl { + url = "http://call-with-current-continuation.org/ma/ma.tar.gz"; + hash = "sha256-1UVxXbN2jSNm13BjyoN3jbKtkO3DUEEHaDOC2Ibbxf4="; + }; + + buildInputs = [ + tclPackages.tk + ]; + + buildPhase = '' + runHook preBuild + ./build + for f in B ma ma-eval; do + substituteInPlace $f --replace-fail \ + 'set exec_prefix ""' "set exec_prefix \"$out/bin/\"" + done + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + install -Dt $out/bin \ + B awd ma ma-eval plumb pty win + runHook postInstall + ''; + + meta = { + description = "minimalistic variant of the Acme editor"; + homepage = "http://call-with-current-continuation.org/ma/ma.html"; + mainProgram = "ma"; + maintainers = with lib.maintainers; [ ehmry ]; + license = lib.licenses.free; + inherit (tclPackages.tk.meta) platforms; + }; +} diff --git a/pkgs/by-name/mi/mirrord/manifest.json b/pkgs/by-name/mi/mirrord/manifest.json index 8ce5d1aa22f8..d77f266b7c00 100644 --- a/pkgs/by-name/mi/mirrord/manifest.json +++ b/pkgs/by-name/mi/mirrord/manifest.json @@ -1,21 +1,21 @@ { - "version": "3.136.0", + "version": "3.137.0", "assets": { "x86_64-linux": { - "url": "https://github.com/metalbear-co/mirrord/releases/download/3.136.0/mirrord_linux_x86_64", - "hash": "sha256-MV6S23Ly0g2FPAhp2+RIMSC8D+s6NakVbMqLSwEr/2o=" + "url": "https://github.com/metalbear-co/mirrord/releases/download/3.137.0/mirrord_linux_x86_64", + "hash": "sha256-IrsvX7Z+8k3OvtojhWuSeeiO75Okth6MCF3sPs3jIZo=" }, "aarch64-linux": { - "url": "https://github.com/metalbear-co/mirrord/releases/download/3.136.0/mirrord_linux_aarch64", - "hash": "sha256-zwistetfQCucaQ3yE1XHNChDhVCnSUq2ttl4XMnAQJU=" + "url": "https://github.com/metalbear-co/mirrord/releases/download/3.137.0/mirrord_linux_aarch64", + "hash": "sha256-E5Jhx3FsaVNCbvC1SH0D2GPsgQDwKkMPe/wR9MoVzKs=" }, "aarch64-darwin": { - "url": "https://github.com/metalbear-co/mirrord/releases/download/3.136.0/mirrord_mac_universal", - "hash": "sha256-eSHJvtbCBxegYUjfplyBND2kinEqr5LlXJs9mm2U9wI=" + "url": "https://github.com/metalbear-co/mirrord/releases/download/3.137.0/mirrord_mac_universal", + "hash": "sha256-PKW2K5ITt1wagtET6MVx2rTn9CcqqujKaYt0XleIyzY=" }, "x86_64-darwin": { - "url": "https://github.com/metalbear-co/mirrord/releases/download/3.136.0/mirrord_mac_universal", - "hash": "sha256-eSHJvtbCBxegYUjfplyBND2kinEqr5LlXJs9mm2U9wI=" + "url": "https://github.com/metalbear-co/mirrord/releases/download/3.137.0/mirrord_mac_universal", + "hash": "sha256-PKW2K5ITt1wagtET6MVx2rTn9CcqqujKaYt0XleIyzY=" } } } diff --git a/pkgs/by-name/mo/modrinth-app-unwrapped/package.nix b/pkgs/by-name/mo/modrinth-app-unwrapped/package.nix index 6731686e16c8..b392149009a1 100644 --- a/pkgs/by-name/mo/modrinth-app-unwrapped/package.nix +++ b/pkgs/by-name/mo/modrinth-app-unwrapped/package.nix @@ -6,6 +6,7 @@ desktop-file-utils, fetchFromGitHub, makeBinaryWrapper, + nix-update-script, nodejs, openssl, pkg-config, @@ -18,14 +19,15 @@ let pnpm = pnpm_9; in -rustPlatform.buildRustPackage rec { + +rustPlatform.buildRustPackage (finalAttrs: { pname = "modrinth-app-unwrapped"; version = "0.9.3"; src = fetchFromGitHub { owner = "modrinth"; repo = "code"; - tag = "v${version}"; + tag = "v${finalAttrs.version}"; hash = "sha256-h+zj4Hm7v8SU6Zy0rIWbOknXVdSDf8b1d4q6M12J5Lc="; }; @@ -33,7 +35,7 @@ rustPlatform.buildRustPackage rec { cargoHash = "sha256-RrXSBgVh4UZFHcgUWhUjE7rEm/RZFDSDCpXS22gVjZ0="; pnpmDeps = pnpm.fetchDeps { - inherit pname version src; + inherit (finalAttrs) pname version src; hash = "sha256-nFuPFgwJw38XVxhW0QXmU31o+hqJKGJysnPg2YSg2D0="; }; @@ -72,6 +74,10 @@ rustPlatform.buildRustPackage rec { $out/share/applications/Modrinth\ App.desktop ''; + passthru = { + updateScript = nix-update-script { }; + }; + meta = { description = "Modrinth's game launcher"; longDescription = '' @@ -91,4 +97,4 @@ rustPlatform.buildRustPackage rec { # See https://github.com/modrinth/code/issues/776#issuecomment-1742495678 broken = !stdenv.hostPlatform.isx86_64 && !stdenv.hostPlatform.isDarwin; }; -} +}) diff --git a/pkgs/by-name/mo/mosdepth/package.nix b/pkgs/by-name/mo/mosdepth/package.nix index 9e270b3b4e74..befa0db0636f 100644 --- a/pkgs/by-name/mo/mosdepth/package.nix +++ b/pkgs/by-name/mo/mosdepth/package.nix @@ -8,7 +8,7 @@ buildNimPackage (finalAttrs: { pname = "mosdepth"; - version = "0.3.10"; + version = "0.3.11"; requiredNimVersion = 1; @@ -16,7 +16,7 @@ buildNimPackage (finalAttrs: { owner = "brentp"; repo = "mosdepth"; rev = "v${finalAttrs.version}"; - hash = "sha256-RAE3k2yA2zsIr5JFYb5bPaMzdoEKms7TKaqVhPS5LzY="; + hash = "sha256-EzzDuzPAyNkL2tFWre86U+kx3SvLPbWto2/vfLdwHGI="; }; lockFile = ./lock.json; diff --git a/pkgs/by-name/ni/nimble/package.nix b/pkgs/by-name/ni/nimble/package.nix index c5ea0e9dc59b..b495f71d01cf 100644 --- a/pkgs/by-name/ni/nimble/package.nix +++ b/pkgs/by-name/ni/nimble/package.nix @@ -5,18 +5,20 @@ nim, openssl, makeWrapper, + + nix-update-script, }: buildNimPackage ( final: prev: { pname = "nimble"; - version = "0.16.4"; + version = "0.18.0"; src = fetchFromGitHub { owner = "nim-lang"; repo = "nimble"; rev = "v${final.version}"; - hash = "sha256-ASodRov4rO/IhjQRRdqVnLWMG1voXWM9F6R6VJd9qkM="; + hash = "sha256-HFuJiozRsRlVIXIv+vRjsfosrBlWfnUYtep27Fy/PPA="; fetchSubmodules = true; }; @@ -32,11 +34,15 @@ buildNimPackage ( --suffix PATH : ${lib.makeBinPath [ nim ]} ''; + passthru.updateScript = nix-update-script { }; + meta = { description = "Package manager for the Nim programming language"; homepage = "https://github.com/nim-lang/nimble"; + changelog = "https://github.com/nim-lang/nimble/releases/tag/v${final.version}"; license = lib.licenses.bsd3; mainProgram = "nimble"; + maintainers = [ lib.maintainers.daylinmorgan ]; }; } ) diff --git a/pkgs/by-name/op/openstack-rs/package.nix b/pkgs/by-name/op/openstack-rs/package.nix new file mode 100644 index 000000000000..54ba07dbecb0 --- /dev/null +++ b/pkgs/by-name/op/openstack-rs/package.nix @@ -0,0 +1,48 @@ +{ + stdenv, + lib, + fetchFromGitHub, + rustPlatform, + installShellFiles, + versionCheckHook, + nix-update-script, +}: +rustPlatform.buildRustPackage (finalAttrs: { + pname = "openstack-rs"; + version = "0.10.0"; + src = fetchFromGitHub { + owner = "gtema"; + repo = "openstack"; + tag = "v${finalAttrs.version}"; + hash = "sha256-NDiqIhpKP7iGEAgAnaBekqjjWM7KqZPpdtPu/mEp1NU="; + }; + + useFetchCargoVendor = true; + cargoHash = "sha256-S4FivjHkWC5tA1l4cheJsTECRfv8zyQbR88BqCeKFuc="; + + nativeBuildInputs = [ + installShellFiles + ]; + + postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) '' + installShellCompletion --cmd osc \ + --bash <($out/bin/osc completion bash) \ + --fish <($out/bin/osc completion fish) \ + --zsh <($out/bin/osc completion zsh) + ''; + + doInstallCheck = true; + versionCheckProgram = "${placeholder "out"}/bin/${finalAttrs.meta.mainProgram}"; + nativeInstallCheckInputs = [ versionCheckHook ]; + + passthru.updateScript = nix-update-script { }; + + meta = { + description = "OpenStack CLI and TUI implemented in Rust"; + homepage = "https://github.com/gtema/openstack"; + changelog = "https://github.com/gtema/openstack/releases/tag/v${finalAttrs.version}"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ lykos153 ]; + mainProgram = "osc"; + }; +}) diff --git a/pkgs/by-name/os/osmo-hlr/package.nix b/pkgs/by-name/os/osmo-hlr/package.nix index e4f4d127c8dd..b60842c69724 100644 --- a/pkgs/by-name/os/osmo-hlr/package.nix +++ b/pkgs/by-name/os/osmo-hlr/package.nix @@ -11,13 +11,13 @@ stdenv.mkDerivation rec { pname = "osmo-hlr"; - version = "1.9.0"; + version = "1.9.1"; src = fetchFromGitHub { owner = "osmocom"; repo = "osmo-hlr"; rev = version; - hash = "sha256-W9j/p7rQDF2/9L02fEeu85pV4lUrHT3xI7jUB2WkpKg="; + hash = "sha256-yi4sgcX8WOWz7qw/jGvVCtIYe867uBzLps8gdG6ziOA="; }; postPatch = '' diff --git a/pkgs/by-name/ot/otf2/package.nix b/pkgs/by-name/ot/otf2/package.nix index 4f13a14dd229..385501c529f5 100644 --- a/pkgs/by-name/ot/otf2/package.nix +++ b/pkgs/by-name/ot/otf2/package.nix @@ -7,11 +7,11 @@ stdenv.mkDerivation (finalAttrs: { pname = "otf2"; - version = "3.0.3"; + version = "3.1.1"; src = fetchurl { url = "http://perftools.pages.jsc.fz-juelich.de/cicd/otf2/tags/otf2-${finalAttrs.version}/otf2-${finalAttrs.version}.tar.gz"; - hash = "sha256-GKOQX3kXNAOH4+3I5XZvMasa9B9OzFZl2mx2nKIcTug="; + hash = "sha256-Wk4BOlGsTteU/jXFW3AM1yA0b9p/M+yEx2uGpfuICm4="; }; configureFlags = [ diff --git a/pkgs/by-name/pf/pfetch/package.nix b/pkgs/by-name/pf/pfetch/package.nix index b6ce48f95b54..6e6e53ae38a6 100644 --- a/pkgs/by-name/pf/pfetch/package.nix +++ b/pkgs/by-name/pf/pfetch/package.nix @@ -8,13 +8,13 @@ stdenvNoCC.mkDerivation rec { pname = "pfetch"; - version = "1.8.1"; + version = "1.9.0"; src = fetchFromGitHub { owner = "Un1q32"; repo = "pfetch"; tag = version; - hash = "sha256-lzXoe4RYfd8aSnrkpz5VYhMlJUcaMsZBZyPBOjpBXG8="; + hash = "sha256-DWntcAowiia4gEiYcZCJ6+uDGQ5h2eh/XwSSW+ThPKY="; }; dontBuild = true; diff --git a/pkgs/by-name/se/session-desktop/package.nix b/pkgs/by-name/se/session-desktop/package.nix index b9f31b07837c..61e408915c62 100644 --- a/pkgs/by-name/se/session-desktop/package.nix +++ b/pkgs/by-name/se/session-desktop/package.nix @@ -9,12 +9,12 @@ }: let - version = "1.13.2"; + version = "1.15.2"; pname = "session-desktop"; src = fetchurl { - url = "https://github.com/oxen-io/session-desktop/releases/download/v${version}/session-desktop-linux-x86_64-${version}.AppImage"; - hash = "sha256-71v6CvlKa4m1LPG07eGhPqkpK60X4VrafCQyfjQR3rs="; + url = "https://github.com/session-foundation/session-desktop/releases/download/v${version}/session-desktop-linux-x86_64-${version}.AppImage"; + hash = "sha256-xQ/Fjg04XgXUioCCU0+sOLaTWZV1z05EmzZCqEU++Ok="; }; appimage = appimageTools.wrapType2 { inherit version pname src; }; appimage-contents = appimageTools.extractType2 { inherit version pname src; }; diff --git a/pkgs/by-name/sp/splash/package.nix b/pkgs/by-name/sp/splash/package.nix index 722b6f139dbb..ff66011a3629 100644 --- a/pkgs/by-name/sp/splash/package.nix +++ b/pkgs/by-name/sp/splash/package.nix @@ -12,13 +12,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "splash"; - version = "3.11.1"; + version = "3.11.2"; src = fetchFromGitHub { owner = "danieljprice"; repo = "splash"; rev = "v${finalAttrs.version}"; - hash = "sha256-zENMQpLsm6GlqrXsFDjEnMbtODcqwhB3jGfGHLuGcYw="; + hash = "sha256-YB0cgxpRlya8/7fYxPKWBCovHvE/N7HY/7nwKnzYiJc="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/ta/tailwindcss_4/package.nix b/pkgs/by-name/ta/tailwindcss_4/package.nix index d59c7182488a..12b37a768b44 100644 --- a/pkgs/by-name/ta/tailwindcss_4/package.nix +++ b/pkgs/by-name/ta/tailwindcss_4/package.nix @@ -7,7 +7,7 @@ makeWrapper, }: let - version = "4.1.1"; + version = "4.1.2"; inherit (stdenv.hostPlatform) system; throwSystem = throw "tailwindcss has not been packaged for ${system} yet."; @@ -22,10 +22,10 @@ let hash = { - aarch64-darwin = "sha256-moydWSkhoHmxd+4zeWwgneUNHOlJ9yqPXlGHhCQmYXA="; - aarch64-linux = "sha256-zTW+fGIkpwWRYMRJjZRJmO4YI5J6gOXOKUfq9KtGxKI="; - x86_64-darwin = "sha256-JPnnUj30uQVvj+dnq7+fG4Trt7ArLVPsP4G1RVUeZAA="; - x86_64-linux = "sha256-jIW4NmIW7dk3iTS0JY5V7PF9LfnWIVEDcYOUP0nWp1Y="; + aarch64-darwin = "sha256-6kR+iOsfIeHvNRdLP72Mv8nKkCN877dcKl1FNG4ij/A="; + aarch64-linux = "sha256-m6uFYOQ4P52WhA73/ZAZxt3hAnq+xhreueDoXOOKF88="; + x86_64-darwin = "sha256-6C12gk9WnGP5nhSBBZT2q8SoCCdyOHCszHtAQi1d+0A="; + x86_64-linux = "sha256-2g+J98RrSheoUp1LJCzFa1mivMoVLFpQPSAOV8eA8Gw="; } .${system} or throwSystem; in diff --git a/pkgs/by-name/ve/vencord/package.nix b/pkgs/by-name/ve/vencord/package.nix index 48c98890d081..63c97ea03c01 100644 --- a/pkgs/by-name/ve/vencord/package.nix +++ b/pkgs/by-name/ve/vencord/package.nix @@ -15,18 +15,18 @@ stdenv.mkDerivation (finalAttrs: { pname = "vencord"; - version = "1.11.7"; + version = "1.11.8"; src = fetchFromGitHub { owner = "Vendicated"; repo = "Vencord"; rev = "v${finalAttrs.version}"; - hash = "sha256-WzmRz0wf/Ss90FmXXp6gaylC0k/k/QkFaFddlnLo+Xk="; + hash = "sha256-Ej04ONaeNt55mbQ5RTKM4MySYsw3UJky9ZK9h1gMEzo="; }; pnpmDeps = pnpm_10.fetchDeps { inherit (finalAttrs) pname src; - hash = "sha256-g9BSVUKpn74D9eIDj/lS1Y6w/+AnhCw++st4s4REn+A="; + hash = "sha256-hO6QKRr4jTfesRDAEGcpFeJmGTGLGMw6EgIvD23DNzw="; }; nativeBuildInputs = [ @@ -39,12 +39,12 @@ stdenv.mkDerivation (finalAttrs: { ESBUILD_BINARY_PATH = lib.getExe ( esbuild.overrideAttrs ( final: _: { - version = "0.25.0"; + version = "0.25.1"; src = fetchFromGitHub { owner = "evanw"; repo = "esbuild"; rev = "v${final.version}"; - hash = "sha256-L9jm94Epb22hYsU3hoq1lZXb5aFVD4FC4x2qNt0DljA="; + hash = "sha256-vrhtdrvrcC3dQoJM6hWq6wrGJLSiVww/CNPlL1N5kQ8="; }; vendorHash = "sha256-+BfxCyg0KkDQpHt/wycy/8CTG6YBA/VJvJFhhzUnSiQ="; } diff --git a/pkgs/development/libraries/qtutilities/default.nix b/pkgs/development/libraries/qtutilities/default.nix index 02300531ef34..18007415ad3f 100644 --- a/pkgs/development/libraries/qtutilities/default.nix +++ b/pkgs/development/libraries/qtutilities/default.nix @@ -10,13 +10,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "qtutilities"; - version = "6.14.6"; + version = "6.15.0"; src = fetchFromGitHub { owner = "Martchus"; repo = "qtutilities"; rev = "v${finalAttrs.version}"; - hash = "sha256-A61X6WKrP7CVgcRyB6phrVQo/B9VESRo0xTZV49KA3M="; + hash = "sha256-FWDvcUATod1n8CICmlQl/RA57c0EjLtwZ05mmVzc6Ec="; }; nativeBuildInputs = [ diff --git a/pkgs/development/python-modules/django-phonenumber-field/default.nix b/pkgs/development/python-modules/django-phonenumber-field/default.nix index 53435de1b101..1890a3b70bc0 100644 --- a/pkgs/development/python-modules/django-phonenumber-field/default.nix +++ b/pkgs/development/python-modules/django-phonenumber-field/default.nix @@ -5,6 +5,7 @@ django, djangorestframework, fetchFromGitHub, + gettext, phonenumbers, phonenumberslite, python, @@ -39,12 +40,18 @@ buildPythonPackage rec { djangorestframework ]; + nativeBuildInputs = [ gettext ]; + pythonImportsCheck = [ "phonenumber_field" ]; checkPhase = '' ${python.interpreter} -m django test --settings tests.settings ''; + preBuild = '' + ${python.interpreter} -m django compilemessages + ''; + optional-dependencies = { phonenumbers = [ phonenumbers ]; phonenumberslite = [ phonenumberslite ]; diff --git a/pkgs/development/python-modules/meep/default.nix b/pkgs/development/python-modules/meep/default.nix index acb4a056ef87..3db5517dafeb 100644 --- a/pkgs/development/python-modules/meep/default.nix +++ b/pkgs/development/python-modules/meep/default.nix @@ -35,13 +35,13 @@ assert !lapack.isILP64; buildPythonPackage rec { pname = "meep"; - version = "1.29.0"; + version = "1.30.0"; src = fetchFromGitHub { owner = "NanoComp"; repo = pname; tag = "v${version}"; - hash = "sha256-TB85obdk8pSWRaz3+3I6P6+dQtCHosWHRnKGck/wG9Q="; + hash = "sha256-9cQHvwUAeop5dRMVvedph+KQvTcmnkHdfqPQlSY280c="; }; format = "other"; diff --git a/pkgs/development/python-modules/qcodes-contrib-drivers/default.nix b/pkgs/development/python-modules/qcodes-contrib-drivers/default.nix index 9f4bd2cf0de6..ef5048090a7a 100644 --- a/pkgs/development/python-modules/qcodes-contrib-drivers/default.nix +++ b/pkgs/development/python-modules/qcodes-contrib-drivers/default.nix @@ -1,65 +1,65 @@ { lib, + stdenv, buildPythonPackage, - pythonOlder, fetchFromGitHub, - fetchpatch2, + + # build-system setuptools, versioningit, + + # dependencies + autobahn, cffi, - qcodes, packaging, pandas, - pytestCheckHook, + qcodes, + python-dotenv, + + # tests pytest-mock, + pytestCheckHook, pyvisa-sim, - stdenv, + writableTmpDirAsHomeHook, }: buildPythonPackage rec { pname = "qcodes-contrib-drivers"; - version = "0.22.0"; + version = "0.23.0"; pyproject = true; - disabled = pythonOlder "3.9"; - src = fetchFromGitHub { owner = "QCoDeS"; repo = "Qcodes_contrib_drivers"; tag = "v${version}"; - sha256 = "sha256-/W5oC5iqYifMR3/s7aSQ2yTJNmkemkc0KVxIU0Es3zY="; + hash = "sha256-m2idBaQl2OVhrY5hcLTeXY6BycGf0ufa/ySgxaU2L/4="; }; - patches = [ - (fetchpatch2 { - name = "numpy-v2-compat.patch"; - url = "https://github.com/QCoDeS/Qcodes_contrib_drivers/commit/fc792779dbc0b023bdccfe8877dac192d75a88db.patch?full_index=1"; - hash = "sha256-G+/IVG9a4mOFudpqEpI+Q/+WwF6lm2nRKjODCdzWHe0="; - }) - ]; - build-system = [ setuptools versioningit ]; dependencies = [ + autobahn cffi - qcodes packaging pandas + qcodes + python-dotenv ]; nativeCheckInputs = [ - pytestCheckHook pytest-mock + pytestCheckHook pyvisa-sim + writableTmpDirAsHomeHook ]; pythonImportsCheck = [ "qcodes_contrib_drivers" ]; disabledTests = - lib.optionals (stdenv.hostPlatform.isDarwin) [ + lib.optionals stdenv.hostPlatform.isDarwin [ # At index 13 diff: 'sour6:volt 0.29000000000000004' != 'sour6:volt 0.29' "test_stability_diagram_external" ] @@ -68,10 +68,6 @@ buildPythonPackage rec { "test_stability_diagram_external" ]; - postInstall = '' - export HOME="$TMPDIR" - ''; - meta = { description = "User contributed drivers for QCoDeS"; homepage = "https://github.com/QCoDeS/Qcodes_contrib_drivers"; diff --git a/pkgs/development/python-modules/qcodes/default.nix b/pkgs/development/python-modules/qcodes/default.nix index 757e82e773ff..c89d785f6c7b 100644 --- a/pkgs/development/python-modules/qcodes/default.nix +++ b/pkgs/development/python-modules/qcodes/default.nix @@ -51,6 +51,7 @@ lxml, pip, pytest-asyncio, + pytest-cov-stub, pytest-mock, pytest-rerunfailures, pytest-xdist, @@ -60,14 +61,14 @@ buildPythonPackage rec { pname = "qcodes"; - version = "0.51.0"; + version = "0.52.0"; pyproject = true; src = fetchFromGitHub { owner = "microsoft"; repo = "Qcodes"; tag = "v${version}"; - hash = "sha256-QgCMoZrC3ZCo8yayRXw9fvBj5xi+XH2x/E1MuQFULPo="; + hash = "sha256-AQBzYKD4RsPQBtq/FxFwYnSUf8wW87JOb2cOnk9MHDY="; }; postPatch = '' @@ -142,6 +143,7 @@ buildPythonPackage rec { lxml pip pytest-asyncio + pytest-cov-stub pytest-mock pytest-rerunfailures pytest-xdist diff --git a/pkgs/development/ruby-modules/gem-config/default.nix b/pkgs/development/ruby-modules/gem-config/default.nix index 6443872d9f72..3eec829f4ec5 100644 --- a/pkgs/development/ruby-modules/gem-config/default.nix +++ b/pkgs/development/ruby-modules/gem-config/default.nix @@ -79,7 +79,7 @@ libvirt, glib, vips, - taglib_1, + taglib, libopus, linux-pam, libidn, @@ -642,15 +642,10 @@ in }; iconv = attrs: { - dontBuild = false; buildFlags = lib.optionals stdenv.hostPlatform.isDarwin [ "--with-iconv-dir=${lib.getLib libiconv}" "--with-iconv-include=${lib.getDev libiconv}/include" ]; - patches = [ - # Fix incompatible function pointer conversion errors with clang 16 - ./iconv-fix-incompatible-function-pointer-conversions.patch - ]; }; idn-ruby = attrs: { @@ -1109,7 +1104,7 @@ in }; taglib-ruby = attrs: { - buildInputs = [ taglib_1 ]; + buildInputs = [ taglib ]; }; timfel-krb5-auth = attrs: { diff --git a/pkgs/development/ruby-modules/gem-config/iconv-fix-incompatible-function-pointer-conversions.patch b/pkgs/development/ruby-modules/gem-config/iconv-fix-incompatible-function-pointer-conversions.patch deleted file mode 100644 index 1cc38cbae135..000000000000 --- a/pkgs/development/ruby-modules/gem-config/iconv-fix-incompatible-function-pointer-conversions.patch +++ /dev/null @@ -1,51 +0,0 @@ -diff --git a/ext/iconv/iconv.c b/ext/iconv/iconv.c -index 2801049..77fae7e 100644 ---- a/ext/iconv/iconv.c -+++ b/ext/iconv/iconv.c -@@ -188,7 +188,7 @@ static VALUE iconv_convert _((iconv_t cd, VALUE str, long start, long length, in - static VALUE iconv_s_allocate _((VALUE klass)); - static VALUE iconv_initialize _((int argc, VALUE *argv, VALUE self)); - static VALUE iconv_s_open _((int argc, VALUE *argv, VALUE self)); --static VALUE iconv_s_convert _((struct iconv_env_t* env)); -+static VALUE iconv_s_convert _((VALUE env)); - static VALUE iconv_s_iconv _((int argc, VALUE *argv, VALUE self)); - static VALUE iconv_init_state _((VALUE cd)); - static VALUE iconv_finish _((VALUE self)); -@@ -204,7 +204,7 @@ static VALUE charset_map; - * Returns the map from canonical name to system dependent name. - */ - static VALUE --charset_map_get(void) -+charset_map_get(VALUE klass) - { - return charset_map; - } -@@ -642,7 +642,7 @@ iconv_s_allocate(VALUE klass) - } - - static VALUE --get_iconv_opt_i(VALUE i, VALUE arg) -+get_iconv_opt_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, arg)) - { - VALUE name; - #if defined ICONV_SET_TRANSLITERATE || defined ICONV_SET_DISCARD_ILSEQ -@@ -784,8 +784,9 @@ iconv_s_open(int argc, VALUE *argv, VALUE self) - } - - static VALUE --iconv_s_convert(struct iconv_env_t* env) -+iconv_s_convert(VALUE env_value) - { -+ struct iconv_env_t* env = (struct iconv_env_t*)env_value; - VALUE last = 0; - - for (; env->argc > 0; --env->argc, ++env->argv) { -@@ -906,7 +907,7 @@ list_iconv(unsigned int namescount, const char *const *names, void *data) - - #if defined(HAVE_ICONVLIST) || defined(HAVE___ICONV_FREE_LIST) - static VALUE --iconv_s_list(void) -+iconv_s_list(VALUE klass) - { - #ifdef HAVE_ICONVLIST - int state; diff --git a/pkgs/development/ruby-modules/with-packages/Gemfile b/pkgs/development/ruby-modules/with-packages/Gemfile index 99d59f734563..87ae567585b1 100644 --- a/pkgs/development/ruby-modules/with-packages/Gemfile +++ b/pkgs/development/ruby-modules/with-packages/Gemfile @@ -86,7 +86,6 @@ gem 'jekyll-webmention_io' gem 'jmespath' gem 'jwt' gem 'kramdown-rfc2629' -gem 'libv8' gem 'libxml-ruby' gem 'mail' gem 'magic' diff --git a/pkgs/development/tools/misc/coreboot-toolchain/default.nix b/pkgs/development/tools/misc/coreboot-toolchain/default.nix index 6ca15bf142d8..a0d9a450ff55 100644 --- a/pkgs/development/tools/misc/coreboot-toolchain/default.nix +++ b/pkgs/development/tools/misc/coreboot-toolchain/default.nix @@ -26,12 +26,12 @@ let stdenvNoCC.mkDerivation (finalAttrs: { pname = "coreboot-toolchain-${arch}"; - version = "24.12"; + version = "25.03"; src = fetchgit { url = "https://review.coreboot.org/coreboot"; rev = finalAttrs.version; - hash = "sha256-vK2kxLJZFz7QqWYRF6JIGrM2Hobmzp31HtQMpb1mx9M="; + hash = "sha256-zyfBQKVton+2vjYd6fqrUqkHY9bci411pujRGabvTjQ="; fetchSubmodules = false; leaveDotGit = true; postFetch = '' diff --git a/pkgs/development/tools/misc/coreboot-toolchain/stable.nix b/pkgs/development/tools/misc/coreboot-toolchain/stable.nix index a2cbc3c57de0..d8ecb7b969d2 100644 --- a/pkgs/development/tools/misc/coreboot-toolchain/stable.nix +++ b/pkgs/development/tools/misc/coreboot-toolchain/stable.nix @@ -36,10 +36,10 @@ }; } { - name = "acpica-unix-20230628.tar.gz"; + name = "acpica-unix-20241212.tar.gz"; archive = fetchurl { - sha256 = "1kjwzyfrmw0fhawjvpqib3l5jxdlcpj3vv92sb7ls8ixbrs6m1w6"; - url = "https://downloadmirror.intel.com/783534/acpica-unix-20230628.tar.gz"; + sha256 = "0q8rqc9nxvyg4310rc93az04j01p91q7ipzvhl2722rrxv7q7jlx"; + url = "https://github.com/acpica/acpica/releases/download/R2024_12_12/acpica-unix-20241212.tar.gz"; }; } { diff --git a/pkgs/games/dxx-rebirth/default.nix b/pkgs/games/dxx-rebirth/default.nix index 0200e2991468..378cc9bb60dd 100644 --- a/pkgs/games/dxx-rebirth/default.nix +++ b/pkgs/games/dxx-rebirth/default.nix @@ -24,13 +24,13 @@ let in stdenv.mkDerivation { pname = "dxx-rebirth"; - version = "0.60.0-beta2-unstable-2025-03-01"; + version = "0.60.0-beta2-unstable-2025-03-29"; src = fetchFromGitHub { owner = "dxx-rebirth"; repo = "dxx-rebirth"; - rev = "d96665375a8bd273dcc0d0b21c87249861b0e00f"; - hash = "sha256-HoGRpqfgPh7nBYbX5ZGETgNNKtDs22IarVzvSTWLi58="; + rev = "ddc84fa623ed508073cf99244db731bd73f36b6b"; + hash = "sha256-VZ3PQ4YECM+z+V1zPSNdgIIBFjRIAunEmhENJAUj+P8="; }; nativeBuildInputs = [ diff --git a/pkgs/tools/misc/coreboot-utils/default.nix b/pkgs/tools/misc/coreboot-utils/default.nix index 7f2777b3a5d4..e0892eda4b57 100644 --- a/pkgs/tools/misc/coreboot-utils/default.nix +++ b/pkgs/tools/misc/coreboot-utils/default.nix @@ -16,7 +16,7 @@ }: let - version = "24.12"; + version = "25.03"; commonMeta = { description = "Various coreboot-related tools"; @@ -45,7 +45,7 @@ let src = fetchgit { url = "https://review.coreboot.org/coreboot"; rev = version; - hash = "sha256-PtHvzMf9sKvrgWVT5XVCy4BbMklCKcpnJAE+WeE2Cgs="; + hash = "sha256-tsNdsH+GxjLUTd7KXHMZUTNTIAWeKJ3BNy1Lehjo8Eo="; }; enableParallelBuilding = true; diff --git a/pkgs/tools/misc/topgrade/default.nix b/pkgs/tools/misc/topgrade/default.nix index 55910cfaaa44..e445c7668a83 100644 --- a/pkgs/tools/misc/topgrade/default.nix +++ b/pkgs/tools/misc/topgrade/default.nix @@ -11,17 +11,17 @@ rustPlatform.buildRustPackage rec { pname = "topgrade"; - version = "16.0.2"; + version = "16.0.3"; src = fetchFromGitHub { owner = "topgrade-rs"; repo = "topgrade"; rev = "v${version}"; - hash = "sha256-0wJxBFGPjJReWoeeKpHEsKaB3npR8nf7Uw8BgPQ+ccs="; + hash = "sha256-TLeShvDdVqFBIStdRlgF1Zmi8FwS9pmeQ9qOu63nq/E="; }; useFetchCargoVendor = true; - cargoHash = "sha256-/sN5Vl1Co2VYnG2vN170Q3hAbOYhJSvLawJDFytz+ho="; + cargoHash = "sha256-Tu4exuUhsk9hGDreQWkPrYvokZh0z6DQSQnREO40Qwc="; nativeBuildInputs = [ installShellFiles diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 7db543857d3a..ca38a0b02f96 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -14120,6 +14120,7 @@ with pkgs; docker_25 docker_26 docker_27 + docker_28 ; docker = docker_27; diff --git a/pkgs/top-level/ruby-packages.nix b/pkgs/top-level/ruby-packages.nix index afb2fd58b49a..884c46e1b077 100644 --- a/pkgs/top-level/ruby-packages.nix +++ b/pkgs/top-level/ruby-packages.nix @@ -11,10 +11,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0ifiz4nd6a34z2n8lpdgvlgwziy2g364b0xzghiqd3inji0cwqp1"; + sha256 = "18496axh89kakw5f82mmmac3w9rwb0b0wq4j6la806p9cbgy5k3v"; type = "gem"; }; - version = "7.1.3.2"; + version = "8.0.2"; }; actionmailbox = { dependencies = [ @@ -24,18 +24,15 @@ "activestorage" "activesupport" "mail" - "net-imap" - "net-pop" - "net-smtp" ]; groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1adqnf5zc4fdr71ykxdv5b50h7n4xfvrc0qcgwmgidi0cxkzx4r4"; + sha256 = "1nyfwa1kj0cm1scqsbv723ypv69bzaxh886hliyjbrhk752v73rx"; type = "gem"; }; - version = "7.1.3.2"; + version = "8.0.2"; }; actionmailer = { dependencies = [ @@ -44,40 +41,37 @@ "activejob" "activesupport" "mail" - "net-imap" - "net-pop" - "net-smtp" "rails-dom-testing" ]; groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "012mxn5dfhwbssrckw6kvf851m6rlfa87n4nikk28g05ydfsvcys"; + sha256 = "1l3pnba14p0p7zsh366c31maxap030c97597vjimdv3nhnrnijdh"; type = "gem"; }; - version = "7.1.3.2"; + version = "8.0.2"; }; actionpack = { dependencies = [ "actionview" "activesupport" "nokogiri" - "racc" "rack" "rack-session" "rack-test" "rails-dom-testing" "rails-html-sanitizer" + "useragent" ]; groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0n1v4r5cyac5wfdlf8bly45mnh60vbp067yjpkyb05vyszamiydq"; + sha256 = "0y2b5ydiqy32jbd9g5bl6v4aw6d7pjn5f3w2rxf2j59q9w307rwk"; type = "gem"; }; - version = "7.1.3.2"; + version = "8.0.2"; }; actiontext = { dependencies = [ @@ -92,10 +86,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0an5sfy96cbd7f43igq47h3m228ivngqjj40gj6iqllhjhchgs7c"; + sha256 = "1grs41yr3nzw7zbnz0vkv8f4qd448a632saxkm3vnbzf68hb63d4"; type = "gem"; }; - version = "7.1.3.2"; + version = "8.0.2"; }; actionview = { dependencies = [ @@ -109,10 +103,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1kq9b4xnwiknjqg4y6ixvv0cf1z0dcxs68inc8bx05s0fqrim6rn"; + sha256 = "1fyfyxf2a798lxq6sfpnj94kmnpfp17xlhvjy428zhfzbi0f2f70"; type = "gem"; }; - version = "7.1.3.2"; + version = "8.0.2"; }; activejob = { dependencies = [ @@ -123,10 +117,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "08gjywvd65yzgjw7ynsgvi00scxc4fmgj70wajn7wsdqx00hbafj"; + sha256 = "1jjk31di5kvcflc90wmgdd50jzhljhafi166h6hg67kbwd2qn8mh"; type = "gem"; }; - version = "7.1.3.2"; + version = "8.0.2"; }; activemodel = { dependencies = [ "activesupport" ]; @@ -134,10 +128,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0p3ibps515151ja4gadrhh8frvjvvq4h5fpxw2acccv3z5i553hh"; + sha256 = "0v35y2jzqlfy1wnrzlzj2cxylhnz09vykaa1l2dnkq7sl5zzpq8a"; type = "gem"; }; - version = "7.1.3.2"; + version = "8.0.2"; }; activerecord = { dependencies = [ @@ -149,10 +143,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0ww1qxn12nlp0ivysq0pxj6cvajf0fbq781fr4pqx5206c690wj8"; + sha256 = "02nrya34qviawdkssyahb3mg08kqdc461b320a6ikr245jwp0d3r"; type = "gem"; }; - version = "7.1.3.2"; + version = "8.0.2"; }; activestorage = { dependencies = [ @@ -166,31 +160,34 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "09wp0qqp7xr31ipcv42bs81fmyksz9l3jmraryf53qjsbbqpfdr8"; + sha256 = "0xr9cy6h8il61qq6w3rkvl56visms45ljm8f43r3ibh61wg24ggq"; type = "gem"; }; - version = "7.1.3.2"; + version = "8.0.2"; }; activesupport = { dependencies = [ "base64" + "benchmark" "bigdecimal" "concurrent-ruby" "connection_pool" "drb" "i18n" + "logger" "minitest" - "mutex_m" + "securerandom" "tzinfo" + "uri" ]; groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0blbbf2x7dn7ar4g9aij403582zb6zscbj48bz63lvaamsvlb15d"; + sha256 = "0pm40y64wfc50a9sj87kxvil2102rmpdcbv82zf0r40vlgdwsrc5"; type = "gem"; }; - version = "7.1.3.2"; + version = "8.0.2"; }; addressable = { dependencies = [ "public_suffix" ]; @@ -198,10 +195,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0irbdwkkjwzajq1ip6ba46q49sxnrl2cw7ddkdhsfhb6aprnm3vr"; + sha256 = "0cl2qpvwiffym62z991ynks7imsm87qmgxf0yfsmlwzkgi9qcaa6"; type = "gem"; }; - version = "2.8.6"; + version = "2.8.7"; }; ansi = { groups = [ "default" ]; @@ -218,10 +215,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "04nc8x27hlzlrr5c2gn7mar4vdr0apw5xg22wp6m8dx3wqr04a0y"; + sha256 = "10yknjyn0728gjn6b5syynvrvrwm66bhssbxq8mkhshxghaiailm"; type = "gem"; }; - version = "2.4.2"; + version = "2.4.3"; }; atk = { dependencies = [ "glib2" ]; @@ -229,10 +226,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "11lcig7dr3nanwdgsacv2hbdpdk5yfaqzfjl8gav41mjbk90w15q"; + sha256 = "0x8w98m2i2ywq3pb72rdmvmnbffnjg7fm1y99b4cb556mfvfvkr2"; type = "gem"; }; - version = "4.2.1"; + version = "4.2.9"; }; awesome_print = { groups = [ "default" ]; @@ -279,20 +276,20 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0wghmhwjzv4r9mdcny4xfz2h2cm7ci24md79rvy2x65r4i99k9sc"; + sha256 = "0jl71qcgamm96dzyqk695j24qszhcc7liw74qc83fpjljp2gh4hg"; type = "gem"; }; - version = "0.3.0"; + version = "0.4.0"; }; bigdecimal = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0cq1c29zbkcxgdihqisirhcw76xc768z2zpd5vbccpq0l1lv76g7"; + sha256 = "1k6qzammv9r6b2cw3siasaik18i6wjc5m0gw5nfdc6jj64h79z1g"; type = "gem"; }; - version = "3.1.7"; + version = "3.1.9"; }; bindata = { groups = [ "default" ]; @@ -309,20 +306,20 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "045wzckxpwcqzrjr353cxnyaxgf0qg22jh00dcx7z38cys5g1jlr"; + sha256 = "0pw3r2lyagsxkm71bf44v5b74f7l9r7di22brbyji9fwz791hya9"; type = "gem"; }; - version = "3.2.4"; + version = "3.3.0"; }; byebug = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0nx3yjf4xzdgb8jkmk2344081gqr22pgjqnmjg2q64mj5d6r9194"; + sha256 = "07hsr9zzl2mvf5gk65va4smdizlk9rsiz8wwxik0p96cj79518fl"; type = "gem"; }; - version = "11.1.3"; + version = "12.0.0"; }; cairo = { dependencies = [ @@ -334,10 +331,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1a85gisjb2n236bpay7cjqlxq07m4swc8mqnwy8c5rkxfhil194c"; + sha256 = "02rd8zfzkq4nfv84y6jqmplc3ysygwladsnw1hfl44pgk9ync1ws"; type = "gem"; }; - version = "1.17.13"; + version = "1.18.4"; }; cairo-gobject = { dependencies = [ @@ -348,29 +345,24 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "06y99zan4apgi4bsqqwnsdlsyss8dk2plr2gksh4yw8lkkk3a5zs"; + sha256 = "0xmp41l5d2344ll3vy5dvmbs0pmsyxrpcrgvg745n8982b0rkxv5"; type = "gem"; }; - version = "4.2.1"; + version = "4.2.9"; }; camping = { dependencies = [ - "kdl" - "listen" "mab" "rack" - "rack-session" - "rackup" - "zeitwerk" ]; groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1w6q8qfz05w0f530yfg8r134zkbsgis9fa0awbypdqfh9jmlhn0m"; + sha256 = "1q2a5x97pgnld0b8yziblp9fqkjyib4gfwv9gcyynyhswqwsldpf"; type = "gem"; }; - version = "3.1.3"; + version = "2.1.532"; }; certified = { groups = [ "default" ]; @@ -382,40 +374,6 @@ }; version = "1.0.0"; }; - cf-uaa-lib = { - dependencies = [ - "addressable" - "httpclient" - "multi_json" - ]; - groups = [ "default" ]; - platforms = [ ]; - source = { - remotes = [ "https://rubygems.org" ]; - sha256 = "f03e5fc4630511d39d42d802715d65997abfc5cdd113564fa21aebb610f63a46"; - type = "gem"; - }; - version = "4.0.8"; - }; - cf-uaac = { - dependencies = [ - "cf-uaa-lib" - "em-http-request" - "eventmachine" - "highline" - "json_pure" - "launchy" - "rack" - ]; - groups = [ "default" ]; - platforms = [ ]; - source = { - remotes = [ "https://rubygems.org" ]; - sha256 = "f31cbbe93f8d791fac8ed6c9ede370f29d58654913b81177b6918c476b675528"; - type = "gem"; - }; - version = "4.27.0"; - }; charlock_holmes = { groups = [ "default" ]; platforms = [ ]; @@ -426,17 +384,6 @@ }; version = "0.7.9"; }; - childprocess = { - dependecnies = [ "logger" ]; - groups = [ "default" ]; - platforms = [ ]; - source = { - remotes = [ "https://rubygems.org" ]; - sha256 = "9a8d484be2fd4096a0e90a0cd3e449a05bc3aa33f8ac9e4d6dcef6ac1455b6ec"; - type = "gem"; - }; - version = "5.1.0"; - }; claide = { groups = [ "default" ]; platforms = [ ]; @@ -462,10 +409,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0rn46vga5c1ww2vkf4dbg0w5g4h0vwx9idvdz3284188q4ksfbmg"; + sha256 = "16n57vzkhsyjsmkb46n6pk4drcfvpy1mg3j4an9k21akr67qadmp"; type = "gem"; }; - version = "3.6.0"; + version = "3.7.0"; }; cocoapods = { groups = [ "default" ]; @@ -745,10 +692,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0imaai3zmm3mx35kmfhsir8c3ijcs0s2zm8gd2rhqmk26gn3xqbm"; + sha256 = "03n8gqzxnbkvfz875cdci4gdfc6pbdv1vjw8sy6m75l26ykimbav"; type = "gem"; }; - version = "0.5.4"; + version = "0.6.0"; }; cocoapods-wholemodule = { groups = [ "default" ]; @@ -819,40 +766,40 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1zj06gjqwykgzxmbkp2hmg3wv5kv8zz5d77acxipzcgicdjgvfan"; + sha256 = "0drbrv5m3l3qpal7s87gvss81cbzl76gad1hqkpqfqlphf0h7qb3"; type = "gem"; }; - version = "4.0.0"; + version = "4.0.3"; }; commonmarker = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1lb5slzbqrca49h0gaifg82xky5r7i9xgm4560pin1xl5fp15lzx"; + sha256 = "1gyjwd7in1nlf8zai2fxazxi8cy6xjzswdcjway520blb39ka7cx"; type = "gem"; }; - version = "0.23.10"; + version = "0.23.11"; }; concurrent-ruby = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1qh1b14jwbbj242klkyz5fc7npd4j0mvndz62gajhvl1l3wd7zc2"; + sha256 = "1ipbrgvf0pp6zxdk5ascp6i29aybz2bx9wdrlchjmpx6mhvkwfw1"; type = "gem"; }; - version = "1.2.3"; + version = "1.3.5"; }; connection_pool = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1x32mcpm2cl5492kd6lbjbaf17qsssmpx9kdyr7z1wcif2cwyh0g"; + sha256 = "1z7bag6zb2vwi7wp2bkdkmk7swkj6zfnbsnc949qq0wfsgw94fr3"; type = "gem"; }; - version = "2.4.1"; + version = "2.5.0"; }; crabstone = { dependencies = [ "ffi" ]; @@ -865,16 +812,6 @@ }; version = "4.0.4"; }; - cookiejar = { - groups = [ "default" ]; - platforms = [ ]; - source = { - remotes = [ "https://rubygems.org" ]; - sha256 = "11b16acfc4baf7a0f463c21a6212005e04e25f5554d4d9f24d97f3492dfda0df"; - type = "gem"; - }; - version = "0.3.4"; - }; crass = { groups = [ "default" ]; platforms = [ ]; @@ -890,30 +827,30 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "sha256-C70d79wxE0q+/tAnpjmzcjwnU4YhUPTD7mHKtxsg1n0="; + sha256 = "0059n2hqiv3afahq1wc4ymr7lpka7vkisvmkx7azgnkvzfz6caby"; type = "gem"; }; - version = "3.3.0"; + version = "3.3.3"; }; curb = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1lgga9ina9gnpp9ycj8lpqkc5hm5qlxb41s4pfg0w6fnnpgmairc"; + sha256 = "03gb7yqfg3p11v0zaibwkcd9klr2dbvjhxc2hvhkq41n915bgr87"; type = "gem"; }; - version = "1.0.5"; + version = "1.0.9"; }; curses = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "00y9g79lzfffxarj3rmhnkblsnyx7izx91mh8c1sdcs9y2pdfq53"; + sha256 = "0ywack2dm2q67qb2an0fagzbmwm7gcizw02arp87d7bhkx8h770y"; type = "gem"; }; - version = "1.4.4"; + version = "1.4.7"; }; daemons = { groups = [ "default" ]; @@ -941,10 +878,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "149jknsq999gnhy865n33fkk22s0r447k76x9pmcnnwldfv2q7wp"; + sha256 = "0kz6mc4b9m49iaans6cbx031j9y7ldghpi5fzsdh0n3ixwa8w9mz"; type = "gem"; }; - version = "3.3.4"; + version = "3.4.1"; }; dentaku = { dependencies = [ "concurrent-ruby" ]; @@ -972,10 +909,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1znxccz83m4xgpd239nyqxlifdb7m8rlfayk6s259186nkgj6ci7"; + sha256 = "1m3cv0ynmxq93axp6kiby9wihpsdj42y6s3j8bsf5a1p7qzsi98j"; type = "gem"; }; - version = "1.5.1"; + version = "1.6.1"; }; differ = { groups = [ "default" ]; @@ -998,26 +935,33 @@ version = "1.0.2"; }; dip = { - dependencies = [ "thor" ]; + dependencies = [ + "json-schema" + "public_suffix" + "thor" + ]; groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0vpj7mxfyjjyhqmxrbwgf03b4m4wq4bmcbka66jarp1nsqsxya28"; + sha256 = "0b3p0mjz6l4dya5k8z0nsq186r1yvkbkrwaqgrg23lr96l24r381"; type = "gem"; }; - version = "8.0.0"; + version = "8.2.5"; }; dnsruby = { - dependencies = [ "simpleidn" ]; + dependencies = [ + "base64" + "simpleidn" + ]; groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "069402nn1sb63bslp9p5mcbn90zzzj6549ykxa4km0klb1l1klxr"; + sha256 = "0ys49x6lsy1cly3w9w4zrivv0lg8rqsdbp9q2ix05d3494dbsjkn"; type = "gem"; }; - version = "1.72.0"; + version = "1.72.3"; }; do_sqlite3 = { dependencies = [ "data_objects" ]; @@ -1035,10 +979,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1lxqxgq71rqwj1lpl9q1mbhhhhhhdkkj7my341f2889pwayk85sz"; + sha256 = "07pj4z3h8wk4fgdn6s62vw1lwvhj0ac0x10vfbdkr9xzk7krn5cn"; type = "gem"; }; - version = "1.4.0"; + version = "1.4.1"; }; domain_name = { groups = [ "default" ]; @@ -1055,10 +999,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1d5jv27p3gpj68pc1cxj3cp1bs11r25w2336sndsdfkx34p6hzlb"; + sha256 = "1wrw6fm0s38cd6h55w79bkvjhcj2zfkargjpws4kilkmhr3xyw66"; type = "gem"; }; - version = "3.1.0"; + version = "3.1.7"; }; drb = { groups = [ "default" ]; @@ -1070,44 +1014,6 @@ }; version = "2.2.1"; }; - e2mmap = { - groups = [ "default" ]; - platforms = [ ]; - source = { - remotes = [ "https://rubygems.org" ]; - sha256 = "0n8gxjb63dck3vrmsdcqqll7xs7f3wk78mw8w0gdk9wp5nx6pvj5"; - type = "gem"; - }; - version = "0.1.0"; - }; - em-http-request = { - dependencies = [ - "addressable" - "cookiejar" - "em-socksify" - "eventmachine" - "http_parser.rb" - ]; - groups = [ "default" ]; - platforms = [ ]; - source = { - remotes = [ "https://rubygems.org" ]; - sha256 = "1azx5rgm1zvx7391sfwcxzyccs46x495vb34ql2ch83f58mwgyqn"; - type = "gem"; - }; - version = "1.1.7"; - }; - em-socksify = { - dependencies = [ "eventmachine" ]; - groups = [ "default" ]; - platforms = [ ]; - source = { - remotes = [ "https://rubygems.org" ]; - sha256 = "0rk43ywaanfrd8180d98287xv2pxyl7llj291cwy87g1s735d5nk"; - type = "gem"; - }; - version = "0.3.3"; - }; elftools = { dependencies = [ "bindata" ]; groups = [ "default" ]; @@ -1139,20 +1045,20 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0g2jghbn2pmi1k8lnqbslyjix2rablalp4gjjsh4k9gxpvx5r1x1"; + sha256 = "1nd46v4d6x5hr6afwx06rs7vqgjf1gb4rssnpa3a89wqgf4qilb4"; type = "gem"; }; - version = "0.7.2"; + version = "0.7.3"; }; erubi = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "08s75vs9cxlc4r1q2bjg4br8g9wc5lc5x5vl0vv4zq5ivxsdpgi7"; + sha256 = "1naaxsqkv5b3vklab5sbb9sdpszrjzlfsbqpy7ncbnw510xi10m0"; type = "gem"; }; - version = "1.12.0"; + version = "1.13.1"; }; ethon = { dependencies = [ "ffi" ]; @@ -1176,35 +1082,40 @@ version = "1.2.7"; }; excon = { + dependencies = [ "logger" ]; groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1m3gzvp1wqki0yh4b7761qhdy4pyr4phy429b7s9w25nrkhp4lsz"; + sha256 = "17asr18vawi08g3wbif0wdi8bnyj01d125saydl9j1f03fv0n16a"; type = "gem"; }; - version = "0.110.0"; + version = "1.2.5"; }; execjs = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1yywajqlpjhrj1m43s3lfg3i4lkb6pxwccmwps7qw37ndmphdzg8"; + sha256 = "03a590q16nhqvfms0lh42mp6a1i41w41qpdnf39zjbq5y3l8pjvb"; type = "gem"; }; - version = "2.9.1"; + version = "2.10.0"; }; faraday = { - dependencies = [ "faraday-net_http" ]; + dependencies = [ + "faraday-net_http" + "json" + "logger" + ]; groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1qqb1rmk0f9m82iijjlqadh5yby1bhnr6svjk9vxdvh6f181988s"; + sha256 = "1mls9g490k63rdmjc9shqshqzznfn1y21wawkxrwp2vvbk13jwqm"; type = "gem"; }; - version = "2.9.0"; + version = "2.12.2"; }; faraday-net_http = { dependencies = [ "net-http" ]; @@ -1212,20 +1123,20 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "17w51yk4rrm9rpnbc3x509s619kba0jga3qrj4b17l30950vw9qn"; + sha256 = "0jp5ci6g40d6i50bsywp35l97nc2fpi9a592r2cibwicdb6y9wd1"; type = "gem"; }; - version = "3.1.0"; + version = "3.4.0"; }; ffi = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1yvii03hcgqj30maavddqamqy50h7y6xcn2wcyq72wn823zl4ckd"; + sha256 = "0fgwn1grxf4zxmyqmb9i4z2hr111585n9jnk17y6y7hhs7dv1xi6"; type = "gem"; }; - version = "1.16.3"; + version = "1.17.1"; }; ffi-compiler = { dependencies = [ @@ -1257,10 +1168,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0x504023g56y32r81l6i4pqbhn46szzy6s5bcdlc7kb5iv1iigar"; + sha256 = "1as92bp6pgkab73kj3mh5d1idjr9wykczz7r9i1pkn82wq4xks3r"; type = "gem"; }; - version = "1.1.2"; + version = "1.1.6"; }; fog-core = { dependencies = [ @@ -1273,10 +1184,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0p2xiw0n4l1k3ynma1vl0fzw5w8xhkv70x4f829nydxv7hply80y"; + sha256 = "1rjv4iqr64arxv07bh84zzbr1y081h21592b5zjdrk937al8mq1z"; type = "gem"; }; - version = "2.4.0"; + version = "2.6.0"; }; fog-dnsimple = { dependencies = [ @@ -1346,10 +1257,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0nbzvmg3aa0r9iadkpiz3fzr1dnv09vx6bi7cc5wgpg13d3i3rbl"; + sha256 = "12ly1k3rscybpp1dm5yaaqczi9d17dll5f4n9s2ypqgxymjdljad"; type = "gem"; }; - version = "4.2.1"; + version = "4.2.9"; }; gdk_pixbuf2 = { dependencies = [ "gio2" ]; @@ -1357,10 +1268,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1lrs0g6s5l050ld8mfjscijg0iycx9hq2wgdwc76y3nm47gs78na"; + sha256 = "0bxmyyrbnx827zr2kpb1d637ap8kzhaxllj2h7vx4n0q9glw7mi2"; type = "gem"; }; - version = "4.2.1"; + version = "4.2.9"; }; gemoji = { groups = [ "default" ]; @@ -1384,10 +1295,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "16h0kda5z4s4zqygyk0f52xzs9mlz9r4lnhjwk729hhmdbz68a19"; + sha256 = "0aji3873pxn6gc5qkvnv5y9025mqk0p6h22yrpyz2b3yx9qpzv03"; type = "gem"; }; - version = "3.4.9"; + version = "3.5.1"; }; gio2 = { dependencies = [ @@ -1398,24 +1309,26 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1zpz71ybilrk7i9ym7jx807fza22sdjm18l6qydds3gm7bpybvdz"; + sha256 = "1z958fb5kg28glazqmbha2wx43nr7lq1qvivqnrslmxcaszmlnb3"; type = "gem"; }; - version = "4.2.1"; + version = "4.2.9"; }; git = { dependencies = [ + "activesupport" "addressable" + "process_executer" "rchardet" ]; groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0w3xhay1z7qx9ab04wmy5p4f1fadvqa6239kib256wsiyvcj595h"; + sha256 = "0h026bb5j5m86l4gasx462im6in467picr56pixj1nc0fami47lm"; type = "gem"; }; - version = "1.19.1"; + version = "3.0.0"; }; github-pages = { dependencies = [ @@ -1463,15 +1376,16 @@ "nokogiri" "rouge" "terminal-table" + "webrick" ]; groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0608fr1ggyrk2f6pfc4zwy9i9prkxx0dsfb4k9j8s249kczqmlbr"; + sha256 = "11r22g1j9x2gjaxjk78z2nm5wkirsjlz8iswwi67wqi7fcyljh1b"; type = "gem"; }; - version = "231"; + version = "232"; }; github-pages-health-check = { dependencies = [ @@ -1495,10 +1409,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1m3ypny84jyvlxf060p3q3d8pb4yihxa2br5hh012bgc11d09nky"; + sha256 = "0bm0zccj88aavy23vqy1pkz4gmbw6gdb40n0wqlz7a332j3iq6lm"; type = "gem"; }; - version = "1.9.0"; + version = "2.0.0"; }; glib2 = { dependencies = [ @@ -1509,10 +1423,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0lbvk3jz21kw811hn411xvql7l14bb8kfnqc10inkkyli3a2ifv3"; + sha256 = "1sz4f938vy3iivnfp6r3g290x8a9xbj951n8v59xyb3v89wdndx4"; type = "gem"; }; - version = "4.2.1"; + version = "4.2.9"; }; globalid = { dependencies = [ "activesupport" ]; @@ -1531,10 +1445,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "08ysbhg8njdf1sb4mmx90baswqbya5ihw8kyym3rw43sl2gswnsk"; + sha256 = "0p77n5dppphnl1y7kxv8hrj8x7crapb3zcrzkb7pd9rksdcxih1s"; type = "gem"; }; - version = "4.2.1"; + version = "4.2.9"; }; gpgme = { dependencies = [ "mini_portile2" ]; @@ -1550,17 +1464,16 @@ gtk3 = { dependencies = [ "atk" - "cairo" "gdk3" ]; groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1hk0anmyczicvjzri5pdj6f65ibf1pyarychayhzxjl50n9sf1wd"; + sha256 = "0npdbdk8a6mgbbw69j435azamdmcnx9wx5i708j9h9x1wdc6gafy"; type = "gem"; }; - version = "4.2.1"; + version = "4.2.9"; }; haml = { dependencies = [ @@ -1588,14 +1501,15 @@ version = "5.0.0"; }; highline = { + dependencies = [ "reline" ]; groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "02ghhvigqbq4252gsi4w8a9klkdkybmbz29ghfp1y6sqzlcb466a"; + sha256 = "0jmvyhjp2v3iq47la7w6psrxbprnbnmzz0hxxski3vzn356x7jv7"; type = "gem"; }; - version = "3.0.1"; + version = "3.1.2"; }; hike = { groups = [ "default" ]; @@ -1612,10 +1526,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0ix9rp9rsrwin38z2aqiwpxc8p2dzl6m3ra47az47fsija1cb2qf"; + sha256 = "0bx09c9zfjhp3pbyvsf8il9sdn64mnydcxs13mqk574ngvccmhm9"; type = "gem"; }; - version = "2.0.0"; + version = "3.1.0"; }; hpricot = { groups = [ "default" ]; @@ -1684,10 +1598,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "13rilvlv8kwbzqfb644qp6hrbsj82cbqmnzcvqip1p6vqx36sxbk"; + sha256 = "19hsskzk5zpv14mnf07pq71hfk1fsjwfjcw616pgjjzjbi2f0kxi"; type = "gem"; }; - version = "1.0.5"; + version = "1.0.8"; }; http-form_data = { groups = [ "default" ]; @@ -1710,14 +1624,15 @@ version = "0.8.0"; }; httpclient = { + dependencies = [ "mutex_m" ]; groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "19mxmvghp7ki3klsxwrlwr431li7hm1lczhhj8z4qihl2acy8l99"; + sha256 = "1j4qwj1nv66v3n9s4xqf64x2galvjm630bwa5xngicllwic5jr2b"; type = "gem"; }; - version = "2.8.3"; + version = "2.9.0"; }; i18n = { dependencies = [ "concurrent-ruby" ]; @@ -1725,20 +1640,20 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0lbm33fpb3w06wd2231sg58dwlwgjsvym93m548ajvl6s3mfvpn7"; + sha256 = "03sx3ahz1v5kbqjwxj48msw3maplpp2iyzs22l4jrzrqh4zmgfnf"; type = "gem"; }; - version = "1.14.4"; + version = "1.14.7"; }; iconv = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "00fppiz9ypy7xpc08xdk6glq842rbc69c7a1p0kmv195271i4yqv"; + sha256 = "1s10cwzm54vps35bqadgyksc7i0zkdaxjry8kkz6w65aag7dkmwa"; type = "gem"; }; - version = "1.0.8"; + version = "1.1.0"; }; idn-ruby = { groups = [ "default" ]; @@ -1770,13 +1685,14 @@ 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" ]; @@ -1784,20 +1700,20 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "17ak21ybbprj9vg0hk8pb1r2yk9vlh50v9bdwh3qvlmpzcvljqq7"; + sha256 = "1478m97wiy6nwg6lnl0szy39p46acsvrhax552vsh1s2mi2sgg6r"; type = "gem"; }; - version = "1.12.0"; + version = "1.15.1"; }; jaro_winkler = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "10fd3i92897blalxfkgc0jjv0qqx31v7cm7j2b6a3b97an0bfz80"; + sha256 = "09645h5an19zc1i7wlmixszj8xxqb2zc8qlf8dmx39bxpas1l24b"; type = "gem"; }; - version = "1.5.6"; + version = "1.6.0"; }; jbuilder = { dependencies = [ @@ -1808,15 +1724,16 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1h58xgmp0fqpnd6mvw0zl0f76119v8lnf4xabqhckbzl6jrk8qpa"; + sha256 = "1mi7s8kida8rg754bzgiik2mpdwx55x7wxd9ny0sm0803j5a603j"; type = "gem"; }; - version = "2.11.5"; + version = "2.13.0"; }; jekyll = { dependencies = [ "addressable" "colorator" + "csv" "em-websocket" "i18n" "jekyll-sass-converter" @@ -1827,15 +1744,16 @@ "pathutil" "rouge" "safe_yaml" + "webrick" ]; groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1w36kbn1ijbqfn33xbx14rpzr6adgiw2ip5g95jrzi1nh3qraan2"; + sha256 = "144dvgqffkkp34763hj0wh1qabd0fq22sx7bk7afgpy73mv3n8f4"; type = "gem"; }; - version = "3.9.5"; + version = "3.10.0"; }; jekyll-archives = { dependencies = [ "jekyll" ]; @@ -1843,10 +1761,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0c2rks7xf6ajp18h4f4wmmbqm5ljprv70bqcz2sabi17zncmz9n0"; + sha256 = "1xkm6f0zvb7mb89nyqncids1rqm6a90smjg23zlaryqj4bi8rg9d"; type = "gem"; }; - version = "2.2.1"; + version = "2.3.0"; }; jekyll-avatar = { dependencies = [ "jekyll" ]; @@ -1895,21 +1813,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1zps7bb9kc4qf32b9y9h47z08wpsziklg0jnhcrcz2wxn09fijgd"; + sha256 = "19544wfdcdh52qw76m6ayv6zbdabqv9wdfp1wqjmdr4k6gr24rym"; type = "gem"; }; - version = "0.4.0"; - }; - jekyll-compose = { - dependencies = [ "jekyll" ]; - groups = [ "default" ]; - platforms = [ ]; - source = { - remotes = [ "https://rubygems.org" ]; - sha256 = "1ny8xps0mrmx2w0xxc9rwa15ch1wkxvdrzxiwnqramqwja566y04"; - type = "gem"; - }; - version = "0.12.0"; + version = "0.5.1"; }; jekyll-default-layout = { dependencies = [ "jekyll" ]; @@ -1926,16 +1833,15 @@ dependencies = [ "jekyll" "mini_magick" - "rexml" ]; groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0dyksm4i11n0qshd7wh6dvk8d0fc70dd32ir2dxs6igxq0gd6hi1"; + sha256 = "0gxz6db4gdz2x305xlfxi3lanndbx2nagqfl8qjnjzshxzq7zdyr"; type = "gem"; }; - version = "1.1.0"; + version = "0.2.9"; }; jekyll-feed = { dependencies = [ "jekyll" ]; @@ -2334,12 +2240,11 @@ }; jekyll-webmention_io = { dependencies = [ - "activesupport" "htmlbeautifier" "jekyll" "json" - "jsonpath" "openssl" + "string_inflection" "uglifier" "webmention" ]; @@ -2347,10 +2252,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0kkxvr1gfbmfbhy13syq4pqwmfqwhnbfcwjiqrwahf99gfcj5izh"; + sha256 = "003lwcl00l13c5r1i1zk5q1p8m50nv83w6h3j2mij6hs2aaz1zwb"; type = "gem"; }; - version = "4.0.0"; + version = "3.3.7"; }; jemoji = { dependencies = [ @@ -2382,31 +2287,34 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0r9jmjhg2ly3l736flk7r2al47b5c8cayh0gqkq0yhjqzc9a6zhq"; + sha256 = "01lbdaizhkxmrw4y8j3wpvsryvnvzmg0pfs56c52laq2jgdfmq1l"; type = "gem"; }; - version = "2.7.1"; + version = "2.10.2"; + }; + json-schema = { + dependencies = [ + "addressable" + "bigdecimal" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1gzrf6q4d9kbixj6bpi2bp8dizmqxcmlq30ni86h3ifzpkcrm0mk"; + type = "gem"; + }; + version = "5.1.1"; }; json_pure = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "09w7f7xlcas9irlaavhz0rnh17cjvjmmqm07drgghx5gwjcrar31"; + sha256 = "1kks889ymaq5xqvj18qamar3il8m3dnnaf6cij0a0kwxp8lpk1va"; type = "gem"; }; - version = "2.7.1"; - }; - jsonpath = { - dependencies = [ "multi_json" ]; - groups = [ "default" ]; - platforms = [ ]; - source = { - remotes = [ "https://rubygems.org" ]; - sha256 = "0xxklfvmwz8z6l08704x65gnq6r8r1pb9qk125qjbndnb1zz6fsp"; - type = "gem"; - }; - version = "1.0.7"; + version = "2.8.1"; }; jwt = { dependencies = [ "base64" ]; @@ -2414,25 +2322,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "02m3vza49pb9dirwpn8vmzbcypi3fc6l3a9dh253jwm1121g7ajb"; + sha256 = "1i8wmzgb5nfhvkx1f6bhdwfm7v772172imh439v3xxhkv3hllhp6"; type = "gem"; }; - version = "2.8.1"; - }; - kdl = { - dependencies = [ - "base64" - "bigdecimal" - "simpleidn" - ]; - groups = [ "default" ]; - platforms = [ ]; - source = { - remotes = [ "https://rubygems.org" ]; - sha256 = "02kpqgss9psmxb1c2gzq6l5i41ykskwqiacppqdm86ky0f88j6cb"; - type = "gem"; - }; - version = "1.0.4"; + version = "2.10.1"; }; keystone-engine = { dependencies = [ "ffi" ]; @@ -2469,6 +2362,7 @@ }; kramdown-rfc2629 = { dependencies = [ + "base64" "certified" "differ" "json_pure" @@ -2483,35 +2377,20 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "00sms1hsjsw3w9a7z4qn3sl1dhkjg9wfnfmjbxk6n5glz7ymfwnj"; + sha256 = "05csr84kb0jk4iciy09zz73a535nbyq27vv1mp1529y577d7ivsl"; type = "gem"; }; - version = "1.7.8"; - }; - launchy = { - dependencies = [ - "addressable" - "childprocess" - "logger" - ]; - groups = [ "default" ]; - platforms = [ ]; - source = { - remotes = [ "https://rubygems.org" ]; - sha256 = "4964ae775cd802f5a57ae5584fbdb1151a8908cb0c626341563430d614a59572"; - type = "gem"; - }; - version = "3.1.0"; + version = "1.7.27"; }; language_server-protocol = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0gvb1j8xsqxms9mww01rmdl78zkd72zgxaap56bhv8j45z05hp1x"; + sha256 = "0scnz2fvdczdgadvjn0j9d49118aqm3hj66qh8sd2kv6g1j65164"; type = "gem"; }; - version = "3.17.0.3"; + version = "3.17.0.4"; }; libxml-ruby = { groups = [ "default" ]; @@ -2562,10 +2441,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "13rgkfar8pp31z1aamxf5y7cfq88wv6rxxcwy7cmm177qq508ycn"; + sha256 = "0rwwsmvq79qwzl6324yc53py02kbrcww35si720490z5w0j497nv"; type = "gem"; }; - version = "3.8.0"; + version = "3.9.0"; }; llhttp-ffi = { dependencies = [ @@ -2576,10 +2455,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1yph78m8w8l6i9833fc7shy5krk4mnqjc7ys0bg9kgxw8jnl0vs9"; + sha256 = "1g57iw0l3y7x50132x6a1jyssxa6pw7srh69g0d6j7ri37yaf9cs"; type = "gem"; }; - version = "0.5.0"; + version = "0.5.1"; }; locale = { groups = [ "default" ]; @@ -2596,10 +2475,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "c3cfe56d01656490ddd103d38b8993d73d86296adebc5f58cefc9ec03741e56b"; + sha256 = "00q2zznygpbls8asz5knjvvj2brr3ghmqxgr83xnrdj4rk3xwvhr"; type = "gem"; }; - version = "1.6.5"; + version = "1.7.0"; }; loofah = { dependencies = [ @@ -2610,10 +2489,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1zkjqf37v2d7s11176cb35cl83wls5gm3adnfkn2zcc61h3nxmqh"; + sha256 = "07pfa5kgl7k2hxlzzn89qna6bmiyrxlchgbzi0885frsi08agrk1"; type = "gem"; }; - version = "2.22.0"; + version = "2.24.0"; }; mab = { groups = [ "default" ]; @@ -2668,10 +2547,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0da76p1gvfabm49a0g0pppxgcdackw8f3qhljalqykd4d5mb828j"; + sha256 = "1vizqpa9pks5nlqj0jjx2d1q6f9vfmjjbb774v1kp591pq5nhmcm"; type = "gem"; }; - version = "0.9.3"; + version = "0.9.4"; }; matrix = { groups = [ "default" ]; @@ -2698,41 +2577,48 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1pnyh44qycnf9mzi1j6fywd5fkskv3x7nmsqrrws0rjn5dd4ayfp"; + sha256 = "1igmc3sq9ay90f8xjvfnswd1dybj1s3fi0dwd53inwsvqk4h24qq"; type = "gem"; }; - version = "1.0.0"; + version = "1.1.0"; }; mime-types = { - dependencies = [ "mime-types-data" ]; + dependencies = [ + "logger" + "mime-types-data" + ]; groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1r64z0m5zrn4k37wabfnv43wa6yivgdfk6cf2rpmmirlz889yaf1"; + sha256 = "1bv08jvx1g9ifjdyrp5hgalxkv7qxwfmfx0ba43ncrbfda7182b1"; type = "gem"; }; - version = "3.5.2"; + version = "3.6.2"; }; mime-types-data = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "00x7w5xqsj9m33v3vkmy23wipkkysafksib53ypzn27p5g81w455"; + sha256 = "0s66lgmrwigp888j9nrrcsyzspxnq4wh0a8qlp11cchb7gjf0mw5"; type = "gem"; }; - version = "3.2024.0305"; + version = "3.2025.0325"; }; mini_magick = { + dependencies = [ + "benchmark" + "logger" + ]; groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0slh78f9z6n0l1i2km7m48yz7l4fjrk88sj1f4mh1wb39sl2yc37"; + sha256 = "0jiz4jqsrmgnkyvpmsq2vicmvdqa6q2ibzx93lnj8f0xvfzzymr7"; type = "gem"; }; - version = "4.12.0"; + version = "5.2.0"; }; mini_mime = { groups = [ "default" ]; @@ -2749,10 +2635,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1kl9c3kdchjabrihdqfmcplk3lq4cw1rr9f378y6q22qwy5dndvs"; + sha256 = "0x8asxl83msn815lwmb2d7q5p29p7drhjv5va0byhk60v9n16iwf"; type = "gem"; }; - version = "2.8.5"; + version = "2.8.8"; }; minima = { dependencies = [ @@ -2774,20 +2660,20 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "07lq26b86giy3ha3fhrywk9r1ajhc2pm2mzj657jnpnbj1i6g17a"; + sha256 = "0mn7q9yzrwinvfvkyjiz548a4rmcwbmz2fn9nyzh4j1snin6q6rr"; type = "gem"; }; - version = "5.22.3"; + version = "5.25.5"; }; msgpack = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1a5adcb7bwan09mqhj3wi9ib52hmdzmqg7q08pggn3adibyn5asr"; + sha256 = "0cnpnbn2yivj9gxkh8mjklbgnpx6nf7b8j2hky01dl0040hy0k76"; type = "gem"; }; - version = "1.7.2"; + version = "1.8.0"; }; multi_json = { groups = [ "default" ]; @@ -2805,20 +2691,20 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0rwbq20s2gdh8dljjsgj5s6wqqfmnbclhvv2c2608brv7jm6jdbd"; + sha256 = "123ycmq6pkivv29bqbv79jv2cs04xakzd0fz1lalgvfs5nxfky6i"; type = "gem"; }; - version = "3.0.0"; + version = "3.0.3"; }; mutex_m = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1ma093ayps1m92q845hmpk0dmadicvifkbf05rpq9pifhin0rvxn"; + sha256 = "0l875dw0lk7b2ywa54l0wjcggs94vb7gs8khfw9li75n2sn09jyg"; type = "gem"; }; - version = "0.2.0"; + version = "0.3.0"; }; mysql2 = { groups = [ "default" ]; @@ -2866,10 +2752,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "10n2n9aq00ih8v881af88l1zyrqgs5cl3njdw8argjwbl5ggqvm9"; + sha256 = "1ysrwaabhf0sn24jrp0nnp51cdv0jf688mh5i6fsz63q2c6b48cn"; type = "gem"; }; - version = "0.4.1"; + version = "0.6.0"; }; net-http-persistent = { dependencies = [ "connection_pool" ]; @@ -2877,10 +2763,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0i1as2lgnw7b4jid0gw5glv5hnxz36nmfsbr9rmxbcap72ijgy03"; + sha256 = "13psmr8009wwknainvns5jidhvjsknffb6k7mzz0yrby6h5qhhkf"; type = "gem"; }; - version = "4.0.2"; + version = "4.0.5"; }; net-imap = { dependencies = [ @@ -2891,10 +2777,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0zn7j2w0hc622ig0rslk4iy6yp3937dy9ibhyr1mwwx39n7paxaj"; + sha256 = "1rgva7p9gvns2ndnqpw503mbd36i2skkggv0c0h192k8xr481phy"; type = "gem"; }; - version = "0.4.10"; + version = "0.5.6"; }; net-pop = { dependencies = [ "net-protocol" ]; @@ -2924,10 +2810,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1si2nq9l6jy5n2zw1q59a5gaji7v9vhy8qx08h4fg368906ysbdk"; + sha256 = "0p8s7l4pr6hkn0l6rxflsc11alwi1kfg5ysgvsq61lz5l690p6x9"; type = "gem"; }; - version = "4.0.0"; + version = "4.1.0"; }; net-smtp = { dependencies = [ "net-protocol" ]; @@ -2935,20 +2821,20 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0amlhz8fhnjfmsiqcjajip57ici2xhw089x7zqyhpk51drg43h2z"; + sha256 = "0dh7nzjp0fiaqq1jz90nv4nxhc2w359d7c199gmzq965cfps15pd"; type = "gem"; }; - version = "0.5.0"; + version = "0.5.1"; }; net-ssh = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1i01340c4i144vvn3x54lc2rb77ch829qipl1rh6rqwm3yxzml9w"; + sha256 = "1w1ypxa3n6mskkwb00b489314km19l61p5h3bar6zr8cng27c80p"; type = "gem"; }; - version = "7.2.1"; + version = "7.3.0"; }; netrc = { groups = [ "default" ]; @@ -2965,10 +2851,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "15iwbiij52x6jhdbl0rkcldnhfndmsy0sbnsygkr9vhskfqrp72m"; + sha256 = "1a9www524fl1ykspznz54i0phfqya4x45hqaz67in9dvw1lfwpfr"; type = "gem"; }; - version = "2.7.1"; + version = "2.7.4"; }; nokogiri = { dependencies = [ @@ -2979,10 +2865,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0j72sg8n8834vbw2x8glcp46y5r2dls2pj64ll7rmf6mri9s52j9"; + sha256 = "0cgv8vzp7kl20ip8qdzmrbr1vaaw4mjjy4mksg8k13z4xxfzyqvb"; type = "gem"; }; - version = "1.16.3"; + version = "1.18.7"; }; observer = { groups = [ "default" ]; @@ -3035,20 +2921,20 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "054d6ybgjdzxw567m7rbnd46yp6gkdbc5ihr536vxd3p15vbhjrw"; + sha256 = "0ygfbbs3c61d32ymja2k6sznj5pr540cip9z91lhzcvsr4zmffpz"; type = "gem"; }; - version = "3.2.0"; + version = "3.3.0"; }; optimist = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "sha256-gYhvU+6JGfMwqjAHbTINiO75vIWq4idTdrSvsAfGkmA="; + sha256 = "0kp3f8g7g7cbw5vfkmpdv71pphhpcxk3lpc892mj9apkd7ys1y4c"; type = "gem"; }; - version = "3.1.0"; + version = "3.2.1"; }; opus-ruby = { dependencies = [ "ffi" ]; @@ -3071,6 +2957,16 @@ }; version = "1.1.4"; }; + ostruct = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "05xqijcf80sza5pnlp1c8whdaay8x5dc13214ngh790zrizgp8q9"; + type = "gem"; + }; + version = "0.6.1"; + }; ovirt-engine-sdk = { dependencies = [ "json" ]; groups = [ "default" ]; @@ -3084,6 +2980,7 @@ }; pandocomatic = { dependencies = [ + "logger" "optimist" "paru" ]; @@ -3091,7 +2988,7 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "sha256-Gf4ySW/iE1UP5TWm6/oXsi9lo654hrfa7LBY+nZSTaw="; + sha256 = "1b2da9vgln5hxkdbg1kqmsinabxj2zxfp9imwl7ma4z2dx4k5zhr"; type = "gem"; }; version = "2.0.1"; @@ -3105,20 +3002,20 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1lpl4klg2f1rq8rpsgkmjndkpf4zh2b8jjwryi8s3s5w9lb3314y"; + sha256 = "0azjsmbcs5k6lc030xcgvfjrjvifdrpzq79x1bxjmgss2mw4lfld"; type = "gem"; }; - version = "4.2.1"; + version = "4.2.9"; }; parallel = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "15wkxrg1sj3n1h2g8jcrn7gcapwcgxr659ypjf75z1ipkgxqxwsv"; + sha256 = "1vy7sjs2pgz4i96v5yk9b7aafbffnvq7nn419fgvw55qlavsnsyq"; type = "gem"; }; - version = "1.24.0"; + version = "1.26.3"; }; parser = { dependencies = [ @@ -3129,10 +3026,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "11r6kp8wam0nkfvnwyc1fmvky102r1vcfr84vi2p1a2wa0z32j3p"; + sha256 = "1awq9rswd3mj8sr5acp1ca6nbkk57zpw8388j7w163i8fhi2h9ib"; type = "gem"; }; - version = "3.3.0.5"; + version = "3.3.7.4"; }; paru = { dependencies = [ "csv" ]; @@ -3140,7 +3037,7 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "sha256-Q0iafTt/9NuoAyxm2U6mWq9J4v1QR0D73ERsqnbIYOs="; + sha256 = "1sv0r1valv24vkxl0ishzpi4kbsslr7djric0fldpx3z7dyrlj23"; type = "gem"; }; version = "1.4.1"; @@ -3172,40 +3069,40 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0523gddx88zql2mq6655k60gy2ac8vybpzkcf90lmd9nx7wl3fi9"; + sha256 = "029vmc5kbhd9qmq3v2nz7yjhm5xy34gaf69g3ra751q29903gbn4"; type = "gem"; }; - version = "0.13.3"; + version = "0.13.4"; }; pcaprub = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0886fcc5bi0kc0rbma5fj3wa3hbg2nl7ivnbi2j995yzg36zq7xy"; + sha256 = "0ag6p7n5s1s3mcsqw8rzafz5dlanwwqfkh7sb44qlp0dq8bvh73v"; type = "gem"; }; - version = "0.13.1"; + version = "0.13.3"; }; pg = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "071b55bhsz7mivlnp2kv0a11msnl7xg5awvk8mlflpl270javhsb"; + sha256 = "1p2gqqrm895fzr9vi8d118zhql67bm8ydjvgqbq1crdnfggzn7kn"; type = "gem"; }; - version = "1.5.6"; + version = "1.5.9"; }; pkg-config = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "04wi7n51w42v9s958gfmxwkg5iikq25whacyflpi307517ymlaya"; + sha256 = "0q5nn4z1lgdx6wjpnpf8gicqr50m6ill7mzx7i4s2qvarkxqlm6n"; type = "gem"; }; - version = "1.5.6"; + version = "1.6.0"; }; polyglot = { groups = [ "default" ]; @@ -3217,6 +3114,17 @@ }; version = "0.3.5"; }; + pp = { + dependencies = [ "prettyprint" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1zxnfxjni0r9l2x42fyq0sqpnaf5nakjbap8irgik4kg1h9c6zll"; + type = "gem"; + }; + version = "0.6.2"; + }; prettier = { dependencies = [ "syntax_tree" @@ -3242,6 +3150,16 @@ }; version = "1.2.1"; }; + prettyprint = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "14zicq3plqi217w6xahv7b8f7aj5kpxv1j1w98344ix9h5ay3j9b"; + type = "gem"; + }; + version = "0.2.0"; + }; prime = { dependencies = [ "forwardable" @@ -3261,7 +3179,17 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "sRYggpgxsct+bJtGyB/4puNsyz+IjxZEhetzUfOGJzo="; + sha256 = "0gkhpdjib9zi9i27vd9djrxiwjia03cijmd6q8yj2q1ix403w3nw"; + type = "gem"; + }; + version = "1.4.0"; + }; + process_executer = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0vslspnp4aki1cw4lwk9d5bmjfqwbf5i2wwgimch8cp14wns409v"; type = "gem"; }; version = "1.3.0"; @@ -3275,10 +3203,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0k9kqkd9nps1w1r1rb7wjr31hqzkka2bhi8b518x78dcxppm9zn4"; + sha256 = "0ssv704qg75mwlyagdfr9xxbzn1ziyqgzm0x474jkynk8234pm8j"; type = "gem"; }; - version = "0.14.2"; + version = "0.15.2"; }; pry-byebug = { dependencies = [ @@ -3289,10 +3217,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1y41al94ks07166qbp2200yzyr5y60hm7xaiw4lxpgsm4b1pbyf8"; + sha256 = "0wpa3jd46h44rjz3hjwl5c0zfx3jav4a64nm8h0g1iwv61yvn2hb"; type = "gem"; }; - version = "3.10.1"; + version = "3.11.0"; }; pry-doc = { dependencies = [ @@ -3309,25 +3237,28 @@ version = "1.5.0"; }; psych = { - dependencies = [ "stringio" ]; + dependencies = [ + "date" + "stringio" + ]; groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0s5383m6004q76xm3lb732bp4sjzb6mxb6rbgn129gy2izsj4wrk"; + sha256 = "1vjrx3yd596zzi42dcaq5xw7hil1921r769dlbz08iniaawlp9c4"; type = "gem"; }; - version = "5.1.2"; + version = "5.2.3"; }; public_suffix = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1bni4qjrsh2q49pnmmd6if4iv3ak36bd2cckrs6npl111n769k9m"; + sha256 = "1vb6f3v8q9m67xmbdl4vbmxis53a7igci4blg561jdfp613cf3i5"; type = "gem"; }; - version = "5.0.4"; + version = "5.1.1"; }; puma = { dependencies = [ "nio4r" ]; @@ -3335,10 +3266,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "sha256-JKRkXABoEdg/JIAFfR9UqW52J7a5DhyZsmC53GMOtD4="; + sha256 = "11xd3207k5rl6bz0qxhcb3zcr941rhx7ig2f19gxxmdk7s3hcp7j"; type = "gem"; }; - version = "6.4.3"; + version = "6.6.0"; }; pwntools = { dependencies = [ @@ -3366,22 +3297,37 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "01b9662zd2x9bp4rdjfid07h09zxj7kvn7f5fghbqhzc625ap1dp"; + sha256 = "0byn0c9nkahsl93y9ln5bysq4j31q8xkf2ws42swighxd4lnjzsa"; type = "gem"; }; - version = "1.7.3"; + version = "1.8.1"; }; rack = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0x3mijjklsrlzfmwqp7x58fla7sk8pfwijhk988nmba787r8rf9g"; + sha256 = "0h65a1f9gsqx2ryisdy4lrd9a9l8gdv65dcscw9ynwwjr1ak1n00"; type = "gem"; }; - version = "3.0.10"; + version = "3.1.12"; }; rack-protection = { + dependencies = [ + "base64" + "logger" + "rack" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0sniswjyi0yn949l776h7f67rvx5w9f04wh69z5g19vlsnjm98ji"; + type = "gem"; + }; + version = "4.1.1"; + }; + rack-session = { dependencies = [ "base64" "rack" @@ -3390,21 +3336,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1xmvcxgm1jq92hqxm119gfk95wzl0d46nb2c2c6qqsm4ra2n3nyh"; + sha256 = "1452c1bhh6fdnv17s1z65ajwh08axqnlmkhnr1qyyn2vacb3jz23"; type = "gem"; }; - version = "4.0.0"; - }; - rack-session = { - dependencies = [ "rack" ]; - groups = [ "default" ]; - platforms = [ ]; - source = { - remotes = [ "https://rubygems.org" ]; - sha256 = "10afdpmy9kh0qva96slcyc59j4gkk9av8ilh58cnj0qq7q3b416v"; - type = "gem"; - }; - version = "2.0.0"; + version = "2.1.0"; }; rack-test = { dependencies = [ "rack" ]; @@ -3412,24 +3347,21 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1ysx29gk9k14a14zsp5a8czys140wacvp91fja8xcja0j1hzqq8c"; + sha256 = "0qy4ylhcfdn65a5mz2hly7g9vl0g13p5a0rmm6sc0sih5ilkcnh0"; type = "gem"; }; - version = "2.1.0"; + version = "2.2.0"; }; rackup = { - dependencies = [ - "rack" - "webrick" - ]; + dependencies = [ "rack" ]; groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0kbcka30g681cqasw47pq93fxjscq7yvs5zf8lp3740rb158ijvf"; + sha256 = "13brkq5xkj6lcdxj3f0k7v28hgrqhqxjlhd4y2vlicy5slgijdzp"; type = "gem"; }; - version = "2.1.0"; + version = "2.2.1"; }; rails = { dependencies = [ @@ -3450,10 +3382,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "sha256-On/KnfdO5kHcHom4MCrG0D8iiD3nceeGoOnzCU5apq0="; + sha256 = "1ik4y7c545pb9lf70prv0n4drblwjlaxb22fhq18wf607slabypx"; type = "gem"; }; - version = "7.1.3.4"; + version = "8.0.2"; }; rails-dom-testing = { dependencies = [ @@ -3479,10 +3411,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1w6bqm8d3afc66ff6npnsc2d8ky552n6qzwwwc1bh0wz6c8gplp3"; + sha256 = "0q55i6mpad20m2x1lg5pkqfpbmmapk0sjsrvr1sqgnj2hb5f5z1m"; type = "gem"; }; - version = "1.6.1"; + version = "1.6.2"; }; railties = { dependencies = [ @@ -3498,10 +3430,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0435sfvhhrd4b2ic9b4c2df3i1snryidx7ry9km4805rpxfdbz2r"; + sha256 = "1yaw5sw9vxvvkkc335laxv2k34rs2nxx9hdsy604k9wvqi03yz0d"; type = "gem"; }; - version = "7.1.3.2"; + version = "8.0.2"; }; rainbow = { groups = [ "default" ]; @@ -3518,10 +3450,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1ilr853hawi09626axx0mps4rkkmxcs54mapz9jnqvpnlwd3wsmy"; + sha256 = "17850wcwkgi30p7yqh60960ypn7yibacjjha0av78zaxwvd3ijs6"; type = "gem"; }; - version = "13.1.0"; + version = "13.2.1"; }; rb-fsevent = { groups = [ "default" ]; @@ -3539,10 +3471,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1jm76h8f8hji38z3ggf4bzi8vps6p7sagxn3ab57qc0xyga64005"; + sha256 = "0vmy8xgahixcz6hzwy4zdcyn2y6d6ri8dqv5xccgzc1r292019x0"; type = "gem"; }; - version = "0.10.1"; + version = "0.11.1"; }; rb-readline = { groups = [ "default" ]; @@ -3560,10 +3492,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0y8yzianlkc9w6sbqy8iy8l0yym0y6x7p5rjflkfixq76fqmhvzk"; + sha256 = "0q4si2n6m719clr5acb77p6fcryyy9a9xnm90f67n2ir7glk7165"; type = "gem"; }; - version = "7.1.1"; + version = "7.1.2"; }; rbs = { dependencies = [ "logger" ]; @@ -3571,20 +3503,20 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0drs9n5qn9pifmb752kali7r2sv0laclvchahc670phlv21awdqf"; + sha256 = "1wpslq5nzfaff13kpdzvskx0ag8cspcndgf3gidc2g8zl40msfw7"; type = "gem"; }; - version = "3.9.0"; + version = "3.9.2"; }; rchardet = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1isj1b3ywgg2m1vdlnr41lpvpm3dbyarf1lla4dfibfmad9csfk9"; + sha256 = "1455yhd1arccrns3ghhvn4dl6gnrf4zn1xxsaa33ffyqrn399216"; type = "gem"; }; - version = "1.8.0"; + version = "1.9.0"; }; rdoc = { dependencies = [ "psych" ]; @@ -3592,10 +3524,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0ib3cnf4yllvw070gr4bz94sbmqx3haqc5f846fsvdcs494vgxrr"; + sha256 = "1xvjskc5xp5x4lgrkxqrn7n4rjzgbbjl9yx3ny74xjckjk4xm832"; type = "gem"; }; - version = "6.6.3.1"; + version = "6.13.1"; }; re2 = { dependencies = [ "mini_portile2" ]; @@ -3603,10 +3535,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1lx4wsrk7gd6733sjgrkwmj1x9jalnbfppawqfk0ljnw95c0557c"; + sha256 = "1n2v1lm3a4alh23r1x12blv9qqckas7cncpn4hk3ar3sdym25604"; type = "gem"; }; - version = "2.9.0"; + version = "2.15.0"; }; red-colors = { dependencies = [ @@ -3627,10 +3559,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1sg9sbf9pm91l7lac7fs4silabyn0vflxwaa2x3lrzsm0ff8ilca"; + sha256 = "0iglapqs4av4za9yfaac0lna7s16fq2xn36wpk380m55d8792i6l"; type = "gem"; }; - version = "3.6.0"; + version = "3.6.1"; }; redis = { dependencies = [ "redis-client" ]; @@ -3638,10 +3570,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1yv9z3cch7aay3rs2iildk7jnvhijhwyyxvcn2nfdn6yp9vn7kxz"; + sha256 = "0syhyw1bp9nbb0fvcmm58y1c6iav6xw6b4bzjz1rz2j1d7c012br"; type = "gem"; }; - version = "5.1.0"; + version = "5.4.0"; }; redis-client = { dependencies = [ "connection_pool" ]; @@ -3649,10 +3581,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0irk5j73aqhyv54q3vs88y5rp9a5fkvbdif7zn5q7m5d51h2375w"; + sha256 = "1fsx10xg4n18w9sr1xa128y4yf0jv5zicrj5ff5n0f1crcwywrgf"; type = "gem"; }; - version = "0.21.1"; + version = "0.24.0"; }; redis-rack = { dependencies = [ @@ -3674,20 +3606,20 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "17mhr1g3lmacrgjndbmrklngy32g55165n53111q70kykx7qjn7j"; + sha256 = "197d1088jw3wl3lfcdj4w4c4da13wsqyd12mj3czvlfw77ig7i7d"; type = "gem"; }; - version = "1.10.0"; + version = "1.11.0"; }; regexp_parser = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1ndxm0xnv27p4gv6xynk6q41irckj76q1jsqpysd9h6f86hhp841"; + sha256 = "0qccah61pjvzyyg6mrp27w27dlv6vxlbznzipxjcswl7x3fhsvyb"; type = "gem"; }; - version = "2.9.0"; + version = "2.10.0"; }; reline = { dependencies = [ "io-console" ]; @@ -3695,10 +3627,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1dr6dl0fsj66z3w0q90v467nswn5shmfq1rfsqjh4wzyldq4ak9c"; + sha256 = "1lirwlw59apc8m1wjk85y2xidiv0fkxjn6f7p84yqmmyvish6qjp"; type = "gem"; }; - version = "0.5.0"; + version = "0.6.0"; }; rest-client = { dependencies = [ @@ -3722,20 +3654,20 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0087vhw5ik50lxvddicns01clkx800fk5v5qnrvi3b42nrk6885j"; + sha256 = "195c7yra7amggqj7rir0yr09r4v29c2hgkbkb21mj0jsfs3868mb"; type = "gem"; }; - version = "2.1.1"; + version = "3.0.0"; }; rexml = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1j9p66pmfgxnzp76ksssyfyqqrg7281dyi3xyknl3wwraaw7a66p"; + sha256 = "1jmbf6lf7pcyacpb939xjjpn1f84c3nw83dy3p1lwjx0l2ljfif7"; type = "gem"; }; - version = "3.3.9"; + version = "3.4.1"; }; rmagick = { dependencies = [ @@ -3746,10 +3678,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1blqchqfbvqrwn9izzqf8wzkgfw6zafyrsl2ksg1w1d9qxj0c15s"; + sha256 = "09l77gfjqb7k0m3kc2gcldzsss7aybf6pgqbxmra2mhrck0720fz"; type = "gem"; }; - version = "5.4.4"; + version = "6.1.1"; }; rouge = { groups = [ "default" ]; @@ -3792,10 +3724,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0k252n7s80bvjvpskgfm285a3djjjqyjcarlh3aq7a4dx2s94xsm"; + sha256 = "1r6zbis0hhbik1ck8kh58qb37d1qwij1x1d2fy4jxkzryh3na4r5"; type = "gem"; }; - version = "3.13.0"; + version = "3.13.3"; }; rspec-expectations = { dependencies = [ @@ -3806,10 +3738,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0bhhjzwdk96vf3gq3rs7mln80q27fhq82hda3r15byb24b34h7b2"; + sha256 = "0n3cyrhsa75x5wwvskrrqk56jbjgdi2q1zx0irllf0chkgsmlsqf"; type = "gem"; }; - version = "3.13.0"; + version = "3.13.3"; }; rspec-mocks = { dependencies = [ @@ -3820,30 +3752,30 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0rkzkcfk2x0qjr5fxw6ib4wpjy0hqbziywplnp6pg3bm2l98jnkk"; + sha256 = "1vxxkb2sf2b36d8ca2nq84kjf85fz4x7wqcvb8r6a5hfxxfk69r3"; type = "gem"; }; - version = "3.13.0"; + version = "3.13.2"; }; rspec-support = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "03z7gpqz5xkw9rf53835pa8a9vgj4lic54rnix9vfwmp2m7pv1s8"; + sha256 = "1v6v6xvxcpkrrsrv7v1xgf7sl0d71vcfz1cnrjflpf6r7x3a58yf"; type = "gem"; }; - version = "3.13.1"; + version = "3.13.2"; }; rubocop = { dependencies = [ "json" "language_server-protocol" + "lint_roller" "parallel" "parser" "rainbow" "regexp_parser" - "rexml" "rubocop-ast" "ruby-progressbar" "unicode-display_width" @@ -3852,24 +3784,28 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "13bif1z20kqq8aaglj7352qpfkzbd8p8rd7lak335szxziqrn8rs"; + sha256 = "0p9bq6dpvakndircsr4415vrp76hxjy1lxzy4d1j75xscl9ipk9m"; type = "gem"; }; - version = "1.65.1"; + version = "1.73.2"; }; rubocop-ast = { - dependencies = [ "parser" ]; + dependencies = [ + "parser" + "prism" + ]; groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1v3q8n48w8h809rqbgzihkikr4g3xk72m1na7s97jdsmjjq6y83w"; + sha256 = "16mp7ppf3p516zs0iwbpqkn7fxs8iw12jargrc905qbc6fg69kcj"; type = "gem"; }; - version = "1.31.2"; + version = "1.43.0"; }; rubocop-performance = { dependencies = [ + "lint_roller" "rubocop" "rubocop-ast" ]; @@ -3877,10 +3813,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "16jayzjaaglhx69s6b83acpdzcxxccfkcn69gfpkimf2j64zlm7c"; + sha256 = "1da08idjsdclcm9cimjbvd1jz2gm6z62fsc8mywrb0rn7vzkkgg5"; type = "gem"; }; - version = "1.21.0"; + version = "1.24.0"; }; ruby-graphviz = { dependencies = [ "rexml" ]; @@ -3912,10 +3848,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0v6vj5vs9v01zr00bflqpfczhwcyc6jdf8k2dqn42lq6d87si77d"; + sha256 = "0r0igmwr22pi3dkkg1p79hjf8mr178qnz83q8fnaj87x7zk3qfyg"; type = "gem"; }; - version = "0.8.2"; + version = "0.8.4"; }; ruby-lsp = { dependencies = [ @@ -3928,10 +3864,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0rmqhp7v4k3xdz6d9sbb0xjyk2519zrk8lr3hpyrv9xa9jyxn6hn"; + sha256 = "0j4zcp7nncrr6sn0m3scnqsxcf7j2v82pxcd7p3436m70ncmm1x1"; type = "gem"; }; - version = "0.23.12"; + version = "0.23.13"; }; ruby-lxc = { groups = [ "default" ]; @@ -3964,15 +3900,18 @@ version = "0.1.1"; }; ruby-vips = { - dependencies = [ "ffi" ]; + dependencies = [ + "ffi" + "logger" + ]; groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0yycazz91ywwwv2iz3fgjkfn1z687bl4z5jjn7cwmky507b43652"; + sha256 = "14nwdsd73c4ygjb7sfldnndlbzn5yyl02llnlzafmmjwh0d2pla1"; type = "gem"; }; - version = "2.2.1"; + version = "2.2.3"; }; ruby2_keywords = { groups = [ "default" ]; @@ -3993,10 +3932,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "04bz2jw3ida07mgk450l9m6xklhzbv0z4s6ak6bl7vp4rhcy41f8"; + sha256 = "0cs7z80wnr3spia7mdfqq2gn87sljl9hw08cxqsz0yiin8i1xd16"; type = "gem"; }; - version = "2.5.0"; + version = "2.5.2"; }; ruby_parser = { dependencies = [ @@ -4007,10 +3946,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0sy5y7w89ii5iqym7b21glcwxqg8kizxfy8a7kcxq0j65wyqjhiq"; + sha256 = "1v3g9nc7k154ii99zm0vxxb4jmkjyqy1v08g51jpsa7cbaz1m4wx"; type = "gem"; }; - version = "3.21.0"; + version = "3.21.1"; }; rubyserial = { dependencies = [ "ffi" ]; @@ -4028,20 +3967,20 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0grps9197qyxakbpw02pda59v45lfgbgiyw48i0mq9f2bn9y6mrz"; + sha256 = "05an0wz87vkmqwcwyh5rjiaavydfn5f4q1lixcsqkphzvj7chxw5"; type = "gem"; }; - version = "2.3.2"; + version = "2.4.1"; }; rugged = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1sccng15h8h3mcjxfgvxy85lfpswbj0nhmzwwsqdffbzqgsb2jch"; + sha256 = "1b7gcf6pxg4x607bica68dbz22b4kch33yi0ils6x3c8ql9akakz"; type = "gem"; }; - version = "1.7.2"; + version = "1.9.0"; }; safe_yaml = { groups = [ "default" ]; @@ -4104,15 +4043,18 @@ version = "0.9.2"; }; scrypt = { - dependencies = [ "ffi-compiler" ]; + dependencies = [ + "ffi-compiler" + "rake" + ]; groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0jw2bn6mqpw2wbjpmsfz44pppwa6zmhg9lywimm684sxkmlxscbl"; + sha256 = "1cfhb822q3npfqmvd9xx20rwsphfnarrh5bfp88xs6v8rk29zvsd"; type = "gem"; }; - version = "3.0.7"; + version = "3.0.8"; }; seccomp-tools = { dependencies = [ "os" ]; @@ -4125,15 +4067,25 @@ }; version = "1.6.1"; }; + securerandom = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1cd0iriqfsf1z91qg271sm88xjnfd92b832z49p1nd542ka96lfc"; + type = "gem"; + }; + version = "0.4.1"; + }; semian = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0qs5mrjsr2hs03f2c1a611qrvxsk8pqlmhymxgwccwvr6arh3iby"; + sha256 = "0hp7pfs3ilqr5jlpk9vwrnxl9sdqb9kcy9zlgb21iayrpvzpxxka"; type = "gem"; }; - version = "0.21.3"; + version = "0.22.1"; }; sequel = { dependencies = [ "bigdecimal" ]; @@ -4141,10 +4093,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "186wldacv9zdd3bxi85lika9hz6ac09r7kp1h4cjv23436qmsjq2"; + sha256 = "1s5qhylirrmfbjhdjdfqaiksjlaqmgixl25sxd8znq8dqwqlrydz"; type = "gem"; }; - version = "5.78.0"; + version = "5.90.0"; }; sequel_pg = { dependencies = [ @@ -4155,20 +4107,20 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "01j51vn47ynyhlxpgz6wj8swm3d8g1hrad1678s0sd43kh2hqxdg"; + sha256 = "1c5r1scy8dwfd8r1i37gqqrg84irs180ml8734lqrldzgyxjkxmg"; type = "gem"; }; - version = "1.17.1"; + version = "1.17.2"; }; sexp_processor = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "182x05kpdjlckh31qizws50fz7sjk86yjjfmy45z61q3f930j4ci"; + sha256 = "1bjx55fxiwl6d7s2ia5v19qbcshwnjv7ixhrcm0xpvjyar9dkw2y"; type = "gem"; }; - version = "4.17.1"; + version = "4.17.3"; }; simplecov = { dependencies = [ @@ -4190,10 +4142,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0yx01bxa8pbf9ip4hagqkp5m0mqfnwnw2xk8kjraiywz4lrss6jb"; + sha256 = "02zi3rwihp7rlnp9x18c9idnkx7x68w6jmxdhyc0xrhjwrz0pasx"; type = "gem"; }; - version = "0.12.3"; + version = "0.13.1"; }; simplecov_json_formatter = { groups = [ "default" ]; @@ -4206,18 +4158,18 @@ version = "0.1.4"; }; simpleidn = { - dependencies = [ "unf" ]; groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "06f7w6ph3bzzqk212yylfp4jfx275shgp9zg3xszbpv1ny2skp9m"; + sha256 = "0a9c1mdy12y81ck7mcn9f9i2s2wwzjh1nr92ps354q517zq9dkh8"; type = "gem"; }; - version = "0.2.1"; + version = "0.2.3"; }; sinatra = { dependencies = [ + "logger" "mustermann" "rack" "rack-protection" @@ -4228,10 +4180,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0za92lv4s7xhgkkm6xxf7ib0b3bsyj8drxgkrskgsb5g3mxnixjl"; + sha256 = "002dkzdc1xqhvz5sdnj4vb0apczhs07mnpgq4kkd5dd1ka2pp6af"; type = "gem"; }; - version = "4.0.0"; + version = "4.1.1"; }; singleton = { groups = [ "default" ]; @@ -4292,10 +4244,12 @@ "backport" "benchmark" "diff-lcs" - "e2mmap" "jaro_winkler" "kramdown" "kramdown-parser-gfm" + "logger" + "observer" + "ostruct" "parser" "rbs" "reverse_markdown" @@ -4303,25 +4257,26 @@ "thor" "tilt" "yard" + "yard-solargraph" ]; groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0qbjgsrlrwvbywzi0shf3nmfhb52y5fmp9al9nk7c4qqwxyhz397"; + sha256 = "1lk5kah00nd727667qw070imclnd788kb2s34cp6xl3fz65pfk51"; type = "gem"; }; - version = "0.50.0"; + version = "0.53.4"; }; sorbet-runtime = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "10fja24vp16ggxdaw77hcdk0rcz47qpdv8nn2wsgqdr04rrfjjvd"; + sha256 = "0p9ahcr2914w9w3aig72zv6dl5l6jqwn4jjnqw7z0lkdn7x1z29n"; type = "gem"; }; - version = "0.5.11319"; + version = "0.5.11966"; }; sqlite3 = { dependencies = [ "mini_portile2" ]; @@ -4329,10 +4284,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "073hd24qwx9j26cqbk0jma0kiajjv9fb8swv9rnz8j4mf0ygcxzs"; + sha256 = "0573vgz5ck0hqr8h132ln0hczx53m21h4w42n1p75rj837qjbim1"; type = "gem"; }; - version = "1.7.3"; + version = "2.6.0"; }; standard = { dependencies = [ @@ -4346,10 +4301,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0whz1l232xsf5fq5gxcbandmws8fx37h389n4q4ky1x1p7c7md2n"; + sha256 = "1461gina65n06xycxxv2d76vszjhwcivf5kj1iv3xifyv1qnpnmh"; type = "gem"; }; - version = "1.40.0"; + version = "1.47.0"; }; standard-custom = { dependencies = [ @@ -4374,20 +4329,30 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1551dwjwyqy7rckjgcb25k51k6wndn8m37mmbpanr0k4b6v757yy"; + sha256 = "053ki51v2081mh6z7kgdwkvngfbk3wf9mvak630czh286gprlsn4"; type = "gem"; }; - version = "1.4.0"; + version = "1.7.0"; + }; + string_inflection = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0v57afc7rdr58xd6mayf9giifqgav3hqjr54kagi7iki3hn6vjag"; + type = "gem"; + }; + version = "0.1.2"; }; stringio = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "063psvsn1aq6digpznxfranhcpmi0sdv2jhra5g0459sw0x2dxn1"; + sha256 = "1xblh8332bivml93232hg8qr2rhflq9czvij1bgzrbap2rfljb19"; type = "gem"; }; - version = "3.1.0"; + version = "3.1.6"; }; syntax_tree = { dependencies = [ "prettier_print" ]; @@ -4435,10 +4400,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0yvchq3j0splz70796a27hr1v6ifhyab5ddc9fl1x734nhmsy4rb"; + sha256 = "1bmirkz9lfhbykj3x48z1gv0jl1bfz60yscpl0hmjxrdmcihzfai"; type = "gem"; }; - version = "1.1.3"; + version = "2.0.0"; }; temple = { groups = [ "default" ]; @@ -4475,50 +4440,51 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1vq1fjp45az9hfp6fxljhdrkv75cvbab1jfrwcw738pnsiqk8zps"; + sha256 = "1nmymd86a0vb39pzj2cwv57avdrl6pl3lf5bsz58q594kqxjkw7f"; type = "gem"; }; - version = "1.3.1"; + version = "1.3.2"; }; thrift = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0i686137n188lj75nnhfpjz5zs8b4iak8iwpwciwb8lywm860nmv"; + sha256 = "0sv2y3jmh7snxk0sm8xf0r606aig1zrr64vl64qab4xfkv12zjb2"; type = "gem"; }; - version = "0.20.0"; + version = "0.21.0"; }; tilt = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0p3l7v619hwfi781l3r7ypyv1l8hivp09r18kmkn6g11c4yr1pc2"; + sha256 = "0szpapi229v3scrvw1pgy0vpjm7z3qlf58m1198kxn70cs278g96"; type = "gem"; }; - version = "2.3.0"; + version = "2.6.0"; }; timeout = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "16mvvsmx90023wrhf8dxc1lpqh0m8alk65shb7xcya6a9gflw7vg"; + sha256 = "03p31w5ghqfsbz5mcjzvwgkw3h9lbvbknqvrdliy8pxmn9wz02cm"; type = "gem"; }; - version = "0.4.1"; + version = "0.4.3"; }; tiny_tds = { + dependencies = [ "bigdecimal" ]; groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1nva5glid3mpwqk0siws74r6qfv89n0amw9ffzwnwlm12cd4ahdm"; + sha256 = "12hs5qzhah7jkj6hrzv930m816w2hiqvq5qsh7bd4mc4wb012xj9"; type = "gem"; }; - version = "2.1.7"; + version = "3.2.0"; }; treetop = { dependencies = [ "polyglot" ]; @@ -4526,10 +4492,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0adc8qblz8ii668r3rksjx83p675iryh52rvdvysimx2hkbasj7d"; + sha256 = "1m5fqy7vq6y7bgxmw7jmk7y6pla83m16p7lb41lbqgg53j8x2cds"; type = "gem"; }; - version = "1.6.12"; + version = "1.6.14"; }; tty-color = { groups = [ "default" ]; @@ -4590,21 +4556,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0wgh7bzy68vhv9v68061519dd8samcy8sazzz0w3k8kqpy3g4s5f"; + sha256 = "1apmqsad2y1avffh79f4lfysfppz94fvpyi7lkkj3z8bn60jpm3m"; type = "gem"; }; - version = "4.2.0"; - }; - unf = { - dependencies = [ "unf_ext" ]; - groups = [ "default" ]; - platforms = [ ]; - source = { - remotes = [ "https://rubygems.org" ]; - sha256 = "0bh2cf73i2ffh4fcpdn9ir4mhq8zi50ik0zqa1braahzadx536a9"; - type = "gem"; - }; - version = "0.1.4"; + version = "4.2.1"; }; unf_ext = { groups = [ "default" ]; @@ -4621,20 +4576,31 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0zf98czws958zyniwb0wvcxifpcr850qfp4m9g6q90qpdh9c61s1"; + sha256 = "1k9r44ynr5xwvgqyc3lxx7915vl14z0cmk0392qbz8krjkhvhcdy"; type = "gem"; }; - version = "1.9.0"; + version = "1.10.0"; }; unicode-display_width = { + dependencies = [ "unicode-emoji" ]; groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1d0azx233nags5jx3fqyr23qa2rhgzbhv8pxp46dgbg1mpf82xky"; + sha256 = "1has87asspm6m9wgqas8ghhhwyf2i1yqrqgrkv47xw7jq3qjmbwc"; type = "gem"; }; - version = "2.5.0"; + version = "3.1.4"; + }; + unicode-emoji = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0ajk6rngypm3chvl6r0vwv36q1931fjqaqhjjya81rakygvlwb1c"; + type = "gem"; + }; + version = "4.0.4"; }; unicode-name = { dependencies = [ "unicode-types" ]; @@ -4642,40 +4608,50 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0177232y0di7klwy0nsixbjfs5mym334y6b3lbfczl8953ybdmg6"; + sha256 = "0n92l6p4lvkbmb0596dzl57ysmkl33c1z7f9msl42568p1fr1dpn"; type = "gem"; }; - version = "1.12.0"; + version = "1.13.5"; }; unicode-scripts = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0m2xcss5nr9q6312c4dir54537skpdmwdp5s7gxgjrsv82pzpjdr"; + sha256 = "0r3d7qms3syx1ijn027vj4fycy5dzh8bwl99i8ykrgyadx01569d"; type = "gem"; }; - version = "1.9.0"; + version = "1.11.0"; }; unicode-types = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1wlqwz1cq4bis4r2h8ghbp5c56867a86nnzp2pxnlq48mnjnmgww"; + sha256 = "1mif6v3wlfpb69scikpv7i4zq9rhj19px23iym6j8m3wnnh7d2wi"; type = "gem"; }; - version = "1.9.0"; + version = "1.10.0"; }; uri = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "094gk72ckazf495qc76gk09b5i318d5l9m7bicg2wxlrjcm3qm96"; + sha256 = "04bhfvc25b07jaiaf62yrach7khhr5jlr5bx6nygg8pf11329wp9"; type = "gem"; }; - version = "0.13.0"; + version = "1.0.3"; + }; + useragent = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0i1q2xdjam4d7gwwc35lfnz0wyyzvnca0zslcfxm9fabml9n83kh"; + type = "gem"; + }; + version = "0.16.11"; }; uuid4r = { groups = [ "default" ]; @@ -4707,21 +4683,24 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "13qm7s0gr2pmfcl7dxrmq38asaza4w0i2n9my4yzs499j731wh8r"; + sha256 = "12d9n8hll67j737ym2zw4v23cn4vxyfkb6vyv1rzpwv6y6a3qbdl"; type = "gem"; }; - version = "1.8.1"; + version = "1.9.1"; }; websocket-driver = { - dependencies = [ "websocket-extensions" ]; + dependencies = [ + "base64" + "websocket-extensions" + ]; groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1nyh873w4lvahcl8kzbjfca26656d5c6z3md4sbqg5y1gfz0157n"; + sha256 = "1d26l4qn55ivzahbc7fwc4k4z3j7wzym05i9n77i4mslrpr9jv85"; type = "gem"; }; - version = "0.7.6"; + version = "0.7.7"; }; websocket-extensions = { groups = [ "default" ]; @@ -4738,10 +4717,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "109v9vgkry317v5vc3b5dwgxpp1if3q9m26mrpl6052m020q05qx"; + sha256 = "0wzp988qlq2c88m7ic5nvsarxmgihs5qv3s1x4mvglmjdyvpzq0s"; type = "gem"; }; - version = "5.1.1"; + version = "6.0.1"; }; xcodeproj = { dependencies = [ @@ -4773,20 +4752,31 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1r0b8w58p7gy06wph1qdjv2p087hfnmhd9jk23vjdj803dn761am"; + sha256 = "14k9lb9a60r9z2zcqg08by9iljrrgjxdkbd91gw17rkqkqwi1sd6"; type = "gem"; }; - version = "0.9.36"; + version = "0.9.37"; + }; + yard-solargraph = { + dependencies = [ "yard" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "03lklm47k6k294ww97x6zpvlqlyjm5q8jidrixhil622r4cld6m1"; + type = "gem"; + }; + version = "0.1.0"; }; zeitwerk = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1m67qmsak3x8ixs8rb971azl3l7wapri65pmbf5z886h46q63f1d"; + sha256 = "0ws6rpyj0y9iadjg1890dwnnbjfdbzxsv6r48zbj7f8yn5y0cbl4"; type = "gem"; }; - version = "2.6.13"; + version = "2.7.2"; }; zookeeper = { groups = [ "default" ];