summaryrefslogtreecommitdiffstats
path: root/build/plugins/lib/nots/package_manager/pnpm
Commit message (Collapse)AuthorAgeFilesLines
* chore(conf): merge package_manager.base and package_manager/pnpmzaverden2026-01-1210-1701/+0
| | | | | (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-281-31/+29
| | | | commit_hash:df7cd66aaf3674f89b9c2de41e2167b90ac03cdf
* pnpm: перейти на использование ↵baymer2025-10-171-0/+1
| | | | | | --config.prefer-symlinked-executables true commit_hash:d397d43267d09779e40f0934a374592fbb838879
* другое: Вычислять папочку .nots на основе ↵baymer2025-10-152-16/+11
| | | | | | прав на запись commit_hash:9c8e067c99e9e18718fd1dcd8aa3c9c20dea79f3
* remove the first pnpm installbaymer2025-10-141-48/+1
| | | | commit_hash:ed70cd729998e0329c62e9c846104cc0529bf8d0
* chore(conf+builder): remove experimental support for npmzaverden2025-10-077-10/+10
| | | | commit_hash:ff97bf7139227c9f62a7c1018bcf710ee907efc3
* 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-123-10/+19
| | | | | | .nots/pnpm-store commit_hash:f5f5fd9f8e06201395cda230991d1ab40f94299b
* 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
* feat(TS_PROTO): TS_PROTO_AUTO, package generationzaverden2025-08-123-7/+37
| | | | commit_hash:9960194d44a237d2a0a946d4c19be42e59164732
* 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
* Не упаковывать node_modules по умолчанию [technical]vturov2025-04-151-6/+6
| | | | | | | | | | | | | | | | | | | | | | | Новая переменная для получения бандла с 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
* 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-221-6/+54
| | | | | | | | | | | | | Суть изменений: 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
* nots: Локальные оптимизации сборки 2.0khoden2024-10-281-3/+13
| | | | | | | Не могу позеленить, локально всё хорошо: замокано, проходит и `nots test`, и `nots run test`, и `ya test`. Разбираюсь, но это не мешает ревьюить commit_hash:2e7b4cf14b0f8ff1a8340c919460395e5bcdfea7
* conf(feat): do not inputs from peers' outputszaverden2024-10-211-16/+3
| | | | commit_hash:2310b62b5ef95f4fc7ee6b278d8d4a71a9c3817c
* feat(conf+builder): remove contrib-related codezaverden2024-10-171-23/+0
| | | | commit_hash:cfbd74bf877107b5db0cb2ea60977b4849e15af5
* feat(builder): add tracing to node_moduleszaverden2024-10-031-11/+19
| | | | commit_hash:a90772ebe7455e03b8882a87230324f1f13426dc
* feat(npm): npm target with peerzaverden2024-08-161-14/+0
| | | | 861cdb3f890da6b591920637785f8de1d1267b6e
* feat(npm): build standalone npm modulezaverden2024-07-181-2/+2
| | | | f944a35c196f6f7b7d93b7d2e9716fcd57f85d9f
* feat(conf+builder): build without contrib/typescriptzaverden2024-06-113-7/+32
| | | | 89c8f9767a1ef610f9ee050e1a5da5728bba02d7
* Переименовать Arcadia Group frontend-build-platform в ↵khoden2024-06-062-2/+2
| | | | | | | frontend_build_platform, обновить все SUBSCRIBER в ya.make Дополнительно заменил SUBSCRIBER(g:testplane) на SUBSCRIBER(g:frontend_build_platform) (не везде, а только для FBP проектов типа run_hermione) 93fcf9322da8ed15f1d8d343a571e1b38f11369a
* feat(nots/cli, builder): copy patches to `pnpm install` directoryzaverden2024-05-151-0/+12
| | | | e71f3730f57e720d6efb18f42adbd2006606844e
* использовать EslintNewTestSuitevturov2024-05-031-2/+2
| | | | 38492359bcf6831eaf3a0003363e44f8ee70c19b
* chore: migrate package.json + pnpm-lock.yaml to @yatool/[email protected]zaverden2024-04-251-1/+3
| | | | | | | Для автосборки выпускается `@yatool/[email protected]`. Переход на `v1` происходит с ломающим изменением - переход на `pnpm.overrides` (подробности в тикете(https://st.yandex-team.ru/)). В рамках этого ПР не вносятся изменения в версии используемых пакетов. Производится только обновления структуры файлов `package.json` и `pnpm-lock.yaml` под новых подход работы с пребилдами. 7d29f2c38da8e22bd480056ac4a8be62240e3352
* feat(conf): support prebuilder v1 in conf validation (with fallback to v0 logic)zaverden2024-04-221-0/+10
| | | | | Integration is added in backward-compatible manner with `v0.x.x` 1f45f7b3235314fb1ee8d2051ff6d592c95813f0
* replace `OWNER` with `SUBSCRIBER` for build/thevery2024-04-102-2/+2
| | | | | | Привет! В рамках [задачи по наведению порядка в Аркадии](https://clubs.at.yandex-team.ru/arcadia/30094) заменяем OWNER на SUBSCRIBER в ya.make, чтобы в будущем переключить ревью на a.yaml. Этот пуллреквест приносит чисто технические изменения, правила и уведомления про ревью не меняются. 66643ef2ea3057cb2bdcd789ca7302eceeb936b1
* builder: pnpm install интеракцияkhoden2024-03-011-0/+1
| | | | | Добавил `--config.confirmModulesPurge=false` при вызове команды `pnpm install` c1b18870105ce0b5bccc98b120d321159b08557c
* nots/bootstrap: добавить параметр для очистки CASkhoden2024-02-281-2/+6
| | | | bc5f65939283a67efed802b5e7b2dda6cf645178
* feat(conf): configure used tarballs by own pnpm-lock.yamlzaverden2024-02-266-70/+72
| | | | b61ff371d6ad2f8c646f2a04e4a7d0fa178a6541
* feat(builder): switch to PY3 onlyzaverden2024-02-163-5/+7
| | | | d6858973111135b4053e51b2e05deea4955ffcdf
* toolchain: обновить pnpm до v8vturov2024-02-141-5/+0
| | | | | | | - Включить `pnpm@8` по умолчанию, увеличиваем range для допуска версий `8.х.х` при обновлении ресурсов. - Убрать временный код, флаги и переменные, добавленные для совместимости лок-файлов версии 6 и `pnpm@7` - Обновить `pnpm-lock` для `hrtech/frontend/services/st-miro-app` 6df5f5335cb95cbc90a0465c5d8d4f2cefbcc7be
* feat(conf): move nots from internalzaverden2024-02-0810-0/+1055
|
* move TS related stuff to build/internalsnermolaev2023-09-2510-934/+0
|
* feat(node_modules): call prebuilder apply-addons after installzaverden2023-09-221-0/+21
|
* feat(FROM_NPM): load packages by tarball urlzaverden2023-09-202-26/+17
| | | | Раньше FROM_NPM строил урл для скачивания по имени пакета. Изменил это на использование поля tarball, потому что это требуется для интеграции с `@yatool/prebuilder`
* Всегда перечислять pnpm-lock.yaml во входах ↵miripiruni2023-06-291-4/+10
| | | | | | | модуля Issues: * https://st.yandex-team.ru/ * https://st.yandex-team.ru/