Есть ли способ использовать строку сборки и номер сборки одновременно при сборке пакетов Conda - PullRequest
0 голосов
/ 26 июня 2018

У меня есть несколько версий пакета conda, в которых установлена ​​одна и та же версия библиотеки, но указаны некоторые дополнительные зависимости.Поэтому я должен использовать тот же номер версии и номер сборки, чтобы сообщить conda, какой пакет является последним.Но теперь я хочу добавить некоторую дополнительную информацию в имя пакета, поэтому я решил использовать для этого строку сборки.Но строка сборки переопределяет номер сборки, а имя пакета содержит только строку сборки.Есть ли способ использовать их оба одновременно?Отделенный подчеркиванием способ, которым conda неявно делает это для строки сборки "py36_"?package-1.0.0- "build_string" _1

для примера: для meta.yaml, приведенного ниже, есть способ получить файл выходного tar с именем

тензор-1.8.0-py36_Cuda_compatible_1.tar.gz2

package:
  name: tensorflow
  version: "1.8.0"

build:
  number: 1
  string: "py36_Cuda_compatible"

requirements:
  build:
    - python=3.6
  run:
    - python
    - absl-py >=0.1.6
    - astor >=0.6.0
    - gast >=0.2.0
    - numpy >=1.13.3
    - six >=1.10.0
    - protobuf >=3.4.0
    - tensorboard >=1.8.0, <1.9.0
    - termcolor >=1.1.0
    - grpcio >=1.8.6

Test:

  imports:
    - tensorflow

about:
  home: http://tensorflow.org/

Ответы [ 2 ]

0 голосов
/ 06 декабря 2018

вы можете сделать что-то вроде

build:
  number: {{ any_env_var_also }}
  string: {{ PKG_BUILDNUM }}_{{ commit }}
0 голосов
/ 02 августа 2018

По сути, я борюсь с той же проблемой, когда пытаюсь включить хеш коммита в номер / строку сборки.

Из того, что я могу сказать, и это просто попытка, вы не можете использовать оба.Что я считаю немного глупым.Я хотел бы иметь возможность сделать это:

{% set version = "0.0.1" %}                                                                                                                                                                                        
{% set commit = "fdafad8" %}                                                                                                                                                                                        

package:
  name: blah
  version: {{ version }}

source:
  git_rev: {{ version }}
  git_url: https://github.com/serine/blah

build:
  number: 0
  string: {{ commit }}

и получить это

blah-0.0.1-fdafad8_1.tar.gz2

Я, конечно, могу получить эти результаты, просто не имея number: и имея string: fdafad8_1, но, как я уже сказал, это раздражает.

Очень досадная вещь, которую я не знаю, как решить и совмещать с вашим вопросом, это наличие «правильной» структуры версий, которая сортируется правильно при загрузке в репозиторий Anaconda, например,

  1. blah-0.0.1-fdafad8_0.tar.gz2
  2. blah-0.0.1-fdafad8_1.tar.gz2

Поведение, которое я ожидаю, когда я conda install -c serine blah, получаю последнюю сборку - 1, но я получаю сборку 0: /

Взгляните на эту статью Анаконды , она может быть вам полезна, не в моем случае.

...