From 7971042b202f680e4683f26acc3580e0999126b6 Mon Sep 17 00:00:00 2001 From: Symphorien Gibol Date: Sat, 11 Apr 2020 12:00:00 +0000 Subject: [PATCH 01/13] nixos/tests/ihatemoney: fix --- nixos/tests/ihatemoney.nix | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/nixos/tests/ihatemoney.nix b/nixos/tests/ihatemoney.nix index 7df0ea0b691..a1160bbbbd5 100644 --- a/nixos/tests/ihatemoney.nix +++ b/nixos/tests/ihatemoney.nix @@ -1,5 +1,11 @@ +{ system ? builtins.currentSystem, + config ? {}, + pkgs ? import ../.. { inherit system config; } +}: + let - f = backend: import ./make-test-python.nix ({ pkgs, ... }: { + inherit (import ../lib/testing-python.nix { inherit system pkgs; }) makeTest; + f = backend: makeTest { name = "ihatemoney-${backend}"; machine = { lib, ... }: { services.ihatemoney = { @@ -48,7 +54,7 @@ let assert "ihatemoney" in machine.succeed("curl http://localhost:8000") ''; - }); + }; in { ihatemoney-sqlite = f "sqlite"; ihatemoney-postgresql = f "postgresql"; From 0848c2f5293da608b905a2b9b3964926d90b6997 Mon Sep 17 00:00:00 2001 From: Symphorien Gibol Date: Sat, 11 Apr 2020 12:00:00 +0000 Subject: [PATCH 02/13] python3Packages.ihatemoney: 4.1 -> 4.1.3 --- pkgs/development/python-modules/ihatemoney/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/ihatemoney/default.nix b/pkgs/development/python-modules/ihatemoney/default.nix index 5df5e6b18cd..18da46d45e2 100644 --- a/pkgs/development/python-modules/ihatemoney/default.nix +++ b/pkgs/development/python-modules/ihatemoney/default.nix @@ -33,13 +33,13 @@ buildPythonPackage rec { pname = "ihatemoney"; - version = "4.1"; + version = "4.1.3"; src = fetchFromGitHub { owner = "spiral-project"; repo = pname; rev = version; - sha256 = "1ai7v2i2rvswzv21nwyq51fvp8lr2x2cl3n34p11br06kc1pcmin"; + sha256 = "02mxhf41c95gfp2wi74li2xli7sblm075w5z5ywkrh0pc1v02mgp"; }; propagatedBuildInputs = [ From 3603c4e16353d10771a0c973f71a95345ee33156 Mon Sep 17 00:00:00 2001 From: Symphorien Gibol Date: Sat, 11 Apr 2020 12:00:00 +0000 Subject: [PATCH 03/13] nixos/ihatemoney: work around bug in uwsgi happens when dowbloading csv reports --- nixos/modules/services/web-apps/ihatemoney/default.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/nixos/modules/services/web-apps/ihatemoney/default.nix b/nixos/modules/services/web-apps/ihatemoney/default.nix index 68769ac8c03..b7c646df238 100644 --- a/nixos/modules/services/web-apps/ihatemoney/default.nix +++ b/nixos/modules/services/web-apps/ihatemoney/default.nix @@ -132,6 +132,9 @@ in chdir = "${pkg}/${pkg.pythonModule.sitePackages}/ihatemoney"; env = [ "IHATEMONEY_SETTINGS_FILE_PATH=${configFile}" ]; pythonPackages = self: [ self.ihatemoney ]; + # workaround for https://github.com/unbit/uwsgi/issues/1126 + # probably fixed in uwsgi 2.0.19 https://github.com/unbit/uwsgi/commit/d0444450a195f218456a2149d9c2066afa0ae52a + wsgi-disable-file-wrapper = true; } // cfg.uwsgiConfig; }; }; From a71acfeb0bab7bf375bb74b810d5f95964f8a1cc Mon Sep 17 00:00:00 2001 From: Symphorien Gibol Date: Fri, 24 Apr 2020 12:00:00 +0000 Subject: [PATCH 04/13] python3Packages.debts: init at 0.5 --- .../python-modules/debts/default.nix | 42 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 44 insertions(+) create mode 100644 pkgs/development/python-modules/debts/default.nix diff --git a/pkgs/development/python-modules/debts/default.nix b/pkgs/development/python-modules/debts/default.nix new file mode 100644 index 00000000000..cc571f05631 --- /dev/null +++ b/pkgs/development/python-modules/debts/default.nix @@ -0,0 +1,42 @@ +{ lib +, python +, buildPythonPackage +, fetchFromGitLab +, isPy27 +, jinja2 +, pytest +}: + +buildPythonPackage rec { + pname = "debts"; + version = "0.5"; + + # pypi does not ship tests + src = fetchFromGitLab { + domain = "framagit.org"; + owner = "almet"; + repo = "debts"; + rev = "d887bd8b340172d1c9bbcca6426529b8d1c2a241"; # no tags + sha256 = "1d66nka81mv9c07mki78lp5hdajqv4cq6aq2k7bh3mhkc5hwnwlg"; + }; + + disabled = isPy27; + + propagatedBuildInputs = [ jinja2 ]; + + checkInputs = [ pytest ]; + + # for some reason tests only work if the module is properly installed + checkPhase = '' + rm -r debts + export PYTHONPATH=$out/${python.sitePackages}:$PYTHONPATH + py.test tests + ''; + + meta = with lib; { + inherit (src.meta) homepage; + description = "A simple library and cli-tool to help you solve some debts settlement scenarios"; + license = licenses.beerware; + maintainers = [ maintainers.symphorien ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 498425ee0f5..64940c8b4b5 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -683,6 +683,8 @@ in { inherit (pkgs) dbus pkgconfig; }; + debts = callPackage ../development/python-modules/debts { }; + dftfit = callPackage ../development/python-modules/dftfit { }; dicom2nifti = callPackage ../development/python-modules/dicom2nifti { }; From 7918f8c47acce77b282792cb8fa7b8efc9e99bbc Mon Sep 17 00:00:00 2001 From: Symphorien Gibol Date: Fri, 24 Apr 2020 12:00:00 +0000 Subject: [PATCH 05/13] python3Packages.sqlalchemy-i18n: init at 1.0.3 --- .../sqlalchemy-i18n/default.nix | 32 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 ++ 2 files changed, 34 insertions(+) create mode 100644 pkgs/development/python-modules/sqlalchemy-i18n/default.nix diff --git a/pkgs/development/python-modules/sqlalchemy-i18n/default.nix b/pkgs/development/python-modules/sqlalchemy-i18n/default.nix new file mode 100644 index 00000000000..4ef0adefe3e --- /dev/null +++ b/pkgs/development/python-modules/sqlalchemy-i18n/default.nix @@ -0,0 +1,32 @@ +{ stdenv +, lib +, fetchPypi +, buildPythonPackage +, sqlalchemy +, sqlalchemy-utils +, psycopg2 +}: + +buildPythonPackage rec { + pname = "SQLAlchemy-i18n"; + version = "1.0.3"; + + src = fetchPypi { + inherit pname version; + sha256 = "15xah8643p29kciz365ixs9pbsflj92pzr2d9anbdh2biyf4cka8"; + }; + + propagatedBuildInputs = [ + sqlalchemy + sqlalchemy-utils + ]; + + # tests require running a postgresql server + doCheck = false; + + meta = with lib; { + homepage = "https://github.com/kvesteri/sqlalchemy-i18n"; + description = "Internationalization extension for SQLAlchemy models"; + license = licenses.bsd3; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 64940c8b4b5..b49e675182c 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -6004,6 +6004,8 @@ in { sqlalchemy-citext = callPackage ../development/python-modules/sqlalchemy-citext { }; + sqlalchemy-i18n = callPackage ../development/python-modules/sqlalchemy-i18n { }; + sqlalchemy_migrate = callPackage ../development/python-modules/sqlalchemy-migrate { }; sqlalchemy-utils = callPackage ../development/python-modules/sqlalchemy-utils { }; From ed5b736ace77c0850b6a8ff0e27793423cf352f6 Mon Sep 17 00:00:00 2001 From: Symphorien Gibol Date: Fri, 24 Apr 2020 12:00:00 +0000 Subject: [PATCH 06/13] python3Packages.sqlalchemy-continuum: init a 1.3.9 --- .../sqlalchemy-continuum/default.nix | 46 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 48 insertions(+) create mode 100644 pkgs/development/python-modules/sqlalchemy-continuum/default.nix diff --git a/pkgs/development/python-modules/sqlalchemy-continuum/default.nix b/pkgs/development/python-modules/sqlalchemy-continuum/default.nix new file mode 100644 index 00000000000..fb854c1809d --- /dev/null +++ b/pkgs/development/python-modules/sqlalchemy-continuum/default.nix @@ -0,0 +1,46 @@ +{ stdenv +, lib +, fetchPypi +, buildPythonPackage +, flask +, flask_login +, flask_sqlalchemy +, flexmock +, pytestCheckHook +, sqlalchemy +, sqlalchemy-utils +, sqlalchemy-i18n +}: + +buildPythonPackage rec { + pname = "SQLAlchemy-Continuum"; + version = "1.3.9"; + + src = fetchPypi { + inherit pname version; + sha256 = "0b7q0rqy5q7m9yw7yl7jzrk8p1jh1hqmqvzf45rwmwxs724kfkjg"; + }; + + propagatedBuildInputs = [ + sqlalchemy + sqlalchemy-utils + ]; + + # indicate tests that we don't have a database server at hand + DB = "sqlite"; + + checkInputs = [ + pytestCheckHook + sqlalchemy-i18n + flask + flask_login + flask_sqlalchemy + flexmock + ]; + + meta = with lib; { + homepage = "https://github.com/kvesteri/sqlalchemy-continuum/"; + description = "Versioning and auditing extension for SQLAlchemy"; + license = licenses.bsd3; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index b49e675182c..7621a5b8842 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -6004,6 +6004,8 @@ in { sqlalchemy-citext = callPackage ../development/python-modules/sqlalchemy-citext { }; + sqlalchemy-continuum = callPackage ../development/python-modules/sqlalchemy-continuum { }; + sqlalchemy-i18n = callPackage ../development/python-modules/sqlalchemy-i18n { }; sqlalchemy_migrate = callPackage ../development/python-modules/sqlalchemy-migrate { }; From 2720b53385ce0dc2b8a09536606d6f1f18d51c77 Mon Sep 17 00:00:00 2001 From: Symphorien Gibol Date: Fri, 24 Apr 2020 12:00:00 +0000 Subject: [PATCH 07/13] python3Packages.ihatemoney: 4.1.3 -> 4.2 --- .../python-modules/ihatemoney/default.nix | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/ihatemoney/default.nix b/pkgs/development/python-modules/ihatemoney/default.nix index 18da46d45e2..31640ec147e 100644 --- a/pkgs/development/python-modules/ihatemoney/default.nix +++ b/pkgs/development/python-modules/ihatemoney/default.nix @@ -15,6 +15,7 @@ , flask_script , flask_sqlalchemy , flask_wtf +, debts , idna , itsdangerous , jinja2 @@ -25,6 +26,7 @@ , pytz , six , sqlalchemy +, sqlalchemy-continuum , werkzeug , wtforms , psycopg2 # optional, for postgresql support @@ -33,15 +35,20 @@ buildPythonPackage rec { pname = "ihatemoney"; - version = "4.1.3"; + version = "4.2"; src = fetchFromGitHub { owner = "spiral-project"; repo = pname; rev = version; - sha256 = "02mxhf41c95gfp2wi74li2xli7sblm075w5z5ywkrh0pc1v02mgp"; + sha256 = "0d4vc6m0jkwlz9ly0hcjghccydvqbldh2jb8yzf94jrgkd5fd7k1"; }; + patchPhase = '' + # remove draconian pinning + sed -i 's/==.*$//' setup.cfg + ''; + propagatedBuildInputs = [ alembic aniso8601 @@ -68,9 +75,11 @@ buildPythonPackage rec { pytz six sqlalchemy + sqlalchemy-continuum werkzeug wtforms psycopg2 + debts ]; checkInputs = [ From 7761494be9bc3291eeab9c97913d2d6461c5c925 Mon Sep 17 00:00:00 2001 From: Symphorien Gibol Date: Sat, 25 Apr 2020 12:00:00 +0000 Subject: [PATCH 08/13] python3Packages.ihatemoney: fix postgresql test --- .../python-modules/ihatemoney/default.nix | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/ihatemoney/default.nix b/pkgs/development/python-modules/ihatemoney/default.nix index 31640ec147e..0dff8ac7f96 100644 --- a/pkgs/development/python-modules/ihatemoney/default.nix +++ b/pkgs/development/python-modules/ihatemoney/default.nix @@ -1,4 +1,4 @@ -{ buildPythonPackage, lib, fetchFromGitHub, isPy27, nixosTests +{ buildPythonPackage, lib, fetchFromGitHub, isPy27, nixosTests, fetchpatch , alembic , aniso8601 , Babel @@ -44,7 +44,16 @@ buildPythonPackage rec { sha256 = "0d4vc6m0jkwlz9ly0hcjghccydvqbldh2jb8yzf94jrgkd5fd7k1"; }; - patchPhase = '' + patches = [ + # fix migration on postgresql + # remove on next release + (fetchpatch { + url = "https://github.com/spiral-project/ihatemoney/commit/6129191b26784b895e203fa3eafb89cee7d88b71.patch"; + sha256 = "0yc24gsih9x3pnh2mhj4v5i71x02dq93a9jd2r8b1limhcl4p1sw"; + }) + ]; + + postPatch = '' # remove draconian pinning sed -i 's/==.*$//' setup.cfg ''; From 4b819d443c3a160aa2fe1bafad120045c7ad0c38 Mon Sep 17 00:00:00 2001 From: Symphorien Gibol Date: Sat, 25 Apr 2020 12:00:00 +0000 Subject: [PATCH 09/13] python3Packages.ihatemoney: disable on python2 it does not build and is not supported according to setup.cfg --- pkgs/development/python-modules/ihatemoney/default.nix | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/ihatemoney/default.nix b/pkgs/development/python-modules/ihatemoney/default.nix index 0dff8ac7f96..68a8b85a4ed 100644 --- a/pkgs/development/python-modules/ihatemoney/default.nix +++ b/pkgs/development/python-modules/ihatemoney/default.nix @@ -21,7 +21,6 @@ , jinja2 , Mako , markupsafe -, mock , python-dateutil , pytz , six @@ -44,6 +43,8 @@ buildPythonPackage rec { sha256 = "0d4vc6m0jkwlz9ly0hcjghccydvqbldh2jb8yzf94jrgkd5fd7k1"; }; + disabled = isPy27; + patches = [ # fix migration on postgresql # remove on next release @@ -93,7 +94,7 @@ buildPythonPackage rec { checkInputs = [ flask_testing - ] ++ lib.optionals isPy27 [ mock ]; + ]; passthru.tests = { inherit (nixosTests) ihatemoney; From bcafd845c67873f1c122d87c2d14a3ec6130ed2b Mon Sep 17 00:00:00 2001 From: Symphorien Gibol Date: Thu, 25 Jun 2020 12:00:00 +0000 Subject: [PATCH 10/13] python3Packages.ihatemoney: pin wtforms to 2.2.1 --- .../python-modules/ihatemoney/default.nix | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/pkgs/development/python-modules/ihatemoney/default.nix b/pkgs/development/python-modules/ihatemoney/default.nix index 68a8b85a4ed..38d762ec360 100644 --- a/pkgs/development/python-modules/ihatemoney/default.nix +++ b/pkgs/development/python-modules/ihatemoney/default.nix @@ -1,4 +1,4 @@ -{ buildPythonPackage, lib, fetchFromGitHub, isPy27, nixosTests, fetchpatch +{ buildPythonPackage, lib, fetchFromGitHub, isPy27, nixosTests, fetchpatch, fetchPypi , alembic , aniso8601 , Babel @@ -32,6 +32,21 @@ , flask_testing }: +# ihatemoney is not really a library. It will only ever be imported +# by the interpreter of uwsgi. So overrides for its depencies are fine. +let + # https://github.com/spiral-project/ihatemoney/issues/567 + pinned_wtforms = wtforms.overridePythonAttrs (old: rec { + pname = "WTForms"; + version = "2.2.1"; + src = fetchPypi { + inherit pname version; + sha256 = "0q9vkcq6jnnn618h27lx9sas6s9qlg2mv8ja6dn0hy38gwzarnqc"; + }; + }); + pinned_flask_wtf = flask_wtf.override { wtforms = pinned_wtforms; }; +in + buildPythonPackage rec { pname = "ihatemoney"; version = "4.2"; @@ -75,7 +90,7 @@ buildPythonPackage rec { flask-restful flask_script flask_sqlalchemy - flask_wtf + pinned_flask_wtf idna itsdangerous jinja2 @@ -87,7 +102,7 @@ buildPythonPackage rec { sqlalchemy sqlalchemy-continuum werkzeug - wtforms + pinned_wtforms psycopg2 debts ]; From 2e342f4c595e7544e618dc86c3f74d57bd3c190c Mon Sep 17 00:00:00 2001 From: Symphorien Gibol Date: Thu, 25 Jun 2020 12:00:00 +0000 Subject: [PATCH 11/13] nixos/tests/ihatemoney: fix --- nixos/tests/ihatemoney.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/nixos/tests/ihatemoney.nix b/nixos/tests/ihatemoney.nix index a1160bbbbd5..0451a450580 100644 --- a/nixos/tests/ihatemoney.nix +++ b/nixos/tests/ihatemoney.nix @@ -30,9 +30,10 @@ let testScript = '' machine.wait_for_open_port(8000) machine.wait_for_unit("uwsgi.service") + machine.wait_until_succeeds("curl http://localhost:8000") assert '"yay"' in machine.succeed( - "curl -X POST http://localhost:8000/api/projects -d 'name=yay&id=yay&password=yay&contact_email=yay\@example.com'" + "curl -X POST http://localhost:8000/api/projects -d 'name=yay&id=yay&password=yay&contact_email=yay@example.com'" ) owner, timestamp = machine.succeed( "stat --printf %U:%G___%Y /var/lib/ihatemoney/secret_key" From 826b7c18b55d054209d2157c0a91789f86e89dc3 Mon Sep 17 00:00:00 2001 From: Symphorien Gibol Date: Thu, 25 Jun 2020 12:00:00 +0000 Subject: [PATCH 12/13] uwsgi: 2.0.18 -> 2.0.19.1 release notes: https://uwsgi-docs.readthedocs.io/en/latest/Changelog-2.0.19.html https://uwsgi-docs.readthedocs.io/en/latest/Changelog-2.0.19.1.html --- pkgs/servers/uwsgi/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/servers/uwsgi/default.nix b/pkgs/servers/uwsgi/default.nix index 0f0d2c23e4c..39a3113eb41 100644 --- a/pkgs/servers/uwsgi/default.nix +++ b/pkgs/servers/uwsgi/default.nix @@ -54,11 +54,11 @@ in stdenv.mkDerivation rec { pname = "uwsgi"; - version = "2.0.18"; + version = "2.0.19.1"; src = fetchurl { url = "https://projects.unbit.it/downloads/${pname}-${version}.tar.gz"; - sha256 = "10zmk4npknigmbqcq1wmhd461dk93159px172112vyq0i19sqwj9"; + sha256 = "0256v72b7zr6ds4srpaawk1px3bp0djdwm239w3wrxpw7dzk1gjn"; }; nativeBuildInputs = [ python3 pkgconfig ]; From 2b0cfa48abe311e85785b94d8efa23d104e0e9b8 Mon Sep 17 00:00:00 2001 From: Symphorien Gibol Date: Thu, 25 Jun 2020 12:00:00 +0000 Subject: [PATCH 13/13] remove workaround for uwsgi < 2.0.19 --- nixos/modules/services/web-apps/ihatemoney/default.nix | 3 --- 1 file changed, 3 deletions(-) diff --git a/nixos/modules/services/web-apps/ihatemoney/default.nix b/nixos/modules/services/web-apps/ihatemoney/default.nix index b7c646df238..68769ac8c03 100644 --- a/nixos/modules/services/web-apps/ihatemoney/default.nix +++ b/nixos/modules/services/web-apps/ihatemoney/default.nix @@ -132,9 +132,6 @@ in chdir = "${pkg}/${pkg.pythonModule.sitePackages}/ihatemoney"; env = [ "IHATEMONEY_SETTINGS_FILE_PATH=${configFile}" ]; pythonPackages = self: [ self.ihatemoney ]; - # workaround for https://github.com/unbit/uwsgi/issues/1126 - # probably fixed in uwsgi 2.0.19 https://github.com/unbit/uwsgi/commit/d0444450a195f218456a2149d9c2066afa0ae52a - wsgi-disable-file-wrapper = true; } // cfg.uwsgiConfig; }; };