Skip to content

Commit 03042f1

Browse files
authored
Merge pull request #3143 from regro/provide-src-error
fix: use conda-build to parse variant files normally when getting source
2 parents 2dfdb3e + 877ded7 commit 03042f1

File tree

2 files changed

+35
-8
lines changed

2 files changed

+35
-8
lines changed

conda_forge_tick/provide_source_code.py

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,14 @@
1616

1717
logger = logging.getLogger(__name__)
1818

19+
CONDA_BUILD_SPECIAL_KEYS = (
20+
"pin_run_as_build",
21+
"ignore_version",
22+
"ignore_build_only_deps",
23+
"extend_keys",
24+
"zip_keys",
25+
)
26+
1927

2028
@contextmanager
2129
def provide_source_code(recipe_dir, use_container=None):
@@ -125,10 +133,6 @@ def _print_out():
125133
from conda_build.api import render
126134
from conda_build.config import get_or_merge_config
127135
from conda_build.source import provide
128-
from conda_build.variants import (
129-
get_package_variants,
130-
list_of_dicts_to_dict_of_lists,
131-
)
132136

133137
# Use conda build to do all the downloading/extracting bits
134138
config = get_or_merge_config(None)
@@ -142,13 +146,12 @@ def _print_out():
142146
# try global pinnings
143147
os.path.join(os.environ["CONDA_PREFIX"], "conda_build_config.yaml")
144148
]
145-
variants = get_package_variants(recipe_dir, config=config)[0]
146-
variants = list_of_dicts_to_dict_of_lists([variants])
149+
147150
md = render(
148151
recipe_dir,
152+
config=config,
149153
finalize=False,
150154
bypass_env_check=True,
151-
variants=variants,
152155
)
153156
if not md:
154157
return None
@@ -158,6 +161,7 @@ def _print_out():
158161
yield provide(md)
159162
except (SystemExit, Exception) as e:
160163
_print_out()
164+
logger.error("Error in getting conda build src!", exc_info=e)
161165
raise RuntimeError("conda build src exception: " + str(e))
162166

163167
_print_out()

tests/test_container_tasks.py

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,10 @@
3131
from conda_forge_tick.migration_runner import run_migration_containerized
3232
from conda_forge_tick.migrators import MigrationYaml, Version
3333
from conda_forge_tick.os_utils import pushd
34-
from conda_forge_tick.provide_source_code import provide_source_code_containerized
34+
from conda_forge_tick.provide_source_code import (
35+
provide_source_code_containerized,
36+
provide_source_code_local,
37+
)
3538
from conda_forge_tick.rerender_feedstock import rerender_feedstock
3639
from conda_forge_tick.solver_checks import is_recipe_solvable
3740
from conda_forge_tick.update_recipe.version import update_version_feedstock_dir
@@ -776,3 +779,23 @@ def test_container_tasks_update_version_feedstock_dir():
776779
output = fp.read()
777780

778781
assert actual_output == output
782+
783+
784+
@flaky
785+
def test_container_tasks_provide_source_code_local(use_containers):
786+
with (
787+
tempfile.TemporaryDirectory() as tmpdir,
788+
pushd(tmpdir),
789+
):
790+
subprocess.run(
791+
[
792+
"git",
793+
"clone",
794+
"https://github.com/conda-forge/git-remote-s3-feedstock.git",
795+
]
796+
)
797+
798+
with provide_source_code_local("git-remote-s3-feedstock/recipe") as source_dir:
799+
assert os.path.exists(source_dir)
800+
assert os.path.isdir(source_dir)
801+
assert "pyproject.toml" in os.listdir(source_dir)

0 commit comments

Comments
 (0)