Спасибо за создание / поддержку этой замечательной акции!
Кажется, что настройка conda
занимает больше времени, чем обычно. Например, взгляните на этот журнал , шаг «Настройка conda». Настройка conda занимает 3 с половиной минуты (без учета установки зависимостей). Это ожидается или я что-то делаю не так?
Еще раз, спасибо!
Привет @ ma-sadeghi, спасибо за добрые слова и за использование акции :)
Кажется, что настройка одной только конды занимает больше времени, чем обычно.
Изменилось ли это в какой-либо более новой версии? Когда вы заметили, начали это замечать?
Просто интересно, чтобы мы могли определить любую потенциальную проблему.
@ conda-incubator / setup-miniconda-team заметили ли вы что-нибудь похожее на описанное?
Та же проблема для меня с использованием мамбы (без установки моих deps во время действия) и с последней версией v2.
@bollwyvl Я мог бы отладить это вручную
В случае, если это поможет (я не могу поделиться журналами):
steps:
- name: Checkout the code
uses: actions/checkout<strong i="6">@v2</strong>
- name: Cache conda
uses: actions/cache<strong i="7">@v1</strong>
env:
CACHE_NUMBER: 2
with:
path: ~/conda_pkgs_dir
key: conda-${{ runner.os }}-${{ env.CACHE_NUMBER }}-${{ hashFiles('env.yml') }}
- name: Setup conda
uses: conda-incubator/setup-miniconda<strong i="8">@v2</strong>
with:
mamba-version: "*"
channels: conda-forge,defaults
channel-priority: true
use-only-tar-bz2: true
Спасибо @hadim за пример. Добавим PR для проверки изменений, которые привели к регрессу.
Привет @ ma-sadeghi, спасибо за добрые слова и за использование акции :)
Кажется, что настройка одной только конды занимает больше времени, чем обычно.
Изменилось ли это в какой-либо более новой версии? Когда вы заметили, начали это замечать?
Просто интересно, чтобы мы могли определить любую потенциальную проблему.
@ conda-incubator / setup-miniconda-team заметили ли вы что-нибудь похожее на описанное?
Я почти уверен, что раньше это было намного быстрее в первый раз, когда я использовал этот Экшен, с головы до ног, может быть, на настройку conda ушло около 1 минуты, теперь это 3:30 минуты. Наш проект является общедоступным, и мы давно не использовали это действие, поэтому не стесняйтесь проверять наши журналы на случай, если это поможет отладить проблему: https://github.com/PMEAL/OpenPNM/actions
Из связанных журналов:
Tue, 10 Nov 2020 21:09:23 GMT /usr/share/miniconda/condabin/conda update conda
Tue, 10 Nov 2020 21:09:54 GMT Collecting package metadata (repodata.json): ...working... done
Tue, 10 Nov 2020 21:10:07 GMT Solving environment: ...working... done
Tue, 10 Nov 2020 21:11:56 GMT
Tue, 10 Nov 2020 21:11:56 GMT ## Package Plan ##
Итак, несколько ненаучно:
Единственное, о чем я могу думать, - это добавление conda-forge
, что приводит к перегрузке решателя с дополнительными 10k + пакетами (и всеми их версиями).
Некоторые варианты, вне моей головы:
auto-update-conda
в false
conda-lock
conda-update-channels: defaults
::group::Boring stuff
::endgroup::
чтобы было легче отслеживать жизненный цикл команд верхнего уровня, выполняемых этим действием (мне пришлось отряхнуть пыль со своих панд, чтобы выполнить некоторые задания по времени)micromaba
(опять же, экономия пары решает) https://github.com/conda-incubator/setup-miniconda/issues/75#issuecomment -698024879Как бы то ни было, большая часть времени уходит на установку мамбы:
Связанный конфиг:
- name: Cache conda
uses: actions/cache<strong i="9">@v2</strong>
env:
CACHE_NUMBER: 3
with:
path: ~/conda_pkgs_dir
key: conda-${{ runner.os }}-${{ env.CACHE_NUMBER }}-${{ hashFiles('env.yml') }}
- name: Setup conda
uses: conda-incubator/setup-miniconda<strong i="10">@v2</strong>
with:
python-version: 3.7
mamba-version: "*"
channels: conda-forge,defaults
channel-priority: true
use-only-tar-bz2: true
activate-environment: nova
Можно ли использовать что-то вроде микромамбы вместо миниконды или минифорж?
Глядя на детали, этап решения занимает 99% времени.
Если эта проблема будет решена, маршрут мини-холодильника по умолчанию предоставит это: D
Я подтверждаю, что недавно выпущенный установщик MambaForge ускоряет CI:
- name: Setup conda
uses: conda-incubator/setup-miniconda<strong i="6">@v2</strong>
with:
installer-url: https://github.com/conda-forge/miniforge/releases/download/4.9.2-2/Mambaforge-Linux-x86_64.sh
channel-priority: true
use-only-tar-bz2: true
activate-environment: my-env
- name: Anaconda Login
run: |
# Bypass the installation of anaconda-client
TOKEN_DIR="$HOME/.config/binstar"
TOKEN_PATH="$TOKEN_DIR/https%3A%2F%2Fapi.anaconda.org.token"
mkdir -p $TOKEN_DIR
echo -e "${ANACONDA_USER_TOKEN}\c" > $TOKEN_PATH
- name: Install Dependencies
run: mamba env update -f env.yml
(фрагмент также включает в себя способ входа в anaconda без необходимости установки anaconda-client
. Может быть полезным для некоторых здесь.)
Как это работает с mamba-version
? Это нужно? Нужна ли проверка, есть ли уже существующий mamba
?
Хороший вопрос, на самом деле я не знаю. Новый установщик по умолчанию отправляет mamba
, и я использую его напрямую без mamba-version
.
Мне нужно сначала войти в anaconda (см. Фрагмент), поэтому я не полагаюсь на setup-conda
для установки моего env.
Я предполагаю, что если вы хотите использовать setup-conda
для установки файла env, setup-conda
следует изменить, чтобы действительно проверять наличие мамбы и обходить ее установку, если она существует.
Может быть, кто-нибудь из @ conda-incubator / setup-miniconda-team сможет подтвердить или нет?
Сейчас впереди еще много интересных моментов, чем просто _использовать то, что на диске_ против _получить установщик по URL-адресу со схемой, которую мы могли предсказать за полдесятилетия_, и поведение текущего кода с / п / т до mamba
трудно рассуждать.
Держу пари, если вы предоставите mamba-version
, он _ все еще_ будет пытаться установить mamba
из conda-forge
, даже если он уже там, и _ все еще_ использует conda
для всего, что _ кроме_ решения среды (например, conda config
). Это свело бы на нет большинство преимуществ от того, что он уже был на диске после установки. Поскольку такой установщик с mamba
не существовал до 13 часов назад, это не было проблемой ... я думаю, нам, вероятно, понадобится что-то вроде conda-exe: mamba
если вы _знаете_, что это уже установлен, так как даже если он _is_ доступен, вы можете не захотеть его использовать, и завтра вполне может быть The Next Tool ( lambada
, tarantala
) из The Next Installer.
Как бы то ни было, я чувствовал, что для исправления некоторых из этих проблем требуется довольно радикальная реструктуризация ... на # 107 (который становится # 108, # 109, ... в ожидании проверки) я приложил все усилия, чтобы подготовить нас к The Next. X, где X может быть одно- или двухфайловым PR. Надеюсь, мы сможем приступить к добавлению функций и повышению производительности, но я боюсь, что не устранение в первую очередь текущего технического долга ухудшит ситуацию.
conda-incubator/setup-miniconda@master
теперь (какое-то время) поддерживает комбинацию:
miniforge-variable: Mambaforge
use-mamba: true
Что в основном должно отвечать на почту здесь ... в той степени, в которой может быть установлена полная установка conda + python + mamba. В последнее время у Micromamba было много обновлений, но я до сих пор не смог оценить, хотим ли мы поддерживать / тестировать его на том же уровне, что и другие поставщики, но ...
Самый полезный комментарий
Сейчас впереди еще много интересных моментов, чем просто _использовать то, что на диске_ против _получить установщик по URL-адресу со схемой, которую мы могли предсказать за полдесятилетия_, и поведение текущего кода с / п / т до
mamba
трудно рассуждать.Держу пари, если вы предоставите
mamba-version
, он _ все еще_ будет пытаться установитьmamba
изconda-forge
, даже если он уже там, и _ все еще_ используетconda
для всего, что _ кроме_ решения среды (например,conda config
). Это свело бы на нет большинство преимуществ от того, что он уже был на диске после установки. Поскольку такой установщик сmamba
не существовал до 13 часов назад, это не было проблемой ... я думаю, нам, вероятно, понадобится что-то вродеconda-exe: mamba
если вы _знаете_, что это уже установлен, так как даже если он _is_ доступен, вы можете не захотеть его использовать, и завтра вполне может быть The Next Tool (lambada
,tarantala
) из The Next Installer.Как бы то ни было, я чувствовал, что для исправления некоторых из этих проблем требуется довольно радикальная реструктуризация ... на # 107 (который становится # 108, # 109, ... в ожидании проверки) я приложил все усилия, чтобы подготовить нас к The Next. X, где X может быть одно- или двухфайловым PR. Надеюсь, мы сможем приступить к добавлению функций и повышению производительности, но я боюсь, что не устранение в первую очередь текущего технического долга ухудшит ситуацию.