From 9e352a886f30279ba73aa2f40ab457e2c40473d5 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 9 Dec 2025 17:30:26 +0000 Subject: [PATCH 1/8] Initial plan From 45619043957ff852d0648024fad9a51cf49b8d57 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 9 Dec 2025 17:51:40 +0000 Subject: [PATCH 2/8] Add miniforge3 support to replace deprecated mambaforge Co-authored-by: humitos <244656+humitos@users.noreply.github.com> --- docs/user/config-file/v2.rst | 3 ++ readthedocs/builds/constants_docker.py | 3 ++ readthedocs/config/config.py | 2 +- readthedocs/config/tests/test_config.py | 33 +++++++++++++++++++ readthedocs/doc_builder/director.py | 33 ++++++++++++------- .../rtd_tests/fixtures/spec/v2/schema.json | 5 ++- 6 files changed, 66 insertions(+), 13 deletions(-) diff --git a/docs/user/config-file/v2.rst b/docs/user/config-file/v2.rst index 51f519530eb..20e31118394 100644 --- a/docs/user/config-file/v2.rst +++ b/docs/user/config-file/v2.rst @@ -327,6 +327,9 @@ You can use several interpreters and versions, from CPython, Miniconda, and Mamb - ``mambaforge-22.9`` - ``mambaforge-23.11`` - ``mambaforge-latest`` (alias for the latest version available on Read the Docs) + - ``miniforge3-24.11`` + - ``miniforge3-25.1`` + - ``miniforge3-latest`` (alias for the latest version available on Read the Docs) build.tools.nodejs `````````````````` diff --git a/readthedocs/builds/constants_docker.py b/readthedocs/builds/constants_docker.py index 17ef655f0fc..635bd95cee4 100644 --- a/readthedocs/builds/constants_docker.py +++ b/readthedocs/builds/constants_docker.py @@ -46,6 +46,8 @@ "mambaforge-4.10": "mambaforge-4.10.3-10", "mambaforge-22.9": "mambaforge-22.9.0-3", "mambaforge-23.11": "mambaforge-23.11.0-0", + "miniforge3-24.11": "miniforge3-24.11.2-1", + "miniforge3-25.1": "miniforge3-25.1.1-2", }, "nodejs": { "14": "14.21.3", @@ -98,6 +100,7 @@ _TOOLS["python"]["latest"] = _TOOLS["python"]["3"] _TOOLS["python"]["miniconda-latest"] = _TOOLS["python"]["miniconda3-3.12-24.9"] _TOOLS["python"]["mambaforge-latest"] = _TOOLS["python"]["mambaforge-23.11"] +_TOOLS["python"]["miniforge3-latest"] = _TOOLS["python"]["miniforge3-25.1"] _TOOLS["nodejs"]["latest"] = _TOOLS["nodejs"]["24"] _TOOLS["ruby"]["latest"] = _TOOLS["ruby"]["3.4"] _TOOLS["rust"]["latest"] = _TOOLS["rust"]["1.91"] diff --git a/readthedocs/config/config.py b/readthedocs/config/config.py index e1df084e2de..8c4ee397376 100644 --- a/readthedocs/config/config.py +++ b/readthedocs/config/config.py @@ -218,7 +218,7 @@ def python_interpreter(self): tool = self.build.tools.get("python") if tool and tool.version.startswith("mamba"): return "mamba" - if tool and tool.version.startswith("miniconda"): + if tool and (tool.version.startswith("miniconda") or tool.version.startswith("miniforge")): return "conda" if tool: return "python" diff --git a/readthedocs/config/tests/test_config.py b/readthedocs/config/tests/test_config.py index bb62c4125b2..d0741a2f2a1 100644 --- a/readthedocs/config/tests/test_config.py +++ b/readthedocs/config/tests/test_config.py @@ -335,6 +335,39 @@ def test_conda_key_not_required_for_conda_mamba_when_build_commands(self): with does_not_raise(ConfigError): build.validate() + def test_conda_key_required_for_miniforge3(self): + build = get_build_config( + { + "build": { + "os": "ubuntu-22.04", + "tools": { + "python": "miniforge3-24.11", + }, + }, + } + ) + with raises(ConfigError) as excinfo: + build.validate() + assert excinfo.value.message_id == ConfigError.CONDA_KEY_REQUIRED + assert excinfo.value.format_values.get("key") == "conda" + + def test_conda_key_not_required_for_miniforge3_when_build_commands(self): + build = get_build_config( + { + "build": { + "os": "ubuntu-22.04", + "tools": { + "python": "miniforge3-25.1", + }, + "commands": [ + "conda env create --file environment.yml", + ], + }, + } + ) + with does_not_raise(ConfigError): + build.validate() + @pytest.mark.parametrize("value", [3, [], "invalid"]) def test_conda_check_invalid_value(self, value): build = get_build_config({"conda": value}) diff --git a/readthedocs/doc_builder/director.py b/readthedocs/doc_builder/director.py index d212b0e5c9f..adc1e15927a 100644 --- a/readthedocs/doc_builder/director.py +++ b/readthedocs/doc_builder/director.py @@ -622,17 +622,28 @@ def install_build_tools(self): ) # If the tool version selected is not available from the # cache we compile it at build time - cmd = [ - # TODO: make ``PYTHON_CONFIGURE_OPTS="--enable-shared"`` - # environment variable to work here. Note that - # ``self.build_environment.run`` does not support passing - # environment for a particular command: - # https://github.com/readthedocs/readthedocs.org/blob/9d2d1a2/readthedocs/doc_builder/environments.py#L430-L431 - "asdf", - "install", - tool, - full_version, - ] + + # For miniforge3, unset CONDA_ENVS_PATH and CONDA_DEFAULT_ENV + # environment variables to allow proper installation + # See https://github.com/readthedocs/readthedocs.org/issues/11690 + if tool == "python" and full_version.startswith("miniforge3"): + cmd = [ + "/bin/sh", + "-c", + f"unset CONDA_ENVS_PATH ; unset CONDA_DEFAULT_ENV ; asdf install {tool} {full_version}", + ] + else: + cmd = [ + # TODO: make ``PYTHON_CONFIGURE_OPTS="--enable-shared"`` + # environment variable to work here. Note that + # ``self.build_environment.run`` does not support passing + # environment for a particular command: + # https://github.com/readthedocs/readthedocs.org/blob/9d2d1a2/readthedocs/doc_builder/environments.py#L430-L431 + "asdf", + "install", + tool, + full_version, + ] self.build_environment.run( *cmd, ) diff --git a/readthedocs/rtd_tests/fixtures/spec/v2/schema.json b/readthedocs/rtd_tests/fixtures/spec/v2/schema.json index 8ad1ba0f19a..85b68ade2de 100644 --- a/readthedocs/rtd_tests/fixtures/spec/v2/schema.json +++ b/readthedocs/rtd_tests/fixtures/spec/v2/schema.json @@ -203,7 +203,10 @@ "mambaforge-4.10", "mambaforge-22.9", "mambaforge-23.11", - "mambaforge-latest" + "mambaforge-latest", + "miniforge3-24.11", + "miniforge3-25.1", + "miniforge3-latest" ] }, "nodejs": { From 2560b663649e656a22fd9bc60313cc25823ffca3 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 9 Dec 2025 18:00:42 +0000 Subject: [PATCH 3/8] Add test for miniforge3 python_interpreter property Co-authored-by: humitos <244656+humitos@users.noreply.github.com> --- readthedocs/config/tests/test_config.py | 33 +++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/readthedocs/config/tests/test_config.py b/readthedocs/config/tests/test_config.py index d0741a2f2a1..6f3caa71906 100644 --- a/readthedocs/config/tests/test_config.py +++ b/readthedocs/config/tests/test_config.py @@ -368,6 +368,39 @@ def test_conda_key_not_required_for_miniforge3_when_build_commands(self): with does_not_raise(ConfigError): build.validate() + def test_miniforge3_python_interpreter(self, tmpdir): + apply_fs( + tmpdir, + { + "readthedocs.yml": """ + version: 2 + build: + os: ubuntu-22.04 + tools: + python: miniforge3-24.11 + conda: + environment: environment.yml + """, + "environment.yml": "name: test", + }, + ) + build = get_build_config( + { + "build": { + "os": "ubuntu-22.04", + "tools": { + "python": "miniforge3-24.11", + }, + }, + "conda": { + "environment": "environment.yml", + }, + }, + source_file=str(tmpdir.join("readthedocs.yml")), + ) + build.validate() + assert build.python_interpreter == "conda" + @pytest.mark.parametrize("value", [3, [], "invalid"]) def test_conda_check_invalid_value(self, value): build = get_build_config({"conda": value}) From 06d245113f8f4c1b248e90fbbe99969b028cfa7a Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 9 Dec 2025 18:03:06 +0000 Subject: [PATCH 4/8] Fix security issue: use shlex.quote to prevent command injection Co-authored-by: humitos <244656+humitos@users.noreply.github.com> --- readthedocs/doc_builder/director.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/readthedocs/doc_builder/director.py b/readthedocs/doc_builder/director.py index adc1e15927a..1cca8d5bfc3 100644 --- a/readthedocs/doc_builder/director.py +++ b/readthedocs/doc_builder/director.py @@ -10,6 +10,7 @@ import datetime import os +import shlex import tarfile import structlog @@ -630,7 +631,7 @@ def install_build_tools(self): cmd = [ "/bin/sh", "-c", - f"unset CONDA_ENVS_PATH ; unset CONDA_DEFAULT_ENV ; asdf install {tool} {full_version}", + f"unset CONDA_ENVS_PATH ; unset CONDA_DEFAULT_ENV ; asdf install {shlex.quote(tool)} {shlex.quote(full_version)}", ] else: cmd = [ From fe37623704f1b2f68ea29017265ab5893786a50f Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 10 Dec 2025 09:46:59 +0000 Subject: [PATCH 5/8] Remove miniforge3-24.11, mark mambaforge as deprecated per feedback Co-authored-by: humitos <244656+humitos@users.noreply.github.com> --- docs/user/config-file/v2.rst | 9 ++++----- readthedocs/builds/constants_docker.py | 1 - readthedocs/config/tests/test_config.py | 6 +++--- readthedocs/rtd_tests/fixtures/spec/v2/schema.json | 1 - 4 files changed, 7 insertions(+), 10 deletions(-) diff --git a/docs/user/config-file/v2.rst b/docs/user/config-file/v2.rst index 20e31118394..b34e78a13e6 100644 --- a/docs/user/config-file/v2.rst +++ b/docs/user/config-file/v2.rst @@ -323,11 +323,10 @@ You can use several interpreters and versions, from CPython, Miniconda, and Mamb - ``miniconda3-3.12-24.1`` - ``miniconda3-3.12-24.9`` - ``miniconda-latest`` (alias for the latest version available on Read the Docs) - - ``mambaforge-4.10`` - - ``mambaforge-22.9`` - - ``mambaforge-23.11`` - - ``mambaforge-latest`` (alias for the latest version available on Read the Docs) - - ``miniforge3-24.11`` + - ``mambaforge-4.10`` (deprecated) + - ``mambaforge-22.9`` (deprecated) + - ``mambaforge-23.11`` (deprecated) + - ``mambaforge-latest`` (deprecated - alias for the latest version available on Read the Docs) - ``miniforge3-25.1`` - ``miniforge3-latest`` (alias for the latest version available on Read the Docs) diff --git a/readthedocs/builds/constants_docker.py b/readthedocs/builds/constants_docker.py index 635bd95cee4..c01303971dd 100644 --- a/readthedocs/builds/constants_docker.py +++ b/readthedocs/builds/constants_docker.py @@ -46,7 +46,6 @@ "mambaforge-4.10": "mambaforge-4.10.3-10", "mambaforge-22.9": "mambaforge-22.9.0-3", "mambaforge-23.11": "mambaforge-23.11.0-0", - "miniforge3-24.11": "miniforge3-24.11.2-1", "miniforge3-25.1": "miniforge3-25.1.1-2", }, "nodejs": { diff --git a/readthedocs/config/tests/test_config.py b/readthedocs/config/tests/test_config.py index 6f3caa71906..be4b2a57088 100644 --- a/readthedocs/config/tests/test_config.py +++ b/readthedocs/config/tests/test_config.py @@ -341,7 +341,7 @@ def test_conda_key_required_for_miniforge3(self): "build": { "os": "ubuntu-22.04", "tools": { - "python": "miniforge3-24.11", + "python": "miniforge3-25.1", }, }, } @@ -377,7 +377,7 @@ def test_miniforge3_python_interpreter(self, tmpdir): build: os: ubuntu-22.04 tools: - python: miniforge3-24.11 + python: miniforge3-25.1 conda: environment: environment.yml """, @@ -389,7 +389,7 @@ def test_miniforge3_python_interpreter(self, tmpdir): "build": { "os": "ubuntu-22.04", "tools": { - "python": "miniforge3-24.11", + "python": "miniforge3-25.1", }, }, "conda": { diff --git a/readthedocs/rtd_tests/fixtures/spec/v2/schema.json b/readthedocs/rtd_tests/fixtures/spec/v2/schema.json index 85b68ade2de..0b77fb3c1c6 100644 --- a/readthedocs/rtd_tests/fixtures/spec/v2/schema.json +++ b/readthedocs/rtd_tests/fixtures/spec/v2/schema.json @@ -204,7 +204,6 @@ "mambaforge-22.9", "mambaforge-23.11", "mambaforge-latest", - "miniforge3-24.11", "miniforge3-25.1", "miniforge3-latest" ] From 5204d260a6872fd04ad515a05e2994c6328f5f9e Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 10 Dec 2025 10:15:55 +0000 Subject: [PATCH 6/8] Update to miniforge3-25.11 and improve env var handling per feedback Co-authored-by: humitos <244656+humitos@users.noreply.github.com> --- docs/user/config-file/v2.rst | 2 +- readthedocs/builds/constants_docker.py | 4 +- readthedocs/config/tests/test_config.py | 8 +-- readthedocs/doc_builder/director.py | 55 ++++++++++--------- .../rtd_tests/fixtures/spec/v2/schema.json | 2 +- 5 files changed, 37 insertions(+), 34 deletions(-) diff --git a/docs/user/config-file/v2.rst b/docs/user/config-file/v2.rst index b34e78a13e6..ad9be3ce398 100644 --- a/docs/user/config-file/v2.rst +++ b/docs/user/config-file/v2.rst @@ -327,7 +327,7 @@ You can use several interpreters and versions, from CPython, Miniconda, and Mamb - ``mambaforge-22.9`` (deprecated) - ``mambaforge-23.11`` (deprecated) - ``mambaforge-latest`` (deprecated - alias for the latest version available on Read the Docs) - - ``miniforge3-25.1`` + - ``miniforge3-25.11`` - ``miniforge3-latest`` (alias for the latest version available on Read the Docs) build.tools.nodejs diff --git a/readthedocs/builds/constants_docker.py b/readthedocs/builds/constants_docker.py index c01303971dd..ff3abc19738 100644 --- a/readthedocs/builds/constants_docker.py +++ b/readthedocs/builds/constants_docker.py @@ -46,7 +46,7 @@ "mambaforge-4.10": "mambaforge-4.10.3-10", "mambaforge-22.9": "mambaforge-22.9.0-3", "mambaforge-23.11": "mambaforge-23.11.0-0", - "miniforge3-25.1": "miniforge3-25.1.1-2", + "miniforge3-25.11": "miniforge3-25.11.0-1", }, "nodejs": { "14": "14.21.3", @@ -99,7 +99,7 @@ _TOOLS["python"]["latest"] = _TOOLS["python"]["3"] _TOOLS["python"]["miniconda-latest"] = _TOOLS["python"]["miniconda3-3.12-24.9"] _TOOLS["python"]["mambaforge-latest"] = _TOOLS["python"]["mambaforge-23.11"] -_TOOLS["python"]["miniforge3-latest"] = _TOOLS["python"]["miniforge3-25.1"] +_TOOLS["python"]["miniforge3-latest"] = _TOOLS["python"]["miniforge3-25.11"] _TOOLS["nodejs"]["latest"] = _TOOLS["nodejs"]["24"] _TOOLS["ruby"]["latest"] = _TOOLS["ruby"]["3.4"] _TOOLS["rust"]["latest"] = _TOOLS["rust"]["1.91"] diff --git a/readthedocs/config/tests/test_config.py b/readthedocs/config/tests/test_config.py index be4b2a57088..424c116579c 100644 --- a/readthedocs/config/tests/test_config.py +++ b/readthedocs/config/tests/test_config.py @@ -341,7 +341,7 @@ def test_conda_key_required_for_miniforge3(self): "build": { "os": "ubuntu-22.04", "tools": { - "python": "miniforge3-25.1", + "python": "miniforge3-25.11", }, }, } @@ -357,7 +357,7 @@ def test_conda_key_not_required_for_miniforge3_when_build_commands(self): "build": { "os": "ubuntu-22.04", "tools": { - "python": "miniforge3-25.1", + "python": "miniforge3-25.11", }, "commands": [ "conda env create --file environment.yml", @@ -377,7 +377,7 @@ def test_miniforge3_python_interpreter(self, tmpdir): build: os: ubuntu-22.04 tools: - python: miniforge3-25.1 + python: miniforge3-25.11 conda: environment: environment.yml """, @@ -389,7 +389,7 @@ def test_miniforge3_python_interpreter(self, tmpdir): "build": { "os": "ubuntu-22.04", "tools": { - "python": "miniforge3-25.1", + "python": "miniforge3-25.11", }, }, "conda": { diff --git a/readthedocs/doc_builder/director.py b/readthedocs/doc_builder/director.py index 1cca8d5bfc3..99be7f501ce 100644 --- a/readthedocs/doc_builder/director.py +++ b/readthedocs/doc_builder/director.py @@ -10,7 +10,6 @@ import datetime import os -import shlex import tarfile import structlog @@ -623,28 +622,17 @@ def install_build_tools(self): ) # If the tool version selected is not available from the # cache we compile it at build time - - # For miniforge3, unset CONDA_ENVS_PATH and CONDA_DEFAULT_ENV - # environment variables to allow proper installation - # See https://github.com/readthedocs/readthedocs.org/issues/11690 - if tool == "python" and full_version.startswith("miniforge3"): - cmd = [ - "/bin/sh", - "-c", - f"unset CONDA_ENVS_PATH ; unset CONDA_DEFAULT_ENV ; asdf install {shlex.quote(tool)} {shlex.quote(full_version)}", - ] - else: - cmd = [ - # TODO: make ``PYTHON_CONFIGURE_OPTS="--enable-shared"`` - # environment variable to work here. Note that - # ``self.build_environment.run`` does not support passing - # environment for a particular command: - # https://github.com/readthedocs/readthedocs.org/blob/9d2d1a2/readthedocs/doc_builder/environments.py#L430-L431 - "asdf", - "install", - tool, - full_version, - ] + cmd = [ + # TODO: make ``PYTHON_CONFIGURE_OPTS="--enable-shared"`` + # environment variable to work here. Note that + # ``self.build_environment.run`` does not support passing + # environment for a particular command: + # https://github.com/readthedocs/readthedocs.org/blob/9d2d1a2/readthedocs/doc_builder/environments.py#L430-L431 + "asdf", + "install", + tool, + full_version, + ] self.build_environment.run( *cmd, ) @@ -776,11 +764,26 @@ def get_build_env_vars(self): env["NO_COLOR"] = "1" if self.data.config.conda is not None: + # Check if we are using miniforge3 + # Only add CONDA_ENVS_PATH and CONDA_DEFAULT_ENV if we are not using miniforge. + # See https://github.com/readthedocs/readthedocs.org/issues/11690 + using_miniforge = False + for _, version in self.data.config.build.tools.items(): + if version.full_version.startswith("miniforge"): + using_miniforge = True + break + + if not using_miniforge: + env.update( + { + # NOTE: should these be prefixed with "READTHEDOCS_"? + "CONDA_ENVS_PATH": os.path.join(self.data.project.doc_path, "conda"), + "CONDA_DEFAULT_ENV": self.data.version.slug, + } + ) + env.update( { - # NOTE: should these be prefixed with "READTHEDOCS_"? - "CONDA_ENVS_PATH": os.path.join(self.data.project.doc_path, "conda"), - "CONDA_DEFAULT_ENV": self.data.version.slug, "BIN_PATH": os.path.join( self.data.project.doc_path, "conda", diff --git a/readthedocs/rtd_tests/fixtures/spec/v2/schema.json b/readthedocs/rtd_tests/fixtures/spec/v2/schema.json index 0b77fb3c1c6..06458bac859 100644 --- a/readthedocs/rtd_tests/fixtures/spec/v2/schema.json +++ b/readthedocs/rtd_tests/fixtures/spec/v2/schema.json @@ -204,7 +204,7 @@ "mambaforge-22.9", "mambaforge-23.11", "mambaforge-latest", - "miniforge3-25.1", + "miniforge3-25.11", "miniforge3-latest" ] }, From 4a56846930994ac705afb11fa18ae94b5a4bb9d6 Mon Sep 17 00:00:00 2001 From: Manuel Kaufmann Date: Wed, 10 Dec 2025 11:33:06 +0100 Subject: [PATCH 7/8] Revert unseting `CONDA_` variables because it's not needed The build-tool is pre-compiled, so there is no need to unset these. I tested this locally and it worked fine. --- readthedocs/doc_builder/director.py | 21 +++------------------ 1 file changed, 3 insertions(+), 18 deletions(-) diff --git a/readthedocs/doc_builder/director.py b/readthedocs/doc_builder/director.py index 99be7f501ce..d212b0e5c9f 100644 --- a/readthedocs/doc_builder/director.py +++ b/readthedocs/doc_builder/director.py @@ -764,26 +764,11 @@ def get_build_env_vars(self): env["NO_COLOR"] = "1" if self.data.config.conda is not None: - # Check if we are using miniforge3 - # Only add CONDA_ENVS_PATH and CONDA_DEFAULT_ENV if we are not using miniforge. - # See https://github.com/readthedocs/readthedocs.org/issues/11690 - using_miniforge = False - for _, version in self.data.config.build.tools.items(): - if version.full_version.startswith("miniforge"): - using_miniforge = True - break - - if not using_miniforge: - env.update( - { - # NOTE: should these be prefixed with "READTHEDOCS_"? - "CONDA_ENVS_PATH": os.path.join(self.data.project.doc_path, "conda"), - "CONDA_DEFAULT_ENV": self.data.version.slug, - } - ) - env.update( { + # NOTE: should these be prefixed with "READTHEDOCS_"? + "CONDA_ENVS_PATH": os.path.join(self.data.project.doc_path, "conda"), + "CONDA_DEFAULT_ENV": self.data.version.slug, "BIN_PATH": os.path.join( self.data.project.doc_path, "conda", From 2d4fd192589e76190d8318668c16c70eaae0fe80 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 10 Dec 2025 10:43:40 +0000 Subject: [PATCH 8/8] Simplify test_miniforge3_python_interpreter test per feedback Co-authored-by: humitos <244656+humitos@users.noreply.github.com> --- readthedocs/config/tests/test_config.py | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-) diff --git a/readthedocs/config/tests/test_config.py b/readthedocs/config/tests/test_config.py index 424c116579c..558cb1ba506 100644 --- a/readthedocs/config/tests/test_config.py +++ b/readthedocs/config/tests/test_config.py @@ -368,22 +368,7 @@ def test_conda_key_not_required_for_miniforge3_when_build_commands(self): with does_not_raise(ConfigError): build.validate() - def test_miniforge3_python_interpreter(self, tmpdir): - apply_fs( - tmpdir, - { - "readthedocs.yml": """ - version: 2 - build: - os: ubuntu-22.04 - tools: - python: miniforge3-25.11 - conda: - environment: environment.yml - """, - "environment.yml": "name: test", - }, - ) + def test_miniforge3_python_interpreter(self): build = get_build_config( { "build": { @@ -396,7 +381,6 @@ def test_miniforge3_python_interpreter(self, tmpdir): "environment": "environment.yml", }, }, - source_file=str(tmpdir.join("readthedocs.yml")), ) build.validate() assert build.python_interpreter == "conda"