-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathpubspec.yaml
More file actions
167 lines (135 loc) · 6.61 KB
/
Copy pathpubspec.yaml
File metadata and controls
167 lines (135 loc) · 6.61 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
name: superdeck_workspace
publish_to: none
environment:
sdk: ">=3.12.0 <4.0.0"
flutter: ">=3.44.6"
workspace:
- demo
- packages/*
- packages/plugins/*
dev_dependencies:
# Melos 7.8.2+ requires cli_util 0.5.x, while custom_lint 0.8.1
# requires cli_util 0.4.x. 7.8.1 is the latest compatible workspace release.
melos: 7.8.1
# ack_generator 1.x requires Analyzer 8's element2 API, while mix_generator
# 2.2 requires Analyzer 9 where that API was removed. Keep the proven 2.1
# generator on Analyzer 8 while the runtime Mix packages use 2.2 beta.
dependency_overrides:
analyzer: 8.4.1
# Hero UI's Remix 1.0 migration commit still points at development Git
# branches. Resolve its runtime dependencies to the published betas used by
# this workspace until that upstream migration is released.
mix_annotations: 2.2.0-beta.0
remix: 1.0.0-beta.1
lint_staged:
'**.dart': fvm dart fix --apply && dcm fix
melos:
sdkPath: .fvm/flutter_sdk
ide:
intellij:
enabled: false
scripts:
# ANALYSIS
analyze:
run: fvm dart run melos run analyze:dart && fvm dart run melos run analyze:dcm
description: Run standard static analysis checks.
analyze:all:
run: fvm dart run melos run analyze && fvm dart run melos run analyze:dcm:unused-files && fvm dart run melos run analyze:dcm:unused-code
description: Run all analysis checks including unused files and code.
analyze:dart:
run: fvm dart run melos exec -c 10 -- fvm dart analyze --fatal-infos
description: Run Dart static analysis checks.
analyze:dcm:
run: fvm dart run melos exec -c 10 -- dcm analyze . --fatal-style --fatal-warnings
description: Run DCM static analysis checks.
packageFilters:
dependsOn: dart_code_metrics_presets
analyze:dcm:unused-files:
# Public barrels/plugin entrypoints are not cleanup targets (--exclude-public-api).
# Generated files use DCM defaults (*.g.dart / *.freezed.dart / *.mapper.dart).
# Extra globs: tests + platform conditional files DCM misclassifies as unused.
# Quotes must survive melos exec so brace globs are not shell-expanded.
run: fvm dart run melos exec -c 10 -- "dcm check-unused-files . --fatal-unused --exclude-public-api -e '{**/*.g.dart,**/*.freezed.dart,**/*.mapper.dart,test/**,**/*_web.dart,**/*_stub.dart,**/*_io.dart,**/measure_size.dart}'"
description: Check for unused files using DCM (public API, generated, platform stubs excluded).
packageFilters:
dependsOn: dart_code_metrics_presets
analyze:dcm:unused-code:
# Public API surface stays even if unused in-repo (--exclude-public-api).
# Same exclude set as unused-files (generated + platform stubs + tests).
run: fvm dart run melos exec -c 10 -- "dcm check-unused-code . --fatal-unused --exclude-public-api -e '{**/*.g.dart,**/*.freezed.dart,**/*.mapper.dart,test/**,**/*_web.dart,**/*_stub.dart,**/*_io.dart}'"
description: Check for unused code using DCM (public API, generated, platform stubs excluded).
packageFilters:
dependsOn: dart_code_metrics_presets
fix:
run: fvm dart run melos run fix:dart && fvm dart run melos run fix:dcm
description: Run all static analysis checks and apply fixes.
fix:dart:
run: fvm dart run melos exec -- fvm dart fix --apply .
description: Run Dart static analysis checks.
fix:dcm:
run: fvm dart run melos exec -- dcm fix .
description: Run DCM static analysis checks.
packageFilters:
dependsOn: dart_code_metrics_presets
build_runner:watch:
run: fvm dart run melos exec --order-dependents -- fvm dart run build_runner watch
description: Generate code for all packages
packageFilters:
dependsOn: build_runner
build_runner:build:
run: fvm dart run melos run build_runner:clean && fvm dart run melos exec --order-dependents -- fvm dart run build_runner build
description: Generate code for all packages
packageFilters:
dependsOn: build_runner
build_runner:clean:
run: fvm dart run melos exec --order-dependents -- fvm dart run build_runner clean
description: Clean generated code for all packages
packageFilters:
dependsOn: build_runner
contracts:export:
exec: fvm dart run tool/export_contract_schemas.dart
description: Export canonical JSON Schema artifacts for SuperDeck contracts.
packageFilters:
scope: superdeck_core
contracts:check:
exec: fvm dart run tool/export_contract_schemas.dart --check
description: Verify canonical JSON Schema artifacts are up to date.
packageFilters:
scope: superdeck_core
test:
run: fvm dart run melos exec -c 1 -- fvm flutter test --exclude-tags ci-excluded
description: Run flutter tests excluding explicit golden and flaky suites.
packageFilters:
dirExists: test
test:integration:
run: cd demo && fvm dart run superdeck_cli:main build && fvm flutter test integration_test/all_tests.dart -d linux --fail-fast --timeout 2m
description: Run flutter integration tests on Linux (CI default)
test:integration:macos:
run: cd demo && fvm dart run superdeck_cli:main build && fvm flutter test integration_test/all_tests.dart -d macos --fail-fast --timeout 2m
description: Run flutter integration tests on macOS (local)
test:e2e:web:prepare:
run: cd demo && fvm dart run superdeck_cli:main build && fvm flutter build web --release
description: Build demo assets and release web output for Playwright smoke tests.
test:e2e:web:
run: fvm dart run melos run test:e2e:web:prepare && cd demo/e2e && npm ci && npx playwright install --with-deps chromium webkit && npm run test:smoke
description: Run Playwright smoke tests for the demo web build on Chromium and WebKit.
test:e2e:
run: fvm dart run melos run test:integration && fvm dart run melos run test:e2e:web
description: Run full desktop integration and web smoke E2E coverage.
test:all:
run: fvm dart run melos run test && fvm dart run melos run test:integration
description: Run all tests (unit + integration)
test:coverage:
run: fvm dart run melos exec -- fvm flutter test --coverage
description: Run flutter test with coverage
packageFilters:
dirExists: test
clean:
run: fvm dart run melos exec -- fvm flutter clean
description: Clean all packages
brb:
run: fvm dart run melos run gen:build:superdeck
brbc:
run: fvm dart run melos run gen:clean
custom_lint_analyze:
run: fvm dart run melos exec --depends-on=mix_lint -- fvm dart run custom_lint