Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions conda_build/_rattler_build/compat.py
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,8 @@ def check_arguments_rattler(
"override_channels",
"build_only",
"post",
"root-dir",
"croot",
},
"render": {
"recipe",
Expand Down
2 changes: 2 additions & 0 deletions docs/source/user-guide/v1-recipes.rst
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ supported:
- ``--anaconda-upload``
- ``--build-only``
- ``--channel``
- ``--croot``
- ``--debug``
- ``--exclusive-config-file``
- ``--extra-meta``
Expand All @@ -35,6 +36,7 @@ supported:
- ``--post``
- ``--quiet``
- ``--recipe``
- ``root-dir`` (``.condarc`` only)
- ``--skip-existing``
- ``--user``
- ``--variant-config-files``
Expand Down
19 changes: 19 additions & 0 deletions news/6044-v1-root-dir.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
### Enhancements

* <news item>

### Bug fixes

* Add support for missing `root-dir` setting in `.condarc` and `--croot` argument for v1 recipes (#6043 via #6044).

### Deprecations

* <news item>

### Docs

* Document support for `root-dir` and `--croot` options for building v1 recipes (#6044).

### Other

* <news item>
40 changes: 40 additions & 0 deletions tests/test_v1_recipes.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,22 @@
# Copyright (C) 2014 Anaconda, Inc
# SPDX-License-Identifier: BSD-3-Clause

import os
from pathlib import Path

from rattler_build.package import Package
from rattler_build.render import RenderConfig
from rattler_build.stage0 import Stage0Recipe
from rattler_build.tool_config import PlatformConfig
from rattler_build.variant_config import VariantConfig

from conda_build._rattler_build.compat import run_rattler
from conda_build.cli import main_build
from conda_build.config import Config

from .utils import metadata_dir
from .utils import reset_config as _reset_config


def test_variants():
"""
Expand Down Expand Up @@ -191,3 +201,33 @@ def test_noarch_variant():
assert output2_win["build"]["string"] == "win_95d38b2_0"
assert output2_win["build"]["noarch"] == "generic"
assert output2_win["requirements"]["run"] == [pin]


def test_build_v1_root_dir(testing_workdir, testing_config):
"""Verify that root-dir setting will affect the package output folder"""
recipe = os.path.join(metadata_dir, "..", "variants", "32_v1_recipe")

with open(os.path.join(testing_workdir, ".condarc"), "w") as f:
print(
"conda_build:",
f" root-dir: {testing_workdir}",
"channels:",
" - conda-forge",
sep="\n",
file=f,
)
_reset_config([os.path.join(testing_workdir, ".condarc")])

args = [recipe, "--no-test"]
parser, args = main_build.parse_args(args)
config = Config(**args.__dict__)

run_rattler(command="build", parsed_args=args, config=config)

built_pkgs = [
str(path)
for path in Path(testing_workdir).rglob("*")
if path.name.endswith(".conda")
]

assert built_pkgs, f"No built package found in {testing_workdir}"
Loading