@georgewrmarshall/design-system-metrics 2.0.0 ā 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/settings.local.json +8 -1
- package/CHANGELOG.md +178 -0
- package/README.md +22 -0
- package/config.json +14 -1
- package/index.js +1 -1
- package/package.json +1 -1
|
@@ -9,7 +9,14 @@
|
|
|
9
9
|
"Bash(yarn test:*)",
|
|
10
10
|
"Bash(npm view:*)",
|
|
11
11
|
"Bash(npm whoami:*)",
|
|
12
|
-
"Bash(npm publish:*)"
|
|
12
|
+
"Bash(npm publish:*)",
|
|
13
|
+
"Bash(git add:*)",
|
|
14
|
+
"Bash(git commit -m \"$(cat <<''EOF''\nfeat: refactor to two-project architecture with explicit component lists\n\n- Simplified from 4 projects (extension, mobile, design-system-react, design-system-react-native) to 2 (extension, mobile)\n- Added explicit deprecatedComponents and currentComponents lists per project\n- Extension now tracks 47 deprecated local components and 24 current NPM components\n- Mobile tracks 83 deprecated local components and 25 current NPM components\n- Updated component lists to match actual folder structure and exports\n- Added missing components: FileUploader, LottieAnimation, Skeleton, Textarea, SensitiveText\n- Fixed test expectations to match actual component usage patterns\n- All tests passing (8/8)\n\nš¤ Generated with [Claude Code](https://claude.com/claude-code)\n\nCo-Authored-By: Claude <noreply@anthropic.com>\nEOF\n)\")",
|
|
15
|
+
"Bash(git push:*)",
|
|
16
|
+
"Bash(git commit -m \"$(cat <<''EOF''\nchore: bump version to 2.1.0 and add CHANGELOG\n\n- Bumped version from 2.0.0 to 2.1.0\n- Added comprehensive CHANGELOG.md with full version history\n- Documented all changes from 1.0.0 through 2.1.0\n- Added migration guide for v1.x to v2.0.0 upgrade\n- Listed all 5 missing components that were added\n- Included Jest test suite additions\n\nš¤ Generated with [Claude Code](https://claude.com/claude-code)\n\nCo-Authored-By: Claude <noreply@anthropic.com>\nEOF\n)\")",
|
|
17
|
+
"Bash(git commit:*)",
|
|
18
|
+
"Bash(yarn npm audit)",
|
|
19
|
+
"Bash(git log:*)"
|
|
13
20
|
],
|
|
14
21
|
"deny": [],
|
|
15
22
|
"ask": []
|
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [2.2.0] - 2026-01-22
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- **Mobile Components**: Added 10 missing components to mobile deprecatedComponents list:
|
|
13
|
+
- BadgeNotifications
|
|
14
|
+
- HeaderBase
|
|
15
|
+
- ListItemMultiSelect
|
|
16
|
+
- ListItemSelect
|
|
17
|
+
- RadioButton
|
|
18
|
+
- SelectButton
|
|
19
|
+
- SelectOption
|
|
20
|
+
- SelectValue
|
|
21
|
+
- SensitiveText
|
|
22
|
+
- Skeleton
|
|
23
|
+
- **Documentation**: Added Future Feature Ideas section to README
|
|
24
|
+
- Props Audit concept
|
|
25
|
+
- Team Adoption Metrics using CODEOWNERS
|
|
26
|
+
|
|
27
|
+
### Changed
|
|
28
|
+
|
|
29
|
+
- **Mobile Components**: Updated to 110 deprecated components (from 100)
|
|
30
|
+
|
|
31
|
+
### Fixed
|
|
32
|
+
|
|
33
|
+
- **CHANGELOG**: Corrected inaccuracies in version history
|
|
34
|
+
- Removed duplicate 2.0.0 entry
|
|
35
|
+
- Fixed dates and component counts
|
|
36
|
+
- Clarified that 2.1.0 did not include the 10 mobile components
|
|
37
|
+
|
|
38
|
+
## [2.1.0] - 2026-01-22
|
|
39
|
+
|
|
40
|
+
### Added
|
|
41
|
+
|
|
42
|
+
- **Documentation**: CHANGELOG.md created with full version history from 1.0.0 through 2.1.0
|
|
43
|
+
|
|
44
|
+
## [2.0.0] - 2026-01-21
|
|
45
|
+
|
|
46
|
+
### š Major Refactor
|
|
47
|
+
|
|
48
|
+
This release represents a complete architectural overhaul to better align with migration tracking goals.
|
|
49
|
+
|
|
50
|
+
### Added
|
|
51
|
+
|
|
52
|
+
- **Explicit Component Lists**: Introduced `deprecatedComponents` and `currentComponents` arrays per project
|
|
53
|
+
- **Missing Components**: Added 5 components to Extension tracking:
|
|
54
|
+
- FileUploader
|
|
55
|
+
- LottieAnimation
|
|
56
|
+
- Skeleton
|
|
57
|
+
- SensitiveText
|
|
58
|
+
- Textarea (restored)
|
|
59
|
+
- **Comprehensive Test Suite**: Added Jest test suite with 8 passing tests
|
|
60
|
+
- Test fixtures for deprecated, current, and mixed usage
|
|
61
|
+
- Tests for source separation and file path tracking
|
|
62
|
+
- JSON output format testing
|
|
63
|
+
- **Test Scripts**: Added `yarn test` and `yarn test:watch` commands
|
|
64
|
+
- **Jest Configuration**: Added jest.config.js for proper test execution
|
|
65
|
+
|
|
66
|
+
### Changed
|
|
67
|
+
|
|
68
|
+
- **BREAKING**: Simplified from 4 projects to 2 (extension and mobile only)
|
|
69
|
+
- **BREAKING**: Removed `design-system-react` and `design-system-react-native` project configs
|
|
70
|
+
- **BREAKING**: Split `components` array into `deprecatedComponents` and `currentComponents`
|
|
71
|
+
- **Architecture**: Local `/component-library` imports now map to `deprecatedComponents`
|
|
72
|
+
- **Architecture**: NPM package imports now map to `currentComponents`
|
|
73
|
+
- **Extension Components**: Now tracks 47 deprecated + 24 current components
|
|
74
|
+
- **Mobile Components**: Now tracks 100 deprecated + 25 current components
|
|
75
|
+
- **Component Lists**: Updated to match actual folder structure and NPM package exports
|
|
76
|
+
- Removed AvatarAccount from Extension deprecatedComponents (only exists in NPM package)
|
|
77
|
+
|
|
78
|
+
### Fixed
|
|
79
|
+
|
|
80
|
+
- Component lists now accurately reflect the actual local component-library folders
|
|
81
|
+
- Test expectations now match actual component usage patterns
|
|
82
|
+
- All 8 tests passing
|
|
83
|
+
|
|
84
|
+
### Documentation
|
|
85
|
+
|
|
86
|
+
- Updated README.md with new architecture
|
|
87
|
+
- Clarified two-project structure (extension and mobile)
|
|
88
|
+
- Documented `deprecatedComponents` vs `currentComponents` mental model
|
|
89
|
+
|
|
90
|
+
## [1.0.2] - 2024-10-04
|
|
91
|
+
|
|
92
|
+
### Security
|
|
93
|
+
|
|
94
|
+
- Dependency updates via Dependabot
|
|
95
|
+
|
|
96
|
+
## [1.0.1] - 2024-10-04
|
|
97
|
+
|
|
98
|
+
### Fixed
|
|
99
|
+
|
|
100
|
+
- Added missing component
|
|
101
|
+
- Updated dependencies
|
|
102
|
+
|
|
103
|
+
### Security
|
|
104
|
+
|
|
105
|
+
- Updated brace-expansion
|
|
106
|
+
- Updated cross-spawn
|
|
107
|
+
|
|
108
|
+
## [1.0.0] - 2024-10-04 - Initial Release
|
|
109
|
+
|
|
110
|
+
### Added
|
|
111
|
+
|
|
112
|
+
- Initial CLI tool for design system metrics
|
|
113
|
+
- Support for Extension and Mobile projects
|
|
114
|
+
- CSV and JSON output formats
|
|
115
|
+
- Component usage tracking via AST parsing
|
|
116
|
+
- Babel-based JSX parsing
|
|
117
|
+
- Commander-based CLI interface
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## Migration Guide: v1.x ā v2.0.0
|
|
122
|
+
|
|
123
|
+
### Breaking Changes
|
|
124
|
+
|
|
125
|
+
If you were using v1.x, here's what changed:
|
|
126
|
+
|
|
127
|
+
#### 1. Configuration Structure
|
|
128
|
+
|
|
129
|
+
**Before (v1.x):**
|
|
130
|
+
```json
|
|
131
|
+
{
|
|
132
|
+
"projects": {
|
|
133
|
+
"extension": {
|
|
134
|
+
"components": ["Button", "Icon", ...]
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
**After (v2.0.0):**
|
|
141
|
+
```json
|
|
142
|
+
{
|
|
143
|
+
"projects": {
|
|
144
|
+
"extension": {
|
|
145
|
+
"deprecatedComponents": ["Button", "Icon", ...],
|
|
146
|
+
"currentComponents": ["Button", "Icon", ...]
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
#### 2. Removed Projects
|
|
153
|
+
|
|
154
|
+
The following projects were removed:
|
|
155
|
+
- `design-system-react`
|
|
156
|
+
- `design-system-react-native`
|
|
157
|
+
|
|
158
|
+
To audit the design system packages themselves, run the tool directly in those repositories.
|
|
159
|
+
|
|
160
|
+
#### 3. Output Files
|
|
161
|
+
|
|
162
|
+
Output file naming remains the same:
|
|
163
|
+
- `{project}-component-metrics-deprecated.csv`
|
|
164
|
+
- `{project}-component-metrics-current.csv`
|
|
165
|
+
|
|
166
|
+
### Benefits of Upgrading
|
|
167
|
+
|
|
168
|
+
- ā
Clearer separation between deprecated and current components
|
|
169
|
+
- ā
More accurate component lists matching actual codebase
|
|
170
|
+
- ā
Better migration tracking (old vs new)
|
|
171
|
+
- ā
Comprehensive test coverage
|
|
172
|
+
- ā
Simpler, more focused architecture
|
|
173
|
+
|
|
174
|
+
---
|
|
175
|
+
|
|
176
|
+
[2.0.0]: https://github.com/georgewrmarshall/design-system-metrics/compare/v1.0.1...v2.0.0
|
|
177
|
+
[1.0.1]: https://github.com/georgewrmarshall/design-system-metrics/compare/v1.0.0...v1.0.1
|
|
178
|
+
[1.0.0]: https://github.com/georgewrmarshall/design-system-metrics/releases/tag/v1.0.0
|
package/README.md
CHANGED
|
@@ -208,6 +208,28 @@ One aggregated report showing all component usage:
|
|
|
208
208
|
|
|
209
209
|
---
|
|
210
210
|
|
|
211
|
+
### **Future Feature Ideas**
|
|
212
|
+
|
|
213
|
+
We're exploring additional features to enhance design system adoption tracking:
|
|
214
|
+
|
|
215
|
+
#### **Props Audit**
|
|
216
|
+
- Track the most commonly used props for each component
|
|
217
|
+
- Identify prop usage patterns across the codebase
|
|
218
|
+
- Help inform API design decisions for design system components
|
|
219
|
+
- Surface which props are heavily used vs rarely used
|
|
220
|
+
|
|
221
|
+
#### **Team Adoption Metrics**
|
|
222
|
+
- Use CODEOWNERS files to map component usage to teams
|
|
223
|
+
- Generate team-level adoption reports showing:
|
|
224
|
+
- Which teams have the highest design system adoption
|
|
225
|
+
- Which teams still have the most deprecated component usage
|
|
226
|
+
- Per-team migration progress tracking
|
|
227
|
+
- Help identify teams that may need additional migration support
|
|
228
|
+
|
|
229
|
+
Want to contribute or suggest other features? Open an issue on GitHub!
|
|
230
|
+
|
|
231
|
+
---
|
|
232
|
+
|
|
211
233
|
### **Contributing**
|
|
212
234
|
|
|
213
235
|
If you wish to contribute to the tool, ensure you are running the latest version of **Yarn (v4.x)** and **Node.js**. You can make adjustments to the `config.json` file or update the CLI logic for tracking additional components or repositories.
|
package/config.json
CHANGED
|
@@ -7,7 +7,6 @@
|
|
|
7
7
|
"outputFile": "extension-component-metrics.csv",
|
|
8
8
|
"currentPackages": ["@metamask/design-system-react"],
|
|
9
9
|
"deprecatedComponents": [
|
|
10
|
-
"AvatarAccount",
|
|
11
10
|
"AvatarBase",
|
|
12
11
|
"AvatarFavicon",
|
|
13
12
|
"AvatarIcon",
|
|
@@ -26,12 +25,14 @@
|
|
|
26
25
|
"ButtonSecondary",
|
|
27
26
|
"Checkbox",
|
|
28
27
|
"Container",
|
|
28
|
+
"FileUploader",
|
|
29
29
|
"FormTextField",
|
|
30
30
|
"HeaderBase",
|
|
31
31
|
"HelpText",
|
|
32
32
|
"Icon",
|
|
33
33
|
"Input",
|
|
34
34
|
"Label",
|
|
35
|
+
"LottieAnimation",
|
|
35
36
|
"Modal",
|
|
36
37
|
"ModalBody",
|
|
37
38
|
"ModalContent",
|
|
@@ -45,6 +46,8 @@
|
|
|
45
46
|
"SelectButton",
|
|
46
47
|
"SelectOption",
|
|
47
48
|
"SelectWrapper",
|
|
49
|
+
"SensitiveText",
|
|
50
|
+
"Skeleton",
|
|
48
51
|
"Tag",
|
|
49
52
|
"TagUrl",
|
|
50
53
|
"Text",
|
|
@@ -103,6 +106,7 @@
|
|
|
103
106
|
"Badge",
|
|
104
107
|
"BadgeBase",
|
|
105
108
|
"BadgeNetwork",
|
|
109
|
+
"BadgeNotifications",
|
|
106
110
|
"BadgeStatus",
|
|
107
111
|
"BadgeWrapper",
|
|
108
112
|
"Banner",
|
|
@@ -137,6 +141,7 @@
|
|
|
137
141
|
"CustomInput",
|
|
138
142
|
"CustomSpendCap",
|
|
139
143
|
"Header",
|
|
144
|
+
"HeaderBase",
|
|
140
145
|
"HeaderCenter",
|
|
141
146
|
"HeaderWithTitleLeft",
|
|
142
147
|
"HeaderWithTitleLeftScrollable",
|
|
@@ -147,8 +152,10 @@
|
|
|
147
152
|
"Label",
|
|
148
153
|
"ListItem",
|
|
149
154
|
"ListItemColumn",
|
|
155
|
+
"ListItemMultiSelect",
|
|
150
156
|
"ListItemMultiSelectButton",
|
|
151
157
|
"ListItemMultiSelectWithMenuButton",
|
|
158
|
+
"ListItemSelect",
|
|
152
159
|
"Loader",
|
|
153
160
|
"MainActionButton",
|
|
154
161
|
"ModalConfirmation",
|
|
@@ -165,11 +172,17 @@
|
|
|
165
172
|
"PickerNetwork",
|
|
166
173
|
"QuickActionButton",
|
|
167
174
|
"QuickActionButtons",
|
|
175
|
+
"RadioButton",
|
|
168
176
|
"SegmentedControl",
|
|
177
|
+
"SelectButton",
|
|
169
178
|
"SelectItem",
|
|
179
|
+
"SelectOption",
|
|
180
|
+
"SelectValue",
|
|
181
|
+
"SensitiveText",
|
|
170
182
|
"SheetActions",
|
|
171
183
|
"SheetBottom",
|
|
172
184
|
"SheetHeader",
|
|
185
|
+
"Skeleton",
|
|
173
186
|
"Tab",
|
|
174
187
|
"TabBar",
|
|
175
188
|
"TabBarItem",
|
package/index.js
CHANGED
|
@@ -25,7 +25,7 @@ const loadConfig = async (configPath) => {
|
|
|
25
25
|
|
|
26
26
|
// Define CLI options using Commander
|
|
27
27
|
program
|
|
28
|
-
.version("2.
|
|
28
|
+
.version("2.1.0")
|
|
29
29
|
.description("Design System Metrics CLI Tool - Track component usage from multiple sources")
|
|
30
30
|
.requiredOption(
|
|
31
31
|
"-p, --project <name>",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@georgewrmarshall/design-system-metrics",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.2.0",
|
|
4
4
|
"description": "A CLI tool to audit design system component usage from local libraries, NPM packages, and track deprecated components across MetaMask codebases",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"packageManager": "yarn@4.3.1",
|