summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.md8
-rw-r--r--pre_commit/languages/rust.py6
-rw-r--r--setup.cfg2
3 files changed, 12 insertions, 4 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index f2466e2..dfb8f80 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,11 @@
+3.2.1 - 2023-03-25
+==================
+
+### Fixes
+- Fix `language_version` for `language: rust` without global `rustup`.
+ - #2823 issue by @daschuer.
+ - #2827 PR by @asottile.
+
3.2.0 - 2023-03-17
==================
diff --git a/pre_commit/languages/rust.py b/pre_commit/languages/rust.py
index a1f4dbe..7eec0e7 100644
--- a/pre_commit/languages/rust.py
+++ b/pre_commit/languages/rust.py
@@ -80,9 +80,9 @@ def _add_dependencies(
lang_base.setup_cmd(prefix, ('cargo', 'add', *crates))
-def install_rust_with_toolchain(toolchain: str) -> None:
+def install_rust_with_toolchain(toolchain: str, envdir: str) -> None:
with tempfile.TemporaryDirectory() as rustup_dir:
- with envcontext((('RUSTUP_HOME', rustup_dir),)):
+ with envcontext((('CARGO_HOME', envdir), ('RUSTUP_HOME', rustup_dir))):
# acquire `rustup` if not present
if parse_shebang.find_executable('rustup') is None:
# We did not detect rustup and need to download it first.
@@ -145,7 +145,7 @@ def install_environment(
ctx.enter_context(in_env(prefix, version))
if version != 'system':
- install_rust_with_toolchain(_rust_toolchain(version))
+ install_rust_with_toolchain(_rust_toolchain(version), envdir)
tmpdir = ctx.enter_context(tempfile.TemporaryDirectory())
ctx.enter_context(envcontext((('RUSTUP_HOME', tmpdir),)))
diff --git a/setup.cfg b/setup.cfg
index 5b3d156..350fe23 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -1,6 +1,6 @@
[metadata]
name = pre_commit
-version = 3.2.0
+version = 3.2.1
description = A framework for managing and maintaining multi-language pre-commit hooks.
long_description = file: README.md
long_description_content_type = text/markdown