summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.md8
-rw-r--r--pre_commit/languages/rust.py7
-rw-r--r--setup.cfg2
3 files changed, 15 insertions, 2 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8a42781..cfcef45 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,11 @@
+3.1.1 - 2023-02-27
+==================
+
+### Fixes
+- Fix `rust` with `language_version` and a non-writable host `RUSTUP_HOME`.
+ - pre-commit-ci/issues#173 by @Swiftb0y.
+ - #2788 by @asottile.
+
3.1.0 - 2023-02-22
==================
diff --git a/pre_commit/languages/rust.py b/pre_commit/languages/rust.py
index e98e0d0..af5f483 100644
--- a/pre_commit/languages/rust.py
+++ b/pre_commit/languages/rust.py
@@ -142,10 +142,15 @@ def install_environment(
else:
packages_to_install.add((package,))
- with in_env(prefix, version):
+ with contextlib.ExitStack() as ctx:
+ ctx.enter_context(in_env(prefix, version))
+
if version != 'system':
install_rust_with_toolchain(_rust_toolchain(version))
+ tmpdir = ctx.enter_context(tempfile.TemporaryDirectory())
+ ctx.enter_context(envcontext((('RUSTUP_HOME', tmpdir),)))
+
if len(lib_deps) > 0:
_add_dependencies(prefix, lib_deps)
diff --git a/setup.cfg b/setup.cfg
index d1f649f..507c0ad 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -1,6 +1,6 @@
[metadata]
name = pre_commit
-version = 3.1.0
+version = 3.1.1
description = A framework for managing and maintaining multi-language pre-commit hooks.
long_description = file: README.md
long_description_content_type = text/markdown