Merge branch 'phase/49-skip-stale-build'
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
# Вне очереди
|
||||
|
||||
Задачи, которых нет в нумерованных срезах. Сюда не дописывают срез 9 и не заводят срез 10:
|
||||
это склейка уже живых систем, после любой фазы школа целая.
|
||||
склейка уже живых систем и мелкий DX. После любой фазы школа целая.
|
||||
|
||||
Люди: [`people.md`](people.md). Штат: [`staffing.md`](staffing.md). Расписание:
|
||||
[`schedule.md`](schedule.md). Присутствие: [`ai.md`](ai.md). Одежда и климат:
|
||||
@@ -88,3 +88,33 @@
|
||||
| Тепло | Рядом с голодом, произведение двух `NeedFactor` |
|
||||
| Учебник | Только сумка, не шкафчик и не дом; ваниль ×0.5 |
|
||||
| Погода на дорогу | Минуты в `BehaviorDef`; лога нет |
|
||||
|
||||
## Пропуск сборки при запуске
|
||||
|
||||
### Зачем
|
||||
|
||||
`run-aspire.cmd` каждый раз вызывает `dotnet run`, а тот — MSBuild графа Aspire, даже когда
|
||||
исходники не менялись. Повторный запуск после Ctrl+C стоит десятки секунд впустую: SDK
|
||||
пересчитывает хост, хотя dll на месте.
|
||||
|
||||
### Было / Стало / Почему
|
||||
|
||||
**Было.** Скрипт всегда `dotnet run --project src/HSchool.AppHost`. Аргументы проходили насквозь.
|
||||
|
||||
**Стало.** Если `HSchool.AppHost.dll` и `HSchool.Server.dll` новее входов (C#, csproj, props,
|
||||
`global.json`), скрипт делает `dotnet run --no-build`. Иначе — `dotnet build`, потом `--no-build`.
|
||||
`--rebuild` собирает всегда. Конфигурация (`-c` / `--configuration`) выбирает, какие dll сравнивать;
|
||||
по умолчанию Debug, как у `dotnet run`.
|
||||
|
||||
**Почему.** Инкрементальный MSBuild всё равно оценивает Aspire SDK. `--no-build` это пропускает.
|
||||
Клиентский TypeScript и JSONC модов не входы: Vite и каталог читают диск (`ContentRoot`), а не
|
||||
`bin`. Тестовые проекты AppHost не ссылается — их правки запуск не пересобирают.
|
||||
|
||||
Правила «устарел ли билд» живут в `tools/apphost-uptodate.ps1` (то, что вызывает `.cmd`) и в
|
||||
`LaunchBuildStamp` (то, что проверяют тесты). Менять надо оба.
|
||||
|
||||
### Что не входит
|
||||
|
||||
Голый `dotnet run --project src/HSchool.AppHost` по-прежнему собирает — так удобнее агентам с
|
||||
грязным деревом. Linux-обёртки нет: точка входа Windows — `.cmd`. Протокол, HTTP и сейв не
|
||||
трогаем.
|
||||
|
||||
Reference in New Issue
Block a user