pkgs/by-name/{r,s,t}*: migrate to pyproject = true

This commit is contained in:
TomaSajt 2025-07-12 18:11:35 +02:00
parent 97234ec272
commit 7d571a936c
No known key found for this signature in database
GPG Key ID: F011163C050122A1
42 changed files with 265 additions and 134 deletions

View File

@ -11,7 +11,7 @@
python3Packages.buildPythonApplication rec { python3Packages.buildPythonApplication rec {
pname = "r128gain"; pname = "r128gain";
version = "1.0.7"; version = "1.0.7";
format = "setuptools"; pyproject = true;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "desbma"; owner = "desbma";
@ -26,12 +26,15 @@ python3Packages.buildPythonApplication rec {
}) })
]; ];
propagatedBuildInputs = with python3Packages; [ build-system = with python3Packages; [ setuptools ];
dependencies = with python3Packages; [
crcmod crcmod
ffmpeg-python ffmpeg-python
mutagen mutagen
tqdm tqdm
]; ];
nativeCheckInputs = with python3Packages; [ nativeCheckInputs = with python3Packages; [
requests requests
sox sox
@ -41,6 +44,8 @@ python3Packages.buildPythonApplication rec {
# sandbox to be disabled. # sandbox to be disabled.
doCheck = false; doCheck = false;
pythonImportsCheck = [ "r128gain" ];
passthru.updateScript = gitUpdater { }; passthru.updateScript = gitUpdater { };
meta = with lib; { meta = with lib; {

View File

@ -7,14 +7,15 @@
python3Packages.buildPythonApplication rec { python3Packages.buildPythonApplication rec {
pname = "raiseorlaunch"; pname = "raiseorlaunch";
version = "2.3.5"; version = "2.3.5";
format = "setuptools"; pyproject = true;
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
hash = "sha256-L/hu0mYCAxHkp5me96a6HlEY6QsuJDESpTNhlzVRHWs="; hash = "sha256-L/hu0mYCAxHkp5me96a6HlEY6QsuJDESpTNhlzVRHWs=";
}; };
nativeBuildInputs = [ python3Packages.setuptools-scm ]; build-system = with python3Packages; [ setuptools ];
pythonPath = with python3Packages; [ i3ipc ]; pythonPath = with python3Packages; [ i3ipc ];
# no tests # no tests

View File

@ -12,22 +12,27 @@ in
pypkgs.buildPythonApplication rec { pypkgs.buildPythonApplication rec {
pname = "rdiff-backup"; pname = "rdiff-backup";
version = "2.2.6"; version = "2.2.6";
format = "setuptools"; pyproject = true;
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
hash = "sha256-0HeDVyZrxlE7t/daRXCymySydgNIu/YHur/DpvCUWM8"; hash = "sha256-0HeDVyZrxlE7t/daRXCymySydgNIu/YHur/DpvCUWM8";
}; };
nativeBuildInputs = with pypkgs; [ setuptools-scm ]; build-system = with pypkgs; [
setuptools
setuptools-scm
];
buildInputs = [ librsync ]; buildInputs = [ librsync ];
propagatedBuildInputs = with pypkgs; [ pyyaml ]; dependencies = with pypkgs; [ pyyaml ];
# no tests from pypi # no tests from pypi
doCheck = false; doCheck = false;
pythonImportsCheck = [ "rdiff_backup" ];
meta = with lib; { meta = with lib; {
description = "Backup system trying to combine best a mirror and an incremental backup system"; description = "Backup system trying to combine best a mirror and an incremental backup system";
homepage = "https://rdiff-backup.net"; homepage = "https://rdiff-backup.net";

View File

@ -10,18 +10,22 @@ let
in in
python3.pkgs.buildPythonApplication { python3.pkgs.buildPythonApplication {
inherit pname version; inherit pname version;
format = "setuptools"; pyproject = true;
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
hash = "sha256-X/G6osOHCBidKZG/Y2nmHadifDacJhjBIc7WYrUCPn8="; hash = "sha256-X/G6osOHCBidKZG/Y2nmHadifDacJhjBIc7WYrUCPn8=";
}; };
build-system = with python3.pkgs; [ setuptools ];
propagatedBuildInputs = with python3.pkgs; [ propagatedBuildInputs = with python3.pkgs; [
requests requests
python-dateutil python-dateutil
]; ];
pythonImportsCheck = [ "redfishtoollib" ];
meta = { meta = {
description = "Python34 program that implements a command line tool for accessing the Redfish API"; description = "Python34 program that implements a command line tool for accessing the Redfish API";
homepage = "https://github.com/DMTF/Redfishtool"; homepage = "https://github.com/DMTF/Redfishtool";

View File

@ -7,7 +7,7 @@
python3.pkgs.buildPythonApplication rec { python3.pkgs.buildPythonApplication rec {
pname = "regexploit"; pname = "regexploit";
version = "1.0.0"; version = "1.0.0";
format = "setuptools"; pyproject = true;
disabled = python3.pythonOlder "3.8"; disabled = python3.pythonOlder "3.8";
@ -18,7 +18,11 @@ python3.pkgs.buildPythonApplication rec {
sha256 = "0z3fghsyw0ll36in7ihc0qi3gy7mqi6cw1mi8m8c8xb1nlwpfr0y"; sha256 = "0z3fghsyw0ll36in7ihc0qi3gy7mqi6cw1mi8m8c8xb1nlwpfr0y";
}; };
propagatedBuildInputs = with python3.pkgs; [ build-system = with python3.pkgs; [
setuptools
];
dependencies = with python3.pkgs; [
pyyaml pyyaml
]; ];

View File

@ -7,7 +7,7 @@
python3Packages.buildPythonApplication rec { python3Packages.buildPythonApplication rec {
pname = "replacement"; pname = "replacement";
version = "0.4.4"; version = "0.4.4";
format = "setuptools"; pyproject = true;
disabled = python3Packages.isPy27; disabled = python3Packages.isPy27;
@ -18,7 +18,11 @@ python3Packages.buildPythonApplication rec {
sha256 = "0j4lvn3rx1kqvxcsd8nhc2lgk48jyyl7qffhlkvakhy60f9lymj3"; sha256 = "0j4lvn3rx1kqvxcsd8nhc2lgk48jyyl7qffhlkvakhy60f9lymj3";
}; };
propagatedBuildInputs = with python3Packages; [ build-system = with python3Packages; [
setuptools
];
dependencies = with python3Packages; [
ruamel-yaml ruamel-yaml
]; ];

View File

@ -4,11 +4,10 @@
python3, python3,
}: }:
with python3.pkgs; python3.pkgs.buildPythonApplication rec {
buildPythonApplication rec {
pname = "rfc-bibtex"; pname = "rfc-bibtex";
version = "0.3.2"; version = "0.3.2";
format = "setuptools"; pyproject = true;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "iluxonchik"; owner = "iluxonchik";
@ -17,7 +16,9 @@ buildPythonApplication rec {
hash = "sha256-bPCNQqiG50vWVFA6J2kyxftwsXunHTNBdSkoIRYkb0s="; hash = "sha256-bPCNQqiG50vWVFA6J2kyxftwsXunHTNBdSkoIRYkb0s=";
}; };
nativeCheckInputs = [ build-system = with python3.pkgs; [ setuptools ];
nativeCheckInputs = with python3.pkgs; [
pytestCheckHook pytestCheckHook
vcrpy vcrpy
]; ];

View File

@ -8,7 +8,7 @@
python3.pkgs.buildPythonApplication rec { python3.pkgs.buildPythonApplication rec {
pname = "ripe-atlas-tools"; pname = "ripe-atlas-tools";
version = "3.1.0"; version = "3.1.0";
format = "setuptools"; pyproject = true;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "RIPE-NCC"; owner = "RIPE-NCC";
@ -24,13 +24,17 @@ python3.pkgs.buildPythonApplication rec {
echo "include ripe/atlas/tools/user-agent" >> MANIFEST.in echo "include ripe/atlas/tools/user-agent" >> MANIFEST.in
''; '';
nativeBuildInputs = with python3.pkgs; [ nativeBuildInputs = [
sphinx-rtd-theme
sphinxHook
installShellFiles installShellFiles
]; ];
propagatedBuildInputs = with python3.pkgs; [ build-system = with python3.pkgs; [
setuptools
sphinx-rtd-theme
sphinxHook
];
dependencies = with python3.pkgs; [
ipy ipy
pyopenssl pyopenssl
python-dateutil python-dateutil

View File

@ -7,7 +7,7 @@
python3Packages.buildPythonPackage rec { python3Packages.buildPythonPackage rec {
pname = "rivalcfg"; pname = "rivalcfg";
version = "4.15.0"; version = "4.15.0";
format = "setuptools"; pyproject = true;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "flozz"; owner = "flozz";
@ -16,29 +16,33 @@ python3Packages.buildPythonPackage rec {
sha256 = "sha256-UqVogJLv+sNhAxdMjBEvhBQw6LU+QUq1IekvWpeeMqk="; sha256 = "sha256-UqVogJLv+sNhAxdMjBEvhBQw6LU+QUq1IekvWpeeMqk=";
}; };
propagatedBuildInputs = with python3Packages; [ build-system = with python3Packages; [ setuptools ];
dependencies = with python3Packages; [
hidapi hidapi
setuptools setuptools # pkg_resources is imported during runtime
]; ];
checkInputs = [ python3Packages.pytest ]; nativeCheckInputs = with python3Packages; [
checkPhase = "pytest"; pytestCheckHook
];
# tests are broken # tests are broken
doCheck = false; doCheck = false;
postInstall = '' postInstall = ''
set -x
mkdir -p $out/lib/udev/rules.d mkdir -p $out/lib/udev/rules.d
tmpl_udev="$out/lib/udev/rules.d/99-rivalcfg.rules" tmpl_udev="$out/lib/udev/rules.d/99-rivalcfg.rules"
tmpudev="''${tmpl_udev}.in" tmpudev="''${tmpl_udev}.in"
finaludev="$tmpl_udev" finaludev="$tmpl_udev"
"$out/bin/rivalcfg" --print-udev > "$tmpudev" "$out/bin/rivalcfg" --print-udev > "$tmpudev"
substitute "$tmpudev" "$out/lib/udev/rules.d/99-rivalcfg.rules" \ substitute "$tmpudev" "$out/lib/udev/rules.d/99-rivalcfg.rules" \
--replace MODE=\"0666\" "MODE=\"0664\", GROUP=\"input\"" --replace-fail MODE=\"0666\" "MODE=\"0664\", GROUP=\"input\""
rm "$tmpudev" rm "$tmpudev"
''; '';
pythonImportsCheck = [ "rivalcfg" ];
meta = with lib; { meta = with lib; {
description = "Utility program that allows you to configure SteelSeries Rival gaming mice"; description = "Utility program that allows you to configure SteelSeries Rival gaming mice";
homepage = "https://github.com/flozz/rivalcfg"; homepage = "https://github.com/flozz/rivalcfg";

View File

@ -7,7 +7,7 @@
python3Packages.buildPythonApplication rec { python3Packages.buildPythonApplication rec {
pname = "rofi-mpd"; pname = "rofi-mpd";
version = "2.2.1"; version = "2.2.1";
format = "setuptools"; pyproject = true;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "JakeStanger"; owner = "JakeStanger";
@ -16,7 +16,9 @@ python3Packages.buildPythonApplication rec {
sha256 = "0jabyn6gqh8ychn2a06xws3avz0lqdnx3qvqkavfd2xr6sp2q7lg"; sha256 = "0jabyn6gqh8ychn2a06xws3avz0lqdnx3qvqkavfd2xr6sp2q7lg";
}; };
propagatedBuildInputs = with python3Packages; [ build-system = with python3Packages; [ setuptools ];
dependencies = with python3Packages; [
mutagen mutagen
mpd2 mpd2
toml toml

View File

@ -7,14 +7,16 @@
python3.pkgs.buildPythonApplication rec { python3.pkgs.buildPythonApplication rec {
pname = "s3bro"; pname = "s3bro";
version = "2.8"; version = "2.8";
format = "setuptools"; pyproject = true;
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
hash = "sha256-+OqcLbXilbY4h/zRAkvRd8taVIOPyiScOAcDyPZ4RUw="; hash = "sha256-+OqcLbXilbY4h/zRAkvRd8taVIOPyiScOAcDyPZ4RUw=";
}; };
propagatedBuildInputs = with python3.pkgs; [ build-system = with python3.pkgs; [ setuptools ];
dependencies = with python3.pkgs; [
boto3 boto3
botocore botocore
click click
@ -23,7 +25,7 @@ python3.pkgs.buildPythonApplication rec {
postPatch = '' postPatch = ''
substituteInPlace setup.py \ substituteInPlace setup.py \
--replace "use_2to3=True," "" --replace-fail "use_2to3=True," ""
''; '';
# No tests # No tests

View File

@ -7,14 +7,16 @@
python3Packages.buildPythonApplication rec { python3Packages.buildPythonApplication rec {
pname = "s4cmd"; pname = "s4cmd";
version = "2.1.0"; version = "2.1.0";
format = "setuptools"; pyproject = true;
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "0d4mx98i3qhvlmr9x898mjvf827smzx6x5ji6daiwgjdlxc60mj2"; sha256 = "0d4mx98i3qhvlmr9x898mjvf827smzx6x5ji6daiwgjdlxc60mj2";
}; };
propagatedBuildInputs = with python3Packages; [ build-system = with python3Packages; [ setuptools ];
dependencies = with python3Packages; [
boto3 boto3
pytz pytz
]; ];
@ -34,6 +36,8 @@ python3Packages.buildPythonApplication rec {
# Test suite requires an S3 bucket # Test suite requires an S3 bucket
doCheck = false; doCheck = false;
pythonImportsCheck = [ "s4cmd" ];
meta = with lib; { meta = with lib; {
homepage = "https://github.com/bloomreach/s4cmd"; homepage = "https://github.com/bloomreach/s4cmd";
description = "Super S3 command line tool"; description = "Super S3 command line tool";

View File

@ -14,12 +14,10 @@
wrapGAppsHook3, wrapGAppsHook3,
}: }:
with python3.pkgs; python3.pkgs.buildPythonApplication rec {
buildPythonApplication rec {
pname = "safeeyes"; pname = "safeeyes";
version = "2.2.3"; version = "2.2.3";
format = "setuptools"; pyproject = true;
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
@ -27,7 +25,7 @@ buildPythonApplication rec {
}; };
postPatch = '' postPatch = ''
substituteInPlace setup.py --replace "root_dir = sys.prefix" "root_dir = '/'" substituteInPlace setup.py --replace-fail "root_dir = sys.prefix" "root_dir = '/'"
''; '';
nativeBuildInputs = [ nativeBuildInputs = [
@ -40,14 +38,15 @@ buildPythonApplication rec {
libnotify libnotify
]; ];
propagatedBuildInputs = [ build-system = with python3.pkgs; [ setuptools ];
dependencies = with python3.pkgs; [
babel babel
psutil psutil
xlib xlib
pygobject3 pygobject3
dbus-python dbus-python
croniter croniter
setuptools
packaging packaging
]; ];
@ -74,6 +73,8 @@ buildPythonApplication rec {
doCheck = false; # no tests doCheck = false; # no tests
pythonImportsCheck = [ "safeeyes" ];
passthru.tests.version = testers.testVersion { package = safeeyes; }; passthru.tests.version = testers.testVersion { package = safeeyes; };
meta = with lib; { meta = with lib; {

View File

@ -7,7 +7,7 @@
python3Packages.buildPythonApplication rec { python3Packages.buildPythonApplication rec {
pname = "savepagenow"; pname = "savepagenow";
version = "1.1.1"; version = "1.1.1";
format = "setuptools"; pyproject = true;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "pastpages"; owner = "pastpages";
@ -16,7 +16,9 @@ python3Packages.buildPythonApplication rec {
sha256 = "1lz6rc47cds9rb35jdf8n13gr61wdkh5jqzx4skikm1yrqkwjyhm"; sha256 = "1lz6rc47cds9rb35jdf8n13gr61wdkh5jqzx4skikm1yrqkwjyhm";
}; };
propagatedBuildInputs = with python3Packages; [ build-system = with python3Packages; [ setuptools ];
dependencies = with python3Packages; [
click click
requests requests
]; ];
@ -24,6 +26,8 @@ python3Packages.buildPythonApplication rec {
# requires network access # requires network access
doCheck = false; doCheck = false;
pythonImportsCheck = [ "savepagenow" ];
meta = with lib; { meta = with lib; {
description = "Simple Python wrapper for archive.org's \"Save Page Now\" capturing service"; description = "Simple Python wrapper for archive.org's \"Save Page Now\" capturing service";
homepage = "https://github.com/pastpages/savepagenow"; homepage = "https://github.com/pastpages/savepagenow";

View File

@ -28,7 +28,7 @@ in
python.pkgs.buildPythonApplication rec { python.pkgs.buildPythonApplication rec {
pname = "sca2d"; pname = "sca2d";
version = "0.2.2"; version = "0.2.2";
format = "setuptools"; pyproject = true;
src = fetchFromGitLab { src = fetchFromGitLab {
owner = "bath_open_instrumentation_group"; owner = "bath_open_instrumentation_group";
@ -37,7 +37,9 @@ python.pkgs.buildPythonApplication rec {
hash = "sha256-p0Bv8jcnjcOLBAXN5A4GspSIEG4G4NPA4o0aEtwe/LU="; hash = "sha256-p0Bv8jcnjcOLBAXN5A4GspSIEG4G4NPA4o0aEtwe/LU=";
}; };
propagatedBuildInputs = with python.pkgs; [ build-system = with python.pkgs; [ setuptools ];
dependencies = with python.pkgs; [
lark010 lark010
colorama colorama
]; ];

View File

@ -13,7 +13,7 @@
python3.pkgs.buildPythonApplication rec { python3.pkgs.buildPythonApplication rec {
pname = "screenkey"; pname = "screenkey";
version = "1.5"; version = "1.5";
format = "setuptools"; pyproject = true;
src = fetchFromGitLab { src = fetchFromGitLab {
owner = "screenkey"; owner = "screenkey";
@ -33,7 +33,9 @@ python3.pkgs.buildPythonApplication rec {
libappindicator-gtk3 libappindicator-gtk3
]; ];
propagatedBuildInputs = with python3.pkgs; [ build-system = with python3.pkgs; [ setuptools ];
dependencies = with python3.pkgs; [
babel babel
pycairo pycairo
pygobject3 pygobject3
@ -53,11 +55,13 @@ python3.pkgs.buildPythonApplication rec {
# screenkey does not have any tests # screenkey does not have any tests
doCheck = false; doCheck = false;
pythonImportsCheck = [ "Screenkey" ];
# Fix CDLL python calls for non absolute paths of xorg libraries # Fix CDLL python calls for non absolute paths of xorg libraries
postPatch = '' postPatch = ''
substituteInPlace Screenkey/xlib.py \ substituteInPlace Screenkey/xlib.py \
--replace libX11.so.6 ${lib.getLib xorg.libX11}/lib/libX11.so.6 \ --replace-fail libX11.so.6 ${lib.getLib xorg.libX11}/lib/libX11.so.6 \
--replace libXtst.so.6 ${lib.getLib xorg.libXtst}/lib/libXtst.so.6 --replace-fail libXtst.so.6 ${lib.getLib xorg.libXtst}/lib/libXtst.so.6
''; '';
meta = with lib; { meta = with lib; {

View File

@ -7,13 +7,15 @@
python3Packages.buildPythonApplication rec { python3Packages.buildPythonApplication rec {
pname = "seashells"; pname = "seashells";
version = "0.1.2"; version = "0.1.2";
format = "setuptools"; pyproject = true;
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
hash = "sha256-RBs28FC7f82DrxRcmvTP9nljVpm7tjrGuvr05l32hDM="; hash = "sha256-RBs28FC7f82DrxRcmvTP9nljVpm7tjrGuvr05l32hDM=";
}; };
build-system = with python3Packages; [ setuptools ];
doCheck = false; # there are no tests doCheck = false; # there are no tests
pythonImportsCheck = [ "seashells" ]; pythonImportsCheck = [ "seashells" ];

View File

@ -7,7 +7,7 @@
python3.pkgs.buildPythonApplication rec { python3.pkgs.buildPythonApplication rec {
pname = "semiphemeral"; pname = "semiphemeral";
version = "0.7"; version = "0.7";
format = "setuptools"; pyproject = true;
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
@ -18,7 +18,9 @@ python3.pkgs.buildPythonApplication rec {
pythonImportsCheck = [ "semiphemeral" ]; pythonImportsCheck = [ "semiphemeral" ];
propagatedBuildInputs = with python3.pkgs; [ build-system = with python3.pkgs; [ setuptools ];
dependencies = with python3.pkgs; [
click click
sqlalchemy sqlalchemy
flask flask

View File

@ -6,7 +6,7 @@
python3.pkgs.buildPythonApplication rec { python3.pkgs.buildPythonApplication rec {
pname = "seventeenlands"; pname = "seventeenlands";
version = "0.1.43"; version = "0.1.43";
format = "setuptools"; pyproject = true;
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
@ -18,7 +18,9 @@ python3.pkgs.buildPythonApplication rec {
pythonImportsCheck = [ "seventeenlands" ]; pythonImportsCheck = [ "seventeenlands" ];
propagatedBuildInputs = with python3.pkgs; [ build-system = with python3.pkgs; [ setuptools ];
dependencies = with python3.pkgs; [
python-dateutil python-dateutil
requests requests
tkinter tkinter

View File

@ -7,19 +7,23 @@
python3Packages.buildPythonApplication rec { python3Packages.buildPythonApplication rec {
pname = "sewer"; pname = "sewer";
version = "0.8.4"; version = "0.8.4";
format = "setuptools"; pyproject = true;
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "sha256-a4VdbZY8pYxrXIaUHJpnLuTB928tJn4UCdnt+m8UBug="; sha256 = "sha256-a4VdbZY8pYxrXIaUHJpnLuTB928tJn4UCdnt+m8UBug=";
}; };
propagatedBuildInputs = with python3Packages; [ build-system = with python3Packages; [ setuptools ];
dependencies = with python3Packages; [
pyopenssl pyopenssl
requests requests
tldextract tldextract
]; ];
pythonImportsCheck = [ "sewer" ];
meta = with lib; { meta = with lib; {
homepage = "https://github.com/komuw/sewer"; homepage = "https://github.com/komuw/sewer";
description = "ACME client"; description = "ACME client";

View File

@ -7,7 +7,7 @@
python3Packages.buildPythonApplication rec { python3Packages.buildPythonApplication rec {
pname = "sftpman"; pname = "sftpman";
version = "1.2.2"; version = "1.2.2";
format = "setuptools"; pyproject = true;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "spantaleev"; owner = "spantaleev";
@ -16,10 +16,14 @@ python3Packages.buildPythonApplication rec {
hash = "sha256-YxqN4+u0nYUWehbyRhjddIo2sythH3E0fiPSyrUlWhM="; hash = "sha256-YxqN4+u0nYUWehbyRhjddIo2sythH3E0fiPSyrUlWhM=";
}; };
build-system = with python3Packages; [ setuptools ];
checkPhase = '' checkPhase = ''
$out/bin/sftpman help $out/bin/sftpman help
''; '';
pythonImportsCheck = [ "sftpman" ];
meta = with lib; { meta = with lib; {
homepage = "https://github.com/spantaleev/sftpman"; homepage = "https://github.com/spantaleev/sftpman";
description = "Application that handles sshfs/sftp file systems mounting"; description = "Application that handles sshfs/sftp file systems mounting";

View File

@ -7,7 +7,7 @@
python3.pkgs.buildPythonApplication rec { python3.pkgs.buildPythonApplication rec {
pname = "shot-scraper"; pname = "shot-scraper";
version = "1.8"; version = "1.8";
format = "setuptools"; pyproject = true;
disabled = python3.pkgs.pythonOlder "3.6"; disabled = python3.pkgs.pythonOlder "3.6";
@ -18,7 +18,9 @@ python3.pkgs.buildPythonApplication rec {
hash = "sha256-CSV9HOqVMHI/L+jyMTdaDyc6ACyGIkG/mmcyRza6EjQ="; hash = "sha256-CSV9HOqVMHI/L+jyMTdaDyc6ACyGIkG/mmcyRza6EjQ=";
}; };
propagatedBuildInputs = with python3.pkgs; [ build-system = with python3.pkgs; [ setuptools ];
dependencies = with python3.pkgs; [
click click
click-default-group click-default-group
playwright playwright

View File

@ -7,7 +7,7 @@
python3.pkgs.buildPythonApplication rec { python3.pkgs.buildPythonApplication rec {
pname = "soco-cli"; pname = "soco-cli";
version = "0.4.73"; version = "0.4.73";
format = "setuptools"; pyproject = true;
disabled = python3.pythonOlder "3.6"; disabled = python3.pythonOlder "3.6";
@ -18,7 +18,9 @@ python3.pkgs.buildPythonApplication rec {
hash = "sha256-WxBwHjh5tCXclQXqrHrpvZdcQU93RObteAfZyyVvKf0="; hash = "sha256-WxBwHjh5tCXclQXqrHrpvZdcQU93RObteAfZyyVvKf0=";
}; };
propagatedBuildInputs = with python3.pkgs; [ build-system = with python3.pkgs; [ setuptools ];
dependencies = with python3.pkgs; [
fastapi fastapi
rangehttpserver rangehttpserver
soco soco

View File

@ -25,7 +25,7 @@ in
buildPythonApplication rec { buildPythonApplication rec {
pname = "sonata"; pname = "sonata";
version = "1.7.1"; version = "1.7.1";
format = "setuptools"; pyproject = true;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "multani"; owner = "multani";
@ -50,13 +50,15 @@ buildPythonApplication rec {
gdk-pixbuf gdk-pixbuf
]; ];
build-system = [ setuptools ];
# The optional tagpy dependency (for editing metadata) is not yet # The optional tagpy dependency (for editing metadata) is not yet
# included because it's difficult to build. # included because it's difficult to build.
pythonPath = [ pythonPath = [
dbus-python dbus-python
mpd2 mpd2
pygobject3 pygobject3
setuptools setuptools # pkg_resources is imported during runtime
]; ];
postPatch = '' postPatch = ''

View File

@ -7,14 +7,16 @@
python3Packages.buildPythonApplication rec { python3Packages.buildPythonApplication rec {
pname = "sqlite-web"; pname = "sqlite-web";
version = "0.6.4"; version = "0.6.4";
format = "setuptools"; pyproject = true;
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
hash = "sha256-5Bdd1C9M3HjvfDKdVvGSQ+/I0Iimvf1MZwPonRiqwqU="; hash = "sha256-5Bdd1C9M3HjvfDKdVvGSQ+/I0Iimvf1MZwPonRiqwqU=";
}; };
propagatedBuildInputs = with python3Packages; [ build-system = with python3Packages; [ setuptools ];
dependencies = with python3Packages; [
flask flask
peewee peewee
pygments pygments
@ -23,6 +25,8 @@ python3Packages.buildPythonApplication rec {
# no tests in repository # no tests in repository
doCheck = false; doCheck = false;
pythonImportsCheck = [ "sqlite_web" ];
meta = with lib; { meta = with lib; {
description = "Web-based SQLite database browser"; description = "Web-based SQLite database browser";
mainProgram = "sqlite_web"; mainProgram = "sqlite_web";

View File

@ -7,7 +7,7 @@
python3.pkgs.buildPythonApplication { python3.pkgs.buildPythonApplication {
pname = "swaggerhole"; pname = "swaggerhole";
version = "1.1"; version = "1.1";
format = "setuptools"; pyproject = true;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Liodeus"; owner = "Liodeus";
@ -17,7 +17,9 @@ python3.pkgs.buildPythonApplication {
hash = "sha256-3HmIpn1A86PXZRL+SqMdr84O16hW1mCUWHKnOVolmx8="; hash = "sha256-3HmIpn1A86PXZRL+SqMdr84O16hW1mCUWHKnOVolmx8=";
}; };
propagatedBuildInputs = with python3.pkgs; [ build-system = with python3.pkgs; [ setuptools ];
dependencies = with python3.pkgs; [
requests requests
whispers whispers
]; ];

View File

@ -8,7 +8,7 @@
python3.pkgs.buildPythonApplication { python3.pkgs.buildPythonApplication {
pname = "swaglyrics"; pname = "swaglyrics";
version = "unstable-2021-06-17"; version = "unstable-2021-06-17";
format = "setuptools"; pyproject = true;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "SwagLyrics"; owner = "SwagLyrics";
@ -19,10 +19,12 @@ python3.pkgs.buildPythonApplication {
postPatch = '' postPatch = ''
substituteInPlace setup.py \ substituteInPlace setup.py \
--replace "==" ">=" --replace-fail "==" ">="
''; '';
propagatedBuildInputs = with python3.pkgs; [ build-system = with python3.pkgs; [ setuptools ];
dependencies = with python3.pkgs; [
beautifulsoup4 beautifulsoup4
colorama colorama
flask flask

View File

@ -7,7 +7,7 @@
python3.pkgs.buildPythonApplication rec { python3.pkgs.buildPythonApplication rec {
pname = "syncrclone"; pname = "syncrclone";
version = "unstable-2023-03-23"; version = "unstable-2023-03-23";
format = "setuptools"; pyproject = true;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "jwink3101"; owner = "jwink3101";
@ -16,6 +16,8 @@ python3.pkgs.buildPythonApplication rec {
hash = "sha256-v81hPeu5qnMG6Sb95D88jy5x/GO781bf7efCYjbOaxs="; hash = "sha256-v81hPeu5qnMG6Sb95D88jy5x/GO781bf7efCYjbOaxs=";
}; };
build-system = with python3.pkgs; [ setuptools ];
pythonImportsCheck = [ pythonImportsCheck = [
"syncrclone" "syncrclone"
]; ];

View File

@ -7,7 +7,7 @@
python3Packages.buildPythonApplication { python3Packages.buildPythonApplication {
pname = "systemd-wait"; pname = "systemd-wait";
version = "0.1+2018-10-05"; version = "0.1+2018-10-05";
format = "setuptools"; pyproject = true;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Stebalien"; owner = "Stebalien";
@ -16,7 +16,9 @@ python3Packages.buildPythonApplication {
sha256 = "1l8rd0wzf3m7fk0g1c8wc0csdisdfac0filhixpgp0ck9ignayq5"; sha256 = "1l8rd0wzf3m7fk0g1c8wc0csdisdfac0filhixpgp0ck9ignayq5";
}; };
propagatedBuildInputs = with python3Packages; [ build-system = with python3Packages; [ setuptools ];
dependencies = with python3Packages; [
dbus-python dbus-python
pygobject3 pygobject3
]; ];

View File

@ -33,13 +33,15 @@ let
lynxpresence = python3Packages.buildPythonPackage rec { lynxpresence = python3Packages.buildPythonPackage rec {
pname = "lynxpresence"; pname = "lynxpresence";
version = "4.4.1"; version = "4.4.1";
format = "setuptools"; pyproject = true;
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
hash = "sha256-y/KboyhEGs9RvyKayEIQu2+WaiQNOdsHDl1/pEoqEkQ="; hash = "sha256-y/KboyhEGs9RvyKayEIQu2+WaiQNOdsHDl1/pEoqEkQ=";
}; };
build-system = with python3Packages; [ setuptools ];
doCheck = false; # tests require internet connection doCheck = false; # tests require internet connection
pythonImportsCheck = [ "lynxpresence" ]; pythonImportsCheck = [ "lynxpresence" ];
}; };

View File

@ -12,7 +12,7 @@
python3.pkgs.buildPythonApplication rec { python3.pkgs.buildPythonApplication rec {
pname = "tebreak"; pname = "tebreak";
version = "1.1"; version = "1.1";
format = "setuptools"; pyproject = true;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "adamewing"; owner = "adamewing";
@ -21,8 +21,9 @@ python3.pkgs.buildPythonApplication rec {
sha256 = "13mgh775d8hkl340923lfwwm4r5ps70girn8d6wgfxzwzxylz8iz"; sha256 = "13mgh775d8hkl340923lfwwm4r5ps70girn8d6wgfxzwzxylz8iz";
}; };
nativeBuildInputs = [ python3.pkgs.cython ]; build-system = with python3.pkgs; [ setuptools ];
propagatedBuildInputs = with python3.pkgs; [
dependencies = with python3.pkgs; [
pysam pysam
scipy scipy
bx-python bx-python
@ -47,6 +48,8 @@ python3.pkgs.buildPythonApplication rec {
${python3.interpreter} checktest.py ${python3.interpreter} checktest.py
''; '';
pythonImportsCheck = [ "tebreak" ];
meta = with lib; { meta = with lib; {
description = "Find and characterise transposable element insertions"; description = "Find and characterise transposable element insertions";
mainProgram = "tebreak"; mainProgram = "tebreak";

View File

@ -17,7 +17,7 @@
python3.pkgs.buildPythonApplication rec { python3.pkgs.buildPythonApplication rec {
pname = "terminator"; pname = "terminator";
version = "2.1.5"; version = "2.1.5";
format = "setuptools"; pyproject = true;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "gnome-terminator"; owner = "gnome-terminator";
@ -42,7 +42,9 @@ python3.pkgs.buildPythonApplication rec {
vte vte
]; ];
propagatedBuildInputs = with python3.pkgs; [ build-system = with python3.pkgs; [ setuptools ];
dependencies = with python3.pkgs; [
configobj configobj
dbus-python dbus-python
pygobject3 pygobject3
@ -56,6 +58,8 @@ python3.pkgs.buildPythonApplication rec {
doCheck = false; doCheck = false;
pythonImportsCheck = [ "terminatorlib" ];
dontWrapGApps = true; dontWrapGApps = true;
# HACK: 'wrapPythonPrograms' will add things to the $PATH in the wrapper. This bleeds into the # HACK: 'wrapPythonPrograms' will add things to the $PATH in the wrapper. This bleeds into the

View File

@ -7,19 +7,23 @@
python3Packages.buildPythonApplication rec { python3Packages.buildPythonApplication rec {
pname = "termtosvg"; pname = "termtosvg";
version = "1.1.0"; version = "1.1.0";
format = "setuptools"; pyproject = true;
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "1vk5kn8w3zf2ymi76l8cpwmvvavkmh3b9lb18xw3x1vzbmhz2f7d"; sha256 = "1vk5kn8w3zf2ymi76l8cpwmvvavkmh3b9lb18xw3x1vzbmhz2f7d";
}; };
propagatedBuildInputs = with python3Packages; [ build-system = with python3Packages; [ setuptools ];
dependencies = with python3Packages; [
lxml lxml
pyte pyte
wcwidth wcwidth
]; ];
pythonImportsCheck = [ "termtosvg" ];
meta = with lib; { meta = with lib; {
homepage = "https://nbedos.github.io/termtosvg/"; homepage = "https://nbedos.github.io/termtosvg/";
description = "Record terminal sessions as SVG animations"; description = "Record terminal sessions as SVG animations";

View File

@ -7,7 +7,7 @@
python3.pkgs.buildPythonApplication rec { python3.pkgs.buildPythonApplication rec {
pname = "terraform-compliance"; pname = "terraform-compliance";
version = "1.3.52"; version = "1.3.52";
format = "setuptools"; pyproject = true;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "terraform-compliance"; owner = "terraform-compliance";
@ -16,14 +16,14 @@ python3.pkgs.buildPythonApplication rec {
hash = "sha256-M6u1P1UxOrP9bNPjPB0V15DUj+Y/1dFIjf/GCnYoCwc="; hash = "sha256-M6u1P1UxOrP9bNPjPB0V15DUj+Y/1dFIjf/GCnYoCwc=";
}; };
postPatch = '' build-system = with python3.pkgs; [ setuptools ];
substituteInPlace setup.py \
--replace "IPython==7.16.1" "IPython" \
--replace "diskcache==5.1.0" "diskcache>=5.1.0" \
--replace "radish-bdd==0.13.1" "radish-bdd" \
'';
propagatedBuildInputs = with python3.pkgs; [ pythonRelaxDeps = [
"radish-bdd"
"IPython"
];
dependencies = with python3.pkgs; [
diskcache diskcache
emoji emoji
filetype filetype

View File

@ -8,12 +8,10 @@
desktopToDarwinBundle, desktopToDarwinBundle,
}: }:
with python3.pkgs; python3.pkgs.buildPythonApplication rec {
buildPythonApplication rec {
pname = "thonny"; pname = "thonny";
version = "4.1.7"; version = "4.1.7";
format = "setuptools"; pyproject = true;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "thonny"; owner = "thonny";
@ -40,6 +38,8 @@ buildPythonApplication rec {
}) })
]; ];
build-system = with python3.pkgs; [ setuptools ];
dependencies = dependencies =
with python3.pkgs; with python3.pkgs;
( (
@ -71,6 +71,8 @@ buildPythonApplication rec {
# Tests need a DISPLAY # Tests need a DISPLAY
doCheck = false; doCheck = false;
pythonImportsCheck = [ "thonny" ];
meta = { meta = {
description = "Python IDE for beginners"; description = "Python IDE for beginners";
longDescription = '' longDescription = ''

View File

@ -7,7 +7,7 @@
python3.pkgs.buildPythonApplication rec { python3.pkgs.buildPythonApplication rec {
pname = "timetagger_cli"; pname = "timetagger_cli";
version = "25.5.1"; version = "25.5.1";
format = "setuptools"; pyproject = true;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "almarklein"; owner = "almarklein";
@ -16,14 +16,19 @@ python3.pkgs.buildPythonApplication rec {
hash = "sha256-UklsHcVyCpWDHOxu+oB8RvwY+laEBFnDyjejS/GzgHE="; hash = "sha256-UklsHcVyCpWDHOxu+oB8RvwY+laEBFnDyjejS/GzgHE=";
}; };
propagatedBuildInputs = with python3.pkgs; [ build-system = with python3.pkgs; [ setuptools ];
dependencies = with python3.pkgs; [
requests requests
toml toml
dateparser
]; ];
# Project has no tests # Project has no tests
doCheck = false; doCheck = false;
pythonImportsCheck = [ "timetagger_cli" ];
meta = with lib; { meta = with lib; {
description = "Track your time from the command-line"; description = "Track your time from the command-line";
homepage = "https://github.com/almarklein/timetagger_cli"; homepage = "https://github.com/almarklein/timetagger_cli";

View File

@ -9,7 +9,7 @@ buildPythonApplication rec {
pname = "tinyprog"; pname = "tinyprog";
# `python setup.py --version` from repo checkout # `python setup.py --version` from repo checkout
version = "1.0.24.dev114+g${lib.substring 0 7 src.rev}"; version = "1.0.24.dev114+g${lib.substring 0 7 src.rev}";
format = "setuptools"; pyproject = true;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "tinyfpga"; owner = "tinyfpga";
@ -20,19 +20,22 @@ buildPythonApplication rec {
sourceRoot = "${src.name}/programmer"; sourceRoot = "${src.name}/programmer";
propagatedBuildInputs = [ build-system = with python3Packages; [
setuptools
setuptools-scm
];
dependencies = [
pyserial pyserial
jsonmerge jsonmerge
intelhex intelhex
tqdm tqdm
six six
packaging packaging
setuptools setuptools # pkg_resources is imported during runtime
pyusb pyusb
]; ];
nativeBuildInputs = [ setuptools-scm ];
meta = with lib; { meta = with lib; {
homepage = "https://github.com/tinyfpga/TinyFPGA-Bootloader/tree/master/programmer"; homepage = "https://github.com/tinyfpga/TinyFPGA-Bootloader/tree/master/programmer";
description = "Programmer for FPGA boards using the TinyFPGA USB Bootloader"; description = "Programmer for FPGA boards using the TinyFPGA USB Bootloader";

View File

@ -7,14 +7,16 @@
python3.pkgs.buildPythonApplication rec { python3.pkgs.buildPythonApplication rec {
pname = "tockloader"; pname = "tockloader";
version = "1.9.0"; version = "1.9.0";
format = "setuptools"; pyproject = true;
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
hash = "sha256-7W55jugVtamFUL8N3dD1LFLJP2UDQb74V6o96rd/tEg="; hash = "sha256-7W55jugVtamFUL8N3dD1LFLJP2UDQb74V6o96rd/tEg=";
}; };
propagatedBuildInputs = with python3.pkgs; [ build-system = with python3.pkgs; [ setuptools ];
dependencies = with python3.pkgs; [
argcomplete argcomplete
colorama colorama
crcmod crcmod
@ -32,6 +34,8 @@ python3.pkgs.buildPythonApplication rec {
runHook postCheck runHook postCheck
''; '';
pythonImportsCheck = [ "tockloader" ];
meta = { meta = {
description = "Tool for programming Tock onto hardware boards"; description = "Tool for programming Tock onto hardware boards";
mainProgram = "tockloader"; mainProgram = "tockloader";

View File

@ -9,7 +9,7 @@
python3Packages.buildPythonApplication rec { python3Packages.buildPythonApplication rec {
pname = "trash-cli"; pname = "trash-cli";
version = "0.24.5.26"; version = "0.24.5.26";
format = "setuptools"; pyproject = true;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "andreafrancia"; owner = "andreafrancia";
@ -18,14 +18,18 @@ python3Packages.buildPythonApplication rec {
hash = "sha256-ltuMnxtG4jTTSZd6ZHWl8wI0oQMMFqW0HAPetZMfGtc="; hash = "sha256-ltuMnxtG4jTTSZd6ZHWl8wI0oQMMFqW0HAPetZMfGtc=";
}; };
propagatedBuildInputs = with python3Packages; [ nativeBuildInputs = [
psutil installShellFiles
six
]; ];
nativeBuildInputs = with python3Packages; [ build-system = with python3Packages; [
installShellFiles setuptools
shtab shtab # for shell completions
];
dependencies = with python3Packages; [
psutil
six
]; ];
nativeCheckInputs = with python3Packages; [ nativeCheckInputs = with python3Packages; [
@ -58,6 +62,9 @@ python3Packages.buildPythonApplication rec {
runHook postInstallCheck runHook postInstallCheck
''; '';
pythonImportsCheck = [ "trashcli" ];
postInstall = '' postInstall = ''
for bin in trash-empty trash-list trash-restore trash-put trash; do for bin in trash-empty trash-list trash-restore trash-put trash; do
installShellCompletion --cmd "$bin" \ installShellCompletion --cmd "$bin" \

View File

@ -8,7 +8,7 @@ with python3Packages;
buildPythonApplication rec { buildPythonApplication rec {
pname = "tuir"; pname = "tuir";
version = "1.31.0"; version = "1.31.0";
format = "setuptools"; pyproject = true;
src = fetchFromGitLab { src = fetchFromGitLab {
owner = "Chocimier"; owner = "Chocimier";
@ -17,24 +17,9 @@ buildPythonApplication rec {
hash = "sha256-VYBtD3Ex6+iIRNvX6jF0b0iPvno41/58xCRydiyssvk="; hash = "sha256-VYBtD3Ex6+iIRNvX6jF0b0iPvno41/58xCRydiyssvk=";
}; };
# Tests try to access network build-system = with python3Packages; [ setuptools ];
doCheck = false;
checkPhase = '' dependencies = [
py.test
'';
nativeCheckInputs = [
coverage
coveralls
docopt
mock
pylint
pytest
vcrpy
];
propagatedBuildInputs = [
beautifulsoup4 beautifulsoup4
decorator decorator
kitchen kitchen
@ -43,6 +28,27 @@ buildPythonApplication rec {
six six
]; ];
nativeCheckInputs = [
coverage
coveralls
docopt
mock
pylint
pytestCheckHook
vcrpy
];
__darwinAllowLocalNetworking = true; # for oauth tests
disabledTests = lib.optionals stdenv.hostPlatform.isDarwin [
# AssertionError: assert ['pbcopy', 'w'] == ['xclip', '-s..., 'clipboard']
"test_copy_nix"
# AttributeError: Can't get local object 'Terminal.open_browser.open_browser.<locals>.open_url_silent'
"test_terminal_open_browser_display"
];
pythonImportsCheck = [ "tuir" ];
meta = with lib; { meta = with lib; {
description = "Browse Reddit from your Terminal (fork of rtv)"; description = "Browse Reddit from your Terminal (fork of rtv)";
mainProgram = "tuir"; mainProgram = "tuir";

View File

@ -34,18 +34,22 @@ in
pypkgs.buildPythonApplication rec { pypkgs.buildPythonApplication rec {
pname = "tvnamer"; pname = "tvnamer";
version = "3.0.4"; version = "3.0.4";
format = "setuptools"; pyproject = true;
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "dc2ea8188df6ac56439343630466b874c57756dd0b2538dd8e7905048f425f04"; sha256 = "dc2ea8188df6ac56439343630466b874c57756dd0b2538dd8e7905048f425f04";
}; };
propagatedBuildInputs = with pypkgs; [ tvdb-api ]; build-system = with pypkgs; [ setuptools ];
dependencies = with pypkgs; [ tvdb-api ];
# no tests from pypi # no tests from pypi
doCheck = false; doCheck = false;
pythonImportsCheck = [ "tvnamer" ];
meta = with lib; { meta = with lib; {
description = "Automatic TV episode file renamer, uses data from thetvdb.com via tvdb_api"; description = "Automatic TV episode file renamer, uses data from thetvdb.com via tvdb_api";
homepage = "https://github.com/dbr/tvnamer"; homepage = "https://github.com/dbr/tvnamer";

View File

@ -8,7 +8,7 @@ python3.pkgs.buildPythonApplication rec {
pname = "txt2tags"; pname = "txt2tags";
version = "3.9"; version = "3.9";
format = "setuptools"; pyproject = true;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "txt2tags"; owner = "txt2tags";
@ -17,17 +17,21 @@ python3.pkgs.buildPythonApplication rec {
hash = "sha256-PwPGJJg79ny13gEb1WmgIVHcXQppI/j5mhIyOZjR19k="; hash = "sha256-PwPGJJg79ny13gEb1WmgIVHcXQppI/j5mhIyOZjR19k=";
}; };
build-system = with python3.pkgs; [ setuptools ];
postPatch = '' postPatch = ''
substituteInPlace test/lib.py \ substituteInPlace test/lib.py \
--replace 'TXT2TAGS = os.path.join(TEST_DIR, "..", "txt2tags.py")' \ --replace-fail 'TXT2TAGS = os.path.join(TEST_DIR, "..", "txt2tags.py")' \
'TXT2TAGS = "${placeholder "out"}/bin/txt2tags"' \ 'TXT2TAGS = "${placeholder "out"}/bin/txt2tags"' \
--replace "[PYTHON] + TXT2TAGS" "TXT2TAGS" --replace-fail "[PYTHON] + TXT2TAGS" "TXT2TAGS"
''; '';
checkPhase = '' checkPhase = ''
${python3.interpreter} test/run.py ${python3.interpreter} test/run.py
''; '';
pythonImportsCheck = [ "txt2tags" ];
meta = { meta = {
changelog = "https://github.com/txt2tags/txt2tags/blob/${src.rev}/CHANGELOG.md"; changelog = "https://github.com/txt2tags/txt2tags/blob/${src.rev}/CHANGELOG.md";
description = "Convert between markup languages"; description = "Convert between markup languages";