Bug 38966

Summary: python3-module-setuptools_scm зачем-то требует mercurial
Product: Sisyphus Reporter: Vitaly Lipatov <lav>
Component: python3-module-setuptools_scm_git_archiveAssignee: Grigory Ustinov <grenka>
Status: CLOSED NOTABUG QA Contact: qa-sisyphus
Severity: normal    
Priority: P5 CC: antohami, cas, cow, darktemplar, evg, george, grenka, imz, lav, mithraen, nbr, qa_viy, rider, sem, shaba, sin, slev, vitty, viy
Version: unstable   
Hardware: x86_64   
OS: Linux   

Description Vitaly Lipatov 2020-09-19 03:52:31 MSK
# rpm -ev mercurial-5.4.1-alt1
ошибка: Неудовлетворенные зависимости:
	mercurial нужен для (установлен) python3-module-setuptools_scm-3.5.0-alt1.noarch

Мне кажется, он проживёт без mercurial.
Comment 1 Grigory Ustinov 2020-09-19 16:16:48 MSK
Ну вообще-то это одна из его базовых способностей получать версию из "ртутных" репозиториев. Так что я склонен к NOTABUG.
Comment 2 Vitaly Lipatov 2020-09-19 17:43:06 MSK
(Ответ для Grigory Ustinov на комментарий #1)
> Ну вообще-то это одна из его базовых способностей получать версию из
> "ртутных" репозиториев. Так что я склонен к NOTABUG.
При сборке у нас нет никаких репозиториев, так не понимаю, зачем нам эта его способность. Было бы замечательно, если бы он это умел при наличии git/mercurial, но явно не требовал ни того, ни другого.

Возможно, более правильный вариант — это отрывать его использование из пакетов, подскажите.
Comment 3 Stanislav Levin 2020-09-21 09:17:01 MSK
m2c: главным образом, setuptools_scm[0] используется в setup_requires[1]:
```
A string or list of strings specifying what other distributions need to be present in order for the setup script to run.
```
То есть это buildtime зависимость.

Так как здесь не указана конкретная проблема, то могу догадываться, что речь идет о опакечивании Python модулей с зависимостью на setuptools_scm. Если так, то рецепт:
```
export SETUPTOOLS_SCM_PRETEND_VERSION=%version
```

```
SETUPTOOLS_SCM_PRETEND_VERSION:
 	when defined and not empty, its used as the primary source for the version number in which case it will be a unparsed string
```

[0]: https://pypi.org/project/setuptools-scm/
[1]: https://setuptools.readthedocs.io/en/latest/setuptools.html