about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--maintainers/maintainer-list.nix6
-rw-r--r--pkgs/tools/misc/bkyml/default.nix45
-rw-r--r--pkgs/top-level/all-packages.nix2
3 files changed, 53 insertions, 0 deletions
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index aac8166ef3894..5583f3aec1a8b 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -7473,6 +7473,12 @@
     githubId = 20923;
     name = "Erik Timan";
   };
+  olebedev = {
+    email = "ole6edev@gmail.com";
+    github = "olebedev";
+    githubId = 848535;
+    name = "Oleg Lebedev";
+  };
   olejorgenb = {
     email = "olejorgenb@yahoo.no";
     github = "olejorgenb";
diff --git a/pkgs/tools/misc/bkyml/default.nix b/pkgs/tools/misc/bkyml/default.nix
new file mode 100644
index 0000000000000..aea83e7c99ff8
--- /dev/null
+++ b/pkgs/tools/misc/bkyml/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, python3
+}:
+
+with python3.pkgs;
+
+buildPythonApplication rec {
+  pname = "bkyml";
+  version = "1.4.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "01kpx35572mp4xl2fjyvfk39jfgfjcyzymbifk76891kaqkjb7r9";
+  };
+
+  # The pyscaffold is not a runtime dependency but just a python project bootstrapping tool. Thus,
+  # instead of implement this package in nix we remove a dependency on it and fix up the version
+  # of the package, that has been affected by the pyscaffold package dependency removal.
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "['pyscaffold>=3.0a0,<3.1a0'] + " "" \
+      --replace "use_pyscaffold=True"  ""
+    substituteInPlace src/bkyml/skeleton.py --replace \
+        "from bkyml import __version__" \
+        "__version__ = \"${version}\""
+  '';
+
+  # Don't run tests because they are broken when run within
+  # buildPythonApplication for reasons I don't quite understand.
+  doCheck = false;
+
+  pythonImportsCheck = [ "bkyml" ];
+
+  propagatedBuildInputs = [
+    ruamel_yaml
+    setuptools
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/joscha/bkyml";
+    description = "A CLI tool to generate a pipeline.yaml file for Buildkite on the fly.";
+    license = licenses.mit;
+    maintainers = with maintainers; [ olebedev ];
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 6f20edc53ce85..922489ca1cfcc 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -1280,6 +1280,8 @@ in
 
   bitwarden_rs-vault = callPackage ../tools/security/bitwarden_rs/vault.nix { };
 
+  bkyml = callPackage ../tools/misc/bkyml { };
+
   blockbench-electron = callPackage ../applications/graphics/blockbench-electron { };
 
   bmap-tools = callPackage ../tools/misc/bmap-tools { };