
AngularJS 1.x -> Angular 18 migration guidance for GitHub Copilot. Source-of-truth repo for github/awesome-copilot/instructions/angularjs-to-angular-18.instructions.md. 62 LLM regressions across 3 modes. AngularJS EOL since Dec 31 2021; CVE-2024-21490 unpatched.
Репозиторий эталонного набора инструкций для GitHub Copilot по миграции AngularJS → Angular 18, поставляемого в github/awesome-copilot по пути instructions/angularjs-to-angular-18.instructions.md. Первый в запланированной серии корпоративных продуктов Copilot от RoninForge (в планах: миграция .NET Framework → .NET 9, редактирование PHI по HIPAA, антипаттерны T-SQL, характеризационные тесты для унаследованного кода).
ng-srcset, все версии 1.3.0–1.8.3) не имеет патча от разработчика. Коммерческие форки расширенной поддержки (HeroDevs NES, OpenLogic) — единственные исправленные сборки.TTM = (LOC/LPW) * 1.4), делающая календарные затраты очевидными.Один большой файл .instructions.md (1 971 строка), покрывающий:
@if/@for/@switch, отложенные представления @defer, функциональные интерцепторы/гварды/резолверы, provideHttpClient, provideRouter + withComponentInputBinding, inject(), типизированные реактивные формы, OnPush + предварительный просмотр zoneless, DestroyRef + takeUntilDestroyed, toSignal/toObservable, сигнальные viewChild/viewChildren, , Vitest, application builder)~/development/roninforge-angularjs-migration/
.
.cm README.md Этот файл
.cm LICENSE MIT
.cm CHANGELOG.md Записи semver
.cm META.yml slug / type / version / target_paths — потребляется скриптом отправки
.cm .editorconfig / .gitattributes Нормализация только LF (awesome-copilot блокирует CRLF)
.cm .codespellrc Зеркалирует список разрешённых слов вышестоящего репозитория
.cm scripts/
.cm validate-awesome-copilot-submission.sh Многоразовый валидатор, повторяет все блокирующие CI-шлюзы
.cm submit-to-awesome-copilot.sh Многоразовый отправитель (форк, ветка от staged, копирование, регенерация, PR)
.cm src/ (заполнитель для авторских частей, когда в будущем пакеты будут разделять исходники)
.cm dist/
.cm angularjs-to-angular-18.instructions.md Точный файл, который rsync-ится в ../instructions/
.cm tests/golden/ (заполнитель для тестов diff-against-frozen-output)
.cm .github/workflows/validate.yml Запускает валидатор при каждом push
research/ добавлен в .gitignore; содержит внутренние заметки, использованные при составлении инструкций, но не является частью публичного артефакта.
scripts/validate-awesome-copilot-submission.shЗапускается в клоне github/awesome-copilot. Повторяет все блокирующие CI-шлюзы:
npm ci при необходимости# )codespell --check-filenames --config .codespellrcgh aw compile --validate для рабочих процессовnpm run plugin:validate для плагиновnpm run skill:validate для навыков/агентов (только предупреждение)npm start + git diff --exit-code (самая частая механическая блокировка — validate-readme.yml падает, если README/marketplace устарели)scripts/submit-to-awesome-copilot.shСквозной пайплайн:
META.yml (slug, type, version)gh auth statusgithub/awesome-copilot в RoninForge, если ещё не сделан.upstream-clone/upstream/staged (НИКОГДА НЕ main)upstream/stageddist/ в дерево вышестоящего репозитория по правильным путям в зависимости от типаnpm start для регенерации README + marketplace🤖🤖🤖staged (НИКОГДА НЕ ) — job автоматически отклоняет PR в mainПоддерживает --dry-run (остановка перед пушем) и --no-pr (пуш ветки без создания PR).
Минимальные версии:
ng update.Избегать: пакеты эпохи AngularJS, которые больше не поддерживаются (angular-ui-bootstrap, ng-storage, ng-flow, angular-translate-loader-static-files); Karma + Jasmine для новых тестовых файлов (использовать Vitest через ng add @analogjs/vitest-angular).
MIT — см. LICENSE.
RoninForge создаёт бесплатные инструменты для разработчиков, работающих с AI-ассистентами программирования:
NgOptimizedImage$scope.$apply, ng-controller, $compile, $http, $q, ng-app, ng-bind-html, ng-click, angular.module, | filter, $resource, $cookies, $location, обёртка IIFE 'use strict')*ngIf / *ngFor / *ngSwitch, NgModules, декораторы @Input() / @Output(), DI через конструктор, классовые интерцепторы/гварды/резолверы, HttpClientModule, RouterModule.forRoot, Promise.all vs forkJoin, утечки при подписке, состояние через BehaviorSubject, обнаружение изменений по умолчанию, @ViewChild static, нетипизированные формы, устаревшие импорты rxjs/operators, browser builder)downgradeInjectable / downgradeComponent, неправильный порядок загрузки, трактовка ng update как миграции фреймворка, буквальный перенос $rootScope.$broadcast, BrowserAnimationsModule в standalone, утечка zoneless + zone.js polyfill)maincheck-pr-target.yml