nixpkgs/pkgs/by-name/cl/cloudsmith-cli/package.nix
aleksana 571c71e6f7 treewide: migrate packages to pkgs/by-name, take 1
We are migrating packages that meet below requirements:

1. using `callPackage`
2. called path is a directory
3. overriding set is empty (`{ }`)
4. not containing path expressions other than relative path (to
makenixpkgs-vet happy)
5. not referenced by nix files outside of the directory, other
than`pkgs/top-level/all-packages.nix`
6. not referencing nix files outside of the directory
7. not referencing `default.nix` (since it's changed to `package.nix`)
8. `outPath` doesn't change after migration

The tool is here: https://github.com/Aleksanaa/by-name-migrate.
2024-11-09 20:04:51 +08:00

93 lines
2.5 KiB
Nix

{ lib
, python3
, fetchFromGitHub
, fetchpatch
}:
python3.pkgs.buildPythonApplication rec {
pname = "cloudsmith-cli";
version = "1.2.5";
format = "setuptools";
src = fetchFromGitHub {
owner = "cloudsmith-io";
repo = "cloudsmith-cli";
rev = "refs/tags/v${version}";
hash = "sha256-UzyfOmjJzYEJYA6c4kn5XCvRVIMuiIpiq0kH9UhBwmo=";
};
patches = [
# Fix compatibility with urllib3 2.0
(fetchpatch {
url = "https://github.com/cloudsmith-io/cloudsmith-cli/commit/1a8d2d91c01320537b26778003735d6b694141c2.patch";
revert = true;
includes = [
"cloudsmith_cli/core/rest.py"
];
hash = "sha256-Rf3MMJuLr8fzkRqSftIJ1eUbgNdfrng2V609jYvpogc=";
})
];
nativeBuildInputs = with python3.pkgs; [
pip
];
propagatedBuildInputs = with python3.pkgs; [
click
click-configfile
click-didyoumean
click-spinner
cloudsmith-api
colorama
future
requests
requests-toolbelt
semver
simplejson
six
setuptools # needs pkg_resources
];
nativeCheckInputs = with python3.pkgs; [
pytestCheckHook
pytest-cov
];
checkInputs = with python3.pkgs; [
httpretty
];
pythonImportsCheck = [
"cloudsmith_cli"
];
postPatch = ''
# Permit urllib3 2.0
substituteInPlace setup.py \
--replace-fail 'urllib3<2.0' 'urllib3'
'';
preCheck = ''
# E _pytest.pathlib.ImportPathMismatchError: ('cloudsmith_cli.cli.tests.conftest', '/build/source/build/lib/cloudsmith_cli/cli/tests/conftest.py', PosixPath('/build/source/cloudsmith_cli/cli/tests/conftest.py'))
# ___________ ERROR collecting cloudsmith_cli/core/tests/test_init.py ____________
# import file mismatch:
# imported module 'cloudsmith_cli.core.tests.test_init' has this __file__ attribute:
# /build/source/build/lib/cloudsmith_cli/core/tests/test_init.py
# which is not the same as the test file we want to collect:
# /build/source/cloudsmith_cli/core/tests/test_init.py
# HINT: remove __pycache__ / .pyc files and/or use a unique basename for your test file modules
# https://github.com/NixOS/nixpkgs/issues/255262
cd "$out"
'';
meta = with lib; {
homepage = "https://help.cloudsmith.io/docs/cli/";
description = "Cloudsmith Command Line Interface";
mainProgram = "cloudsmith";
changelog = "https://github.com/cloudsmith-io/cloudsmith-cli/blob/v${version}/CHANGELOG.md";
maintainers = [ ];
license = licenses.asl20;
platforms = with platforms; unix;
};
}