From bd89694ca327e86234d9945dc3116258b4a60914 Mon Sep 17 00:00:00 2001 From: Robert Scott Date: Sun, 2 Jun 2019 19:29:46 +0100 Subject: [PATCH 1/5] pythonPackages.django_silk: fix build by adding gprof2dot dependency --- pkgs/development/python-modules/django_silk/default.nix | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pkgs/development/python-modules/django_silk/default.nix b/pkgs/development/python-modules/django_silk/default.nix index e8c44efdc40..7a579b3ac18 100644 --- a/pkgs/development/python-modules/django_silk/default.nix +++ b/pkgs/development/python-modules/django_silk/default.nix @@ -12,6 +12,7 @@ , pytz , pillow , mock +, gprof2dot }: buildPythonPackage rec { @@ -26,7 +27,11 @@ buildPythonPackage rec { doCheck = false; buildInputs = [ mock ]; - propagatedBuildInputs = [ django pygments simplejson dateutil requests sqlparse jinja2 autopep8 pytz pillow ]; + propagatedBuildInputs = [ + django pygments simplejson dateutil requests + sqlparse jinja2 autopep8 pytz pillow gprof2dot + ]; + meta = with stdenv.lib; { description = "Silky smooth profiling for the Django Framework"; From 0fb023825e5c9552aa7dc7d0cb38eec03bc8b60a Mon Sep 17 00:00:00 2001 From: Robert Scott Date: Sun, 2 Jun 2019 19:30:31 +0100 Subject: [PATCH 2/5] pythonPackages.django_silk: enable tests --- .../python-modules/django_silk/default.nix | 31 +++++++++++++++---- 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/pkgs/development/python-modules/django_silk/default.nix b/pkgs/development/python-modules/django_silk/default.nix index 7a579b3ac18..b9f92499334 100644 --- a/pkgs/development/python-modules/django_silk/default.nix +++ b/pkgs/development/python-modules/django_silk/default.nix @@ -1,6 +1,7 @@ { stdenv , buildPythonPackage -, fetchPypi +, python +, fetchFromGitHub , django , pygments , simplejson @@ -13,18 +14,31 @@ , pillow , mock , gprof2dot +, freezegun +, contextlib2 +, networkx +, pydot +, factory_boy }: buildPythonPackage rec { pname = "django-silk"; version = "3.0.2"; - src = fetchPypi { - inherit pname version; - sha256 = "8dd5b78531360bd8c3d571384f9f4f82ef03e1764e30dd4621c5638f5c973a1d"; + # pypi tarball doesn't include test project + src = fetchFromGitHub { + owner = "jazzband"; + repo = "django-silk"; + rev = version; + sha256 = "1fbaafc2gx01gscdalp6hj6bz4b0cmq59lgmvsydw7jkds4mps7c"; }; - - doCheck = false; + # "test_time_taken" tests aren't suitable for reproducible execution, but django's + # test runner doesn't have an easy way to ignore tests - so instead prevent it from picking + # them up as tests + postPatch = '' + substituteInPlace project/tests/test_silky_profiler.py \ + --replace "def test_time_taken" "def _test_time_taken" + ''; buildInputs = [ mock ]; propagatedBuildInputs = [ @@ -32,6 +46,11 @@ buildPythonPackage rec { sqlparse jinja2 autopep8 pytz pillow gprof2dot ]; + checkInputs = [ freezegun contextlib2 networkx pydot factory_boy ]; + checkPhase = '' + cd project + DB=sqlite3 DB_NAME=db.sqlite3 ${python.interpreter} manage.py test + ''; meta = with stdenv.lib; { description = "Silky smooth profiling for the Django Framework"; From d56d324f380091c20fb0b370209eadcf1bff6be1 Mon Sep 17 00:00:00 2001 From: Robert Scott Date: Sun, 2 Jun 2019 19:31:02 +0100 Subject: [PATCH 3/5] pythonPackages.django_silk: add self as maintainer --- pkgs/development/python-modules/django_silk/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/development/python-modules/django_silk/default.nix b/pkgs/development/python-modules/django_silk/default.nix index b9f92499334..6bb2b1d43f1 100644 --- a/pkgs/development/python-modules/django_silk/default.nix +++ b/pkgs/development/python-modules/django_silk/default.nix @@ -56,6 +56,7 @@ buildPythonPackage rec { description = "Silky smooth profiling for the Django Framework"; homepage = https://github.com/mtford90/silk; license = licenses.mit; + maintainers = with maintainers; [ ris ]; }; } From f24efd30fad6b4fbf5b80e61b9f576bc64758214 Mon Sep 17 00:00:00 2001 From: Robert Scott Date: Sun, 2 Jun 2019 22:10:42 +0100 Subject: [PATCH 4/5] pythonPackages.gprof2dot: enable tests --- pkgs/development/python-modules/gprof2dot/default.nix | 5 ++++- pkgs/top-level/python-packages.nix | 4 +++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/gprof2dot/default.nix b/pkgs/development/python-modules/gprof2dot/default.nix index ed48842496c..9f15ddb4f42 100644 --- a/pkgs/development/python-modules/gprof2dot/default.nix +++ b/pkgs/development/python-modules/gprof2dot/default.nix @@ -1,4 +1,4 @@ -{ lib, fetchFromGitHub, buildPythonApplication }: +{ lib, fetchFromGitHub, buildPythonApplication, python, graphviz }: buildPythonApplication { name = "gprof2dot-2017-09-19"; @@ -10,6 +10,9 @@ buildPythonApplication { sha256 = "1b5wvjv5ykbhz7aix7l3y7mg1hxi0vgak4a49gr92sdlz8blj51v"; }; + checkInputs = [ graphviz ]; + checkPhase = "${python.interpreter} tests/test.py"; + meta = with lib; { homepage = https://github.com/jrfonseca/gprof2dot; description = "Python script to convert the output from many profilers into a dot graph"; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 2df56150e16..0d2490878d2 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -445,7 +445,9 @@ in { grandalf = callPackage ../development/python-modules/grandalf { }; - gprof2dot = callPackage ../development/python-modules/gprof2dot { }; + gprof2dot = callPackage ../development/python-modules/gprof2dot { + inherit (pkgs) graphviz; + }; gsd = callPackage ../development/python-modules/gsd { }; From 3c79c31280d08357cf27c5d6c245a5cf242c8c8b Mon Sep 17 00:00:00 2001 From: Robert Scott Date: Sun, 2 Jun 2019 22:11:18 +0100 Subject: [PATCH 5/5] pythonPackages.gprof2dot: remove linux platform restriction appears to work on darwin --- pkgs/development/python-modules/gprof2dot/default.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/pkgs/development/python-modules/gprof2dot/default.nix b/pkgs/development/python-modules/gprof2dot/default.nix index 9f15ddb4f42..48abf5058df 100644 --- a/pkgs/development/python-modules/gprof2dot/default.nix +++ b/pkgs/development/python-modules/gprof2dot/default.nix @@ -17,7 +17,6 @@ buildPythonApplication { homepage = https://github.com/jrfonseca/gprof2dot; description = "Python script to convert the output from many profilers into a dot graph"; license = licenses.lgpl3Plus; - platforms = platforms.linux; maintainers = [ maintainers.pmiddend ]; }; }