Skip to content

Commit 7ca1b60

Browse files
authored
Merge pull request #9050 from opsmill/wvd-20260424-prep-release-1.9
prepare release v1.9.0
2 parents a6781cb + 3fb7ce9 commit 7ca1b60

1,100 files changed

Lines changed: 90667 additions & 35843 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/copilot-instructions.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,13 @@ Documentation generated for Infrahub must reflect this novel approach, providing
1212

1313
- **Monorepo**: Contains backend (Python), frontend (React), docs, and infrastructure tools.
1414
- **Backend**: Located in `backend/infrahub/`, implements the core graph-based infrastructure datastore, API, and business logic.
15-
- **Frontend**: Under `frontend/app/` and `frontend/packages/`, built with React (Create React App) and custom UI packages.
15+
- **Frontend**: Under `frontend/app/` and `frontend/packages/`, built with React (Vite) and custom UI packages.
1616
- **Docs**: In `docs/`, built with Docusaurus. Use `npm start` for local dev, `npm run build` to generate static site.
1717

1818
## Developer Workflows
1919

2020
- **Backend**: Use uv for dependency management (`pyproject.toml`). Run tests with `pytest` or via `invoke` tasks.
21-
- **Frontend**: Use npm scripts (`npm start`, `npm test`, `npm run build`) in `frontend/app/`.
21+
- **Frontend**: Use pnpm scripts (`pnpm start`, `pnpm test`, `pnpm build`) in `frontend/app/`.
2222
- **Docs**: Develop in `docs/`, preview with `invoke docs.build docs.serve`. Validate docs site with `invoke docs.validate`.
2323

2424
## Project Conventions

.github/file-filters.yml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@ ci_config: &ci_config
66
github_workflows: &github_workflows
77
- ".github/workflows/*.yml"
88

9+
version_upgrade_workflow:
10+
- ".github/workflows/version-upgrade.yml"
11+
912
development_files: &development_files
1013
- "development/**"
1114
- "tasks/**"
@@ -35,8 +38,7 @@ openapi_schema_files: &openapi_schema_files
3538

3639
graphql_schema_files: &graphql_schema_files
3740
- "schema/schema.graphql"
38-
- "frontend/app/src/shared/api/graphql/graphql-env.d.ts"
39-
- "frontend/app/src/shared/api/graphql/graphql-cache.d.ts"
41+
- "frontend/app/src/shared/api/graphql/generated/**"
4042

4143
e2e_test_files:
4244
- "frontend/app/tests/e2e/**"

.github/pull_request_template.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,3 +70,4 @@ Closes <!-- #issue -->
7070
- [ ] [Changelog entry](../dev/guidelines/changelog.md) added (`uv run towncrier create ...`)
7171
- [ ] External docs updated (if user-facing or ops-facing change)
7272
- [ ] Internal .md docs updated (internal knowledge and AI code tools knowledge)
73+
- [ ] I have reviewed AI generated content

.github/workflows/bug-agent-fix.yml

Lines changed: 50 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -118,19 +118,24 @@ jobs:
118118
- name: Install Python dependencies
119119
if: steps.resolve.outputs.skip != 'true'
120120
run: uv sync --all-groups
121+
- name: Install pnpm
122+
if: steps.resolve.outputs.skip != 'true'
123+
uses: pnpm/action-setup@v4
124+
with:
125+
version: 10
121126
- name: Set up Node.js
122127
if: steps.resolve.outputs.skip != 'true'
123128
uses: actions/setup-node@v6
124129
with:
125130
node-version: 24
126-
cache: 'npm'
127-
cache-dependency-path: frontend/app/package-lock.json
131+
cache: pnpm
132+
cache-dependency-path: frontend/app/pnpm-lock.yaml
128133
- name: Install frontend dependencies
129134
if: steps.resolve.outputs.skip != 'true'
130-
run: cd frontend/app && npm ci
135+
run: cd frontend/app && pnpm install --frozen-lockfile
131136
- name: Install Playwright browsers
132137
if: steps.resolve.outputs.skip != 'true'
133-
run: cd frontend/app && npx playwright install chromium
138+
run: cd frontend/app && pnpm exec playwright install chromium
134139

135140
- name: Read prompt
136141
if: steps.resolve.outputs.skip != 'true'
@@ -221,21 +226,27 @@ jobs:
221226
"Bash(uv run invoke schema.generate-jsonschema)",
222227
"Bash(uv run invoke docs.generate)",
223228
"Bash(uv run invoke docs.lint)",
224-
"Bash(npm run test)", "Bash(npm run test *)",
225-
"Bash(npm run codegen:graphql)", "Bash(npm run codegen:openapi)",
226-
"Bash(npx biome check --write .)",
227-
"Bash(npx playwright test *)", "Bash(npx betterer --update)",
228-
"Bash(cd frontend/app && npm run test)",
229-
"Bash(cd frontend/app && npm run test *)",
230-
"Bash(cd frontend/app && npm run codegen:graphql)",
231-
"Bash(cd frontend/app && npm run codegen:openapi)",
229+
"Bash(pnpm run test)", "Bash(pnpm run test *)",
230+
"Bash(pnpm run codegen:graphql)", "Bash(pnpm run codegen:openapi)",
231+
"Bash(npx biome check --write .)", "Bash(pnpm exec biome check --write .)",
232+
"Bash(npx playwright test *)", "Bash(pnpm exec playwright test *)",
233+
"Bash(npx betterer --update)", "Bash(pnpm exec betterer --update)",
234+
"Bash(cd frontend/app && pnpm run test)",
235+
"Bash(cd frontend/app && pnpm run test *)",
236+
"Bash(cd frontend/app && pnpm run codegen:graphql)",
237+
"Bash(cd frontend/app && pnpm run codegen:openapi)",
232238
"Bash(cd frontend/app && npx biome check --write .)",
239+
"Bash(cd frontend/app && pnpm exec biome check --write .)",
233240
"Bash(cd frontend/app && npx betterer --update)",
241+
"Bash(cd frontend/app && pnpm exec betterer --update)",
234242
"Bash(cd frontend/app && npx playwright test *)",
243+
"Bash(cd frontend/app && pnpm exec playwright test *)",
235244
"Bash((cd frontend/app && npx biome check --write .))",
236-
"Bash((cd frontend/app && npm run codegen:graphql))",
237-
"Bash((cd frontend/app && npm run codegen:openapi))",
245+
"Bash((cd frontend/app && pnpm exec biome check --write .))",
246+
"Bash((cd frontend/app && pnpm run codegen:graphql))",
247+
"Bash((cd frontend/app && pnpm run codegen:openapi))",
238248
"Bash((cd frontend/app && npx betterer --update))",
249+
"Bash((cd frontend/app && pnpm exec betterer --update))",
239250
"Bash(ls)", "Bash(ls *)"
240251
],
241252
"deny": [
@@ -330,19 +341,24 @@ jobs:
330341
- name: Install Python dependencies
331342
if: steps.resolve.outputs.skip != 'true'
332343
run: uv sync --all-groups
344+
- name: Install pnpm
345+
if: steps.resolve.outputs.skip != 'true'
346+
uses: pnpm/action-setup@v4
347+
with:
348+
version: 10
333349
- name: Set up Node.js
334350
if: steps.resolve.outputs.skip != 'true'
335351
uses: actions/setup-node@v6
336352
with:
337353
node-version: 24
338-
cache: 'npm'
339-
cache-dependency-path: frontend/app/package-lock.json
354+
cache: pnpm
355+
cache-dependency-path: frontend/app/pnpm-lock.yaml
340356
- name: Install frontend dependencies
341357
if: steps.resolve.outputs.skip != 'true'
342-
run: cd frontend/app && npm ci
358+
run: cd frontend/app && pnpm install --frozen-lockfile
343359
- name: Install Playwright browsers
344360
if: steps.resolve.outputs.skip != 'true'
345-
run: cd frontend/app && npx playwright install chromium
361+
run: cd frontend/app && pnpm exec playwright install chromium
346362

347363
- name: Read prompt
348364
if: steps.resolve.outputs.skip != 'true'
@@ -440,21 +456,27 @@ jobs:
440456
"Bash(uv run invoke schema.generate-jsonschema)",
441457
"Bash(uv run invoke docs.generate)",
442458
"Bash(uv run invoke docs.lint)",
443-
"Bash(npm run test)", "Bash(npm run test *)",
444-
"Bash(npm run codegen:graphql)", "Bash(npm run codegen:openapi)",
445-
"Bash(npx biome check --write .)",
446-
"Bash(npx playwright test *)", "Bash(npx betterer --update)",
447-
"Bash(cd frontend/app && npm run test)",
448-
"Bash(cd frontend/app && npm run test *)",
449-
"Bash(cd frontend/app && npm run codegen:graphql)",
450-
"Bash(cd frontend/app && npm run codegen:openapi)",
459+
"Bash(pnpm run test)", "Bash(pnpm run test *)",
460+
"Bash(pnpm run codegen:graphql)", "Bash(pnpm run codegen:openapi)",
461+
"Bash(npx biome check --write .)", "Bash(pnpm exec biome check --write .)",
462+
"Bash(npx playwright test *)", "Bash(pnpm exec playwright test *)",
463+
"Bash(npx betterer --update)", "Bash(pnpm exec betterer --update)",
464+
"Bash(cd frontend/app && pnpm run test)",
465+
"Bash(cd frontend/app && pnpm run test *)",
466+
"Bash(cd frontend/app && pnpm run codegen:graphql)",
467+
"Bash(cd frontend/app && pnpm run codegen:openapi)",
451468
"Bash(cd frontend/app && npx biome check --write .)",
469+
"Bash(cd frontend/app && pnpm exec biome check --write .)",
452470
"Bash(cd frontend/app && npx betterer --update)",
471+
"Bash(cd frontend/app && pnpm exec betterer --update)",
453472
"Bash(cd frontend/app && npx playwright test *)",
473+
"Bash(cd frontend/app && pnpm exec playwright test *)",
454474
"Bash((cd frontend/app && npx biome check --write .))",
455-
"Bash((cd frontend/app && npm run codegen:graphql))",
456-
"Bash((cd frontend/app && npm run codegen:openapi))",
475+
"Bash((cd frontend/app && pnpm exec biome check --write .))",
476+
"Bash((cd frontend/app && pnpm run codegen:graphql))",
477+
"Bash((cd frontend/app && pnpm run codegen:openapi))",
457478
"Bash((cd frontend/app && npx betterer --update))",
479+
"Bash((cd frontend/app && pnpm exec betterer --update))",
458480
"Bash(ls)", "Bash(ls *)"
459481
],
460482
"deny": [

.github/workflows/bug-agent-test.yml

Lines changed: 36 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -99,19 +99,24 @@ jobs:
9999
- name: Install Python dependencies
100100
if: steps.analyst.outputs.skip != 'true'
101101
run: uv sync --all-groups
102+
- name: Install pnpm
103+
if: steps.analyst.outputs.skip != 'true'
104+
uses: pnpm/action-setup@v4
105+
with:
106+
version: 10
102107
- name: Set up Node.js
103108
if: steps.analyst.outputs.skip != 'true'
104109
uses: actions/setup-node@v6
105110
with:
106111
node-version: 24
107-
cache: 'npm'
108-
cache-dependency-path: frontend/app/package-lock.json
112+
cache: pnpm
113+
cache-dependency-path: frontend/app/pnpm-lock.yaml
109114
- name: Install frontend dependencies
110115
if: steps.analyst.outputs.skip != 'true'
111-
run: cd frontend/app && npm ci
116+
run: cd frontend/app && pnpm install --frozen-lockfile
112117
- name: Install Playwright browsers
113118
if: steps.analyst.outputs.skip != 'true'
114-
run: cd frontend/app && npx playwright install chromium
119+
run: cd frontend/app && pnpm exec playwright install chromium
115120

116121
- name: Read prompt
117122
if: steps.analyst.outputs.skip != 'true'
@@ -187,15 +192,17 @@ jobs:
187192
"Bash(gh issue comment *)", "Bash(gh issue edit *)",
188193
"Bash(uv run pytest *)",
189194
"Bash(uv run invoke format)", "Bash(uv run invoke lint)",
190-
"Bash(npm run test *)",
191-
"Bash(npm --prefix * run test *)",
192-
"Bash(npm --prefix * run biome:fix)",
193-
"Bash(npx biome check --write .)",
194-
"Bash(npx --prefix * biome check --write *)",
195-
"Bash(npx playwright test *)",
196-
"Bash(cd frontend/app && npm run test *)",
195+
"Bash(pnpm run test *)",
196+
"Bash(pnpm --dir * run test *)",
197+
"Bash(pnpm --dir * run biome:fix)",
198+
"Bash(npx biome check --write .)", "Bash(pnpm exec biome check --write .)",
199+
"Bash(npx --prefix * biome check --write *)", "Bash(pnpm --dir * exec biome check --write *)",
200+
"Bash(npx playwright test *)", "Bash(pnpm exec playwright test *)",
201+
"Bash(cd frontend/app && pnpm run test *)",
197202
"Bash(cd frontend/app && npx biome check --write .)",
203+
"Bash(cd frontend/app && pnpm exec biome check --write .)",
198204
"Bash(cd frontend/app && npx playwright test *)",
205+
"Bash(cd frontend/app && pnpm exec playwright test *)",
199206
"Bash(ls)", "Bash(ls *)",
200207
"Bash(mkdir -p *)"
201208
],
@@ -291,19 +298,24 @@ jobs:
291298
- name: Install Python dependencies
292299
if: steps.resolve.outputs.skip != 'true'
293300
run: uv sync --all-groups
301+
- name: Install pnpm
302+
if: steps.resolve.outputs.skip != 'true'
303+
uses: pnpm/action-setup@v4
304+
with:
305+
version: 10
294306
- name: Set up Node.js
295307
if: steps.resolve.outputs.skip != 'true'
296308
uses: actions/setup-node@v6
297309
with:
298310
node-version: 24
299-
cache: 'npm'
300-
cache-dependency-path: frontend/app/package-lock.json
311+
cache: pnpm
312+
cache-dependency-path: frontend/app/pnpm-lock.yaml
301313
- name: Install frontend dependencies
302314
if: steps.resolve.outputs.skip != 'true'
303-
run: cd frontend/app && npm ci
315+
run: cd frontend/app && pnpm install --frozen-lockfile
304316
- name: Install Playwright browsers
305317
if: steps.resolve.outputs.skip != 'true'
306-
run: cd frontend/app && npx playwright install chromium
318+
run: cd frontend/app && pnpm exec playwright install chromium
307319

308320
- name: Read prompt
309321
if: steps.resolve.outputs.skip != 'true'
@@ -392,15 +404,17 @@ jobs:
392404
"Bash(gh issue comment *)", "Bash(gh issue edit *)",
393405
"Bash(uv run pytest *)",
394406
"Bash(uv run invoke format)", "Bash(uv run invoke lint)",
395-
"Bash(npm run test *)",
396-
"Bash(npm --prefix * run test *)",
397-
"Bash(npm --prefix * run biome:fix)",
398-
"Bash(npx biome check --write .)",
399-
"Bash(npx --prefix * biome check --write *)",
400-
"Bash(npx playwright test *)",
401-
"Bash(cd frontend/app && npm run test *)",
407+
"Bash(pnpm run test *)",
408+
"Bash(pnpm --dir * run test *)",
409+
"Bash(pnpm --dir * run biome:fix)",
410+
"Bash(npx biome check --write .)", "Bash(pnpm exec biome check --write .)",
411+
"Bash(npx --prefix * biome check --write *)", "Bash(pnpm --dir * exec biome check --write *)",
412+
"Bash(npx playwright test *)", "Bash(pnpm exec playwright test *)",
413+
"Bash(cd frontend/app && pnpm run test *)",
402414
"Bash(cd frontend/app && npx biome check --write .)",
415+
"Bash(cd frontend/app && pnpm exec biome check --write .)",
403416
"Bash(cd frontend/app && npx playwright test *)",
417+
"Bash(cd frontend/app && pnpm exec playwright test *)",
404418
"Bash(ls)", "Bash(ls *)",
405419
"Bash(mkdir -p *)"
406420
],

.github/workflows/chromatic.yml

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,15 @@
22
# yamllint disable rule:truthy rule:truthy rule:line-length
33
name: 'Chromatic Publish'
44
on:
5+
pull_request:
6+
types: [opened, synchronize, reopened]
7+
paths:
8+
- 'frontend/packages/ui/**'
59
push:
610
branches:
711
- develop
12+
- stable
13+
- release-*
814
paths:
915
- 'frontend/packages/ui/**'
1016

@@ -23,14 +29,16 @@ jobs:
2329
uses: actions/checkout@v6
2430
with:
2531
fetch-depth: 0 # In order for Chromatic to correctly determine baseline commits, tot access the full Git history graph.
32+
- name: Install pnpm
33+
uses: pnpm/action-setup@v4
34+
with:
35+
version: 10
2636
- name: Install Node.js
2737
uses: actions/setup-node@v6
2838
with:
29-
node-version: 22
30-
cache: 'npm'
31-
cache-dependency-path: '**/package-lock.json'
39+
node-version: 24
3240
- name: Install dependencies
33-
run: npm install
41+
run: pnpm install --frozen-lockfile
3442
- name: Run Chromatic
3543
id: chromatic
3644
uses: chromaui/action@latest

.github/workflows/ci-docker-image.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ jobs:
8080
uses: actions/checkout@v6
8181
with:
8282
ref: ${{ inputs.ref }}
83-
submodules: true
83+
submodules: recursive
8484

8585
- name: Set up Docker Buildx
8686
if: steps.check.outputs.skip == 'false'

0 commit comments

Comments
 (0)