Merge staging-next into staging

This commit is contained in:
github-actions[bot] 2023-05-02 06:01:44 +00:00 committed by GitHub
commit 574021dc74
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
43 changed files with 2037 additions and 1021 deletions

View File

@ -322,7 +322,9 @@ In addition to numerous new and upgraded packages, this release has the followin
replacement. It stores backups as volume dump files and thus better integrates
into contemporary backup solutions.
- `services.maddy` now allows to configure users and their credentials using `services.maddy.ensureCredentials`.
- `services.maddy` got several updates:
- Configuration of users and their credentials using `services.maddy.ensureCredentials`.
- Configuration of TLS key and certificate files using `services.maddy.tls`.
- The `dnsmasq` service now takes configuration via the
`services.dnsmasq.settings` attribute set. The option

View File

@ -13,8 +13,6 @@ let
# configuration here https://github.com/foxcpp/maddy/blob/master/maddy.conf
# Do not use this in production!
tls off
auth.pass_table local_authdb {
table sql_table {
driver sqlite3
@ -35,6 +33,7 @@ let
}
optional_step file /etc/maddy/aliases
}
msgpipeline local_routing {
destination postmaster $(local_domains) {
modify {
@ -215,6 +214,63 @@ in {
'';
};
tls = {
loader = mkOption {
type = with types; nullOr (enum [ "file" "off" ]);
default = "off";
description = lib.mdDoc ''
TLS certificates are obtained by modules called "certificate
loaders". Currently only the file loader is supported which reads
certificates from files specifying the options `keyPaths` and
`certPaths`.
'';
};
certificates = mkOption {
type = with types; listOf (submodule {
options = {
keyPath = mkOption {
type = types.path;
example = "/etc/ssl/mx1.example.org.key";
description = lib.mdDoc ''
Path to the private key used for TLS.
'';
};
certPath = mkOption {
type = types.path;
example = "/etc/ssl/mx1.example.org.crt";
description = lib.mdDoc ''
Path to the certificate used for TLS.
'';
};
};
});
default = [];
example = lib.literalExpression ''
[{
keyPath = "/etc/ssl/mx1.example.org.key";
certPath = "/etc/ssl/mx1.example.org.crt";
}]
'';
description = lib.mdDoc ''
A list of attribute sets containing paths to TLS certificates and
keys. Maddy will use SNI if multiple pairs are selected.
'';
};
extraConfig = mkOption {
type = with types; nullOr lines;
description = lib.mdDoc ''
Arguments for the specific certificate loader. Note that Maddy uses
secure defaults for the TLS configuration so there is no need to
change anything in most cases.
See [upstream manual](https://maddy.email/reference/tls/) for
available options.
'';
default = "";
};
};
openFirewall = mkOption {
type = types.bool;
default = false;
@ -224,7 +280,7 @@ in {
};
ensureAccounts = mkOption {
type = types.listOf types.str;
type = with types; listOf str;
default = [];
description = lib.mdDoc ''
List of IMAP accounts which get automatically created. Note that for
@ -270,6 +326,16 @@ in {
config = mkIf cfg.enable {
assertions = [{
assertion = cfg.tls.loader == "file" -> cfg.tls.certificates != [];
message = ''
If maddy is configured to use TLS, tls.certificates with attribute sets
of certPath and keyPath must be provided.
Read more about obtaining TLS certificates here:
https://maddy.email/tutorials/setting-up/#tls-certificates
'';
}];
systemd = {
packages = [ pkgs.maddy ];
@ -318,6 +384,17 @@ in {
$(primary_domain) = ${cfg.primaryDomain}
$(local_domains) = ${toString cfg.localDomains}
hostname ${cfg.hostname}
${if (cfg.tls.loader == "file") then ''
tls file ${concatStringsSep " " (
map (x: x.certPath + " " + x.keyPath
) cfg.tls.certificates)} ${optionalString (cfg.tls.extraConfig != "") ''
{ ${cfg.tls.extraConfig} }
''}
'' else if (cfg.tls.loader == "off") then ''
tls off
'' else ""}
${cfg.config}
'';
};

View File

@ -393,7 +393,7 @@ in {
lxd-image-server = handleTest ./lxd-image-server.nix {};
#logstash = handleTest ./logstash.nix {};
lorri = handleTest ./lorri/default.nix {};
maddy = handleTest ./maddy.nix {};
maddy = discoverTests (import ./maddy { inherit handleTest; });
maestral = handleTest ./maestral.nix {};
magic-wormhole-mailbox-server = handleTest ./magic-wormhole-mailbox-server.nix {};
magnetico = handleTest ./magnetico.nix {};

View File

@ -0,0 +1,6 @@
{ handleTest }:
{
unencrypted = handleTest ./unencrypted.nix { };
tls = handleTest ./tls.nix { };
}

94
nixos/tests/maddy/tls.nix Normal file
View File

@ -0,0 +1,94 @@
import ../make-test-python.nix ({ pkgs, ... }:
let
certs = import ../common/acme/server/snakeoil-certs.nix;
domain = certs.domain;
in {
name = "maddy-tls";
meta = with pkgs.lib.maintainers; { maintainers = [ onny ]; };
nodes = {
server = { options, ... }: {
services.maddy = {
enable = true;
hostname = domain;
primaryDomain = domain;
openFirewall = true;
ensureAccounts = [ "postmaster@${domain}" ];
ensureCredentials = {
# Do not use this in production. This will make passwords world-readable
# in the Nix store
"postmaster@${domain}".passwordFile = "${pkgs.writeText "postmaster" "test"}";
};
tls = {
loader = "file";
certificates = [{
certPath = "${certs.${domain}.cert}";
keyPath = "${certs.${domain}.key}";
}];
};
# Enable TLS listeners. Configuring this via the module is not yet
# implemented.
config = builtins.replaceStrings [
"imap tcp://0.0.0.0:143"
"submission tcp://0.0.0.0:587"
] [
"imap tls://0.0.0.0:993 tcp://0.0.0.0:143"
"submission tls://0.0.0.0:465 tcp://0.0.0.0:587"
] options.services.maddy.config.default;
};
# Not covered by openFirewall yet
networking.firewall.allowedTCPPorts = [ 993 465 ];
};
client = { nodes, ... }: {
security.pki.certificateFiles = [
certs.ca.cert
];
networking.extraHosts = ''
${nodes.server.networking.primaryIPAddress} ${domain}
'';
environment.systemPackages = [
(pkgs.writers.writePython3Bin "send-testmail" { } ''
import smtplib
import ssl
from email.mime.text import MIMEText
context = ssl.create_default_context()
msg = MIMEText("Hello World")
msg['Subject'] = 'Test'
msg['From'] = "postmaster@${domain}"
msg['To'] = "postmaster@${domain}"
with smtplib.SMTP_SSL(host='${domain}', port=465, context=context) as smtp:
smtp.login('postmaster@${domain}', 'test')
smtp.sendmail(
'postmaster@${domain}', 'postmaster@${domain}', msg.as_string()
)
'')
(pkgs.writers.writePython3Bin "test-imap" { } ''
import imaplib
with imaplib.IMAP4_SSL('${domain}') as imap:
imap.login('postmaster@${domain}', 'test')
imap.select()
status, refs = imap.search(None, 'ALL')
assert status == 'OK'
assert len(refs) == 1
status, msg = imap.fetch(refs[0], 'BODY[TEXT]')
assert status == 'OK'
assert msg[0][1].strip() == b"Hello World"
'')
];
};
};
testScript = ''
start_all()
server.wait_for_unit("maddy.service")
server.wait_for_open_port(143)
server.wait_for_open_port(993)
server.wait_for_open_port(587)
server.wait_for_open_port(465)
client.succeed("send-testmail")
client.succeed("test-imap")
'';
})

View File

@ -1,5 +1,5 @@
import ./make-test-python.nix ({ pkgs, ... }: {
name = "maddy";
import ../make-test-python.nix ({ pkgs, ... }: {
name = "maddy-unencrypted";
meta = with pkgs.lib.maintainers; { maintainers = [ onny ]; };
nodes = {

View File

@ -3,20 +3,33 @@
, mopidy
}:
python3.pkgs.buildPythonApplication rec {
let
python = python3.override {
packageOverrides = self: super: {
ytmusicapi = super.ytmusicapi.overridePythonAttrs (old: rec {
version = "0.25.1";
src = self.fetchPypi {
inherit (old) pname;
inherit version;
hash = "sha256-uc/fgDetSYaCRzff0SzfbRhs3TaKrfE2h6roWkkj8yQ=";
};
});
};
};
in python.pkgs.buildPythonApplication rec {
pname = "mopidy-ytmusic";
version = "0.3.8";
src = python3.pkgs.fetchPypi {
src = python.pkgs.fetchPypi {
inherit version;
pname = "mopidy_ytmusic";
sha256 = "6b4d8ff9c477dbdd30d0259a009494ebe104cad3f8b37241ae503e5bce4ec2e8";
};
propagatedBuildInputs = [
(mopidy.override { pythonPackages = python3.pkgs; })
python3.pkgs.ytmusicapi
python3.pkgs.pytube
(mopidy.override { pythonPackages = python.pkgs; })
python.pkgs.ytmusicapi
python.pkgs.pytube
];
pythonImportsCheck = [ "mopidy_ytmusic" ];

View File

@ -19,14 +19,14 @@
mkDerivation rec {
pname = "arianna";
version = "1.0.0";
version = "1.0.1";
src = fetchFromGitLab {
domain = "invent.kde.org";
owner = "graphics";
repo = "arianna";
rev = "v${version}";
hash = "sha256-X3PDGWsQ8Alj5fisZC1tTHQDLPmjtiLw0X9gMvh5KFI=";
hash = "sha256-IETqKVIWeICFgqmBSVz8ea8100hHGXIo5S3O0OaIC04=";
};
nativeBuildInputs = [

View File

@ -419,11 +419,11 @@
"vendorHash": "sha256-uWTY8cFztXFrQQ7GW6/R+x9M6vHmsb934ldq+oeW5vk="
},
"github": {
"hash": "sha256-iFYYKFPa9+pTpmTddFzqB1yRwBnp8NG281oxQP7V6+U=",
"hash": "sha256-gMuQNI0+zvveVqyhRdIyPyxVNfdk6PUXpf4Iv2Y+jI4=",
"homepage": "https://registry.terraform.io/providers/integrations/github",
"owner": "integrations",
"repo": "terraform-provider-github",
"rev": "v5.23.0",
"rev": "v5.24.0",
"spdx": "MIT",
"vendorHash": null
},
@ -927,13 +927,13 @@
"vendorHash": "sha256-j+3qtGlueKZgf0LuNps4Wc9G3EmpSgl8ZNSLqslyizI="
},
"rancher2": {
"hash": "sha256-UM000GXkWwNWYM1El3wjXgqbmcMkD9Gl69ZARSJOfZo=",
"hash": "sha256-UDVKmOON190eQzGrxzVtq7gDYeKBBM1nnL2ujU1wDo8=",
"homepage": "https://registry.terraform.io/providers/rancher/rancher2",
"owner": "rancher",
"repo": "terraform-provider-rancher2",
"rev": "v2.0.0",
"rev": "v3.0.0",
"spdx": "MPL-2.0",
"vendorHash": "sha256-Ntq4wxXPUGbu4+6X1pBsmQsqfJ/jccTiHDJeHVpWe8Y="
"vendorHash": "sha256-RSHI994zW7rzA/SJ/Ioilg7mQB/VbDInSeZ9IaEYVIc="
},
"random": {
"hash": "sha256-IsXKdS3B5kWY5LlNKM0fYjp2uM96ngi6vZ9F46MmfcA=",

View File

@ -20,14 +20,14 @@
stdenv.mkDerivation rec {
pname = "wpsoffice";
version = "11.1.0.11691";
version = "11.1.0.11698";
src = if useChineseVersion then fetchurl {
url = "https://wps-linux-personal.wpscdn.cn/wps/download/ep/Linux2019/${lib.last (lib.splitString "." version)}/wps-office_${version}_amd64.deb";
sha256 = "sha256-ubFYACnsMObde9TGp1tyHtG0n5NxYMFtEbY9KXj62No=";
sha256 = "sha256-m7BOE2IF2m75mV/4X3HY9UJcidL0S0biqkidddp4LbQ=";
} else fetchurl {
url = "https://wdl1.pcfg.cache.wpscdn.com/wpsdl/wpsoffice/download/linux/${lib.last (lib.splitString "." version)}/wps-office_${version}.XA_amd64.deb";
sha256 = "sha256-F1foPaDd4YiAcCePleKsABjFzsb2Uv+Lkja+58pnquI=";
sha256 = "sha256-spqxQK/xTE8yFPmGbSbrDY1vSxkan2kwAWpCWIExhgs=";
};
unpackCmd = "dpkg -x $src .";

View File

@ -2,19 +2,21 @@
buildGoModule rec {
pname = "ivy";
version = "0.2.8";
version = "0.2.10";
src = fetchFromGitHub {
rev = "v${version}";
owner = "robpike";
repo = "ivy";
sha256 = "sha256-pb/dJfEXz13myT6XadCg0kKd+n9bcHNBc84ES+hDw2Y=";
hash = "sha256-6rZfBx6jKNOEnG+cmrzgvjUoCHQe+olPeX11qX8ep38=";
};
vendorSha256 = null;
vendorHash = null;
subPackages = [ "." ];
ldflags = [ "-s" "-w" ];
meta = with lib; {
homepage = "https://github.com/robpike/ivy";
description = "ivy, an APL-like calculator";

View File

@ -1,5 +1,18 @@
{ lib, stdenv, fetchurl, boost, libwpd, libwpg, pkg-config, zlib, gperf
, librevenge, libxml2, icu, perl, cppunit, doxygen
{ lib
, stdenv
, fetchurl
, boost
, libwpd
, libwpg
, pkg-config
, zlib
, gperf
, librevenge
, libxml2
, icu
, perl
, cppunit
, doxygen
}:
stdenv.mkDerivation rec {
@ -13,12 +26,9 @@ stdenv.mkDerivation rec {
sha256 = "0k7adcbbf27l7n453cca1m6s9yj6qvb5j6bsg2db09ybf3w8vbwg";
};
nativeBuildInputs = [ pkg-config cppunit doxygen ];
buildInputs = [ boost libwpd libwpg zlib gperf librevenge libxml2 icu perl ];
configureFlags = [
"--disable-werror"
];
strictDeps = true;
nativeBuildInputs = [ pkg-config doxygen perl gperf ];
buildInputs = [ boost libwpd libwpg zlib librevenge libxml2 icu cppunit ];
doCheck = true;
@ -27,5 +37,6 @@ stdenv.mkDerivation rec {
homepage = "https://wiki.documentfoundation.org/DLP/Libraries/libvisio";
license = licenses.mpl20;
platforms = platforms.unix;
maintainers = with maintainers; [ nickcao ];
};
}

View File

@ -1,15 +1,14 @@
{ lib, stdenv, fetchFromGitHub, cmake }:
stdenv.mkDerivation rec {
pname = "tl-expected-unstable";
version = "2023-02-15"; # 37 commits ahead of version 1.0.0
pname = "tl-expected";
version = "1.1.0";
src = fetchFromGitHub {
owner = "TartanLlama";
repo = "expected";
rev = "9d812f5e3b5bc68023f6e31d29489cdcaacef606";
fetchSubmodules = true;
hash = "sha256-ZokcGQgHH37nmTMLmxFcun4S1RjXuXb9NfWHet8Fbc4=";
rev = "v${version}";
hash = "sha256-AuRU8VI5l7Th9fJ5jIc/6mPm0Vqbbt6rY8QCCNDOU50=";
};
nativeBuildInputs = [ cmake ];

File diff suppressed because it is too large Load Diff

View File

@ -16,6 +16,7 @@
, requests
, setuptools
, six
, typing-extensions
, watchdog
, websocket-client
, wheel
@ -23,21 +24,22 @@
buildPythonPackage rec {
pname = "chalice";
version = "1.27.3";
version = "1.28.0";
format = "setuptools";
disabled = pythonOlder "3.7";
src = fetchFromGitHub {
owner = "aws";
repo = pname;
rev = "refs/tags/${version}";
hash = "sha256-izzoYxzkaQqcEM5e8BhZeZIxtAGRDNH/qvqwvrx250s=";
hash = "sha256-m3pSD4fahBW6Yt/w07Co4fTZD7k6as5cPwoK5QSry6M=";
};
postPatch = ''
substituteInPlace setup.py \
--replace "attrs>=19.3.0,<21.5.0" "attrs" \
--replace "inquirer>=2.7.0,<3.0.0" "inquirer" \
--replace "pip>=9,<22.3" "pip" \
--replace "pip>=9,<23.1" "pip" \
'';
propagatedBuildInputs = [
@ -51,6 +53,7 @@ buildPythonPackage rec {
pyyaml
setuptools
six
typing-extensions
wheel
watchdog
];
@ -87,13 +90,20 @@ buildPythonPackage rec {
# https://github.com/aws/chalice/issues/1850
"test_resolve_endpoint"
"test_endpoint_from_arn"
# Tests require dist
"test_setup_tar_gz_hyphens_in_name"
"test_both_tar_gz"
"test_both_tar_bz2"
];
pythonImportsCheck = [ "chalice" ];
pythonImportsCheck = [
"chalice"
];
meta = with lib; {
description = "Python Serverless Microframework for AWS";
homepage = "https://github.com/aws/chalice";
changelog = "https://github.com/aws/chalice/blob/${version}/CHANGELOG.rst";
license = licenses.asl20;
maintainers = with maintainers; [ costrouc ];
};

View File

@ -13,7 +13,7 @@
buildPythonPackage rec {
pname = "channels-redis";
version = "4.0.0";
version = "4.1.0";
format = "setuptools";
disabled = pythonOlder "3.7";
@ -21,8 +21,8 @@ buildPythonPackage rec {
src = fetchFromGitHub {
owner = "django";
repo = "channels_redis";
rev = version;
hash = "sha256-YiLNrMRroa8T4uPNwa5ussFoFYjyg31waGpBGhAETmY=";
rev = "refs/tags/${version}";
hash = "sha256-Eid9aWlLNnqr3WAnsLe+Pz9gsugCsdDKi0+nFNF02CI=";
};
buildInputs = [
@ -54,6 +54,7 @@ buildPythonPackage rec {
meta = with lib; {
description = "Redis-backed ASGI channel layer implementation";
homepage = "https://github.com/django/channels_redis/";
changelog = "https://github.com/django/channels_redis/blob/${version}/CHANGELOG.txt";
license = licenses.bsd3;
maintainers = with maintainers; [ mmai ];
};

View File

@ -32,21 +32,21 @@ in
buildPythonPackage rec {
pname = "datafusion";
version = "22.0.0";
version = "23.0.0";
format = "pyproject";
src = fetchFromGitHub {
name = "datafusion-source";
owner = "apache";
repo = "arrow-datafusion-python";
rev = "22.0.0";
hash = "sha256-EKurQ4h5IOTU3JiGN+MHrDciQUadUrywNRhnv9S/9iY=";
rev = "refs/tags/${version}";
hash = "sha256-ndee7aNmoTtZyfl9UUXdNVHkp0GAuJWkyfZJyRrGwn8=";
};
cargoDeps = rustPlatform.fetchCargoTarball {
name = "datafusion-cargo-deps";
inherit src pname version;
hash = "sha256-0kfavTFqsQ1Uvg5nQw6VFGlvih8ysOyS2KGT4cTIsVI=";
hash = "sha256-eDweEc+7dDbF0WBi6M5XAPIiHRjlYAdf2eNJdwj4D7c=";
};
nativeBuildInputs = with rustPlatform; [
@ -79,6 +79,7 @@ buildPythonPackage rec {
that uses Apache Arrow as its in-memory format.
'';
homepage = "https://arrow.apache.org/datafusion/";
changelog = "https://github.com/apache/arrow-datafusion-python/blob/${version}/CHANGELOG.md";
license = with licenses; [ asl20 ];
maintainers = with maintainers; [ cpcloud ];
};

View File

@ -21,7 +21,7 @@
buildPythonPackage rec {
pname = "datasets";
version = "2.11.0";
version = "2.12.0";
format = "setuptools";
disabled = pythonOlder "3.7";
@ -30,7 +30,7 @@ buildPythonPackage rec {
owner = "huggingface";
repo = pname;
rev = "refs/tags/${version}";
hash = "sha256-vnKd7KapejcZN1RHNMpH4rrpz2P2DcfiyI33I0wiE+0=";
hash = "sha256-o/LUzRmpM4tjiCh31KoQXzU1Z/p/91uamh7G4SGnxQM=";
};
postPatch = ''

View File

@ -29,7 +29,7 @@
buildPythonPackage rec {
pname = "datasette";
version = "0.64.2";
version = "0.64.3";
format = "setuptools";
disabled = pythonOlder "3.7";
@ -38,7 +38,7 @@ buildPythonPackage rec {
owner = "simonw";
repo = pname;
rev = "refs/tags/${version}";
hash = "sha256-AxIJUJzFEAvAV59hYDB3pb5/1rS9d7T0ltl6lVWTCrE=";
hash = "sha256-hUMaveScSGbiELvN2oo8Nf/jFvYXeLpxTONl1R4UOZU=";
};
postPatch = ''

View File

@ -0,0 +1,46 @@
{ lib
, buildPythonPackage
, fetchPypi
, gensim
, numpy
, pandas
, pyfume
, scipy
, pythonOlder
}:
buildPythonPackage rec {
pname = "fuzzytm";
version = "2.0.5";
format = "setuptools";
disabled = pythonOlder "3.7";
src = fetchPypi {
pname = "FuzzyTM";
inherit version;
hash = "sha256-IELkjd3/yc2lBYsLP6mms9LEcXOfVtNNooEKCMf9BtU=";
};
propagatedBuildInputs = [
gensim
numpy
pandas
pyfume
scipy
];
# Module has no tests
doCheck = false;
pythonImportsCheck = [
"FuzzyTM"
];
meta = with lib; {
description = "Library for Fuzzy Topic Models";
homepage = "https://github.com/ERijck/FuzzyTM";
license = licenses.gpl2Only;
maintainers = with maintainers; [ fab ];
};
}

View File

@ -14,14 +14,14 @@
buildPythonPackage rec {
pname = "gensim";
version = "4.3.0";
version = "4.3.1";
format = "setuptools";
disabled = pythonOlder "3.6";
disabled = pythonOlder "3.8";
src = fetchPypi {
inherit pname version;
hash = "sha256-ZL1+ximQIVh4gi6LJWnRg1BU9WzfU2AN3+mSfjHztI0=";
hash = "sha256-i18RwOalMICGtI6PaEEiOk+ho31RNoRhK37oVLUzAV8=";
};
nativeBuildInputs = [
@ -54,10 +54,8 @@ buildPythonPackage rec {
meta = with lib; {
description = "Topic-modelling library";
homepage = "https://radimrehurek.com/gensim/";
changelog = "https://github.com/RaRe-Technologies/gensim/blob/${version}/CHANGELOG.md";
license = licenses.lgpl21Only;
maintainers = with maintainers; [ jyp ];
# python310 errors as: No matching distribution found for FuzzyTM>=0.4.0
# python311 errors as: longintrepr.h: No such file or directory
broken = true; # At 2023-02-05
};
}

View File

@ -17,19 +17,19 @@
buildPythonPackage rec {
pname = "glean-sdk";
version = "52.2.0";
version = "52.6.0";
disabled = pythonOlder "3.6";
src = fetchPypi {
inherit pname version;
hash = "sha256-iW432YtZtRGUWia33Lsnu+aQuedhBJdh8dZ30FPg6Vk=";
hash = "sha256-TTV6oydUP2znEOm7KZElugNDfROnlPmyC19Ig1H8/wM=";
};
cargoDeps = rustPlatform.fetchCargoTarball {
inherit src;
name = "${pname}-${version}";
hash = "sha256-/7qKIQglNKGveKFtPeqd35Mq2hH/20BGTgDBgip4PnI=";
hash = "sha256-Np2TfgKP3yfJqA4WZyyedGp9XtKJjDikUov5pvB/opk=";
};
nativeBuildInputs = [

View File

@ -6,18 +6,21 @@
, six
, hypothesis
, pytestCheckHook
, pythonOlder
}:
buildPythonPackage rec {
pname = "inform";
version = "1.27";
version = "1.28";
format = "pyproject";
disabled = pythonOlder "3.7";
src = fetchFromGitHub {
owner = "KenKundert";
repo = "inform";
rev = "refs/tags/v${version}";
hash = "sha256-SvE+UAGpUomUBHlH4aYZ1BYmLp3BherRjosKsIaOA/s=";
hash = "sha256-RA8/or3HTS/rQmG4A/Eg5j24YElaTEpnHa1yksARVMQ=";
};
nativeBuildInputs = [
@ -46,6 +49,7 @@ buildPythonPackage rec {
allow you to simply and cleanly print different types of messages.
'';
homepage = "https://inform.readthedocs.io";
changelog = "https://github.com/KenKundert/inform/blob/v${version}/doc/releases.rst";
license = licenses.gpl3Only;
maintainers = with maintainers; [ jeremyschlatter ];
};

View File

@ -19,7 +19,7 @@
buildPythonPackage rec {
pname = "inquirer";
version = "3.1.2";
version = "3.1.3";
format = "pyproject";
disabled = pythonOlder "3.7";
@ -28,7 +28,7 @@ buildPythonPackage rec {
owner = "magmax";
repo = "python-inquirer";
rev = "refs/tags/v${version}";
hash = "sha256-7kq0sZzPeCX7TA5Cl2rg6Uw+9jLz335a+tOrO0+Cyas=";
hash = "sha256-7GfHsCQgnDUdiM1z9YNdDuwMNy6rLjR1UTnZMgpQ5k4=";
};
nativeBuildInputs = [

View File

@ -26,7 +26,7 @@
buildPythonPackage rec {
pname = "intake";
version = "0.6.6";
version = "0.6.8";
format = "setuptools";
disabled = pythonOlder "3.7";
@ -35,7 +35,7 @@ buildPythonPackage rec {
owner = pname;
repo = pname;
rev = "refs/tags/${version}";
hash = "sha256-/VQKLmEpIOULTPpJKuVLyqqQVLKVhwVBoos9Q/upwQM=";
hash = "sha256-7A9wuuOQyGhdGj6T5VY+NrZjEOf/y8dCzSkHuPhNsKI=";
};
propagatedBuildInputs = [
@ -52,7 +52,7 @@ buildPythonPackage rec {
nativeCheckInputs = [
intake-parquet
pytestCheckHook
] ++ passthru.optional-dependencies.server;
] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
passthru.optional-dependencies = {
server = [

View File

@ -3,6 +3,7 @@
, blessings
, fetchFromGitHub
, invoke
, pythonOlder
, releases
, semantic-version
, tabulate
@ -12,20 +13,21 @@
buildPythonPackage rec {
pname = "invocations";
version = "3.0.1";
version = "3.0.2";
format = "setuptools";
disabled = pythonOlder "3.6";
src = fetchFromGitHub {
owner = "pyinvoke";
repo = pname;
rev = version;
hash = "sha256-G0sl2DCROxlTnW3lWKeGw4qDmnaeRC4xYf27d6YePjE=";
rev = "refs/tags/${version}";
hash = "sha256-sXMxTOi0iCz7Zq0lXkpproUtkId5p/GCqP1TvgqYlME=";
};
postPatch = ''
substituteInPlace setup.py \
--replace "semantic_version>=2.4,<2.7" "semantic_version" \
--replace "tabulate==0.7.5" "tabulate"
--replace "semantic_version>=2.4,<2.7" "semantic_version"
'';
propagatedBuildInputs = [
@ -48,6 +50,7 @@ buildPythonPackage rec {
meta = with lib; {
description = "Common/best-practice Invoke tasks and collections";
homepage = "https://invocations.readthedocs.io/";
changelog = "https://github.com/pyinvoke/invocations/blob/${version}/docs/changelog.rst";
license = licenses.bsd2;
maintainers = with maintainers; [ samuela ];
};

View File

@ -0,0 +1,38 @@
{ lib
, buildPythonPackage
, fetchPypi
, pythonOlder
, hatchling
, hatch-jupyter-builder
, ipywidgets
, jupyter-ui-poll
, pytestCheckHook
}:
buildPythonPackage rec {
pname = "ipyniivue";
version = "1.0.2";
format = "pyproject";
disabled = pythonOlder "3.7";
src = fetchPypi {
inherit pname version;
hash = "sha256-vFbEV/ZMXvKZeQUR536OZQ/5uIkt4tOWcCGRPMdc34I";
};
nativeBuildInputs = [ hatchling hatch-jupyter-builder ];
propagatedBuildInputs = [ ipywidgets jupyter-ui-poll ];
nativeCheckImports = [ pytestCheckHook ];
pythonImportsCheck = [ "ipyniivue" ];
meta = with lib; {
description = "Show a nifti image in a webgl 2.0 canvas within a jupyter notebook cell";
homepage = "https://github.com/niivue/ipyniivue";
changelog = "https://github.com/niivue/ipyniivue/releases/tag/${version}";
license = licenses.bsd3;
maintainers = with maintainers; [ bcdarwin ];
};
}

View File

@ -0,0 +1,38 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, pythonOlder
, setuptools
, ipython
}:
buildPythonPackage rec {
pname = "jupyter-ui-poll";
version = "0.2.2";
format = "pyproject";
disabled = pythonOlder "3.6";
src = fetchFromGitHub {
owner = "Kirill888";
repo = "jupyter-ui-poll";
rev = "refs/tags/v${version}";
hash = "sha256-DWZFvzx0aNTmf1x8Rq19OT0PFRxdpKefWYFh8C116Fw";
};
nativeBuildInputs = [ setuptools ];
propagatedBuildInputs = [
ipython
];
doCheck = false; # no tests in package :(
pythonImportsCheck = [ "jupyter_ui_poll" ];
meta = with lib; {
description = "Block jupyter cell execution while interacting with widgets";
homepage = "https://github.com/Kirill888/jupyter-ui-poll";
changelog = "https://github.com/Kirill888/jupyter-ui-poll/releases/tag/v${version}";
license = licenses.mit;
maintainers = with maintainers; [ bcdarwin ];
};
}

View File

@ -9,15 +9,16 @@
buildPythonPackage rec {
pname = "kornia";
version = "0.6.11";
version = "0.6.12";
format = "pyproject";
disabled = pythonOlder "3.7";
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = "refs/tags/v${version}";
hash = "sha256-APqITIt2P+16qp27dwLoAq9vY5CYpd49IWfYHTcZTSI=";
hash = "sha256-qLJos1ivEws/jFK4j0Kp1ij9J9ZwCoHFRYXnlYxwPFY=";
};
propagatedBuildInputs = [
@ -47,6 +48,7 @@ buildPythonPackage rec {
meta = with lib; {
homepage = "https://kornia.github.io/kornia";
changelog = "https://github.com/kornia/kornia/releases/tag/v${version}";
description = "Differentiable computer vision library";
license = licenses.asl20;
maintainers = with maintainers; [ bcdarwin ];

View File

@ -0,0 +1,46 @@
{ lib
, buildPythonPackage
, fetchPypi
, fst-pso
, numpy
, pandas
, pythonOlder
, scipy
, simpful
}:
buildPythonPackage rec {
pname = "pyfume";
version = "0.2.25";
format = "setuptools";
disabled = pythonOlder "3.7";
src = fetchPypi {
pname = "pyFUME";
inherit version;
hash = "sha256-uD1IHFyNd9yv3eyHPZ4pg6X2+rLTY5sYsQysuIXbvfA=";
};
propagatedBuildInputs = [
fst-pso
numpy
pandas
scipy
simpful
];
# Module has not test
doCheck = false;
pythonImportsCheck = [
"pyfume"
];
meta = with lib; {
description = "A Python package for fuzzy model estimation";
homepage = "https://github.com/CaroFuchs/pyFUME";
license = with licenses; [ gpl3Only ];
maintainers = with maintainers; [ fab ];
};
}

View File

@ -0,0 +1,49 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, pytest
, pytestCheckHook
, pythonOlder
}:
buildPythonPackage rec {
pname = "pytest-emoji";
version = "0.2.0";
format = "setuptools";
disabled = pythonOlder "3.7";
src = fetchFromGitHub {
owner = "hackebrot";
repo = "pytest-emoji";
rev = "refs/tags/${version}";
hash = "sha256-GuKBbIIODDnMi9YMX3zR4Jc3cbK+Zibj1ZeWvYkUY24=";
};
buildInputs = [
pytest
];
nativeCheckInputs = [
pytestCheckHook
];
pythonImportsCheck = [
"pytest_emoji"
];
disabledTests = [
# Test scompare CLI output
"test_emoji_disabled_by_default_verbose"
"test_emoji_enabled_verbose"
"test_emoji_enabled_custom_verbose"
];
meta = with lib; {
description = "A pytest plugin that adds emojis to test result report";
homepage = "https://github.com/hackebrot/pytest-emoji";
changelog = "https://github.com/hackebrot/pytest-emoji/releases/tag/0.2.0";
license = licenses.mit;
maintainers = with maintainers; [ fab ];
};
}

View File

@ -1,20 +1,56 @@
{ lib, buildPythonPackage, fetchFromGitHub, fetchpatch, poetry-core, pythonOlder
, click, backports-cached-property, graphql-core, pygments, python-dateutil, python-multipart, typing-extensions
, aiohttp, asgiref, chalice, django, fastapi, flask, pydantic, sanic, starlette, uvicorn
{ lib
, aiohttp
, asgiref
, backports-cached-property
, buildPythonPackage
, chalice
, channels
, click
, daphne
, django
, email-validator
, fastapi
, fetchFromGitHub
, fetchpatch
, flask
, freezegun
, graphql-core
, libcst
, mypy
, poetry-core
, pydantic
, pygments
, pyinstrument
, pytest-aiohttp
, pytest-asyncio
, pytest-django
, pytest-emoji
, pytest-flask
, pytest-snapshot
, pytestCheckHook
, python-dateutil
, python-multipart
, pythonOlder
, rich
, sanic
, sanic-testing
, starlette
, typing-extensions
, uvicorn
}:
buildPythonPackage rec {
pname = "strawberry-graphql";
version = "0.159.0";
version = "0.176.0";
format = "pyproject";
disabled = pythonOlder "3.6";
disabled = pythonOlder "3.7";
src = fetchFromGitHub {
owner = "strawberry-graphql";
repo = "strawberry";
rev = "refs/tags/${version}";
hash = "sha256-3fyls1W2Vx0nDtp7mta/8QeKM6RRsAbw3dWOnH1/jk0=";
hash = "sha256-e61wLFqc3HLCWUiVW3Gzbay1Oi8b7HsLT3+jPnbA4YY=";
};
patches = [
@ -25,22 +61,121 @@ buildPythonPackage rec {
})
];
postPatch = ''
substituteInPlace pyproject.toml \
--replace " --emoji --mypy-ini-file=mypy.ini --benchmark-disable" "" \
'';
nativeBuildInputs = [
poetry-core
];
propagatedBuildInputs = [
click backports-cached-property graphql-core pygments python-dateutil python-multipart typing-extensions
aiohttp asgiref chalice django fastapi flask pydantic sanic starlette uvicorn
graphql-core
python-dateutil
typing-extensions
];
passthru.optional-dependencies = {
aiohttp = [
aiohttp
pytest-aiohttp
];
asgi = [
starlette
python-multipart
];
debug = [
rich
libcst
];
debug-server = [
click
libcst
pygments
python-multipart
rich
starlette
uvicorn
];
django = [
django
pytest-django
asgiref
];
channels = [
channels
asgiref
];
flask = [
flask
pytest-flask
];
# opentelemetry = [
# opentelemetry-api
# opentelemetry-sdk
# ];
pydantic = [
pydantic
];
sanic = [
sanic
];
fastapi = [
fastapi
python-multipart
];
chalice = [
chalice
];
cli = [
click
pygments
rich
libcst
];
# starlite = [
# starlite
# ];
pyinstrument = [
pyinstrument
];
};
nativeCheckInputs = [
daphne
email-validator
freezegun
mypy
pytest-asyncio
pytest-emoji
pytest-snapshot
pytestCheckHook
sanic-testing
] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
pythonImportsCheck = [
"strawberry"
];
disabledTestPaths = [
"tests/benchmarks/"
"tests/cli/"
"tests/django/test_dataloaders.py"
"tests/exceptions/"
"tests/http/"
"tests/schema/extensions/"
"tests/schema/test_dataloaders.py"
"tests/schema/test_lazy/"
"tests/starlite/"
"tests/test_dataloaders.py"
"tests/utils/test_pretty_print.py"
];
meta = with lib; {
description = "A GraphQL library for Python that leverages type annotations";
homepage = "https://strawberry.rocks";
changelog = "https://github.com/strawberry-graphql/strawberry/blob/${version}/CHANGELOG.md";
license = with licenses; [ mit ];
maintainers = with maintainers; [ izorkin ];
};

View File

@ -9,14 +9,14 @@
buildPythonPackage rec {
pname = "ytmusicapi";
version = "0.25.1";
version = "1.0.2";
format = "pyproject";
disabled = pythonOlder "3.8";
src = fetchPypi {
inherit pname version;
hash = "sha256-uc/fgDetSYaCRzff0SzfbRhs3TaKrfE2h6roWkkj8yQ=";
hash = "sha256-95i/7dSXOL7OgqrBWy2X8EV4zLFXLzR6NQy3BN9NDhA=";
};
nativeBuildInputs = [

View File

@ -22,14 +22,14 @@ with py.pkgs;
buildPythonApplication rec {
pname = "checkov";
version = "2.3.209";
version = "2.3.212";
format = "setuptools";
src = fetchFromGitHub {
owner = "bridgecrewio";
repo = pname;
rev = "refs/tags/${version}";
hash = "sha256-7Aj8uAO4/sy1GvG52KPdPXcV6eIjrX14bvTJvqDsWQQ=";
hash = "sha256-5x5kZJTECCXBbPEWIWTVUxvyvS7yO572pHGab7o9nR0=";
};
patches = [

File diff suppressed because it is too large Load Diff

View File

@ -8,13 +8,13 @@
rustPlatform.buildRustPackage rec {
pname = "ruff";
version = "0.0.262";
version = "0.0.263";
src = fetchFromGitHub {
owner = "charliermarsh";
repo = pname;
rev = "v${version}";
hash = "sha256-G+Cz/5dL/5kOOJ1fGGecwGOiONYdwFWOPQ5KV0W2DVA=";
hash = "sha256-EhxevilIrcrM7wcuF39b4P4T8OpNwdyga+wAPatil8Q=";
};
# We have to use importCargoLock here because `cargo vendor` currently doesn't support workspace

View File

@ -2,16 +2,16 @@
rustPlatform.buildRustPackage rec {
pname = "rust-script";
version = "0.26.0";
version = "0.27.0";
src = fetchFromGitHub {
owner = "fornwall";
repo = pname;
rev = version;
sha256 = "sha256-2ZEFtpaKBhF8puYB5gqttrdxKI2zrm6wjukRM+mBeF0=";
sha256 = "sha256-noyef+G05749WqqqCH6qyVorCR4DRZTl38ftkU66IBQ=";
};
cargoSha256 = "sha256-HRT0PSI0x2I/zuKKDcn08cyBC8gxkC5XXRFle/Ayrkg=";
cargoSha256 = "sha256-L5uqckG+NbatpBTejZw/Xk+OGZqsJgzHRwCTh1FJHVw=";
# tests require network access
doCheck = false;

View File

@ -0,0 +1,23 @@
{ buildGoModule, fetchFromGitHub, lib }:
buildGoModule rec {
pname = "cloudflare-exporter";
version = "0.0.14";
src = fetchFromGitHub {
rev = version;
owner = "lablabs";
repo = pname;
sha256 = "sha256-A7JnHx9yipTwv63287BqmGrJ3yQ21NhB1z7rrHe6Ok8=";
};
vendorSha256 = "sha256-B/+UTkoGAoJLMr+zdXXSC2CWGHx+Iu5E2qp4AA/nmHM=";
meta = with lib; {
description = "Prometheus Cloudflare Exporter";
homepage = "https://github.com/lablabs/cloudflare-exporter";
license = licenses.asl20;
maintainers = with maintainers; [ bbigras ];
platforms = platforms.linux;
};
}

View File

@ -6,13 +6,13 @@
buildGoModule rec {
pname = "exportarr";
version = "1.3.1";
version = "1.3.2";
src = fetchFromGitHub {
owner = "onedr0p";
repo = "exportarr";
rev = "v${version}";
sha256 = "sha256-QZI3tYh2HXBDlZJWHQUAl/Yeyc/qCZGcfyFHbjCHlbU=";
hash = "sha256-99ap7B5EfMhuSGmT/JNI+CTPv7lTdjxibC0ndYWyNoA=";
};
vendorHash = "sha256-2Eb8FhbRu5M5u8HGa2bgAvZZkwHycBu8UiNKHG5/fFw=";
@ -25,8 +25,10 @@ buildGoModule rec {
tags = lib.optionals stdenv.isLinux [ "netgo" ];
# There are no tests for this package.
doCheck = false;
preCheck = ''
# Run all tests.
unset subPackages
'';
meta = with lib; {
description = "AIO Prometheus Exporter for Sonarr, Radarr or Lidarr";

View File

@ -2,16 +2,16 @@
buildGoModule rec {
pname = "kopia";
version = "0.12.1";
version = "0.13.0";
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = "v${version}";
sha256 = "sha256-5zocfkNHsTFl3Sjwkr7dGnDY+4WO20F5AMgjfFulNd0=";
sha256 = "sha256-wQZzFrrxLzJ16TOrhxBlUuz+eCdqW/PmHUTuJP1Wy9Y=";
};
vendorSha256 = "sha256-Xmd4Q2X0cur4XGEjy1ysEEQkNqch4G+jGkPnrepgP6g=";
vendorSha256 = "sha256-OeDgaO125y8eCQlm9Lv5RZlb1fNLTCplEQbpJ2KMVms=";
doCheck = false;

View File

@ -5,16 +5,16 @@
rustPlatform.buildRustPackage rec {
pname = "nerdfix";
version = "0.2.1";
version = "0.2.2";
src = fetchFromGitHub {
owner = "loichyan";
repo = "nerdfix";
rev = "v${version}";
hash = "sha256-bohN3RXGZObDSDsggKmqKdLx37o8llTwIcpDQIbxEUo=";
hash = "sha256-cC8BuDTYpXKAtbIylpLQKZG84N/kMp0jirqJanvEvZo=";
};
cargoHash = "sha256-T5t+PvzCKfwiKQR/WWKxcoulSRhTNdiLDfoLnKO2qJ0=";
cargoHash = "sha256-K5bZRHce71hFvw7Ipbk4nazg/Wh4I161/MTQmTZakrQ=";
meta = with lib; {
description = "Nerdfix helps you to find/fix obsolete nerd font icons in your project";

View File

@ -16749,9 +16749,7 @@ with pkgs;
io = callPackage ../development/interpreters/io { };
ivy = callPackage ../development/interpreters/ivy {
buildGoModule = buildGo118Module; # tests fail with 1.19
};
ivy = callPackage ../development/interpreters/ivy { };
j = callPackage ../development/interpreters/j {
stdenv = clangStdenv;
@ -25809,6 +25807,7 @@ with pkgs;
prometheus-bird-exporter = callPackage ../servers/monitoring/prometheus/bird-exporter.nix { };
prometheus-bitcoin-exporter = callPackage ../servers/monitoring/prometheus/bitcoin-exporter.nix { };
prometheus-blackbox-exporter = callPackage ../servers/monitoring/prometheus/blackbox-exporter.nix { };
prometheus-cloudflare-exporter = callPackage ../servers/monitoring/prometheus/cloudflare-exporter.nix { };
prometheus-collectd-exporter = callPackage ../servers/monitoring/prometheus/collectd-exporter.nix { };
prometheus-consul-exporter = callPackage ../servers/monitoring/prometheus/consul-exporter.nix { };
prometheus-dnsmasq-exporter = callPackage ../servers/monitoring/prometheus/dnsmasq-exporter.nix { };
@ -32360,9 +32359,7 @@ with pkgs;
normalize = callPackage ../applications/audio/normalize { };
norouter = callPackage ../tools/networking/norouter {
buildGoModule = buildGo118Module; # tests fail with 1.19
};
norouter = callPackage ../tools/networking/norouter { };
nqptp = callPackage ../tools/networking/nqptp { };

View File

@ -3804,6 +3804,8 @@ self: super: with self; {
fuzzyfinder = callPackage ../development/python-modules/fuzzyfinder { };
fuzzytm = callPackage ../development/python-modules/fuzzytm { };
fuzzywuzzy = callPackage ../development/python-modules/fuzzywuzzy { };
fvs = callPackage ../development/python-modules/fvs { };
@ -4883,6 +4885,8 @@ self: super: with self; {
ipydatawidgets = callPackage ../development/python-modules/ipydatawidgets { };
ipyniivue = callPackage ../development/python-modules/ipyniivue { };
ipykernel = callPackage ../development/python-modules/ipykernel { };
ipympl = callPackage ../development/python-modules/ipympl { };
@ -5195,6 +5199,8 @@ self: super: with self; {
jupyter-server-ydoc = callPackage ../development/python-modules/jupyter-server-ydoc { };
jupyter-ui-poll = callPackage ../development/python-modules/jupyter-ui-poll { };
jupyter-ydoc = callPackage ../development/python-modules/jupyter-ydoc { };
jupyterhub = callPackage ../development/python-modules/jupyterhub { };
@ -8359,6 +8365,8 @@ self: super: with self; {
pyfttt = callPackage ../development/python-modules/pyfttt { };
pyfume = callPackage ../development/python-modules/pyfume { };
pyfuse3 = callPackage ../development/python-modules/pyfuse3 { };
pyfxa = callPackage ../development/python-modules/pyfxa { };
@ -9332,6 +9340,8 @@ self: super: with self; {
pytest-dotenv = callPackage ../development/python-modules/pytest-dotenv { };
pytest-emoji = callPackage ../development/python-modules/pytest-emoji { };
pytest-env = callPackage ../development/python-modules/pytest-env { };
pytest-error-for-skips = callPackage ../development/python-modules/pytest-error-for-skips { };