summaryrefslogtreecommitdiffstats
path: root/build/plugins/lib/nots/package_manager
Commit message (Collapse)AuthorAgeFilesLines
* nots/cli: вернуть .pnpm внутрь node_modulesbaymer12 days1-3/+1
| | | | commit_hash:b8f364fd401df3802cd4839aa0f60348a91f8db8
* feat(conf,builder): add libatomic to build for nodejs >=25zaverden2026-05-141-1/+11
| | | | | | | | | | | | | | | | | | | | | <section id="quibbler-autodescription"> #### Добавление поддержки libatomic для Node.js >= 25 📝 - 🛠️ Добавлена поддержка библиотеки `libatomic` в сборку для Node.js версии 25 и выше, что необходимо для корректной работы в среде Linux - 📦 Обновлены ресурсы и конфигурации для включения `libatomic` при сборке проектов с Node.js >= 25 на Linux - 🧪 Обеспечена корректная передача `LD_LIBRARY_PATH` в тестовую среду для поддержки новых версий Node.js - 📝 Обновлены описания ресурсов и добавлено указание минимальной версии Node.js (>=25.9.0) в `package.json` для соответствующих проектов - ⚙️ Расширена функциональность CLI и билдера с возможностью передачи дополнительного пути для `LD_LIBRARY_PATH` при запуске сборок - 🧹 Очищены и обновлены тестовые сценарии для корректной работы с новыми параметрами сборки - 📁 Добавлены новые ресурсы для `libatomic` на платформах Linux и Linux-aarch64, включая обновленные версии в `resources.json` - 🧩 Реализована логика автоматического подключения `libatomic` при использовании Node.js >= 25 на Linux, учитывая архитектуру процессора - 📦 Обновлены зависимости и конфигурации для корректной работы с новыми версиями Node.js и библиотеками - 📁 Обновлены пути к ресурсам и метаданные в `resources.json`, отражающие изменения в сборке и поддержку новых версий Node.js <a href="https://nda.ya.ru/t/qa0kX64r7DqvtN"><font size="2">Autodescription by Yandex Code Assistant</font></a> </section> commit_hash:d078809fbb928dd6328f2b5200c895eb05a44220
* builder: Стабильность workspace_node_modules.tar при ↵baymer2026-04-171-0/+4
| | | | | | неизменных зависимостях commit_hash:140e997f13a190a260effe490921efaaa6f9cec8
* подчистить граф сборкиbaymer2026-03-311-1/+0
| | | | commit_hash:8fa2c50ab7d98e6e265b6690f03b0a58928fe76b
* вынести .pnpm из node_modulesbaymer2026-03-131-3/+8
| | | | commit_hash:ecebcfd300909c7deaa48cb323bd246b5c7c2b2b
* ya tool black release 8robot-contrib2026-03-072-3/+1
| | | | | #| || **<a href="https://nda.ya.ru/t/NmXL8DSH7W8pjd" target="_blank">![](https://nda.ya.ru/t/mAiQIjHx7Mm3JC =30x) Echo tests</a>** || |# commit_hash:595f1e5ce2f0b1215088b7c8d2b79f07955f9a4b
* Добавить макрос INJECT_PEERS()baymer2026-02-131-7/+19
| | | | commit_hash:1284210f3d36c02044ff90213c56cd83c2a2a497
* feat(conf): validate pj#files vs TS_BUILD_OUTPUTSzaverden2026-02-051-0/+3
| | | | commit_hash:109283c5f34a9268f769025cba5fdb7ac54a1708
* chore(conf): merge package_manager.base and package_manager/pnpmzaverden2026-01-1224-506/+308
| | | | | (https://nda.ya.ru/t/nzLqVjNO7RtJnf commit_hash:e9776dabeb2d60f4c97889a4ec9b49681fecaa04
* conf: skip resolution.type == directory when parsing lockfilezaverden2025-12-182-3/+23
| | | | commit_hash:fa9f381375deffd8fa2a5bd60b7276e165baae77
* feat(build): use GVS for pnpm installzaverden2025-11-283-38/+42
| | | | commit_hash:df7cd66aaf3674f89b9c2de41e2167b90ac03cdf
* pnpm: перейти на использование ↵baymer2025-10-171-0/+1
| | | | | | --config.prefer-symlinked-executables true commit_hash:d397d43267d09779e40f0934a374592fbb838879
* другое: Вычислять папочку .nots на основе ↵baymer2025-10-153-27/+32
| | | | | | прав на запись commit_hash:9c8e067c99e9e18718fd1dcd8aa3c9c20dea79f3
* remove the first pnpm installbaymer2025-10-141-48/+1
| | | | commit_hash:ed70cd729998e0329c62e9c846104cc0529bf8d0
* chore(conf+builder): remove experimental support for npmzaverden2025-10-0716-456/+10
| | | | commit_hash:ff97bf7139227c9f62a7c1018bcf710ee907efc3
* eslint / stylelint: extend node_pathvturov2025-10-051-0/+4
| | | | | | Изменения расширяют пути поиска модулей для eslint / stylelint, что позволит стилевым тестам работать нормально после выноса virtual store из node_modules. Необходимые изменения в jest будут внесены отдельно после дополнительных проверок. commit_hash:7510370c04d8967d572408deea82fa05ee03228a
* nots: сделать `output.tar` как основной output ↵baymer2025-09-181-0/+1
| | | | | | сборочного модуля commit_hash:5809d143ff83fe0a0b2600caac7bf6301f20f586
* revert: возвращаем двойной инсталлbaymer2025-09-161-1/+42
| | | | commit_hash:a3538e00a017f2b80e2b752e106c84a9202b1d0a
* nots --clean-all завершается ошибкойbaymer2025-09-151-1/+2
| | | | commit_hash:388056ab641ea2a274a06e5db9f3248864cc1c78
* nots/builder: убрать двойной pnpm install на модуль в ↵baymer2025-09-131-0/+1
| | | | | | ya.make commit_hash:76d6d3957e2208b59863c8dd97de29c59b1ab958
* nots/builder: убрать двойной pnpm install на модуль в ↵baymer2025-09-121-49/+1
| | | | | | ya.make commit_hash:dae19ab6c507a1f85dea74300a411c1ba9ae8ece
* другое: Перенести ca-store в из .cache/pnpm-9-store в ↵baymer2025-09-124-18/+30
| | | | | | .nots/pnpm-store commit_hash:f5f5fd9f8e06201395cda230991d1ab40f94299b
* nots/cli: Убрать выхлоп pnpm из nots test ↵khoden2025-09-052-14/+17
| | | | | | (показывать только при --verbose) commit_hash:53763489b6fe45c4add50d476dd1029b39717072
* run_eslint: расширить NODE_PATH для pnpm@10, ↵vturov2025-09-042-7/+9
| | | | | | | | | | переместить директории хранилищ - Добавить директорию виртуального хранилища в список директорий для поиска модулей для eslint. (для того, чтобы данное изменение начало работать для `eslint` необходим релиз test-tool) - Вынести content-addressable store в корень build-root - Путь к virtual-store приводим к стандартному для tier1 commit_hash:60ca9e4b2cc059ffb50fdc688514036cb76d84d0
* Вынести .trace из билд аутпутаkhoden2025-08-261-0/+7
| | | | | | | | 1. Убрал `TS_TRACE` переменную отовсюду (её больше нет) 2. В builder пишу трейсы, если передано `--local-cli yes` 3. Трейсы пишуется по адресу: `~/.nots/traces/<moddir>/<cmd>.builder.trace.json` 4. В каждый спан в трейсе добавились аргументы, с которыми функция была вызвана (очень удобно отлаживать) commit_hash:4e47098cc62697b917e5ce4edf462a7e5a1b2c21
* feat(TS_PROTO): TS_PROTO_AUTO, package generationzaverden2025-08-126-28/+59
| | | | commit_hash:9960194d44a237d2a0a946d4c19be42e59164732
* nots/builder: Досыпать логирования об ↵baymer2025-08-072-1/+14
| | | | | | установке зависимостей commit_hash:bb0e0e0fbba15b82c707868efb18f399a4b3e82d
* nots/builder: Скачивать зависимости с помощью ↵baymer2025-08-061-12/+17
| | | | | | pnpm всегда, кроме distbuild commit_hash:451493159914facba06df833a74b2d0fd4d22799
* fix store pathbaymer2025-07-181-5/+1
| | | | commit_hash:0a5e27c9a156a9ec5212876ab382e1eec53c03c2
* nots: remove log noisevturov2025-07-161-5/+0
| | | | commit_hash:3307ce0a773a79f1cfa89ea9161ed6a0fd08040a
* nots: do not mix nm_bundle and local_cli flagsvturov2025-07-111-1/+1
| | | | | Убрать привязку флага local_cli к созданию бандла workspace_node_modules commit_hash:2660a42778f6abcedd581209d5efb452db64d7f7
* Повторить локальные оптимизации для ↵vturov2025-07-042-22/+188
| | | | | | | | тестов (jest, eslint, typecheck) - Выставляем флаг локального запуска при работе через nots - При запуске install с указанием virtual-store директории исключаем гонку и хешируем по pre-lock файлу commit_hash:fcc3afdd0d702a9846ee627d6e709f3d3cf97482
* switch ymake nots plugins to ymakeyamlsnermolaev2025-06-062-2/+10
| | | | commit_hash:7efc8ab40184186a1c5d597aa5ea2c0dc1fbe85a
* fix(conf): importers can have keys other then dependencieszaverden2025-05-201-1/+4
| | | | commit_hash:67e03f3141acec0e9767fe74135d1afe760d84d2
* get rid of sixsnermolaev2025-05-202-2/+1
| | | | commit_hash:b15cc006493a8cc498ed568935b939e12ef35b70
* get rid of six in pluginssnermolaev2025-05-164-11/+4
| | | | commit_hash:d85f21d6b4179697b8d5f8ab39c7d5216d35d1a8
* Не упаковывать node_modules по умолчанию [technical]vturov2025-04-153-14/+14
| | | | | | | | | | | | | | | | | | | | | | | Новая переменная для получения бандла с node_modules для конкретных проектов из скоупа сборки: `ya make ... -DNODE_MODULES_FOR=some/arc/path:some/other/arc/path` Это позволяет получить упакованные node_modules для проектов из скоупа сборки (скоупом является целевой модуль и его пиры) при необходимости. Если получение такого выходного артефакта необходимо постоянно, то целевом `ya.make` можно использовать макрос `WITH_NODE_MODULES()`. По умолчанию `node_modules` теперь упаковываться не будут, это позволяет сэкономить время. <section id="quibbler-autodescription"> #### Добавление опции для упаковки node_modules по запросу 📝 - ✨ Добавлена новая опция `--nm-bundle` для управления упаковкой `node_modules` в архив. - 🔧 Изменены конфигурационные файлы для поддержки новой опции, включая обновление макроса `WITH_NODE_MODULES()` и добавление флага `NODE_MODULES_FOR`. - 📝 Обновлены тесты для проверки новой функциональности, включая добавление тестов для опции `--nm-bundle`. - 📚 Обновлена документация, добавлены ссылки на новый макрос `WITH_NODE_MODULES()`, объясняющий его использование и назначение. <a href="HIDDEN_URL"><font size="2">Autodescription by Code Assistant</font></a> </section> commit_hash:afdbc2b03fd128c9caafa3f989316390f3453d01
* feat(conf): validate importers in lockfilezaverden2025-03-241-0/+20
| | | | commit_hash:fbb82972273665ff4bb1be1b739a737f86d4899a
* fix(builder): run pnpm install with clean envzaverden2025-03-101-1/+1
| | | | commit_hash:515418498d8710e18b175057df15cc9c993ec06c
* Node.js SDK tasklet: support xcode_sidecarvitalii-perov2025-02-061-2/+3
| | | | commit_hash:2c55f79d794d1397298137030241375d3bff6f9d
* nots: Сделать output.tar главным артефактом ↵khoden2025-02-031-2/+1
| | | | | | | | сборки, чтобы можно было использовать его в BUNDLE() Пока что есть проблемы с пирами (всегда). Нужно разобраться, как их доставлять правильно. commit_hash:caf90ef2192d4e9b5b18ee468b0697cb55b79408
* nots/*: Поддержка пиров из pnpm.overrides (Experiment)khoden2024-12-111-4/+9
| | | | | | | | | | | | | | | | | | | | | | Конфигурирование, сборка, последующая работа показывает, что все работает, как задумано (в этом конкретном кейсе точно). ``` ~/arcadia/devtools/dummy_arcadia/typescript/pnpm_overrides -nots-support-pnpm-overrides took 3s at 15:29:04 f ❯ notsl build -- -n Building devtools/dummy_arcadia/typescript/pnpm_overrides… Warn[-WUserWarn]: in $S/devtools/frontend_build_platform/nots/builder/ya.make: Using branch nots/builder Ok ~/arcadia/devtools/dummy_arcadia/typescript/pnpm_overrides -nots-support-pnpm-overrides took 6s at 15:30:05 f ❯ notsl start > @yandex-int/pnpm-overrides-demo@ start /Users/khoden/arcadia/devtools/dummy_arcadia/typescript/pnpm_overrides > ya tool nots node build/index.js from fake_lodash Previous line should be 'from fake_lodash' ``` commit_hash:650c69f1fe38483cda5922ecd8cd813fffdf5bcd
* nots: дедупликация действий после сборки, ↵khoden2024-12-101-1/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | пропуск pnpm install на актуальных node_modules ## Суть изменений: 1. Пересмотрены методы логирования при сборке (и после), чтобы не показывались логи действий, который не выполняются (пропускаются). Таким образом логирование секций кода (с последующим стиранием строки лога) теперь осуществляется в методе-обёртке. 2. Команда `nots install` теперь выполняет последовательную сборку пиров (раньше запускал параллельно, что приводило к состоянию гонки); 3. Сборка пиров в команде `nots install` выполняется без рекурсивного обхода пиров для пиров (все пиры и так переданы). Это позволило не "чинить дедупликацию", а в принципе не приводить к "дупликации" – каждый пир проходится один раз. Тут важно определить порядок обхода. 4. Пропуск повторных запусков `pnpm install` без необходимости. Необходимость вычисляется так: - `builder` в локальном режиме кладет в аутпут файлик `pre.pnpm-lockfile.yaml`, хеш которого используется в `nots/cli` - `builder` в локальном режиме рядом с папкой `node_modules` создает файлик `node_modules.json` с хешом `pre.pnpm-lockfile.yaml`, который использовался при сборке этого `node_modules` - `nots/cli` использует сравнивает файлик из аутпута и из `node_modules.json` и если отличаются, то `pnpm install` запускается. Пожалуй, пункт 4 стоит расписать. Кажется, что эти файлики всегда будут совпадать, но я перестраховываюсь: часть пиров может быть закеширована в сборке, но удалена из `~/.nots/nm_store`, например, при запуске с `nots --clean`. Чтобы избежать подобных локальных казусов я и перестраховываюсь. Хеш от `pre.pnpm-lockfile.yaml` предпочтительнее хеша от `pnpm-lockfile.yaml`, т.к. он включает в себя пиры (т.е. это результат смерживания лок-файлов). Также была версия с проверкой, что node_modules создалась в промежутке между проверкой и запуском nots/cli (т.е. в рамках `ya make`), но это не работает при кешировании узлов сборки пиров. Если у вас будут идеи, какие еще проверки можно сделать для принятия решения, запускать ли `pnpm install` – я открыт к предложениям. ## Побочные улучшения: ### nots/cli - Добавлен хелпер `utils.ts:processItems(items, action)` - отказоустойчивый `forEach`; - Для `log-formatters.ts:unlog` вместо прямой записи ESC-последовательностей в stdout используется модуль `readline`; - `log-formatters.ts:unlog` не срабатывает в тестах (пишет заглушку) и при включении отладочного вывода (`DEBUG`/`--verbose`); - Для `DoneHandler` добавлен метод-обёртка `runOnce(action, key, fn)` для более удобного использования, а также запись в лог отладки, если действие пропускается. ## Что не вошло в PR Осталось на будущее: 1. Дедупликация пиров нескольких таргетов. Т.е. сборка пиров при `nots install project1 project2` должна быть общей, а не своё поддерево для каждого. И `ya make` для них нужно запускать один раз. И пост-сборочные действия выполнять единожды в правильном порядке, деже не пытаясь в дупликацию. 2. Подобный пункту 4 механизм, но не для `nots build`, а `nots install` — не запускать `pnpm install`, если недавно ставили (тут нужно определиться с критерием) commit_hash:11f98acb44f759464876f61c5dbf69da7c0d0340
* nots: bootstrap update to clean up old pnpm storevturov2024-12-041-0/+4
| | | | | `nots --clean-all` is to clean old pnpm store commit_hash:927fbcdd1038f132059572ff8a6d37ac8377b082
* ,Переход на pnpm@9 [technical]vturov2024-11-294-120/+474
| | | | | | + use pnpm 9.12.3 <hr/> commit_hash:401355b36acf391df042416ba13707112a07cecb
* nots/*: Стабилизация trunkkhoden2024-11-225-16/+65
| | | | | | | | | | | | | Суть изменений: 1. Наполнение папки ~/.nots/nm_store/$MODDIR/node_modules прямо в builder (перед установкой модулей в $BINDIR) 2. Это все равно нужно было бы делать в nots/cli, а теперь оно наполняется заранее, что обеспечивает структуру node_modules выше по уровню, чем virtual-store (важно для кастомных резолверов пакетов, ищущих пакеты выше по иерархии) 3. Убран предварительный запуск `pnpm install`, пакеты качаются один раз (тарболы в ya make) 4. После `ya make` все равно запускается `pnpm install` для гарантии (там еще всякие действия делаются) # Всем, кого робот призовет в PR ## Пожалуйста, игнорируйте, это массовая проверка, в транк не попадут изменения в ваших проектах ## Нам нужно лишь стриггерить CI, чтобы проверить, что никто не сломался. Правки в pnpm-lock.yaml файлах будет откачены. commit_hash:d124ecb77bda10bd8e975078382c685ac35c8928
* Only move node_modules dir if it existsvturov2024-11-101-1/+2
| | | | | Move node_modules bundle for peers only when those exist commit_hash:ba53ab8e38bbf8c45cdb921344bf780ff1d5f9da
* fix: duplicate peers block node_modules pack/unpackvturov2024-11-081-2/+3
| | | | | Duplicate paths for transitive peers should not block the bundling / installing commit_hash:53d3e2dfbd7e68234dcf318e16ba982f5353eda1
* nots: Локальные оптимизации сборки 2.0khoden2024-10-282-3/+20
| | | | | | | Не могу позеленить, локально всё хорошо: замокано, проходит и `nots test`, и `nots run test`, и `ya test`. Разбираюсь, но это не мешает ревьюить commit_hash:2e7b4cf14b0f8ff1a8340c919460395e5bcdfea7
* conf(feat): do not inputs from peers' outputszaverden2024-10-213-30/+7
| | | | commit_hash:2310b62b5ef95f4fc7ee6b278d8d4a71a9c3817c