
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.
Source-of-truth repo for the AngularJS to Angular 18 GitHub Copilot instructions package shipped to github/awesome-copilot at instructions/angularjs-to-angular-18.instructions.md. First in a planned series of enterprise-targeted Copilot products from RoninForge (planned: .NET Framework to .NET 9 migration, HIPAA PHI redaction, T-SQL anti-patterns, characterization tests for legacy code).
ng-srcset, all versions 1.3.0 through 1.8.3) has no upstream patch. Commercial extended-support forks (HeroDevs NES, OpenLogic) are the only patched builds.TTM = (LOC/LPW) * 1.4) that makes the calendar cost visible.One large .instructions.md file (1,971 lines) covering:
@if/@for/@switch, deferrable views @defer, function-based interceptors/guards/resolvers, provideHttpClient, provideRouter + withComponentInputBinding, inject(), typed reactive forms, OnPush + zoneless dev preview, DestroyRef + takeUntilDestroyed, toSignal/toObservable, signal-based viewChild/viewChildren, , Vitest, application builder)~/development/roninforge-angularjs-migration/
.
.cm README.md This file
.cm LICENSE MIT
.cm CHANGELOG.md semver entries
.cm META.yml slug / type / version / target_paths consumed by submit script
.cm .editorconfig / .gitattributes LF-only normalization (awesome-copilot blocks CRLF)
.cm .codespellrc mirrors upstream allowlist
.cm scripts/
.cm validate-awesome-copilot-submission.sh reusable validator, mirrors every blocking CI gate
.cm submit-to-awesome-copilot.sh reusable submitter (fork, branch from staged, copy, regen, PR)
.cm src/ (placeholder for authoring partials when future packages split sources)
.cm dist/
.cm angularjs-to-angular-18.instructions.md exact file that gets rsynced into upstream instructions/
.cm tests/golden/ (placeholder for diff-against-frozen-output tests)
.cm .github/workflows/validate.yml runs the validator on every push
research/ is gitignored; it contains internal notes that informed the instructions content but is not part of the public artifact.
scripts/validate-awesome-copilot-submission.shRun inside a clone of github/awesome-copilot. Mirrors every blocking CI gate:
npm ci if needed# )codespell --check-filenames --config .codespellrcgh aw compile --validate for workflowsnpm run plugin:validate for pluginsnpm run skill:validate for skills/agents (warn-only)npm start + git diff --exit-code (the #1 mechanical bounce - validate-readme.yml fails if README/marketplace are stale)scripts/submit-to-awesome-copilot.shEnd-to-end pipeline:
META.yml (slug, type, version)gh auth statusgithub/awesome-copilot to RoninForge if not already forked.upstream-clone/upstream/staged (NEVER main)upstream/stageddist/ artifacts to the upstream tree at the correct paths per typenpm start to regenerate README + marketplace🤖🤖🤖 AI-author fast-track markerstaged (NEVER main) - the job auto-rejects PRs to mainSupports --dry-run (stops before push) and --no-pr (pushes branch but skips PR creation).
Pin floors:
ng update schematic stability.Avoid: AngularJS-era packages no longer maintained (angular-ui-bootstrap, ng-storage, ng-flow, angular-translate-loader-static-files); Karma + Jasmine for new test files (Vitest via ng add @analogjs/vitest-angular).
MIT - see LICENSE.
RoninForge builds free tools for developers working with AI coding assistants:
NgOptimizedImage$scope.$apply, ng-controller, $compile, $http, $q, ng-app, ng-bind-html, ng-click, angular.module, | filter, $resource, $cookies, $location, IIFE 'use strict' wrap)*ngIf / *ngFor / *ngSwitch, NgModules, @Input() / @Output() decorators, constructor DI, class-based interceptors/guards/resolvers, HttpClientModule, RouterModule.forRoot, Promise.all vs forkJoin, subscribe leaks, BehaviorSubject state, default change detection, @ViewChild static, untyped forms, rxjs/operators deprecated imports, browser builder)downgradeInjectable / downgradeComponent, wrong bootstrap order, treating ng update as a framework migration, literal $rootScope.$broadcast ports, BrowserAnimationsModule in standalone, zoneless + zone.js polyfill leak)check-pr-target.yml