Skip to content

Commit 4daac79

Browse files
authored
Merge pull request #16 from pdugan20/chore/deps-phase-1
chore(deps): phase 1 - CI actions and dev dependency patches
2 parents 91b328f + f593d7b commit 4daac79

File tree

8 files changed

+167
-32
lines changed

8 files changed

+167
-32
lines changed

.github/workflows/ci.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,13 @@ jobs:
1010
ci:
1111
runs-on: ubuntu-latest
1212
steps:
13-
- uses: actions/checkout@v4
13+
- uses: actions/checkout@v6
1414

1515
- name: Validate CLAUDE.md
1616
run: npx claude-code-lint@latest
1717

1818
- name: Set up Node
19-
uses: actions/setup-node@v4
19+
uses: actions/setup-node@v6
2020
with:
2121
node-version-file: '.nvmrc'
2222
cache: 'npm'

.github/workflows/release.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,12 @@ jobs:
2626
if: needs.release-please.outputs.release_created == 'true'
2727
runs-on: ubuntu-latest
2828
steps:
29-
- uses: actions/checkout@v4
29+
- uses: actions/checkout@v6
3030
with:
3131
ref: ${{ needs.release-please.outputs.tag_name }}
3232

3333
- name: Set up Node
34-
uses: actions/setup-node@v4
34+
uses: actions/setup-node@v6
3535
with:
3636
node-version-file: '.nvmrc'
3737
cache: 'npm'
File renamed without changes.
File renamed without changes.
File renamed without changes.
Lines changed: 143 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,143 @@
1+
# Dependency Upgrades Tracker
2+
3+
Tracking the upgrade of all outdated dependencies across 6 phases ordered by risk and dependency chain.
4+
5+
**Started**: 2026-03-05
6+
**Branch prefix**: `chore/deps-`
7+
8+
## Open Dependabot PRs
9+
10+
These existing PRs need to be resolved (merged or closed) as part of this effort.
11+
12+
| PR | Description | CI | Merge Status | Action |
13+
| --- | --------------------------------------------- | ---- | ------------ | ---------------------------- |
14+
| #5 | `actions/checkout` 4 to 6 | Pass | Clean | Closed, superseded by PR #16 |
15+
| #6 | `actions/setup-node` 4 to 6 | Pass | Clean | Closed, superseded by PR #16 |
16+
| #7 | Grouped dev deps (8 packages) | Pass | Conflicts | Closed, superseded by PR #16 |
17+
| #9 | `@figma/eslint-plugin-figma-plugins` 0.16-1.0 | Pass | Conflicts | Close, Phase 3 |
18+
| #10 | React + @types/react | Fail | Conflicts | Close, Phase 4 |
19+
| #11 | `@typescript-eslint/eslint-plugin` 6-8 | Fail | Conflicts | Close, Phase 3 |
20+
21+
## Phase 1: CI Actions and Safe Dev Dependency Patches
22+
23+
Low-risk changes with passing CI. No breaking changes expected.
24+
25+
**Branch**: `chore/deps-phase-1`
26+
27+
- [x] Merge PR #5 - `actions/checkout` 4 to 6 (superseded by PR #16)
28+
- [x] Merge PR #6 - `actions/setup-node` 4 to 6 (superseded by PR #16)
29+
- [x] Rebase and merge PR #7 - grouped dev dependencies (superseded by PR #16):
30+
- `@testing-library/jest-dom` 6.8.0 to 6.9.1
31+
- `eslint-plugin-prettier` 5.5.4 to 5.5.5
32+
- `eslint-plugin-testing-library` 7.6.6 to 7.15.4
33+
- `prettier` 3.6.2 to 3.8.1
34+
- `prettier-plugin-tailwindcss` 0.6.14 to 0.7.2
35+
- `ts-jest` 29.4.1 to 29.4.6
36+
- `ts-loader` 9.5.2 to 9.5.4
37+
- `webpack` 5.101.3 to 5.104.1
38+
- [x] All checks passing (lint, types, 88/88 tests, build)
39+
40+
**PR**: #16 | **Verification**: all passed
41+
42+
## Phase 2: Low-Risk Tool Bumps
43+
44+
Minor/major bumps for standalone dev tools unlikely to cause breakage.
45+
46+
**Branch**: `chore/deps-phase-2`
47+
48+
- [ ] `markdownlint-cli` 0.42.0 to 0.48.0
49+
- [ ] `@commitlint/cli` 19.8.1 to 20.x
50+
- [ ] `@commitlint/config-conventional` 19.8.1 to 20.x
51+
- [ ] `lint-staged` 15.5.2 to 16.x
52+
- [ ] Run full test suite and verify pre-commit hooks still work
53+
54+
**Verification**: `npm test`, `npm run lint:md`, test a sample commit
55+
56+
## Phase 3: ESLint 9 Migration
57+
58+
Major ecosystem change. ESLint 9 requires flat config (`eslint.config.js`) replacing `.eslintrc.*`. All ESLint-related packages must move together.
59+
60+
**Branch**: `chore/deps-eslint-9`
61+
62+
- [ ] Research ESLint 8 to 9 migration guide
63+
- [ ] Audit current `.eslintrc` config and all plugin compatibility
64+
- [ ] Upgrade `eslint` 8.57.1 to 9.x
65+
- [ ] Upgrade `@typescript-eslint/eslint-plugin` 6.21.0 to 8.x
66+
- [ ] Upgrade `@typescript-eslint/parser` 6.21.0 to 8.x
67+
- [ ] Upgrade `eslint-config-airbnb-typescript` 17.1.0 to 18.x
68+
- [ ] Upgrade `eslint-plugin-react-hooks` 4.6.2 to 7.x
69+
- [ ] Upgrade `@figma/eslint-plugin-figma-plugins` 0.16.1 to 1.0.0
70+
- [ ] Migrate `.eslintrc` to `eslint.config.js` (flat config)
71+
- [ ] Verify all lint rules still apply correctly
72+
- [ ] Close Dependabot PRs #9 and #11
73+
74+
**Verification**: `npm run lint:fix`, `npx tsc --noEmit --skipLibCheck`, `npm test`
75+
76+
## Phase 4: React 19
77+
78+
React 19 includes breaking changes (removed legacy APIs, new JSX transform requirements). Testing library must also bump.
79+
80+
**Branch**: `chore/deps-react-19`
81+
82+
- [ ] Review React 19 migration guide and breaking changes
83+
- [ ] Upgrade `react` 18.3.1 to 19.x
84+
- [ ] Upgrade `react-dom` 18.3.1 to 19.x
85+
- [ ] Upgrade `@types/react` 18.3.28 to 19.x
86+
- [ ] Upgrade `@types/react-dom` 18.3.7 to 19.x
87+
- [ ] Upgrade `@testing-library/react` 14.3.1 to 16.x
88+
- [ ] Check `figma-kit` compatibility with React 19
89+
- [ ] Check `react-textarea-autosize` compatibility with React 19
90+
- [ ] Check `react-router` compatibility with React 19
91+
- [ ] Fix any breaking API changes in components
92+
- [ ] Run full test suite and manually test plugin in Figma
93+
- [ ] Close Dependabot PR #10
94+
95+
**Verification**: `npm test`, `npm run build`, manual Figma plugin test
96+
97+
## Phase 5: Webpack and Build Tooling
98+
99+
Loader and CLI major version bumps. These can break the build pipeline.
100+
101+
**Branch**: `chore/deps-build-tooling`
102+
103+
- [ ] Upgrade `css-loader` 6.11.0 to 7.x
104+
- [ ] Upgrade `style-loader` 3.3.4 to 4.x
105+
- [ ] Upgrade `postcss-loader` 7.3.4 to 8.x
106+
- [ ] Upgrade `webpack-cli` 5.1.4 to 6.x
107+
- [ ] Upgrade `webpack-merge` 5.10.0 to 6.x
108+
- [ ] Verify webpack config compatibility with new loader APIs
109+
- [ ] Test dev (`npm run watch`) and production (`npm run build`) builds
110+
111+
**Verification**: `npm run build`, `npm run watch` (manual check), `npm test`
112+
113+
## Phase 6: Tailwind CSS 4 (Evaluate)
114+
115+
Tailwind CSS 4 is a ground-up rewrite with a new engine and config format. This is the highest-effort upgrade and may not be worth doing depending on project roadmap.
116+
117+
**Branch**: `chore/deps-tailwind-4`
118+
119+
- [ ] Review Tailwind CSS 4 migration guide
120+
- [ ] Evaluate effort vs. benefit for this project
121+
- [ ] Decision: proceed or defer
122+
- [ ] If proceeding:
123+
- [ ] Migrate `tailwind.config.js` to new format
124+
- [ ] Update `@tailwindcss/*` plugins for v4 compatibility
125+
- [ ] Audit all custom Tailwind classes for breaking changes
126+
- [ ] Test all UI screens in Figma plugin
127+
128+
**Verification**: `npm run build`, visual regression check in Figma
129+
130+
## Other Noted Upgrades
131+
132+
- [ ] `@types/jest` 29.x to 30.x - evaluate after Phase 5 (may require Jest 30)
133+
134+
## Completion Log
135+
136+
| Phase | Date | Notes |
137+
| ------- | ---------- | ----------------------------------------- |
138+
| Phase 1 | 2026-03-05 | PR #16. Closed dependabot PRs #5, #6, #7. |
139+
| Phase 2 | | |
140+
| Phase 3 | | |
141+
| Phase 4 | | |
142+
| Phase 5 | | |
143+
| Phase 6 | | |

package-lock.json

Lines changed: 12 additions & 20 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
"@tailwindcss/aspect-ratio": "^0.4.2",
3232
"@tailwindcss/container-queries": "^0.1.1",
3333
"@tailwindcss/typography": "^0.5.10",
34-
"@testing-library/jest-dom": "^6.1.4",
34+
"@testing-library/jest-dom": "^6.9.1",
3535
"@testing-library/react": "^14.1.0",
3636
"@types/jest": "^29.5.8",
3737
"@types/react": "^18.3.23",
@@ -48,11 +48,11 @@
4848
"eslint-config-prettier": "^10.1.3",
4949
"eslint-plugin-import": "^2.32.0",
5050
"eslint-plugin-jsx-a11y": "^6.10.2",
51-
"eslint-plugin-prettier": "^5.5.1",
51+
"eslint-plugin-prettier": "^5.5.5",
5252
"eslint-plugin-react": "^7.37.5",
5353
"eslint-plugin-react-hooks": "^4.3.0",
5454
"eslint-plugin-tailwindcss": "^3.18.0",
55-
"eslint-plugin-testing-library": "^7.5.3",
55+
"eslint-plugin-testing-library": "^7.16.0",
5656
"file-loader": "^6.2.0",
5757
"fork-ts-checker-webpack-plugin": "^9.0.2",
5858
"html-inline-script-webpack-plugin": "^3.2.1",
@@ -64,15 +64,15 @@
6464
"markdownlint-cli": "^0.48.0",
6565
"postcss": "^8.5.6",
6666
"postcss-loader": "^7.3.3",
67-
"prettier": "^3.6.1",
68-
"prettier-plugin-tailwindcss": "^0.6.13",
67+
"prettier": "^3.8.1",
68+
"prettier-plugin-tailwindcss": "^0.7.2",
6969
"style-loader": "^3.3.3",
7070
"tailwindcss": "^3.3.5",
71-
"ts-jest": "^29.4.0",
72-
"ts-loader": "^9.5.0",
71+
"ts-jest": "^29.4.6",
72+
"ts-loader": "^9.5.4",
7373
"typescript": "^5.2.2",
7474
"url-loader": "^4.1.1",
75-
"webpack": "^5.99.9",
75+
"webpack": "^5.105.4",
7676
"webpack-cli": "^5.1.4",
7777
"webpack-merge": "^5.10.0"
7878
},

0 commit comments

Comments
 (0)