Skip to main content
plugin GitHub Copilot official · GitHub

react19-upgrade — GitHub Copilot plugin: what it does, how to install

Automates migration from React 18 to React 19 across codebases. Helps remove deprecated APIs and repair broken test suites without tedious manual rewrites.

Install into GitHub Copilot · Command from the source All methods and platforms ↓
copilot plugin install react19-upgrade@awesome-copilot
Open on GitHub

What react19-upgrade does

The plugin coordinates five specialized agents through react19-commander. The process begins with react19-auditor, detecting removed APIs like ReactDOM.render, findDOMNode, string refs, and legacy context. Next, react19-dep-surgeon upgrades packages to react@19 and @testing-library/react@16+ while resolving peer dependency conflicts.

Once audited, react19-migrator rewrites source files. It converts forwardRef to direct ref props, moves defaultProps to ES6 defaults, and patches useRef() to useRef(null). Then react19-test-guardian updates act imports, switches Simulate calls to fireEvent, and adjusts call counts affected by React 19 StrictMode changes until every test passes.

This toolkit assumes your codebase is already on React 18. If your application runs on React 16 or 17, use the react18-upgrade plugin first to reach 18.3.1. Install this when you need an automated, test-verified path to modern React.

What it helps with

  • scan codebases for removed React 19 APIs and deprecated patterns
  • rewrite ReactDOM.render to createRoot and hydrate to hydrateRoot
  • convert forwardRef implementations into direct ref props
  • update act imports from react-dom/test-utils to react
  • resolve peer dependency conflicts when upgrading to react@19

Example prompts for the agent

  • Start implementing React 19 migration for my codebase
  • Audit the project for deprecated React 19 patterns and removed APIs
  • Upgrade dependencies to React 19 and fix broken unit tests

How to install react19-upgrade

Command from the source

copilot plugin install react19-upgrade@awesome-copilot

From the same set554

The whole set →
git-commit official github This skill reviews Git changes, stages related files, and creates Conventional Commits. Use it when you want an agent to make one commit or split work into separate commits. GitHub Copilot 47,165installs excalidraw-diagram-generator official github Turn a plain-language description into an Excalidraw diagram. Useful for mapping processes, system structure, and relationships between entities. GitHub Copilot 31,639installs multi-stage-dockerfile official github This skill guides GitHub Copilot in writing multi-stage Dockerfiles for different languages and frameworks. Use it when the final runtime image should contain fewer build dependencies. GitHub Copilot 29,688installs documentation-writer official github Skill that turns the agent into a technical writer following the Diátaxis framework: tutorials, how-to guides, reference, and explanation. Proposes structure before writing. GitHub Copilot 27,757installs prd official github Turns a feature idea into a structured PRD with user stories, technical requirements, and risks. Use it when planning a software feature or an AI-powered one. GitHub Copilot 24,035installs refactor official github This skill reshapes existing code without changing its external behavior. Use it for gradual cleanup of large functions, duplication, weak types, and code smells. GitHub Copilot 22,321installs java-springboot official github Gives GitHub Copilot Spring Boot development practices, from project layout to tests and security. Use it when writing or reviewing Java application code. GitHub Copilot 21,272installs create-readme official github This skill reviews a project and creates a structured README.md. Use it when the repository needs clear documentation based on its actual files and code. GitHub Copilot 19,081installs

Questions about react19-upgrade

How to install react19-upgrade in GitHub Copilot?

Run copilot plugin install react19-upgrade@awesome-copilot in your terminal. For Claude Code, run /plugin marketplace add github/awesome-copilot followed by /plugin install react19-upgrade@awesome-copilot.

What does react19-upgrade do?

It executes an automated pipeline to audit code, bump dependencies to react@19, rewrite deprecated React 18 patterns, and fix tests until zero failures remain.

Can I upgrade directly from React 16 or 17?

No, the plugin requires an existing React 18 codebase. Projects on React 16 or 17 should use the react18-upgrade plugin first to reach version 18.3.1.

Source text

react19-upgrade · MIT
# React 19 Upgrade Plugin

Enterprise toolkit for migrating React 18 codebases to React 19. Includes five specialized agents and three skills targeting the specific challenges of upgrading to React 19's modern API surface.

## Installation

```bash
copilot plugin install react19-upgrade@awesome-copilot
```

## What's Included

### Agents

1. **react19-commander**  Master orchestrator that coordinates the entire migration pipeline through audit, dependencies, source code migration, and test verification phases.

2. **react19-auditor**  Deep-scan specialist that identifies every React 19 breaking change and deprecated pattern:
   - Removed APIs: `ReactDOM.render`, `ReactDOM.hydrate`, `unmountComponentAtNode`, `findDOMNode`, `createFactory`, `react-dom/test-utils` exports
   - Legacy Context API (`contextTypes`, `childContextTypes`, `getChildContext`)
   - String refs (`this.refs.x`)
   - Deprecated patterns: `forwardRef`, `defaultProps` on function components, `useRef()` without initial value
   - Test-specific issues: `act` import location, `Simulate` usage, StrictMode changes

3. **react19-dep-surgeon**  Dependency upgrade specialist that upgrades to react@19, handles @testing-library/react@16+, resolves all peer conflicts, and returns GO/NO-GO confirmation.

4. **react19-migrator**  Source code migration engine that rewrites required React 19 changes and can apply optional modernizations for deprecated patterns:  
   - `ReactDOM.render` → `createRoot`  
   - `ReactDOM.hydrate` → `hydrateRoot`  
   - `unmountComponentAtNode` → `root.unmount()`  
   - `findDOMNode` → direct refs  
   - Optional modernization: `forwardRef` → ref as direct prop  
   - `defaultProps` → ES6 defaults
   - Legacy Context → `createContext`
   - String refs → `createRef`
   - `useRef()` → `useRef(null)`
   - `propTypes` → documentation comments

5. **react19-test-guardian**  Test suite fixer that handles:
   - `act` import fixes (react-dom/test-utils → react)
   - `Simulate` → `fireEvent` migrations
   - StrictMode spy call count deltas (no more double-invoke in React 19)
   - `useRef` shape updates
   - Custom render helper verification
   - Error boundary test updates
   - Runs tests until zero failures

### Skills

1. **react19-concurrent-patterns**  Deep patterns for React 19 concurrent features including Suspense, use() Hook, Server Components integration, and concurrent batching.

2. **react19-source-patterns**  Migration patterns for source API changes including DOM/root APIs, refs, and context updates.

3. **react19-test-patterns**  Comprehensive test migration guide covering `act()` semantics, error boundary testing, and StrictMode behavioral changes.

## Quick Start

```
Ask: "Start implementing React 19 migration for my codebase"
```

The react19-commander will guide you through:

1. Audit → identify all breaking changes
2. Deps → upgrade to react@19 + compatible libraries
3. Migrate → fix all deprecated APIs and patterns
4. Tests → migrate test suite and run to green

## Breaking Changes from React 18

### Removed APIs

- `ReactDOM.render()`  use `createRoot()`
- `ReactDOM.hydrate()`  use `hydrateRoot()`
- `ReactDOM.unmountComponentAtNode()`  use `root.unmount()`
- `ReactDOM.findDOMNode()`  use direct refs
- `React.createFactory()`  use JSX
- `react-dom/test-utils` exports
- Legacy Context API
- String refs

### Deprecated Patterns (Still work but should migrate)

- `forwardRef`  ref is now a direct prop
- `defaultProps` on function components  use ES6 defaults
- `useRef()` without initial value  pass `null`

### Behavioral Changes

- StrictMode no longer double-invokes effects (affects test call count assertions)
- `propTypes` runtime validation removed (keep for documentation, but no runtime checks)

## Key Features

- ✅ Comprehensive removal of 8+ deprecated React APIs
- ✅ Handles complex patterns: legacy context, forwardRef, defaultProps
- ✅ Memory-based resumable pipeline  survive interruptions
- ✅ Zero tolerance for incomplete migrations  run to full success
- ✅ StrictMode-aware test fixes
- ✅ Testing-library v16+ compatibility verification
- ✅ Error boundary and async test pattern updates

## Prerequisite

This plugin assumes you're migrating from **React 18** codebases. If you're on React 16/17, use the **react18-upgrade** plugin first to reach React 18.3.1, then use this plugin for the React 19 final upgrade.

## Source

This plugin is part of [Awesome Copilot](https://github.com/github/awesome-copilot).

## License

MIT

© Awesome Copilot Community · MIT · github/awesome-copilot

See also

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor