biglybt: 3.5.0.0 -> 3.6.0.0
[NixPkgs.git] / pkgs / development / tools / continuous-integration / buildbot / master.nix
blob8de60461f73030739775f08e17ca51de78b8b78d
1 { lib
2 , stdenv
3 , buildPythonApplication
4 , fetchPypi
5 , makeWrapper
6 # Tie withPlugins through the fixed point here, so it will receive an
7 # overridden version properly
8 , buildbot
9 , pythonOlder
10 , python
11 , pythonRelaxDepsHook
12 , twisted
13 , jinja2
14 , msgpack
15 , zope-interface
16 , sqlalchemy
17 , alembic
18 , python-dateutil
19 , txaio
20 , autobahn
21 , pyjwt
22 , pyyaml
23 , treq
24 , txrequests
25 , pypugjs
26 , boto3
27 , moto
28 , markdown
29 , lz4
30 , setuptools-trial
31 , buildbot-worker
32 , buildbot-plugins
33 , buildbot-pkg
34 , parameterized
35 , git
36 , openssh
37 , setuptools
38 , croniter
39 , importlib-resources
40 , packaging
41 , unidiff
42 , glibcLocales
43 , nixosTests
46 let
47   withPlugins = plugins: buildPythonApplication {
48     pname = "${buildbot.pname}-with-plugins";
49     inherit (buildbot) version;
50     format = "other";
52     dontUnpack = true;
53     dontBuild = true;
54     doCheck = false;
56     nativeBuildInputs = [
57       makeWrapper
58     ];
60     propagatedBuildInputs = plugins ++ buildbot.propagatedBuildInputs;
62     installPhase = ''
63       makeWrapper ${buildbot}/bin/buildbot $out/bin/buildbot \
64         --prefix PYTHONPATH : "${buildbot}/${python.sitePackages}:$PYTHONPATH"
65       ln -sfv ${buildbot}/lib $out/lib
66     '';
68     passthru = buildbot.passthru // {
69       withPlugins = morePlugins: withPlugins (morePlugins ++ plugins);
70     };
71   };
73 buildPythonApplication rec {
74   pname = "buildbot";
75   version = "3.11.1";
76   format = "pyproject";
78   disabled = pythonOlder "3.8";
80   src = fetchPypi {
81     inherit pname version;
82     hash = "sha256-ruYW1sVoGvFMi+NS+xiNsn0Iq2RmKlax4bxHgYrj6ZY=";
83   };
85   build-system = [
86     pythonRelaxDepsHook
87   ];
89   pythonRelaxDeps = [
90     "twisted"
91   ];
93   propagatedBuildInputs = [
94     # core
95     twisted
96     jinja2
97     msgpack
98     zope-interface
99     sqlalchemy
100     alembic
101     python-dateutil
102     txaio
103     autobahn
104     pyjwt
105     pyyaml
106     setuptools
107     croniter
108     importlib-resources
109     packaging
110     unidiff
111   ]
112     # tls
113     ++ twisted.optional-dependencies.tls;
115   nativeCheckInputs = [
116     treq
117     txrequests
118     pypugjs
119     boto3
120     moto
121     markdown
122     lz4
123     setuptools-trial
124     buildbot-worker
125     buildbot-pkg
126     buildbot-plugins.www
127     parameterized
128     git
129     openssh
130     glibcLocales
131   ];
133   patches = [
134     # This patch disables the test that tries to read /etc/os-release which
135     # is not accessible in sandboxed builds.
136     ./skip_test_linux_distro.patch
137   ];
139   postPatch = ''
140     substituteInPlace buildbot/scripts/logwatcher.py --replace '/usr/bin/tail' "$(type -P tail)"
141   '';
143   # Silence the depreciation warning from SqlAlchemy
144   SQLALCHEMY_SILENCE_UBER_WARNING = 1;
146   # TimeoutErrors on slow machines -> aarch64
147   doCheck = !stdenv.isAarch64;
149   preCheck = ''
150     export LC_ALL="en_US.UTF-8"
151     export PATH="$out/bin:$PATH"
153     # remove testfile which is missing configuration file from sdist
154     rm buildbot/test/integration/test_graphql.py
155     # tests in this file are flaky, see https://github.com/buildbot/buildbot/issues/6776
156     rm buildbot/test/integration/test_try_client.py
157   '';
159   passthru = {
160     inherit withPlugins;
161     tests.buildbot = nixosTests.buildbot;
162     updateScript = ./update.sh;
163   };
165   meta = with lib; {
166     description = "An open-source continuous integration framework for automating software build, test, and release processes";
167     homepage = "https://buildbot.net/";
168     changelog = "https://github.com/buildbot/buildbot/releases/tag/v${version}";
169     maintainers = teams.buildbot.members;
170     license = licenses.gpl2Only;
171     broken = stdenv.isDarwin;
172   };