Skip to content

Commit a7ab9b2

Browse files
committed
Pass language_version to the install method for each language.
1 parent 4f2f173 commit a7ab9b2

File tree

7 files changed

+12
-9
lines changed

7 files changed

+12
-9
lines changed

pre_commit/languages/node.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ def in_env(repo_cmd_runner):
2424
yield NodeEnv(repo_cmd_runner)
2525

2626

27-
def install_environment(repo_cmd_runner):
27+
def install_environment(repo_cmd_runner, version='default'):
2828
assert repo_cmd_runner.exists('package.json')
2929

3030
with clean_path_on_failure(repo_cmd_runner.path(python.ENVIRONMENT_DIR)):

pre_commit/languages/python.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ def in_env(repo_cmd_runner):
1818
yield PythonEnv(repo_cmd_runner)
1919

2020

21-
def install_environment(repo_cmd_runner):
21+
def install_environment(repo_cmd_runner, version='default'):
2222
assert repo_cmd_runner.exists('setup.py')
2323

2424
# Install a virtualenv

pre_commit/languages/ruby.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ def _install_rbenv(repo_cmd_runner):
5656
)
5757

5858

59-
def install_environment(repo_cmd_runner):
59+
def install_environment(repo_cmd_runner, version='default'):
6060
with clean_path_on_failure(repo_cmd_runner.path('rbenv')):
6161
_install_rbenv(repo_cmd_runner)
6262
with in_env(repo_cmd_runner) as ruby_env:

pre_commit/languages/script.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
ENVIRONMENT_DIR = None
22

33

4-
def install_environment(repo_cmd_runner):
4+
def install_environment(repo_cmd_runner, version='default'):
55
"""Installation for script type is a noop."""
66

77

pre_commit/languages/system.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
ENVIRONMENT_DIR = None
55

66

7-
def install_environment(repo_cmd_runner):
7+
def install_environment(repo_cmd_runner, version='default'):
88
"""Installation for system type is a noop."""
99

1010

pre_commit/repository.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,10 @@ def sha(self):
2929

3030
@cached_property
3131
def languages(self):
32-
return set(hook['language'] for hook in self.hooks.values())
32+
return set(
33+
(hook['language'], hook['language_version'])
34+
for hook in self.hooks.values()
35+
)
3336

3437
@cached_property
3538
def hooks(self):
@@ -56,15 +59,15 @@ def require_installed(self):
5659

5760
def install(self):
5861
"""Install the hook repository."""
59-
for language_name in self.languages:
62+
for language_name, language_version in self.languages:
6063
language = languages[language_name]
6164
if (
6265
language.ENVIRONMENT_DIR is None or
6366
self.cmd_runner.exists(language.ENVIRONMENT_DIR)
6467
):
6568
# The language is already installed
6669
continue
67-
language.install_environment(self.cmd_runner)
70+
language.install_environment(self.cmd_runner, language_version)
6871

6972
def run_hook(self, hook_id, file_args):
7073
"""Run a hook.

tests/repository_test.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ def test_sha(mock_repo_config):
113113
@pytest.mark.integration
114114
def test_languages(config_for_python_hooks_repo, store):
115115
repo = Repository.create(config_for_python_hooks_repo, store)
116-
assert repo.languages == set(['python'])
116+
assert repo.languages == set([('python', 'default')])
117117

118118

119119
def test_reinstall(config_for_python_hooks_repo, store):

0 commit comments

Comments
 (0)