Почему conda build и conda устанавливаются с использованием разных версий с одинаковыми зависимостями? - PullRequest
0 голосов
/ 01 марта 2019

в нашем процессе CI мы делаем следующие вещи:

  1. создаем совершенно новую среду conda для этого конвейера CI
  2. создаем пакет conda, используя conda build, выходную папкуустановлен на ./build
  3. установить только что созданный пакет, используя conda install -c ./build package_name.

Второй шаг на втором этапе CI, когда мы тестируем, мы простовызовите pytest для запуска всех тестовых файлов в среде CI и с использованием только что установленного пакета package_name.

Примечание package_name имеет внутреннюю зависимость another_package_name, указанную в файле meta.yaml, который определяет пакет.

Одна вещь, которую мы обнаружили, заключается в том, что на шаге 1 и шаге 2версия another_package_name отличается, при сборке пакета conda, похоже, может получить последнюю версию зависимости.Однако на шаге 2 conda, похоже, выбирает старую версию зависимости.

Некоторые другие выводы, которые у меня есть:

  1. Обе package_name и another_package_name опубликованы врасположение файла, которое мы используем для нашего внутреннего канала (с помощью простой команды cp *.tar.bz2)
  2. Это происходит только в CI, для конкретного пользователя CI, и только в том случае, если мы находимся в этой папке CI и в этом CIокружение, то есть использование другого пользователя, создание новой среды, копирование папки ./build в другое место, и все это мешает нам воспроизвести это поведение.

Это лишает нас возможности иметь надлежащий функциональный CI,И мы не смогли выяснить, что происходит с шагом local install и почему он выбирает неправильную версию зависимости.

Есть идеи?

...