Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{
2 lib,
3 fetchFromGitHub,
4 python3,
5}:
6
7python3.pkgs.buildPythonApplication rec {
8 pname = "changedetection-io";
9 version = "0.49.4";
10 format = "setuptools";
11
12 src = fetchFromGitHub {
13 owner = "dgtlmoon";
14 repo = "changedetection.io";
15 tag = version;
16 hash = "sha256-EmtJ8XXPb75W4VPj4Si9fdzVLDKVfm+8P6UZZlMpMdI=";
17 };
18
19 pythonRelaxDeps = true;
20
21 propagatedBuildInputs =
22 with python3.pkgs;
23 [
24 apprise
25 beautifulsoup4
26 brotli
27 babel
28 chardet
29 cryptography
30 dnspython
31 elementpath
32 eventlet
33 extruct
34 feedgen
35 flask
36 flask-compress
37 flask-cors
38 flask-expects-json
39 flask-login
40 flask-paginate
41 flask-restful
42 flask-wtf
43 greenlet
44 inscriptis
45 jinja2
46 jinja2-time
47 jsonpath-ng
48 jq
49 loguru
50 lxml
51 paho-mqtt
52 playwright
53 pyee
54 pyppeteer
55 pytz
56 requests
57 selenium
58 setuptools
59 timeago
60 urllib3
61 validators
62 werkzeug
63 wtforms
64 ]
65 ++ requests.optional-dependencies.socks;
66
67 # tests can currently not be run in one pytest invocation and without docker
68 doCheck = false;
69
70 nativeCheckInputs = with python3.pkgs; [
71 pytest-flask
72 pytestCheckHook
73 ];
74
75 meta = with lib; {
76 description = "Self-hosted free open source website change detection tracking, monitoring and notification service";
77 homepage = "https://github.com/dgtlmoon/changedetection.io";
78 changelog = "https://github.com/dgtlmoon/changedetection.io/releases/tag/${src.tag}";
79 license = licenses.asl20;
80 maintainers = with maintainers; [ mikaelfangel ];
81 mainProgram = "changedetection.io";
82 };
83}