forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
dev-vcs/pre-commit: drop dependency on dev-python/toml
Backported to 2.20.0 from upstream Git master branch. Bug: https://bugs.gentoo.org/878677 Signed-off-by: Marek Szuba <[email protected]>
- Loading branch information
Marek Szuba
committed
Oct 30, 2022
1 parent
7b49880
commit 37fe831
Showing
3 changed files
with
136 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,2 @@ | ||
DIST pre-commit-2.20.0.gh.tar.gz 266604 BLAKE2B 470f032e6d5bfcdd9ac8ba8f37d4323b601da0c82bcd524ffc575dc688fe81ad326a1f6a8ddd03da6e37130319ee40070c03d9789cd6e0e4b427a1d6e646416e SHA512 b1da558a0e5d8f2f655427089f1d0b11b01ad7513ece7a0b3b67c33529cf3584edba558c78704e6da6ca18876b1d6c0fa8698e01fd7c2439b8d4dc0a93961e52 | ||
DIST pre-commit-2.20.0.tar.gz 266604 BLAKE2B 470f032e6d5bfcdd9ac8ba8f37d4323b601da0c82bcd524ffc575dc688fe81ad326a1f6a8ddd03da6e37130319ee40070c03d9789cd6e0e4b427a1d6e646416e SHA512 b1da558a0e5d8f2f655427089f1d0b11b01ad7513ece7a0b3b67c33529cf3584edba558c78704e6da6ca18876b1d6c0fa8698e01fd7c2439b8d4dc0a93961e52 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,81 @@ | ||
Backported upstream commit e703982de45ac64492897b25fa4edbdb8da10e62. | ||
|
||
--- a/pre_commit/languages/rust.py | ||
+++ b/pre_commit/languages/rust.py | ||
@@ -5,8 +5,6 @@ | ||
from typing import Generator | ||
from typing import Sequence | ||
|
||
-import toml | ||
- | ||
import pre_commit.constants as C | ||
from pre_commit.envcontext import envcontext | ||
from pre_commit.envcontext import PatchesT | ||
@@ -38,18 +36,16 @@ | ||
|
||
|
||
def _add_dependencies( | ||
- cargo_toml_path: str, | ||
+ prefix: Prefix, | ||
additional_dependencies: set[str], | ||
) -> None: | ||
- with open(cargo_toml_path, 'r+') as f: | ||
- cargo_toml = toml.load(f) | ||
- cargo_toml.setdefault('dependencies', {}) | ||
- for dep in additional_dependencies: | ||
- name, _, spec = dep.partition(':') | ||
- cargo_toml['dependencies'][name] = spec or '*' | ||
- f.seek(0) | ||
- toml.dump(cargo_toml, f) | ||
- f.truncate() | ||
+ crates = [] | ||
+ for dep in additional_dependencies: | ||
+ name, _, spec = dep.partition(':') | ||
+ crate = f'{name}@{spec or "*"}' | ||
+ crates.append(crate) | ||
+ | ||
+ helpers.run_setup_cmd(prefix, ('cargo', 'add', *crates)) | ||
|
||
|
||
def install_environment( | ||
@@ -77,9 +73,6 @@ | ||
} | ||
lib_deps = set(additional_dependencies) - cli_deps | ||
|
||
- if len(lib_deps) > 0: | ||
- _add_dependencies(prefix.path('Cargo.toml'), lib_deps) | ||
- | ||
with clean_path_on_failure(directory): | ||
packages_to_install: set[tuple[str, ...]] = {('--path', '.')} | ||
for cli_dep in cli_deps: | ||
@@ -90,6 +83,9 @@ | ||
else: | ||
packages_to_install.add((package,)) | ||
|
||
+ if len(lib_deps) > 0: | ||
+ _add_dependencies(prefix, lib_deps) | ||
+ | ||
for args in packages_to_install: | ||
cmd_output_b( | ||
'cargo', 'install', '--bins', '--root', directory, *args, | ||
--- a/setup.cfg | ||
+++ b/setup.cfg | ||
@@ -27,7 +27,6 @@ | ||
identify>=1.0.0 | ||
nodeenv>=0.11.1 | ||
pyyaml>=5.1 | ||
- toml | ||
virtualenv>=20.0.8 | ||
importlib-metadata;python_version<"3.8" | ||
python_requires = >=3.7 | ||
--- a/tests/repository_test.py | ||
+++ b/tests/repository_test.py | ||
@@ -485,7 +485,7 @@ | ||
path = make_repo(tempdir_factory, 'rust_hooks_repo') | ||
config = make_config_from_repo(path) | ||
# A small rust package with no dependencies. | ||
- deps = ['shellharden:3.1.0'] | ||
+ deps = ['shellharden:3.1.0', 'git-version'] | ||
config['hooks'][0]['additional_dependencies'] = deps | ||
hook = _get_hook(config, store, 'rust-hook') | ||
binaries = os.listdir( |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
# Copyright 1999-2022 Gentoo Authors | ||
# Distributed under the terms of the GNU General Public License v2 | ||
|
||
EAPI=8 | ||
|
||
PYTHON_COMPAT=( python3_{8..11} ) | ||
DISTUTILS_SINGLE_IMPL=1 | ||
DISTUTILS_USE_PEP517=setuptools | ||
PYTHON_REQ_USE="sqlite" | ||
|
||
inherit distutils-r1 | ||
|
||
DESCRIPTION="A framework for managing and maintaining multi-language Git pre-commit hooks" | ||
HOMEPAGE="https://pre-commit.com/" | ||
SRC_URI="https://github.com/${PN}/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.gh.tar.gz" | ||
|
||
LICENSE="MIT" | ||
SLOT="0" | ||
KEYWORDS="~amd64 ~hppa ~ppc ~ppc64 ~x86" | ||
|
||
RDEPEND="dev-vcs/git | ||
$(python_gen_cond_dep ' | ||
>=dev-python/cfgv-2.0.0[${PYTHON_USEDEP}] | ||
>=dev-python/identify-1.0.0[${PYTHON_USEDEP}] | ||
>=dev-python/nodeenv-0.11.1[${PYTHON_USEDEP}] | ||
>=dev-python/pyyaml-5.1[${PYTHON_USEDEP}] | ||
>=dev-python/virtualenv-20.0.8[${PYTHON_USEDEP}] | ||
')" | ||
BDEPEND="test? ( | ||
$(python_gen_cond_dep ' | ||
dev-python/pytest-env[${PYTHON_USEDEP}] | ||
dev-python/re-assert[${PYTHON_USEDEP}] | ||
') | ||
)" | ||
|
||
PATCHES=( | ||
"${FILESDIR}"/${PN}-2.20.0-no_toml.patch | ||
) | ||
|
||
DOCS=( CHANGELOG.md CONTRIBUTING.md README.md ) | ||
|
||
# The former two require a boatload of dependencies (e.g. Conda, Go, R and more) in order to run | ||
# and while some of them do include "skip if not found" logic, most of them do not. | ||
# The latter consistently fail with | ||
# Calling "git rev-parse" fails with "fatal: not a git repository (or any of the parent directories): .git". | ||
# including with the sandbox disabled and when run manually with tox. | ||
EPYTEST_DESELECT=( | ||
tests/languages/ | ||
tests/repository_test.py | ||
tests/main_test.py::test_all_cmds | ||
tests/main_test.py::test_try_repo | ||
) | ||
|
||
distutils_enable_tests pytest |