Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Print transaction summary in explicit installs #13940

Merged
merged 4 commits into from
Jun 7, 2024

Conversation

jaimergp
Copy link
Contributor

Description

When install via conda create --file explicit.txt, with explicit.txt having @EXPLICIT in it, you don't get much info in the terminal:

$ conda create -nx --file explicit.txt 
Downloading and Extracting Packages:


Downloading and Extracting Packages:

Preparing transaction: done
Verifying transaction: done
Executing transaction: done

With this one-line PR, we print the usual summary we see in all commands:

$ conda create -nx --file explicit.txt 


Downloading and Extracting Packages:


## Package Plan ##

  environment location: /opt/conda/envs/x

  added / updated specs:
    - conda-forge/linux-aarch64::docutils==0.20.1=py312h8025657_3
    - conda-forge/linux-aarch64::expat==2.6.2=h2f0025b_0
    - conda-forge/linux-aarch64::fmt==10.2.1=h2a328a1_0
    - conda-forge/linux-aarch64::gettext==0.21.1=ha18d298_0
    - conda-forge/linux-aarch64::icu==73.2=h787c7f5_0
    - conda-forge/linux-aarch64::libarchive==3.7.2=hd2f85e0_1
    - conda-forge/linux-aarch64::libexpat==2.6.2=h2f0025b_0
    - conda-forge/linux-aarch64::libgcc-ng==13.2.0=hf8544c7_5
    - conda-forge/linux-aarch64::libgomp==13.2.0=hf8544c7_5
    - conda-forge/linux-aarch64::libiconv==1.17=h31becfc_2
    - conda-forge/linux-aarch64::libmamba==1.5.7=hea3be6c_0
    - conda-forge/linux-aarch64::libmambapy==1.5.7=py312h1e39527_0
    - conda-forge/linux-aarch64::libnsl==2.0.1=h31becfc_0
    - conda-forge/linux-aarch64::libsqlite==3.45.2=h194ca79_0
    - conda-forge/linux-aarch64::libstdcxx-ng==13.2.0=h9a76618_5
    - conda-forge/linux-aarch64::libuuid==2.38.1=hb4cce97_0
    - conda-forge/linux-aarch64::libxcrypt==4.4.36=h31becfc_1
    - conda-forge/linux-aarch64::libxml2==2.12.6=h3091e33_0
    - conda-forge/linux-aarch64::libzlib==1.2.13=h31becfc_5
    - conda-forge/linux-aarch64::minio-server==2024.03.10.02.53.48=hcefe29a_0
    - conda-forge/linux-aarch64::openssl==3.2.1=h31becfc_1
    - conda-forge/linux-aarch64::python==3.12.2=h43d1f9e_0_cpython
    - conda-forge/linux-aarch64::python_abi==3.12=4_cp312
    - conda-forge/linux-aarch64::tk==8.6.13=h194ca79_0
    - conda-forge/linux-aarch64::zlib==1.2.13=h31becfc_5
    - conda-forge/noarch::distlib==0.3.8=pyhd8ed1ab_0
    - conda-forge/noarch::doc8==1.1.1=pyhd8ed1ab_0
    - conda-forge/noarch::pre-commit==3.6.2=pyha770c72_0
    - conda-forge/noarch::pytest-split==0.8.2=pyhd8ed1ab_0
    - conda-forge/noarch::pytest-xprocess==0.23.0=pyhd8ed1ab_0
    - conda-forge/noarch::restructuredtext_lint==1.4.0=pyhd8ed1ab_0
    - conda-forge/noarch::rstcheck-core==1.2.0=pyhd8ed1ab_0
    - conda-forge/noarch::rstcheck==6.2.0=pyhd8ed1ab_0
    - conda-forge/noarch::stevedore==5.2.0=pyhd8ed1ab_0
    - conda-forge/noarch::virtualenv==20.25.1=pyhd8ed1ab_0
    - conda-forge/noarch::xdoctest==1.1.3=pyhd8ed1ab_0
    - defaults/linux-aarch64::_libgcc_mutex==0.1=main
    - defaults/linux-aarch64::_openmp_mutex==5.1=51_gnu
    - defaults/linux-aarch64::anaconda-anon-usage==0.4.3=py312h7d20cce_100
    - defaults/linux-aarch64::anaconda-client==1.12.3=py312hd43f75c_0
    - defaults/linux-aarch64::annotated-types==0.6.0=py312hd43f75c_0
    - defaults/linux-aarch64::attrs==23.1.0=py312hd43f75c_0
    - defaults/linux-aarch64::boltons==23.0.0=py312hd43f75c_0
    - defaults/linux-aarch64::boto3==1.29.1=py312hd43f75c_0
    - defaults/linux-aarch64::botocore==1.32.1=py312hd43f75c_0
    - defaults/linux-aarch64::brotli-python==1.0.9=py312h419075a_7
    - defaults/linux-aarch64::bzip2==1.0.8=hfd63f10_2
    - defaults/linux-aarch64::c-ares==1.19.1=h998d150_0
    - defaults/linux-aarch64::ca-certificates==2024.3.11=hd43f75c_0
    - defaults/linux-aarch64::certifi==2024.2.2=py312hd43f75c_0
    - defaults/linux-aarch64::cffi==1.16.0=py312h998d150_0
    - defaults/linux-aarch64::cfgv==3.4.0=py312hd43f75c_0
    - defaults/linux-aarch64::click==8.1.7=py312hd43f75c_0
    - defaults/linux-aarch64::colorama==0.4.6=py312hd43f75c_0
    - defaults/linux-aarch64::conda-content-trust==0.2.0=py312hd43f75c_0
    - defaults/linux-aarch64::conda-package-handling==2.2.0=py312hd43f75c_0
    - defaults/linux-aarch64::conda-package-streaming==0.9.0=py312hd43f75c_0
    - defaults/linux-aarch64::conda==24.3.0=py312hd43f75c_0
    - defaults/linux-aarch64::coverage==7.2.2=py312h998d150_0
    - defaults/linux-aarch64::cryptography==42.0.5=py312h5077475_0
    - defaults/linux-aarch64::curl==8.5.0=h6ac735f_0
    - defaults/linux-aarch64::distro==1.8.0=py312hd43f75c_0
    - defaults/linux-aarch64::filelock==3.13.1=py312hd43f75c_0
    - defaults/linux-aarch64::flask==2.2.5=py312hd43f75c_0
    - defaults/linux-aarch64::gdbm==1.18=hf59d7a7_4
    - defaults/linux-aarch64::git==2.40.1=pl5340h372b8bf_1
    - defaults/linux-aarch64::identify==2.5.5=py312hd43f75c_0
    - defaults/linux-aarch64::idna==3.4=py312hd43f75c_0
    - defaults/linux-aarch64::jinja2==3.1.3=py312hd43f75c_0
    - defaults/linux-aarch64::jmespath==1.0.1=py312hd43f75c_0
    - defaults/linux-aarch64::jsonpatch==1.33=py312hd43f75c_0
    - defaults/linux-aarch64::jsonschema-specifications==2023.7.1=py312hd43f75c_0
    - defaults/linux-aarch64::jsonschema==4.19.2=py312hd43f75c_0
    - defaults/linux-aarch64::jupyter_core==5.5.0=py312hd43f75c_0
    - defaults/linux-aarch64::krb5==1.20.1=h2e2fba8_1
    - defaults/linux-aarch64::ld_impl_linux-aarch64==2.38=h8131f2d_1
    - defaults/linux-aarch64::libcurl==8.5.0=hfa2bbb0_0
    - defaults/linux-aarch64::libedit==3.1.20230828=h998d150_0
    - defaults/linux-aarch64::libev==4.33=hfd63f10_1
    - defaults/linux-aarch64::libffi==3.4.4=h419075a_0
    - defaults/linux-aarch64::libnghttp2==1.57.0=hb788212_0
    - defaults/linux-aarch64::libsolv==0.7.24=h94b7715_0
    - defaults/linux-aarch64::libssh2==1.10.0=h6ac735f_2
    - defaults/linux-aarch64::lz4-c==1.9.4=h419075a_0
    - defaults/linux-aarch64::lzo==2.10=hfd63f10_4
    - defaults/linux-aarch64::markdown-it-py==2.2.0=py312hd43f75c_1
    - defaults/linux-aarch64::markupsafe==2.1.3=py312h998d150_0
    - defaults/linux-aarch64::mdurl==0.1.0=py312hd43f75c_0
    - defaults/linux-aarch64::menuinst==2.0.2=py312hd43f75c_0
    - defaults/linux-aarch64::nbformat==5.9.2=py312hd43f75c_0
    - defaults/linux-aarch64::ncurses==6.4=h419075a_0
    - defaults/linux-aarch64::nodeenv==1.7.0=py312hd43f75c_0
    - defaults/linux-aarch64::packaging==23.2=py312hd43f75c_0
    - defaults/linux-aarch64::patchelf==0.17.2=h419075a_0
    - defaults/linux-aarch64::pcre2==10.42=hcfaa891_0
    - defaults/linux-aarch64::perl==5.34.0=h998d150_2
    - defaults/linux-aarch64::pip==23.3.1=py312hd43f75c_0
    - defaults/linux-aarch64::platformdirs==3.10.0=py312hd43f75c_0
    - defaults/linux-aarch64::pluggy==1.0.0=py312hd43f75c_1
    - defaults/linux-aarch64::psutil==5.9.0=py312h998d150_0
    - defaults/linux-aarch64::pycosat==0.6.6=py312h998d150_0
    - defaults/linux-aarch64::pydantic-core==2.14.6=py312h7f3cb11_0
    - defaults/linux-aarch64::pydantic==2.5.3=py312hd43f75c_0
    - defaults/linux-aarch64::pygments==2.15.1=py312hd43f75c_1
    - defaults/linux-aarch64::pysocks==1.7.1=py312hd43f75c_0
    - defaults/linux-aarch64::pytest-cov==4.1.0=py312hd43f75c_1
    - defaults/linux-aarch64::pytest-mock==3.10.0=py312hd43f75c_0
    - defaults/linux-aarch64::pytest-rerunfailures==12.0=py312hd43f75c_0
    - defaults/linux-aarch64::pytest-timeout==2.2.0=py312hd43f75c_0
    - defaults/linux-aarch64::pytest==7.4.0=py312hd43f75c_0
    - defaults/linux-aarch64::python-fastjsonschema==2.16.2=py312hd43f75c_0
    - defaults/linux-aarch64::pytz==2023.3.post1=py312hd43f75c_0
    - defaults/linux-aarch64::pyyaml==6.0.1=py312h998d150_0
    - defaults/linux-aarch64::readline==8.2=h998d150_0
    - defaults/linux-aarch64::referencing==0.30.2=py312hd43f75c_0
    - defaults/linux-aarch64::reproc-cpp==14.2.4=h22f4aa5_1
    - defaults/linux-aarch64::reproc==14.2.4=h22f4aa5_1
    - defaults/linux-aarch64::requests-toolbelt==1.0.0=py312hd43f75c_0
    - defaults/linux-aarch64::requests==2.31.0=py312hd43f75c_1
    - defaults/linux-aarch64::rich==13.3.5=py312hd43f75c_1
    - defaults/linux-aarch64::rpds-py==0.10.6=py312h7f3cb11_0
    - defaults/linux-aarch64::ruamel.yaml==0.17.21=py312h998d150_0
    - defaults/linux-aarch64::s3transfer==0.7.0=py312hd43f75c_0
    - defaults/linux-aarch64::setuptools-scm==8.0.4=py312hd43f75c_0
    - defaults/linux-aarch64::setuptools==68.2.2=py312hd43f75c_0
    - defaults/linux-aarch64::shellingham==1.5.0=py312hd43f75c_0
    - defaults/linux-aarch64::sqlite==3.41.2=h998d150_0
    - defaults/linux-aarch64::tomli==2.0.1=py312hd43f75c_1
    - defaults/linux-aarch64::tqdm==4.65.0=py312h42ac6d5_0
    - defaults/linux-aarch64::traitlets==5.7.1=py312hd43f75c_0
    - defaults/linux-aarch64::truststore==0.8.0=py312hd43f75c_0
    - defaults/linux-aarch64::typer==0.9.0=py312hd43f75c_0
    - defaults/linux-aarch64::typing-extensions==4.9.0=py312hd43f75c_1
    - defaults/linux-aarch64::typing_extensions==4.9.0=py312hd43f75c_1
    - defaults/linux-aarch64::ukkonen==1.0.1=py312hb8fdbf2_0
    - defaults/linux-aarch64::urllib3==2.0.3=py312hd43f75c_0
    - defaults/linux-aarch64::werkzeug==2.3.8=py312hd43f75c_0
    - defaults/linux-aarch64::wheel==0.41.2=py312hd43f75c_0
    - defaults/linux-aarch64::xz==5.4.5=h998d150_0
    - defaults/linux-aarch64::yaml-cpp==0.8.0=h419075a_0
    - defaults/linux-aarch64::yaml==0.2.5=hfd63f10_0
    - defaults/linux-aarch64::zipp==3.17.0=py312hd43f75c_0
    - defaults/linux-aarch64::zstandard==0.19.0=py312h998d150_0
    - defaults/linux-aarch64::zstd==1.5.5=h6a09583_0
    - defaults/noarch::archspec==0.2.3=pyhd3eb1b0_0
    - defaults/noarch::charset-normalizer==2.0.4=pyhd3eb1b0_0
    - defaults/noarch::conda-libmamba-solver==24.1.0=pyhd3eb1b0_0
    - defaults/noarch::defusedxml==0.7.1=pyhd3eb1b0_0
    - defaults/noarch::importlib-metadata==2.0.0=py_1
    - defaults/noarch::iniconfig==1.1.1=pyhd3eb1b0_0
    - defaults/noarch::itsdangerous==2.0.1=pyhd3eb1b0_0
    - defaults/noarch::jsonpointer==2.1=pyhd3eb1b0_0
    - defaults/noarch::pbr==5.6.0=pyhd3eb1b0_0
    - defaults/noarch::pexpect==4.8.0=pyhd3eb1b0_3
    - defaults/noarch::ptyprocess==0.7.0=pyhd3eb1b0_2
    - defaults/noarch::pybind11-abi==4=hd3eb1b0_1
    - defaults/noarch::pycparser==2.21=pyhd3eb1b0_0
    - defaults/noarch::python-dateutil==2.8.2=pyhd3eb1b0_0
    - defaults/noarch::responses==0.13.3=pyhd3eb1b0_0
    - defaults/noarch::setuptools_scm==8.0.4=hd3eb1b0_0
    - defaults/noarch::six==1.16.0=pyhd3eb1b0_1
    - defaults/noarch::toml==0.10.2=pyhd3eb1b0_0
    - defaults/noarch::tzdata==2023d=h04d1e81_0


The following NEW packages will be INSTALLED:

  _libgcc_mutex      pkgs/main/linux-aarch64::_libgcc_mutex-0.1-main 
  _openmp_mutex      pkgs/main/linux-aarch64::_openmp_mutex-5.1-51_gnu 
  anaconda-anon-usa~ pkgs/main/linux-aarch64::anaconda-anon-usage-0.4.3-py312h7d20cce_100 
  anaconda-client    pkgs/main/linux-aarch64::anaconda-client-1.12.3-py312hd43f75c_0 
  annotated-types    pkgs/main/linux-aarch64::annotated-types-0.6.0-py312hd43f75c_0 
  archspec           pkgs/main/noarch::archspec-0.2.3-pyhd3eb1b0_0 
  attrs              pkgs/main/linux-aarch64::attrs-23.1.0-py312hd43f75c_0 
  boltons            pkgs/main/linux-aarch64::boltons-23.0.0-py312hd43f75c_0 
  boto3              pkgs/main/linux-aarch64::boto3-1.29.1-py312hd43f75c_0 
  botocore           pkgs/main/linux-aarch64::botocore-1.32.1-py312hd43f75c_0 
  brotli-python      pkgs/main/linux-aarch64::brotli-python-1.0.9-py312h419075a_7 
  bzip2              pkgs/main/linux-aarch64::bzip2-1.0.8-hfd63f10_2 
  c-ares             pkgs/main/linux-aarch64::c-ares-1.19.1-h998d150_0 
  ca-certificates    pkgs/main/linux-aarch64::ca-certificates-2024.3.11-hd43f75c_0 
  certifi            pkgs/main/linux-aarch64::certifi-2024.2.2-py312hd43f75c_0 
  cffi               pkgs/main/linux-aarch64::cffi-1.16.0-py312h998d150_0 
  cfgv               pkgs/main/linux-aarch64::cfgv-3.4.0-py312hd43f75c_0 
  charset-normalizer pkgs/main/noarch::charset-normalizer-2.0.4-pyhd3eb1b0_0 
  click              pkgs/main/linux-aarch64::click-8.1.7-py312hd43f75c_0 
  colorama           pkgs/main/linux-aarch64::colorama-0.4.6-py312hd43f75c_0 
  conda              pkgs/main/linux-aarch64::conda-24.3.0-py312hd43f75c_0 
  conda-content-tru~ pkgs/main/linux-aarch64::conda-content-trust-0.2.0-py312hd43f75c_0 
  conda-libmamba-so~ pkgs/main/noarch::conda-libmamba-solver-24.1.0-pyhd3eb1b0_0 
  conda-package-han~ pkgs/main/linux-aarch64::conda-package-handling-2.2.0-py312hd43f75c_0 
  conda-package-str~ pkgs/main/linux-aarch64::conda-package-streaming-0.9.0-py312hd43f75c_0 
  coverage           pkgs/main/linux-aarch64::coverage-7.2.2-py312h998d150_0 
  cryptography       pkgs/main/linux-aarch64::cryptography-42.0.5-py312h5077475_0 
  curl               pkgs/main/linux-aarch64::curl-8.5.0-h6ac735f_0 
  defusedxml         pkgs/main/noarch::defusedxml-0.7.1-pyhd3eb1b0_0 
  distlib            conda-forge/noarch::distlib-0.3.8-pyhd8ed1ab_0 
  distro             pkgs/main/linux-aarch64::distro-1.8.0-py312hd43f75c_0 
  doc8               conda-forge/noarch::doc8-1.1.1-pyhd8ed1ab_0 
  docutils           conda-forge/linux-aarch64::docutils-0.20.1-py312h8025657_3 
  expat              conda-forge/linux-aarch64::expat-2.6.2-h2f0025b_0 
  filelock           pkgs/main/linux-aarch64::filelock-3.13.1-py312hd43f75c_0 
  flask              pkgs/main/linux-aarch64::flask-2.2.5-py312hd43f75c_0 
  fmt                conda-forge/linux-aarch64::fmt-10.2.1-h2a328a1_0 
  gdbm               pkgs/main/linux-aarch64::gdbm-1.18-hf59d7a7_4 
  gettext            conda-forge/linux-aarch64::gettext-0.21.1-ha18d298_0 
  git                pkgs/main/linux-aarch64::git-2.40.1-pl5340h372b8bf_1 
  icu                conda-forge/linux-aarch64::icu-73.2-h787c7f5_0 
  identify           pkgs/main/linux-aarch64::identify-2.5.5-py312hd43f75c_0 
  idna               pkgs/main/linux-aarch64::idna-3.4-py312hd43f75c_0 
  importlib-metadata pkgs/main/noarch::importlib-metadata-2.0.0-py_1 
  iniconfig          pkgs/main/noarch::iniconfig-1.1.1-pyhd3eb1b0_0 
  itsdangerous       pkgs/main/noarch::itsdangerous-2.0.1-pyhd3eb1b0_0 
  jinja2             pkgs/main/linux-aarch64::jinja2-3.1.3-py312hd43f75c_0 
  jmespath           pkgs/main/linux-aarch64::jmespath-1.0.1-py312hd43f75c_0 
  jsonpatch          pkgs/main/linux-aarch64::jsonpatch-1.33-py312hd43f75c_0 
  jsonpointer        pkgs/main/noarch::jsonpointer-2.1-pyhd3eb1b0_0 
  jsonschema         pkgs/main/linux-aarch64::jsonschema-4.19.2-py312hd43f75c_0 
  jsonschema-specif~ pkgs/main/linux-aarch64::jsonschema-specifications-2023.7.1-py312hd43f75c_0 
  jupyter_core       pkgs/main/linux-aarch64::jupyter_core-5.5.0-py312hd43f75c_0 
  krb5               pkgs/main/linux-aarch64::krb5-1.20.1-h2e2fba8_1 
  ld_impl_linux-aar~ pkgs/main/linux-aarch64::ld_impl_linux-aarch64-2.38-h8131f2d_1 
  libarchive         conda-forge/linux-aarch64::libarchive-3.7.2-hd2f85e0_1 
  libcurl            pkgs/main/linux-aarch64::libcurl-8.5.0-hfa2bbb0_0 
  libedit            pkgs/main/linux-aarch64::libedit-3.1.20230828-h998d150_0 
  libev              pkgs/main/linux-aarch64::libev-4.33-hfd63f10_1 
  libexpat           conda-forge/linux-aarch64::libexpat-2.6.2-h2f0025b_0 
  libffi             pkgs/main/linux-aarch64::libffi-3.4.4-h419075a_0 
  libgcc-ng          conda-forge/linux-aarch64::libgcc-ng-13.2.0-hf8544c7_5 
  libgomp            conda-forge/linux-aarch64::libgomp-13.2.0-hf8544c7_5 
  libiconv           conda-forge/linux-aarch64::libiconv-1.17-h31becfc_2 
  libmamba           conda-forge/linux-aarch64::libmamba-1.5.7-hea3be6c_0 
  libmambapy         conda-forge/linux-aarch64::libmambapy-1.5.7-py312h1e39527_0 
  libnghttp2         pkgs/main/linux-aarch64::libnghttp2-1.57.0-hb788212_0 
  libnsl             conda-forge/linux-aarch64::libnsl-2.0.1-h31becfc_0 
  libsolv            pkgs/main/linux-aarch64::libsolv-0.7.24-h94b7715_0 
  libsqlite          conda-forge/linux-aarch64::libsqlite-3.45.2-h194ca79_0 
  libssh2            pkgs/main/linux-aarch64::libssh2-1.10.0-h6ac735f_2 
  libstdcxx-ng       conda-forge/linux-aarch64::libstdcxx-ng-13.2.0-h9a76618_5 
  libuuid            conda-forge/linux-aarch64::libuuid-2.38.1-hb4cce97_0 
  libxcrypt          conda-forge/linux-aarch64::libxcrypt-4.4.36-h31becfc_1 
  libxml2            conda-forge/linux-aarch64::libxml2-2.12.6-h3091e33_0 
  libzlib            conda-forge/linux-aarch64::libzlib-1.2.13-h31becfc_5 
  lz4-c              pkgs/main/linux-aarch64::lz4-c-1.9.4-h419075a_0 
  lzo                pkgs/main/linux-aarch64::lzo-2.10-hfd63f10_4 
  markdown-it-py     pkgs/main/linux-aarch64::markdown-it-py-2.2.0-py312hd43f75c_1 
  markupsafe         pkgs/main/linux-aarch64::markupsafe-2.1.3-py312h998d150_0 
  mdurl              pkgs/main/linux-aarch64::mdurl-0.1.0-py312hd43f75c_0 
  menuinst           pkgs/main/linux-aarch64::menuinst-2.0.2-py312hd43f75c_0 
  minio-server       conda-forge/linux-aarch64::minio-server-2024.03.10.02.53.48-hcefe29a_0 
  nbformat           pkgs/main/linux-aarch64::nbformat-5.9.2-py312hd43f75c_0 
  ncurses            pkgs/main/linux-aarch64::ncurses-6.4-h419075a_0 
  nodeenv            pkgs/main/linux-aarch64::nodeenv-1.7.0-py312hd43f75c_0 
  openssl            conda-forge/linux-aarch64::openssl-3.2.1-h31becfc_1 
  packaging          pkgs/main/linux-aarch64::packaging-23.2-py312hd43f75c_0 
  patchelf           pkgs/main/linux-aarch64::patchelf-0.17.2-h419075a_0 
  pbr                pkgs/main/noarch::pbr-5.6.0-pyhd3eb1b0_0 
  pcre2              pkgs/main/linux-aarch64::pcre2-10.42-hcfaa891_0 
  perl               pkgs/main/linux-aarch64::perl-5.34.0-h998d150_2 
  pexpect            pkgs/main/noarch::pexpect-4.8.0-pyhd3eb1b0_3 
  pip                pkgs/main/linux-aarch64::pip-23.3.1-py312hd43f75c_0 
  platformdirs       pkgs/main/linux-aarch64::platformdirs-3.10.0-py312hd43f75c_0 
  pluggy             pkgs/main/linux-aarch64::pluggy-1.0.0-py312hd43f75c_1 
  pre-commit         conda-forge/noarch::pre-commit-3.6.2-pyha770c72_0 
  psutil             pkgs/main/linux-aarch64::psutil-5.9.0-py312h998d150_0 
  ptyprocess         pkgs/main/noarch::ptyprocess-0.7.0-pyhd3eb1b0_2 
  pybind11-abi       pkgs/main/noarch::pybind11-abi-4-hd3eb1b0_1 
  pycosat            pkgs/main/linux-aarch64::pycosat-0.6.6-py312h998d150_0 
  pycparser          pkgs/main/noarch::pycparser-2.21-pyhd3eb1b0_0 
  pydantic           pkgs/main/linux-aarch64::pydantic-2.5.3-py312hd43f75c_0 
  pydantic-core      pkgs/main/linux-aarch64::pydantic-core-2.14.6-py312h7f3cb11_0 
  pygments           pkgs/main/linux-aarch64::pygments-2.15.1-py312hd43f75c_1 
  pysocks            pkgs/main/linux-aarch64::pysocks-1.7.1-py312hd43f75c_0 
  pytest             pkgs/main/linux-aarch64::pytest-7.4.0-py312hd43f75c_0 
  pytest-cov         pkgs/main/linux-aarch64::pytest-cov-4.1.0-py312hd43f75c_1 
  pytest-mock        pkgs/main/linux-aarch64::pytest-mock-3.10.0-py312hd43f75c_0 
  pytest-rerunfailu~ pkgs/main/linux-aarch64::pytest-rerunfailures-12.0-py312hd43f75c_0 
  pytest-split       conda-forge/noarch::pytest-split-0.8.2-pyhd8ed1ab_0 
  pytest-timeout     pkgs/main/linux-aarch64::pytest-timeout-2.2.0-py312hd43f75c_0 
  pytest-xprocess    conda-forge/noarch::pytest-xprocess-0.23.0-pyhd8ed1ab_0 
  python             conda-forge/linux-aarch64::python-3.12.2-h43d1f9e_0_cpython 
  python-dateutil    pkgs/main/noarch::python-dateutil-2.8.2-pyhd3eb1b0_0 
  python-fastjsonsc~ pkgs/main/linux-aarch64::python-fastjsonschema-2.16.2-py312hd43f75c_0 
  python_abi         conda-forge/linux-aarch64::python_abi-3.12-4_cp312 
  pytz               pkgs/main/linux-aarch64::pytz-2023.3.post1-py312hd43f75c_0 
  pyyaml             pkgs/main/linux-aarch64::pyyaml-6.0.1-py312h998d150_0 
  readline           pkgs/main/linux-aarch64::readline-8.2-h998d150_0 
  referencing        pkgs/main/linux-aarch64::referencing-0.30.2-py312hd43f75c_0 
  reproc             pkgs/main/linux-aarch64::reproc-14.2.4-h22f4aa5_1 
  reproc-cpp         pkgs/main/linux-aarch64::reproc-cpp-14.2.4-h22f4aa5_1 
  requests           pkgs/main/linux-aarch64::requests-2.31.0-py312hd43f75c_1 
  requests-toolbelt  pkgs/main/linux-aarch64::requests-toolbelt-1.0.0-py312hd43f75c_0 
  responses          pkgs/main/noarch::responses-0.13.3-pyhd3eb1b0_0 
  restructuredtext_~ conda-forge/noarch::restructuredtext_lint-1.4.0-pyhd8ed1ab_0 
  rich               pkgs/main/linux-aarch64::rich-13.3.5-py312hd43f75c_1 
  rpds-py            pkgs/main/linux-aarch64::rpds-py-0.10.6-py312h7f3cb11_0 
  rstcheck           conda-forge/noarch::rstcheck-6.2.0-pyhd8ed1ab_0 
  rstcheck-core      conda-forge/noarch::rstcheck-core-1.2.0-pyhd8ed1ab_0 
  ruamel.yaml        pkgs/main/linux-aarch64::ruamel.yaml-0.17.21-py312h998d150_0 
  s3transfer         pkgs/main/linux-aarch64::s3transfer-0.7.0-py312hd43f75c_0 
  setuptools         pkgs/main/linux-aarch64::setuptools-68.2.2-py312hd43f75c_0 
  setuptools-scm     pkgs/main/linux-aarch64::setuptools-scm-8.0.4-py312hd43f75c_0 
  setuptools_scm     pkgs/main/noarch::setuptools_scm-8.0.4-hd3eb1b0_0 
  shellingham        pkgs/main/linux-aarch64::shellingham-1.5.0-py312hd43f75c_0 
  six                pkgs/main/noarch::six-1.16.0-pyhd3eb1b0_1 
  sqlite             pkgs/main/linux-aarch64::sqlite-3.41.2-h998d150_0 
  stevedore          conda-forge/noarch::stevedore-5.2.0-pyhd8ed1ab_0 
  tk                 conda-forge/linux-aarch64::tk-8.6.13-h194ca79_0 
  toml               pkgs/main/noarch::toml-0.10.2-pyhd3eb1b0_0 
  tomli              pkgs/main/linux-aarch64::tomli-2.0.1-py312hd43f75c_1 
  tqdm               pkgs/main/linux-aarch64::tqdm-4.65.0-py312h42ac6d5_0 
  traitlets          pkgs/main/linux-aarch64::traitlets-5.7.1-py312hd43f75c_0 
  truststore         pkgs/main/linux-aarch64::truststore-0.8.0-py312hd43f75c_0 
  typer              pkgs/main/linux-aarch64::typer-0.9.0-py312hd43f75c_0 
  typing-extensions  pkgs/main/linux-aarch64::typing-extensions-4.9.0-py312hd43f75c_1 
  typing_extensions  pkgs/main/linux-aarch64::typing_extensions-4.9.0-py312hd43f75c_1 
  tzdata             pkgs/main/noarch::tzdata-2023d-h04d1e81_0 
  ukkonen            pkgs/main/linux-aarch64::ukkonen-1.0.1-py312hb8fdbf2_0 
  urllib3            pkgs/main/linux-aarch64::urllib3-2.0.3-py312hd43f75c_0 
  virtualenv         conda-forge/noarch::virtualenv-20.25.1-pyhd8ed1ab_0 
  werkzeug           pkgs/main/linux-aarch64::werkzeug-2.3.8-py312hd43f75c_0 
  wheel              pkgs/main/linux-aarch64::wheel-0.41.2-py312hd43f75c_0 
  xdoctest           conda-forge/noarch::xdoctest-1.1.3-pyhd8ed1ab_0 
  xz                 pkgs/main/linux-aarch64::xz-5.4.5-h998d150_0 
  yaml               pkgs/main/linux-aarch64::yaml-0.2.5-hfd63f10_0 
  yaml-cpp           pkgs/main/linux-aarch64::yaml-cpp-0.8.0-h419075a_0 
  zipp               pkgs/main/linux-aarch64::zipp-3.17.0-py312hd43f75c_0 
  zlib               conda-forge/linux-aarch64::zlib-1.2.13-h31becfc_5 
  zstandard          pkgs/main/linux-aarch64::zstandard-0.19.0-py312h998d150_0 
  zstd               pkgs/main/linux-aarch64::zstd-1.5.5-h6a09583_0 



Downloading and Extracting Packages:

Preparing transaction: done
Verifying transaction: done
Executing transaction: done

The old terse style can still be achieved with --quiet.

Checklist - did you ...

  • Add a file to the news directory (using the template) for the next release's release notes?
  • Add / update necessary tests?
  • Add / update outdated documentation?

@conda-bot conda-bot added the cla-signed [bot] added once the contributor has signed the CLA label May 24, 2024
Copy link

codspeed-hq bot commented May 24, 2024

CodSpeed Performance Report

Merging #13940 will not alter performance

Comparing jaimergp:better-explicit-ux (07c87b6) with main (cef2e58)

Summary

✅ 21 untouched benchmarks

@jaimergp jaimergp marked this pull request as ready for review May 24, 2024 15:58
@jaimergp jaimergp requested a review from a team as a code owner May 24, 2024 15:58
@@ -251,6 +251,9 @@ def install(args, parser, command="install"):
if num_cp:
if num_cp == len(args_packages):
explicit(args_packages, prefix, verbose=not context.quiet)
if newenv:
touch_nonadmin(prefix)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is the touch_nonadmin needed?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

menuinst shenanigans. $PREFIX/.nonadmin is used as a marker to avoid trying a superuser elevation on Windows. It's... messy, but unfortunately legacy behavior that we need to maintain for backwards compatibility. I think @marcoesters looked into it not long ago, and we can probably remove this at some point.

That said, this change here is only making things consistent with the other logic in this module that end up creating new environments.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, menuinst has the (in my opinion unfortunate) design choice that it's admin by default unless it finds that .nonadmin file. Writing it into a new environment makes sense to me, or you could install menuinst into the new environment and risk privilege escalation.

we can probably remove this at some point.

That's a separate conversation, but this will be very hard to do without breaking installations with older menuinst versions if we do a 180 here. That's a major breaking change.

@jaimergp
Copy link
Contributor Author

jaimergp commented Jun 5, 2024

This is ready for review @conda/conda-core

@jezdez jezdez merged commit 1932fc1 into conda:main Jun 7, 2024
66 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cla-signed [bot] added once the contributor has signed the CLA
Projects
Status: 🏁 Done
Development

Successfully merging this pull request may close these issues.

None yet

5 participants