Bug 51827

Summary: [4.2] join writers@
Product: Team Accounts Reporter: Artyom <artyomsinyugin>
Component: joinAssignee: Gleb F-Malinovskiy <glebfm>
Status: ASSIGNED --- QA Contact: Andrey Cherepanov <cas>
Severity: normal    
Priority: P5 CC: glebfm, konevsa, ldv, rider, rx1513, shaba, writers
Version: unspecified   
Hardware: x86_64   
OS: Linux   
Attachments:
Description Flags
Ключи rsa и gpg одним архивом
none
rsa-ключ
none
gpg-ключ none

Description Artyom 2024-10-25 15:57:19 MSK
Created attachment 17052 [details]
Ключи rsa и gpg одним архивом

Псевдоним: writers
Текущая почта: sinjuginas@basealt.ru
Ментор: Алексей Шабалин
Цели: 
- создание новых приложений для sisyphus;
- опакечивание полезных и интересных программ.
Comment 1 Artyom 2024-10-31 20:49:33 MSK
Created attachment 17102 [details]
rsa-ключ
Comment 2 Artyom 2024-10-31 20:50:47 MSK
Created attachment 17103 [details]
gpg-ключ
Comment 3 Alexey Shabalin 2024-10-31 21:17:08 MSK
Принимаю кандидата
Comment 4 Gleb F-Malinovskiy 2024-11-12 20:57:53 MSK
Ментор есть, ключи в порядке.
T/J/S -> 1.3.
Comment 5 Alexey Shabalin 2024-11-14 19:28:40 MSK
Кандидат готов к вступлению, прошу
* Создать email alias для кандидата
* Зарегистрировать SSH-ключ кандидата в gitery.alt.
Comment 6 Gleb F-Malinovskiy 2024-11-19 17:57:23 MSK
ssh ключ на gitery.alt зарегистрирован.
Адрес для пересылки создан.

T/J/S -> 2.3.
Comment 7 Alexey Shabalin 2024-12-27 11:54:02 MSK
Готов собирать пакеты. Прошу предоставить доступ к сборочнице.
Comment 8 Gleb F-Malinovskiy 2025-01-13 20:47:11 MSK
ssh ключ на gyle.alt зарегистрирован.
Пакет alt-gpgkeys обновлён.
Адрес подписан на devel@.

T/J/S -> 3.6.
Comment 9 Artyom 2025-02-27 17:16:10 MSK
К настоящему моменту опакетил:
1) grip-grab - https://packages.altlinux.org/ru/tasks/370633/
тест на сборочнице завершился успешно
2) gcli - https://packages.altlinux.org/ru/tasks/370563/
тест на сборочнице завершился успешно
3) oauth2-proxy - https://packages.altlinux.org/ru/tasks/370633/
тест на сборочнице завершился успешно

Обновил три пакета в одном задании (тест сборочницы пройден, одобрено shaba):
1) prometheus
2) prometheus-alertmanager
3) prometheus-snmp_exporter
https://packages.altlinux.org/ru/tasks/375085/

В качестве тренировки обновил пакет haproxy^ в сборочнице собрался для всех архитектур, но получил ошибку Gears inheritance check
https://packages.altlinux.org/ru/tasks/376303/

Прошу дать обратную связь по проделанной работе, чтобы понять, как двигаться дальше в процедуре join.
Comment 10 Alexey Shabalin 2025-02-27 20:54:33 MSK
1) grip-grab
Не надо давать такие URL.
Vcs: git@github.com:alexpasmantier/grip-grab.git
Он подразумевает наличие аккаунта на github.
Надо указывать URL  с анонимным доступом.

2) prometheus-snmp_exporter
Ошибка
Vcs: https://{%import_path}.git

3) haproxy
напутаны commit message и вводят в заблуждение. Доверьте командам
git merge
git commit
самим написать сообщение о комите.

Выдан апрув на gcli, auth2-proxy.
Comment 11 Artyom 2025-02-28 16:00:50 MSK
Поправил:
Vcs:grib-grab https://packages.altlinux.org/ru/tasks/370681/
Vcs:prometheus-snmp_exporter https://packages.altlinux.org/ru/tasks/375085/
Историю коммитов:haproxy https://packages.altlinux.org/ru/tasks/376303/

Также собрал в качестве самообучения mkcert (программа висела в моём личном чек-листе с прошлого года, но Виталий Чикунов опередил меня на несколько месяцев):
https://packages.altlinux.org/tasks/376377
(но сборка для всех архитектур успешна)
Comment 12 Alexey Shabalin 2025-03-10 17:34:48 MSK
haproxy собираем только LTS, поэтому 3.1 пожалуйста не собирай.
Comment 13 Alexey Shabalin 2025-05-27 15:52:26 MSK
(Ответ для Artyom на комментарий #11)
> Поправил:
> Vcs:grib-grab https://packages.altlinux.org/ru/tasks/370681/
> Vcs:prometheus-snmp_exporter https://packages.altlinux.org/ru/tasks/375085/
> Историю коммитов:haproxy https://packages.altlinux.org/ru/tasks/376303/
> 
> Также собрал в качестве самообучения mkcert (программа висела в моём личном
> чек-листе с прошлого года, но Виталий Чикунов опередил меня на несколько
> месяцев):
> https://packages.altlinux.org/tasks/376377
> (но сборка для всех архитектур успешна)

в %build такого делать не надо.
/usr/src/RPM/BUILD/mkcert-1.4.4/.build/bin/mkcert -version

PS: задание можно удалить :)
Comment 14 Alexey Shabalin 2025-08-28 13:53:10 MSK
Кандидат готов собирать пакеты в сизиф.
Прошу призвать рецензента.
Comment 15 Artyom 2025-08-28 19:55:43 MSK
Обновил четыре пакета:
- influxdb3
- oauth2-proxy
- gcli
- grip-grab
https://packages.altlinux.org/ru/tasks/393465/

Три первых - стандартное обновление версий. 
Четвёртый (grip-grab) решил обновить в связи с обновление rpm-build-rust и странички https://www.altlinux.org/RPM/Rust. Последнюю обновлял при участии @geochip и хочу добавить grip-grab в качестве примера сборки пакета, в котором имя пакета не совпадает с названием бинарника.
Comment 16 Artyom 2025-08-29 16:37:40 MSK
Обновил версию prometheus:
https://packages.altlinux.org/ru/tasks/393522/
Comment 17 writers@altlinux.org 2025-09-03 18:31:22 MSK
Опакетил дебаггер под x64_86 для разработки на Rust:
https://packages.altlinux.org/ru/tasks/393944/
Comment 18 writers@altlinux.org 2025-09-09 23:05:32 MSK
Обновил пакет promu.git
https://packages.altlinux.org/ru/tasks/394486/

Заодно написал руководство по сборке на Golang:
https://www.altlinux.org/RPM/Golang
Comment 19 Andrey Cherepanov 2025-09-10 06:24:43 MSK
(In reply to writers@altlinux.org from comment #18)
> Обновил пакет promu.git
> https://packages.altlinux.org/ru/tasks/394486/
> 
> Заодно написал руководство по сборке на Golang:
> https://www.altlinux.org/RPM/Golang

Хорошее руководство. Стоит добавить в него BuildRequires: /proc, потому что без /proc модули не соберутся.
Comment 20 writers@altlinux.org 2025-09-10 12:48:02 MSK
10 в(Ответ для Andrey Cherepanov на комментарий #19)
> Хорошее руководство. Стоит добавить в него BuildRequires: /proc, потому что
> без /proc модули не соберутся.

10 августа 2023 года Алексей Шабалин установил в пакете golang зависимость 'Requires: /proc'. Таким образом, после этого в пакетах на golang прописывать BuildRequires: /proc не нужно.
Comment 21 writers@altlinux.org 2025-09-10 13:13:46 MSK
(Ответ для Andrey Cherepanov на комментарий #19)
> без /proc модули не соберутся.

Обновил: добавил раздел "Сборка на локальном компьютере"
Comment 22 writers@altlinux.org 2025-09-11 18:49:19 MSK
Добавляю systemd service и autocomplete для oauth2-proxy:
https://packages.altlinux.org/ru/tasks/394630/
Comment 23 writers@altlinux.org 2025-09-24 09:24:57 MSK
Опакечиваю discovery-service-rs, который переписал с Go на Rust для проекта Alt Orchestra:
https://packages.altlinux.org/ru/tasks/395633/
Comment 24 Anton Farygin 2026-05-20 12:10:53 MSK
взял на себя кандидата, начинаю review.
Comment 25 Anton Farygin 2026-05-20 12:18:53 MSK
по новой спецификации стадия review = 4.2
Comment 26 Anton Farygin 2026-05-20 12:25:43 MSK
Артём, пока я смотрю ваши проекты - соберите пожалуйста какую-то библиотеку в соответствии с SharedLibsPolicy. Можно из FTBFS или новую.
https://git.altlinux.org/beehive/logs/Sisyphus-x86_64/latest/error/
Comment 27 Anton Farygin 2026-05-20 12:28:00 MSK
https://git.altlinux.org/tasks/414682/gears/200/git?p=git;a=commitdiff;h=94fd5290609d3e0fa52fb249d1b69560bd32b630

непонятно зачем делается такое изменение ? в commit message ничего не написано, а по факту вендоринг бинарей.
Comment 28 Anton Farygin 2026-05-20 12:29:21 MSK
В этом же influexdb в .gear/rules делает дифф:
 3 diff: v@version@:. .

в него попадает всё дерево, надо исключить то, что не должно быть в diff.
Comment 29 Anton Farygin 2026-05-20 13:27:52 MSK
https://packages.altlinux.org/ru/tasks/417869/
вендоринг лучше таскать тарболлом а не патчем. а в .gear/rules делать exclude для patch для .gear, что бы ваши изменения в проекте были чистые в патче.
Comment 30 Anton Farygin 2026-05-20 13:29:33 MSK
аналогично. думаю что так во всех проектах, предлагаю переделать. присылайте на ревью свои задания, я буду их смотреть и аппрувить.


[00:00:03] + echo 'Patch #0 (sops-3.12.1-alt1.patch):'
[00:00:03] Patch #0 (sops-3.12.1-alt1.patch):
[00:00:03] + /usr/bin/patch -p1
[00:00:03] patching file .gear/rules
[00:00:03] patching file .gear/sops.spec
[00:00:03] patching file .gear/tags/731259fd5f7ca60068e9f4211de6d34a9e43d88c
[00:00:03] patching file .gear/tags/list
[00:00:03] patching file .gear/upstream/remotes
[00:00:03] patching file .github/workflows/cli.yml
[00:00:03] patching file .github/workflows/codeql.yml
[00:00:03] patching file .github/workflows/release.yml
[00:00:03] patching file cmd/sops/edit.go
[00:00:03] patching file cmd/sops/encrypt.go
[00:00:03] patching file cmd/sops/main.go
[00:00:03] patching file cmd/sops/set.go
[00:00:03] patching file functional-tests/Cargo.lock
[00:00:03] patching file functional-tests/Cargo.toml
[00:00:03] patching file go.mod
[00:00:03] patching file go.sum
[00:00:03] patching file vendor/cel.dev/expr/.bazelversion
[00:00:03] patching file vendor/cel.dev/expr/.gitattributes
[00:00:03] patching file vendor/cel.dev/expr/.gitignore
[00:00:03] patching file vendor/cel.dev/expr/BUILD.bazel
[00:00:03] patching file vendor/cel.dev/expr/CODE_OF_CONDUCT.md
[00:00:03] patching file vendor/cel.dev/expr/CONTRIBUTING.md
[00:00:03] patching file vendor/cel.dev/expr/GOVERNANCE.md
[00:00:03] patching file vendor/cel.dev/expr/LICENSE
[00:00:03] patching file vendor/cel.dev/expr/MAINTAINERS.md
Comment 31 writers@altlinux.org 2026-05-20 19:09:02 MSK
(Ответ для Anton Farygin на комментарий #28)
> В этом же influexdb в .gear/rules делает дифф:
>  3 diff: v@version@:. .
> 
> в него попадает всё дерево, надо исключить то, что не должно быть в diff.

Спасибо за комментарий!
Коротко по каждому пункту:
1. Библиотека с SharedLibPolicy:
https://packages.altlinux.org/ru/tasks/418756/

2. В коммите influxdb3 дал развёрнутый комментарий, почему добавлены бинарники:
https://git.altlinux.org/people/writers/packages/?p=influxdb3.git&a=commit&h=dda32145d13bf3c97e98e4bb42786dec724b0cd2

3. exclude там же добавил, но пока не отправил в gyle, так как хотел посоветоваться. У меня появилась идея сделать так:
tar: v@version@:. exclude=.github/** exclude=docker/** exclude=Dockerfile exclude=Dockerfile.dockerignore exclude=.circleci/** exclude=.cloude/**
diff: v@version@:. . exclude=.gear/**
Это не чересчур? Проверял сборку на x86_64, всё собирается, в tar исключённые каталоги не попадают. 

4. В моих пакетах diff в rules часто существует именно для того, чтобы накатить папку vendor через патч, в Golang и Rust проектах. Кажется, что так делать достаточно удобно. Кроме того, заметил, что по такому же принципу собирается огромное количество пакетов на packages.altlinux.org. Попробовал найти связанные с этим политики, но не нашёл. На размер tar разница в подходах не влияет... Может быть разрешите продолжить такую практику?
Comment 32 Anton Farygin 2026-05-21 08:38:56 MSK
(Ответ для writers@altlinux.org на комментарий #31)
> (Ответ для Anton Farygin на комментарий #28)
> > В этом же influexdb в .gear/rules делает дифф:
> >  3 diff: v@version@:. .
> > 
> > в него попадает всё дерево, надо исключить то, что не должно быть в diff.
> 
> Спасибо за комментарий!
> Коротко по каждому пункту:
> 1. Библиотека с SharedLibPolicy:
> https://packages.altlinux.org/ru/tasks/418756/

Почти всё хорошо, но вот это:
+Url: https://github.com/google/sentencepiece
+Vcs: %url.git

зачем использовать макросы непонятно.
Парсерам spec придётся делать лишние операции для добывания адреса. И сейчас все парсеры умеют понимать что если URL идёт на github, то Vcs не обязателен. Просто не указывайте его, а если указываете, то без макросов.

> 
> 2. В коммите influxdb3 дал развёрнутый комментарий, почему добавлены
> бинарники:
> https://git.altlinux.org/people/writers/packages/?p=influxdb3.
> git&a=commit&h=dda32145d13bf3c97e98e4bb42786dec724b0cd2

Это очень плохая практика, лучше скачать исходники и собрать их в проекте.

> 
> 3. exclude там же добавил, но пока не отправил в gyle, так как хотел
> посоветоваться. У меня появилась идея сделать так:
> tar: v@version@:. exclude=.github/** exclude=docker/** exclude=Dockerfile
> exclude=Dockerfile.dockerignore exclude=.circleci/** exclude=.cloude/**
> diff: v@version@:. . exclude=.gear/**
> Это не чересчур? Проверял сборку на x86_64, всё собирается, в tar
> исключённые каталоги не попадают. 

Я стараюсь делать так, что бы в тарболл попадало всё апстримное дерево. зачем бороться за мелочи и усложнять rules ?


> 
> 4. В моих пакетах diff в rules часто существует именно для того, чтобы
> накатить папку vendor через патч, в Golang и Rust проектах. Кажется, что так
> делать достаточно удобно. Кроме того, заметил, что по такому же принципу
> собирается огромное количество пакетов на packages.altlinux.org. Попробовал
> найти связанные с этим политики, но не нашёл. На размер tar разница в
> подходах не влияет... Может быть разрешите продолжить такую практику?

Надо зафиксировать политику что так делать плохо. плоха практика тем, что сложнее анализировать сделанные вами изменения, в том числе не только нам но и людям со стороны.
Comment 33 writers@altlinux.org 2026-05-21 16:19:23 MSK
- sentencepiece пересобрал без Vcs
https://packages.altlinux.org/ru/tasks/418756/

- influxdb3
https://packages.altlinux.org/ru/tasks/414682/
Поправил rules, vendor теперь добавляется через tar. 

Но с бинарниками проблема. Просто скачать исходники datafusion-udf-wasm и собрать их в проекте пока не получится: здесь всё упирается в wasm32-wasip2 - очень проблемную зависимость для rustc, собрать которую для altlinux пока не получилось. 

- насчёт vendor -> tar мысль понял. Но у меня почти все пакеты на Rust и Golang и собраны по принципу накатывания vendor через diff - потихоньку буду пересобирать по новому принципу.
Comment 34 Anton Farygin 2026-05-21 17:25:22 MSK
(Ответ для writers@altlinux.org на комментарий #33)
> - sentencepiece пересобрал без Vcs
> https://packages.altlinux.org/ru/tasks/418756/
> 
> - influxdb3
> https://packages.altlinux.org/ru/tasks/414682/
> Поправил rules, vendor теперь добавляется через tar. 
> 
> Но с бинарниками проблема. Просто скачать исходники datafusion-udf-wasm и
> собрать их в проекте пока не получится: здесь всё упирается в wasm32-wasip2
> - очень проблемную зависимость для rustc, собрать которую для altlinux пока
> не получилось. 

ну я не готов аппрувить такой пакет, надо всё-таки попытаться. а в чём там конкретно проблема ?

> 
> - насчёт vendor -> tar мысль понял. Но у меня почти все пакеты на Rust и
> Golang и собраны по принципу накатывания vendor через diff - потихоньку буду
> пересобирать по новому принципу.

хорошо.
Comment 35 writers@altlinux.org 2026-05-21 18:36:17 MSK
(Ответ для Anton Farygin на комментарий #34)
> ну я не готов аппрувить такой пакет, надо всё-таки попытаться. а в чём там
> конкретно проблема ?

Извиняюсь, неправильно выразился. Здесь скорее речь про трудозатратность, нужно сперва собирать wasi-sdk с рекурсивными зависимостями, а потом лезть в сборку Rust. Я как-то хотел этим заняться, когда были проблемы с плагинами для Zed, но передумал. Очень проблемную здесь скорее в том плане, что в разных проектах иногда всплывает необходимость в пакете wasm32-wasip2, но никто пока за него не взялся.
Comment 36 Andrew Vasilyev 2026-05-21 19:42:33 MSK
(Ответ для Anton Farygin на комментарий #32)
> +Url: https://github.com/google/sentencepiece
> +Vcs: %url.git
> 
> зачем использовать макросы непонятно.
> Парсерам spec придётся делать лишние операции для добывания адреса. И сейчас
> все парсеры умеют понимать что если URL идёт на github, то Vcs не
> обязателен. Просто не указывайте его, а если указываете, то без макросов.

  Так советовал классик: https://bugzilla.altlinux.org/show_bug.cgi?id=50906#c16
Comment 37 Anton Farygin 2026-05-22 11:44:22 MSK
(Ответ для Andrew Vasilyev на комментарий #36)
> (Ответ для Anton Farygin на комментарий #32)
> > +Url: https://github.com/google/sentencepiece
> > +Vcs: %url.git
> > 
> > зачем использовать макросы непонятно.
> > Парсерам spec придётся делать лишние операции для добывания адреса. И сейчас
> > все парсеры умеют понимать что если URL идёт на github, то Vcs не
> > обязателен. Просто не указывайте его, а если указываете, то без макросов.
> 
>   Так советовал классик:
> https://bugzilla.altlinux.org/show_bug.cgi?id=50906#c16

Классики тоже иногда ошибаются ;)
Comment 38 writers@altlinux.org 2026-05-22 11:52:48 MSK
Очень много классиков и у каждого особое мнение.

Подготовил обновление двух пакетов:
https://packages.altlinux.org/ru/tasks/418882/
https://packages.altlinux.org/ru/tasks/418897/
Comment 39 Anton Farygin 2026-05-22 13:49:49 MSK
(Ответ для writers@altlinux.org на комментарий #38)
> Очень много классиков и у каждого особое мнение.
> 
> Подготовил обновление двух пакетов:
> https://packages.altlinux.org/ru/tasks/418882/
> https://packages.altlinux.org/ru/tasks/418897/

Спасибо, заапрувил.
Comment 40 Anton Farygin 2026-05-22 13:50:34 MSK
(Ответ для writers@altlinux.org на комментарий #35)
> (Ответ для Anton Farygin на комментарий #34)
> > ну я не готов аппрувить такой пакет, надо всё-таки попытаться. а в чём там
> > конкретно проблема ?
> 
> Извиняюсь, неправильно выразился. Здесь скорее речь про трудозатратность,
> нужно сперва собирать wasi-sdk с рекурсивными зависимостями, а потом лезть в
> сборку Rust. Я как-то хотел этим заняться, когда были проблемы с плагинами
> для Zed, но передумал. Очень проблемную здесь скорее в том плане, что в
> разных проектах иногда всплывает необходимость в пакете wasm32-wasip2, но
> никто пока за него не взялся.

да, но если много где нужно то наверное осмысленно влезть.
Comment 41 Anton Farygin 2026-05-22 13:54:52 MSK
в пакете oauth2-proxy

775 для %_localstatedir/%name не слишком ?

  68 %dir %attr(775, root, %name) %_localstatedir/%name
Comment 42 writers@altlinux.org 2026-05-22 14:51:27 MSK
(Ответ для Anton Farygin на комментарий #41)
> в пакете oauth2-proxy
> 
> 775 для %_localstatedir/%name не слишком ?
> 
>   68 %dir %attr(775, root, %name) %_localstatedir/%name

Погорячился, обновил пакет в задании:
https://packages.altlinux.org/ru/tasks/418931/
Comment 43 Anton Farygin 2026-05-22 15:15:05 MSK
изменение прав на этот каталог - важная информация для пользователей/администраторов. надо обязательно упоминать такие изменения в changelog
Comment 44 writers@altlinux.org 2026-05-22 17:29:48 MSK
(Ответ для Anton Farygin на комментарий #43)
> изменение прав на этот каталог - важная информация для
> пользователей/администраторов. надо обязательно упоминать такие изменения в
> changelog

Поправил
https://packages.altlinux.org/tasks/418931
Comment 45 Anton Farygin 2026-05-24 15:13:04 MSK
(Ответ для writers@altlinux.org на комментарий #44)
> (Ответ для Anton Farygin на комментарий #43)
> > изменение прав на этот каталог - важная информация для
> > пользователей/администраторов. надо обязательно упоминать такие изменения в
> > changelog
> 
> Поправил
> https://packages.altlinux.org/tasks/418931

спасибо, заапрувил.
Comment 46 Anton Farygin 2026-05-25 09:18:24 MSK
prometheus:
1) по умолчанию процесс слушает на всех адресах, это плохо. надо ограничить локалхостом.
2) BuildRequires: golang >= 1.21 но в go.mod требуется golang 1.24 и выше
3) Харденинг в юните можно улучшить.
4) prometheus.tmpfiles d /run/prometheus 0775 root prometheus - непонятно зачем такие широкие права. 0750 prometheus prometheus было бы достаточно по идее
5) права доступа к конфигам, содержащим приватную информацию - слишком широкие.
6) в /var/lib/prometheus тоже с правами слишком вольготно.
Comment 47 Anton Farygin 2026-05-25 14:19:13 MSK
судя по https://packages.altlinux.org/ru/tasks/418931/fixes/ надо ещё в p11 обновление закинуть
Comment 48 writers@altlinux.org 2026-05-26 08:19:07 MSK
(Ответ для Anton Farygin на комментарий #47)
> судя по https://packages.altlinux.org/ru/tasks/418931/fixes/ надо ещё в p11
> обновление закинуть

В p11 отправил: https://packages.altlinux.org/ru/tasks/419192/
Prometheus в работе
Comment 49 writers@altlinux.org 2026-05-28 08:32:32 MSK
Собираю prometheus в задании:
https://packages.altlinux.org/ru/tasks/419241/

Но есть затруднение. Сейчас в проекте создаётся prebuilt frontend, так как нода вендорит архитектурно зависимые бинарники в качестве исходников. После make assets локально у меня появляются каталоги web/ui/node_modules, web/ui/mantine-ui/node_modules, web/ui/react-app/node_modules, web/ui/static

По факту нужен только каталог static. 

Каталоги */node_modules сейчас для сборки в хешере вообще не нужны. Но они сохранены в истории git исторически, когда, наверное, не было в исходниках бинарных файлов и ui собирали в хешере (в upsteam такого нет). 

В связи с этим рассматриваю два варианта:
1) после выполнения make assets вообще удалить каталоги node_modules отдельным коммитом (думаю сделать так);
2) перенести node_modules в отдельные source-tar, но не понимаю, зачем так делать, если эти source-файлы не нужны в сборке (разве только для чистоты истории и некой прозрачности сборки пакетов)
Comment 50 Anton Farygin 2026-05-28 11:02:57 MSK
(Ответ для writers@altlinux.org на комментарий #49)
> Собираю prometheus в задании:
> https://packages.altlinux.org/ru/tasks/419241/
> 
> Но есть затруднение. Сейчас в проекте создаётся prebuilt frontend, так как
> нода вендорит архитектурно зависимые бинарники в качестве исходников. После
> make assets локально у меня появляются каталоги web/ui/node_modules,
> web/ui/mantine-ui/node_modules, web/ui/react-app/node_modules, web/ui/static

Т.е. - в проекте собирается на какой-то локальной машине web UI и уже собранный перекладывается в RPM ? а можно ли саму сборку делать в hasher на серверной стороне, завендорив только нужные зависимости ?
Comment 51 writers@altlinux.org 2026-05-28 11:51:33 MSK
(Ответ для Anton Farygin на комментарий #50)
> Т.е. - в проекте собирается на какой-то локальной машине web UI и уже
> собранный перекладывается в RPM ? а можно ли саму сборку делать в hasher на
> серверной стороне, завендорив только нужные зависимости ?

Да. Как я понимаю ситуацию, проблема всего npm и nodejs в том, что в зависящих от них проектах вендоринг практически всегда предполагает скачивание архитектурно-зависимых бинарников. Редко когда обходится без них. Поэтому проекты nodejs у нас так не любят. В проектах prometheus и prometheus-alertmanager во время вендоринга скачиваются именно такие бинарники. Без них сборка frontend не проходит.
Comment 52 writers@altlinux.org 2026-05-28 11:55:10 MSK
То есть после такого "вендоринга" сборочница gyle соберёт prometheus и alertmanager только на той архитектуре, на какой делался вендоринг. 

Инструменты npm и их альтернативы не предлагают решение этому, так как разработчики вообще не видят проблемы в таком порядке вещей.
Comment 53 Anton Farygin 2026-05-28 12:09:03 MSK
(Ответ для writers@altlinux.org на комментарий #52)
> То есть после такого "вендоринга" сборочница gyle соберёт prometheus и
> alertmanager только на той архитектуре, на какой делался вендоринг. 
> 
> Инструменты npm и их альтернативы не предлагают решение этому, так как
> разработчики вообще не видят проблемы в таком порядке вещей.

да, это понятно. но я бы всё-таки завендорил всё по максимум а саму сборку сделал в hasher на girar.
Comment 54 writers@altlinux.org 2026-05-28 12:36:23 MSK
Стоит ли это того? 

В папке static с собранным фронтэндом все файлы текстовые, за исключением пары ttf и icon. Их легко проверить, прочитать, понять. 

С другой стороны, вендоринг, который из-за мультиархитектурности увеличивает сложность сборки в геометрической прогрессии. В проекте prometheus три папки node_modules, чтобы случайно архитектурные файлы не перетёрли друг друга, желательно делать source под каждую архитектуру. В итоге теоретически получаем девять каталогов для tar source. И это при том, что не факт npm ci с флагом --cpu работает как надо.
Comment 55 Anton Farygin 2026-05-28 13:39:40 MSK
Вопрос с воспроизводимостью сборки.
Comment 56 Сергей Жидких 2026-05-28 14:47:03 MSK
(Ответ для writers@altlinux.org на комментарий #54)
> Стоит ли это того? 
> 
> В папке static с собранным фронтэндом все файлы текстовые, за исключением
> пары ttf и icon. Их легко проверить, прочитать, понять. 
А они являются архитектурно независимыми? Подозреваю, что да, но было бы неплохо явно это доказать.
Comment 57 Alexey Shabalin 2026-05-28 14:59:54 MSK
(Ответ для writers@altlinux.org на комментарий #52)
> То есть после такого "вендоринга" сборочница gyle соберёт prometheus и
> alertmanager только на той архитектуре, на какой делался вендоринг.

Нет, не обязательно. На машине разработчика в архитектурно зависимой части готовится сборка "сайта" (всякие webpack, sass и тому подобное). Этот собранный .js в общем-то тоже "в исходном" виде, просто склеенный из кучи других js. И он уже позволяет собрать пакет на любых архитектуках, потому-что архитектуро-зависимая часть сборки этого js пропускается.

Я не говорю что это хорошо, используется как обходное решение, потому что красивого, быстрого и удобного на сегодня нет.
 
> 
> Инструменты npm и их альтернативы не предлагают решение этому, так как
> разработчики вообще не видят проблемы в таком порядке вещей.
Comment 58 Anton Farygin 2026-05-28 15:02:44 MSK
может быть тогда хотя бы хуки для zoryn положить в репозиторий, которые это будут делать при обновлении версии ?

Там есть небольшая изоляция окружения. конечно не панацея, но всё-таки.