From eb8924ee72edfbab0a2fe95e99966dce8406a5c9 Mon Sep 17 00:00:00 2001 From: Samuel Gaist <samuel.gaist@idiap.ch> Date: Thu, 10 Jan 2019 14:50:24 +0100 Subject: [PATCH] [bootstrap] Add option to use local channel This allows to test bootstrapping the environment with new packages without the need to first have them integrated in bob.conda. --- bob/devtools/bootstrap.py | 9 ++++++--- bob/devtools/scripts/bootstrap.py | 6 ++++-- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/bob/devtools/bootstrap.py b/bob/devtools/bootstrap.py index 21436df0..8b38aced 100644 --- a/bob/devtools/bootstrap.py +++ b/bob/devtools/bootstrap.py @@ -80,7 +80,7 @@ def get_env_directory(conda, name): return None -def conda_create(conda, name, overwrite, condarc, packages, dry_run): +def conda_create(conda, name, overwrite, condarc, packages, dry_run, use_local): specs = [] for k in packages: @@ -104,9 +104,12 @@ def conda_create(conda, name, overwrite, condarc, packages, dry_run): raise RuntimeError('environment `%s\' exists in `%s\' - use ' '--overwrite to overwrite' % (name, envdir)) - cmd = [conda, 'create', '--yes', '--name', name] + sorted(specs) + cmd = [conda, 'create', '--yes', '--name', name] if dry_run: - cmd.insert(2, '--dry-run') + cmd.append('--dry-run') + if use_local: + cmd.append('--use-local') + cmd.extend(sorted(specs)) logger.debug('$ ' + ' '.join(cmd)) status = subprocess.call(cmd) if status != 0: diff --git a/bob/devtools/scripts/bootstrap.py b/bob/devtools/scripts/bootstrap.py index 1f5400c5..07d9f144 100644 --- a/bob/devtools/scripts/bootstrap.py +++ b/bob/devtools/scripts/bootstrap.py @@ -76,10 +76,12 @@ Examples: help='Only goes through the actions, but does not execute them ' \ '(combine with the verbosity flags - e.g. ``-vvv``) to enable ' \ 'printing to help you understand what will be done') +@click.option('--use-local', default=False, + help='Allow the use of local channels for package retrieval') @verbosity_option() @bdt.raise_on_error def bootstrap(name, recipe_dir, python, overwrite, condarc, config, - append_file, docserver, dry_run): + append_file, docserver, dry_run, use_local): """Creates a development environment for a recipe It uses the conda render API to render a recipe and install an environment @@ -117,5 +119,5 @@ def bootstrap(name, recipe_dir, python, overwrite, condarc, config, conda_config = make_conda_config(config, python, append_file, condarc) deps = parse_dependencies(recipe_dir, conda_config) - status = conda_create(conda, name, overwrite, condarc, deps, dry_run) + status = conda_create(conda, name, overwrite, condarc, deps, dry_run, use_local) click.echo('Execute on your shell: "conda activate %s"' % name) -- GitLab