Compare commits

...

13 commits

Author SHA1 Message Date
Hendrik Sokolowski 7ec2e96c2c
add python-stdnum as erpnext dependency 2024-09-19 23:29:54 +02:00
teutat3s 32bb022df7
module: restart max 5 times, set higher timeout
for initial start
2024-09-19 14:09:54 +02:00
teutat3s 57ed0da017
frappe now wants bash in PATH 2024-09-19 13:55:57 +02:00
teutat3s ae7a917ed9
frappe 15.39.2 needs relaxed python deps,
add pkg for sql-metadata
2024-09-19 13:30:30 +02:00
teutat3s 75bb14ba70
downgrade frappe to 15.39.2 2024-09-19 13:29:55 +02:00
teutat3s 0307d8d9fc
fix override for a non-existent input 'systems' 2024-09-19 13:29:37 +02:00
Hendrik Sokolowski 4abf58436c
use versioningit from nixpkgs 2024-09-19 13:01:24 +02:00
Hendrik Sokolowski d5495fa24a
python-bench: lift dependency on hatchling 2024-09-19 13:00:27 +02:00
teutat3s c6cf41f94b
bench: relax hatchling dep version 2024-09-19 12:14:07 +02:00
teutat3s 92f2b0b478
remove pydantic overlay 2024-09-19 12:11:08 +02:00
teutat3s e60d4eb82c
fix dependencies barcodenumber, python-youtube 2024-09-19 12:04:52 +02:00
teutat3s 72dfbfab5f
chore: bump bench version to 5.22.9
bump erpnext version 15.36.1
bump frappe version 15.41.0
2024-09-19 12:03:45 +02:00
teutat3s 518ebf980d
flake.lock: Update
Update nixpkgs 23.11 -> 24.05

Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/b0b2c5445c64191fd8d0b31f2b1a34e45a64547d' (2024-01-03)
  → 'github:NixOS/nixpkgs/086b448a5d54fd117f4dc2dee55c9f0ff461bdc1' (2024-09-16)
• Updated input 'agenix':
    'github:ryantm/agenix/417caa847f9383e111d1397039c9d4337d024bf0' (2023-12-24)
  → 'github:ryantm/agenix/f6291c5935fdc4e0bef208cfc0dcab7e3f7a1c41' (2024-08-10)
• Updated input 'devshell':
    'github:numtide/devshell/44ddedcbcfc2d52a76b64fb6122f209881bd3e1e' (2023-12-05)
  → 'github:numtide/devshell/67cce7359e4cd3c45296fb4aaf6a19e2a9c757ae' (2024-07-27)
• Removed input 'devshell/systems'
2024-09-19 11:49:23 +02:00
11 changed files with 100 additions and 127 deletions

View file

@ -10,11 +10,11 @@
"systems": "systems" "systems": "systems"
}, },
"locked": { "locked": {
"lastModified": 1703433843, "lastModified": 1723293904,
"narHash": "sha256-nmtA4KqFboWxxoOAA6Y1okHbZh+HsXaMPFkYHsoDRDw=", "narHash": "sha256-b+uqzj+Wa6xgMS9aNbX4I+sXeb5biPDi39VgvSFqFvU=",
"owner": "ryantm", "owner": "ryantm",
"repo": "agenix", "repo": "agenix",
"rev": "417caa847f9383e111d1397039c9d4337d024bf0", "rev": "f6291c5935fdc4e0bef208cfc0dcab7e3f7a1c41",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -49,17 +49,14 @@
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
],
"systems": [
"systems"
] ]
}, },
"locked": { "locked": {
"lastModified": 1701787589, "lastModified": 1722113426,
"narHash": "sha256-ce+oQR4Zq9VOsLoh9bZT8Ip9PaMLcjjBUHVPzW5d7Cw=", "narHash": "sha256-Yo/3loq572A8Su6aY5GP56knpuKYRvM2a1meP9oJZCw=",
"owner": "numtide", "owner": "numtide",
"repo": "devshell", "repo": "devshell",
"rev": "44ddedcbcfc2d52a76b64fb6122f209881bd3e1e", "rev": "67cce7359e4cd3c45296fb4aaf6a19e2a9c757ae",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -91,16 +88,16 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1704295289, "lastModified": 1726447378,
"narHash": "sha256-9WZDRfpMqCYL6g/HNWVvXF0hxdaAgwgIGeLYiOhmes8=", "narHash": "sha256-2yV8nmYE1p9lfmLHhOCbYwQC/W8WYfGQABoGzJOb1JQ=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "b0b2c5445c64191fd8d0b31f2b1a34e45a64547d", "rev": "086b448a5d54fd117f4dc2dee55c9f0ff461bdc1",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "NixOS", "owner": "NixOS",
"ref": "nixos-23.11", "ref": "nixos-24.05",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
} }

View file

@ -2,13 +2,12 @@
description = "Dev Setup"; description = "Dev Setup";
inputs = { inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-23.11"; nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.05";
systems.url = "github:nix-systems/default"; systems.url = "github:nix-systems/default";
devshell.url = "github:numtide/devshell"; devshell.url = "github:numtide/devshell";
devshell.inputs.nixpkgs.follows = "nixpkgs"; devshell.inputs.nixpkgs.follows = "nixpkgs";
devshell.inputs.systems.follows = "systems";
agenix.url = "github:ryantm/agenix"; agenix.url = "github:ryantm/agenix";
agenix.inputs.nixpkgs.follows = "nixpkgs"; agenix.inputs.nixpkgs.follows = "nixpkgs";

View file

@ -316,14 +316,20 @@ in
]; ];
}; };
path = [ path = [
pkgs.bash
pkgs.mariadb-client pkgs.mariadb-client
]; ];
environment = { environment = {
PYTHON_PATH = "${penv}/${pkgs.python3.sitePackages}"; PYTHON_PATH = "${penv}/${pkgs.python3.sitePackages}";
}; };
unitConfig = {
StartLimitBurst = "5";
StartLimitIntervalSec = "30";
};
serviceConfig = defaultServiceConfig // { serviceConfig = defaultServiceConfig // {
TimeoutStartSec = "300s"; TimeoutStartSec = "600s";
Restart = "on-failure"; Restart = "on-failure";
RestartSec = "5s";
ExecStartPre = assert cfg.adminPasswordFile != null && cfg.database.rootPasswordFile != null; pkgs.writeScript "erpnext-web-init" '' ExecStartPre = assert cfg.adminPasswordFile != null && cfg.database.rootPasswordFile != null; pkgs.writeScript "erpnext-web-init" ''
#!/bin/sh #!/bin/sh
if ! test -e ${escapeShellArg "${cfg.workDir}/.db-created"}; then if ! test -e ${escapeShellArg "${cfg.workDir}/.db-created"}; then

View file

@ -18,24 +18,15 @@ final: prev: {
email-reply-parser = pyFinal.callPackage ./python/email-reply-parser.nix {}; email-reply-parser = pyFinal.callPackage ./python/email-reply-parser.nix {};
maxminddb-geolite2 = pyFinal.callPackage ./python/maxminddb-geolite2.nix {}; maxminddb-geolite2 = pyFinal.callPackage ./python/maxminddb-geolite2.nix {};
psycopg2-binary = pyFinal.callPackage ./python/psycopg2-binary.nix {}; psycopg2-binary = pyFinal.callPackage ./python/psycopg2-binary.nix {};
sql-metadata = pyFinal.callPackage ./python/sql-metadata.nix {};
traceback-with-variables = pyFinal.callPackage ./python/traceback-with-variables.nix {}; traceback-with-variables = pyFinal.callPackage ./python/traceback-with-variables.nix {};
pydantic = pyFinal.callPackage ./python/pydantic.nix {};
versioningit = pyPrev.versioningit.overridePythonAttrs (oldAttrs: (rec { #fastapi = pyPrev.fastapi.overridePythonAttrs (oldAttrs: (rec {
version = "2.2.1"; # propagatedBuildInputs = oldAttrs.propagatedBuildInputs ++ [
src = pyPrev.fetchPypi { # pyPrev.pydantic-settings
inherit version; # pyPrev.pydantic-extra-types
inherit (oldAttrs) pname; # ];
hash = "sha256-DlgkLXq9phrmNZalSUrp7WMayF2Ls8yOF24yU8pLy7U="; #}));
};
}));
fastapi = pyPrev.fastapi.overridePythonAttrs (oldAttrs: (rec {
propagatedBuildInputs = oldAttrs.propagatedBuildInputs ++ [
pyPrev.pydantic-settings
pyPrev.pydantic-extra-types
];
}));
plaid-python = pyPrev.plaid-python.overridePythonAttrs (oldAttrs: (rec { plaid-python = pyPrev.plaid-python.overridePythonAttrs (oldAttrs: (rec {
version = "7.2.1"; version = "7.2.1";

View file

@ -4,10 +4,13 @@
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "barcodenumber"; pname = "barcodenumber";
version = "0.2.1"; version = "0.5.0";
format = "wheel";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit format pname version;
sha256 = "sha256-nW8+m32i42kLR4oC4lrKoBkFYgKHgpZPGAFNJvtLMhc="; python = "py3";
dist = "py3";
sha256 = "sha256-VZfHLwSF9aDoy5L1x4O2mu8/f2ijYKgyjCrQ1KKY5Ho=";
}; };
propagatedBuildInputs = [ ]; propagatedBuildInputs = [ ];
nativeBuildInputs = [ ]; nativeBuildInputs = [ ];

View file

@ -32,6 +32,9 @@ buildPythonPackage rec {
}; };
format = "pyproject"; format = "pyproject";
postPatch = ''
substituteInPlace pyproject.toml --replace-fail 'hatchling>=1.6.0,<=1.21.0' 'hatchling<=1.24.2'
'';
nativeBuildInputs = [ pythonRelaxDepsHook ]; nativeBuildInputs = [ pythonRelaxDepsHook ];
pythonRelaxDeps = [ "jinja2" "python-crontab" "semantic-version" ]; pythonRelaxDeps = [ "jinja2" "python-crontab" "semantic-version" ];

View file

@ -14,6 +14,7 @@
# Integration dependencies # Integration dependencies
, googlemaps , googlemaps
, plaid-python , plaid-python
, python-stdnum
, python-youtube , python-youtube
, pypng , pypng
}: }:
@ -40,6 +41,7 @@ buildPythonPackage rec {
"pycountry" "pycountry"
"rapidfuzz" "rapidfuzz"
"Unidecode" "Unidecode"
"python-youtube"
]; ];
propagatedBuildInputs = [ propagatedBuildInputs = [
@ -53,6 +55,7 @@ buildPythonPackage rec {
# Integration dependencies # Integration dependencies
googlemaps googlemaps
plaid-python plaid-python
python-stdnum
python-youtube python-youtube
# used for QR code generation # used for QR code generation
pypng pypng

View file

@ -68,6 +68,8 @@
, xlrd , xlrd
, zxcvbn , zxcvbn
, markdownify , markdownify
, tomli
, sql-metadata
# Integration dependencies # Integration dependencies
, boto3 , boto3
@ -97,6 +99,38 @@ buildPythonPackage rec {
nativeBuildInputs = [ pythonRelaxDepsHook flit-core ]; nativeBuildInputs = [ pythonRelaxDepsHook flit-core ];
pythonRelaxDeps = [
"babel"
"pypdf"
"weasyprint"
"pydyf"
"bleach"
"cairocffi"
"chardet"
"cssutils"
"gunicorn"
"ipython"
"phonenumbers"
"pyopenssl"
"pydantic"
"pyotp"
"python-dateutil"
"pytz"
"rauth"
"redis"
"hiredis"
"requests"
"rq"
"sentry-sdk"
"markdownify"
"boto3"
"dropbox"
"google-api-python-client"
"google-auth-oauthlib"
"google-auth"
"posthog"
];
propagatedBuildInputs = [ propagatedBuildInputs = [
babel babel
click click
@ -161,6 +195,8 @@ buildPythonPackage rec {
xlrd xlrd
zxcvbn zxcvbn
markdownify markdownify
tomli
sql-metadata
# integration dependencies # integration dependencies
boto3 boto3

View file

@ -1,85 +0,0 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, pythonOlder
, hatchling
, hatch-fancy-pypi-readme
, libxcrypt
, annotated-types
, pydantic-core
, typing-extensions
, email-validator
, dirty-equals
, faker
, pytestCheckHook
, pytest-mock
}:
buildPythonPackage rec {
pname = "pydantic";
version = "2.3.0";
pyproject = true;
disabled = pythonOlder "3.7";
src = fetchFromGitHub {
owner = "pydantic";
repo = "pydantic";
rev = "refs/tags/v${version}";
hash = "sha256-toqrWg8bYzc3UmvG/YmXawfmT8nqaA9fxy24k1cdj+M=";
};
buildInputs = lib.optionals (pythonOlder "3.9") [
libxcrypt
];
nativeBuildInputs = [
hatch-fancy-pypi-readme
hatchling
];
propagatedBuildInputs = [
annotated-types
pydantic-core
typing-extensions
];
passthru.optional-dependencies = {
email = [
email-validator
];
};
nativeCheckInputs = [
dirty-equals
faker
pytest-mock
pytestCheckHook
] ++ lib.flatten (lib.attrValues passthru.optional-dependencies);
preCheck = ''
export HOME=$(mktemp -d)
substituteInPlace pyproject.toml \
--replace "'--benchmark-columns', 'min,mean,stddev,outliers,rounds,iterations'," "" \
--replace "'--benchmark-group-by', 'group'," "" \
--replace "'--benchmark-warmup', 'on'," "" \
--replace "'--benchmark-disable'," ""
'';
disabledTestPaths = [
"tests/benchmarks"
# avoid cyclic dependency
"tests/test_docs.py"
];
pythonImportsCheck = [ "pydantic" ];
meta = with lib; {
description = "Data validation and settings management using Python type hinting";
homepage = "https://github.com/pydantic/pydantic";
changelog = "https://github.com/pydantic/pydantic/blob/v${version}/HISTORY.md";
license = licenses.mit;
maintainers = with maintainers; [ wd15 ];
};
}

20
python/sql-metadata.nix Normal file
View file

@ -0,0 +1,20 @@
{
buildPythonPackage,
fetchPypi,
poetry-core,
sqlparse,
}:
buildPythonPackage rec {
pname = "sql-metadata";
version = "2.11.0";
src = fetchPypi {
pname = "sql_metadata";
inherit version;
sha256 = "sha256-8jtwjOVYIh8so3YOtKuFa0+AVAtc9RczrZeRO8VGhis=";
};
format = "pyproject";
propagatedBuildInputs = [
poetry-core
sqlparse
];
}

View file

@ -1,12 +1,12 @@
{ {
benchVersion = "5.19.0"; benchVersion = "5.22.9";
erpnextVersion = "15.9.1"; erpnextVersion = "15.36.1";
frappeVersion = "15.8.1"; frappeVersion = "15.39.2";
hashes = { hashes = {
"benchSrcHash" = "sha256-y8nx4vFVQggwGv2MWQ88WczgVbPxPybZV38FF5u5aWI="; "benchSrcHash" = "sha256-VOsAd7l09/GPf4eRV/Vrdj6XPLQS19/cq1h4Vym174A=";
"erpnextSrcHash" = "sha256-nkXN0PTcWt1nSy3eRdBF2h0WMdAC79qWzaj9kXRsG2I="; "erpnextSrcHash" = "sha256-fECwtuMWOCRydcfWSx4CXLp5SWzWGIQ5yWOlsDsdDQI=";
"erpnextYarnHash" = "1farnqrfnzshpbpx4nyarw13g8m3389ix3hrc4661xxm887lz5fv"; "erpnextYarnHash" = "1farnqrfnzshpbpx4nyarw13g8m3389ix3hrc4661xxm887lz5fv";
"frappeSrcHash" = "sha256-FDUUNbULPmMY6dDgbMHrxXD8pK1AP+T7kG7mY9MmMDg="; "frappeSrcHash" = "sha256-mArEVtkdVpiaHgr6u+cGCKjTL0pFJ2dXJw/dExh0atI=";
"frappeYarnHash" = "0rj2v69siagwjz632hyaii5ni24fp434cznaxpi8978fq07qx6l9"; "frappeYarnHash" = "0ahch2jazvpigwjhk872i00paachya3ym3zjyc3dl5ris851qyss";
}; };
} }