diff --git a/.vscode/settings.json b/.vscode/settings.json index d6d16e8cdac..c164b4c57e1 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,5 +1,10 @@ { - "chat.mcp.discovery.enabled": true, + "chat.mcp.discovery.enabled": { + "claude-desktop": true, + "windsurf": true, + "cursor-global": true, + "cursor-workspace": true + }, "editor.formatOnSave": true, "editor.defaultFormatter": "esbenp.prettier-vscode", "[javascript]": { diff --git a/bootstrap5-migration-plan.md b/bootstrap5-migration-plan.md new file mode 100644 index 00000000000..b520ca0c956 --- /dev/null +++ b/bootstrap5-migration-plan.md @@ -0,0 +1,331 @@ +# Bootstrap 4 to 5 Migration Plan for Treeherder + +## Overview + +This document outlines the necessary changes to migrate Treeherder from Bootstrap 4.4.1 to Bootstrap 5.3.3 to ensure compatibility with react-bootstrap 2.10.10. + +## Critical Breaking Changes Affecting Treeherder + +### 1. Spacing Utilities (High Priority) + +**Issue:** Bootstrap 5 renamed all left/right spacing utilities to start/end for RTL support + +- `ml-*` → `ms-*` (margin-left to margin-start) +- `mr-*` → `me-*` (margin-right to margin-end) +- `pl-*` → `ps-*` (padding-left to padding-start) +- `pr-*` → `pe-*` (padding-right to padding-end) + +**Files Affected:** + +- Multiple JSX files using `ml-`, `mr-`, `pl-`, `pr-` classes +- Examples found in: ActionBar.jsx, StatusPanel.jsx, ClassificationsPanel.jsx, Navigation.jsx + +**Action Required:** + +- [ ] Replace all `ml-*` with `ms-*` +- [ ] Replace all `mr-*` with `me-*` +- [ ] Replace all `pl-*` with `ps-*` +- [ ] Replace all `pr-*` with `pe-*` + +### 2. Form Components (High Priority) + +**Issue:** Bootstrap 5 significantly restructured form components + +- `.form-group` class removed (no longer needed) +- `.form-control-label` → `.form-label` +- `.custom-select` → `.form-select` +- `.custom-control`, `.custom-checkbox`, `.custom-radio` removed +- Form checks now use `.form-check`, `.form-check-input`, `.form-check-label` + +**Files Affected:** + +- CustomJobActions.jsx (uses `.form-group`) +- Any components using custom form controls + +**Action Required:** + +- [ ] Remove `.form-group` wrapper divs or replace with spacing utilities +- [ ] Update custom select components to use `.form-select` +- [ ] Update checkbox/radio components to new form-check structure + +### 3. Float Utilities (Medium Priority) + +**Issue:** Float utilities renamed for consistency + +- `float-left` → `float-start` +- `float-right` → `float-end` + +**Files Affected:** + +- Check all components for float utilities + +**Action Required:** + +- [ ] Replace `float-left` with `float-start` +- [ ] Replace `float-right` with `float-end` + +### 4. Close Button (Medium Priority) + +**Issue:** Close button markup changed + +- Bootstrap 4: `` +- Bootstrap 5: `` + +**Files Affected:** + +- Modal components (CustomJobActions.jsx) +- Any custom close buttons + +**Action Required:** + +- [ ] Update close button markup and styling +- [ ] Remove `×` content, Bootstrap 5 uses background image + +### 5. Badge Component (Low Priority) + +**Issue:** Badge pill variant removed + +- `.badge-pill` removed (use rounded utilities instead) + +**Files Affected:** + +- Any components using badge-pill + +**Action Required:** + +- [ ] Replace `.badge-pill` with `.rounded-pill` + +### 6. Input Groups (High Priority) + +**Issue:** Input group structure simplified + +- `.input-group-append` and `.input-group-prepend` removed +- Children now placed directly in `.input-group` + +**Files Affected:** + +- Search components +- Form inputs with buttons/icons + +**Action Required:** + +- [ ] Remove `.input-group-append` and `.input-group-prepend` wrappers +- [ ] Place buttons/text directly in `.input-group` + +### 7. Dropdown Component (High Priority) + +**Issue:** Dropdown structure and attributes changed + +- `data-toggle="dropdown"` → `data-bs-toggle="dropdown"` +- Dropdown dividers changed from `