summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-18 13:19:48 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-18 13:19:48 +0000
commitc4fa5e94ff9deab4226eaef55a0c67a66533a655 (patch)
tree9ca1056e8d3251b61c7428c706d01cc9cc8c0fd4
parentReleasing progress-linux version 3.7.0-1~progress7.99u1. (diff)
downloadpre-commit-c4fa5e94ff9deab4226eaef55a0c67a66533a655.tar.xz
pre-commit-c4fa5e94ff9deab4226eaef55a0c67a66533a655.zip
Merging upstream version 3.7.1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
-rw-r--r--.pre-commit-config.yaml6
-rw-r--r--CHANGELOG.md9
-rw-r--r--pre_commit/languages/rust.py2
-rw-r--r--pre_commit/util.py5
-rw-r--r--setup.cfg2
-rw-r--r--tests/languages/ruby_test.py4
-rw-r--r--tests/languages/rust_test.py9
7 files changed, 28 insertions, 9 deletions
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 8a0ad8d..6caee40 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -1,6 +1,6 @@
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
- rev: v4.5.0
+ rev: v4.6.0
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
@@ -24,7 +24,7 @@ repos:
hooks:
- id: add-trailing-comma
- repo: https://github.com/asottile/pyupgrade
- rev: v3.15.1
+ rev: v3.15.2
hooks:
- id: pyupgrade
args: [--py39-plus]
@@ -37,7 +37,7 @@ repos:
hooks:
- id: flake8
- repo: https://github.com/pre-commit/mirrors-mypy
- rev: v1.9.0
+ rev: v1.10.0
hooks:
- id: mypy
additional_dependencies: [types-all]
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 076e163..81d5b33 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,12 @@
+3.7.1 - 2024-05-10
+==================
+
+### Fixes
+- Fix `language: rust` default language version check when `rust-toolchain.toml`
+ is present.
+ - issue by @gaborbernat.
+ - #3201 PR by @asottile.
+
3.7.0 - 2024-03-24
==================
diff --git a/pre_commit/languages/rust.py b/pre_commit/languages/rust.py
index 7b04d6c..5f9db8f 100644
--- a/pre_commit/languages/rust.py
+++ b/pre_commit/languages/rust.py
@@ -34,7 +34,7 @@ def get_default_version() -> str:
# Just detecting the executable does not suffice, because if rustup is
# installed but no toolchain is available, then `cargo` exists but
# cannot be used without installing a toolchain first.
- if cmd_output_b('cargo', '--version', check=False)[0] == 0:
+ if cmd_output_b('cargo', '--version', check=False, cwd='/')[0] == 0:
return 'system'
else:
return C.DEFAULT
diff --git a/pre_commit/util.py b/pre_commit/util.py
index b3682d4..b75c84a 100644
--- a/pre_commit/util.py
+++ b/pre_commit/util.py
@@ -205,10 +205,11 @@ else: # pragma: no cover
def _handle_readonly(
func: Callable[[str], object],
path: str,
- exc: OSError,
+ exc: Exception,
) -> None:
if (
func in (os.rmdir, os.remove, os.unlink) and
+ isinstance(exc, OSError) and
exc.errno in {errno.EACCES, errno.EPERM}
):
for p in (path, os.path.dirname(path)):
@@ -222,7 +223,7 @@ if sys.version_info < (3, 12): # pragma: <3.12 cover
def _handle_readonly_old(
func: Callable[[str], object],
path: str,
- excinfo: tuple[type[OSError], OSError, TracebackType],
+ excinfo: tuple[type[Exception], Exception, TracebackType],
) -> None:
return _handle_readonly(func, path, excinfo[1])
diff --git a/setup.cfg b/setup.cfg
index 0e15560..83c09ac 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -1,6 +1,6 @@
[metadata]
name = pre_commit
-version = 3.7.0
+version = 3.7.1
description = A framework for managing and maintaining multi-language pre-commit hooks.
long_description = file: README.md
long_description_content_type = text/markdown
diff --git a/tests/languages/ruby_test.py b/tests/languages/ruby_test.py
index 6397a43..5d767b2 100644
--- a/tests/languages/ruby_test.py
+++ b/tests/languages/ruby_test.py
@@ -91,8 +91,8 @@ def test_ruby_additional_deps(tmp_path):
tmp_path,
ruby,
'ruby -e',
- args=('require "tins"',),
- deps=('tins',),
+ args=('require "jmespath"',),
+ deps=('jmespath',),
)
assert ret == (0, b'')
diff --git a/tests/languages/rust_test.py b/tests/languages/rust_test.py
index 5c17f5b..52e3561 100644
--- a/tests/languages/rust_test.py
+++ b/tests/languages/rust_test.py
@@ -9,6 +9,7 @@ from pre_commit import parse_shebang
from pre_commit.languages import rust
from pre_commit.store import _make_local_repo
from testing.language_helpers import run_language
+from testing.util import cwd
ACTUAL_GET_DEFAULT_VERSION = rust.get_default_version.__wrapped__
@@ -29,6 +30,14 @@ def test_uses_default_when_rust_is_not_available(cmd_output_b_mck):
assert ACTUAL_GET_DEFAULT_VERSION() == C.DEFAULT
+def test_selects_system_even_if_rust_toolchain_toml(tmp_path):
+ toolchain_toml = '[toolchain]\nchannel = "wtf"\n'
+ tmp_path.joinpath('rust-toolchain.toml').write_text(toolchain_toml)
+
+ with cwd(tmp_path):
+ assert ACTUAL_GET_DEFAULT_VERSION() == 'system'
+
+
def _make_hello_world(tmp_path):
src_dir = tmp_path.joinpath('src')
src_dir.mkdir()