chore: rewrite v2 component history to preserve git blame#2551
Draft
balzss wants to merge 178 commits into
Draft
chore: rewrite v2 component history to preserve git blame#2551balzss wants to merge 178 commits into
balzss wants to merge 178 commits into
Conversation
… not include functional components
For now it only parses V1 components. It also does not parse components that use the new structure and there are several CSS errors
…ort (now withStyleLegacy)
…> v11_6, v11_6->v11_7)
INSTUI-4789 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
INSTUI-4783
INSTUI-4815
…ustom/brand icon components and migration codemod
…hey are all deprecated
…y restoring focus to hidden input
…Webpack 4 support We have removed lots of smaller Babel plugins. In theory these were just doing transforms that are used by old browsers and all features should be supported. make the internal webpack config much more simple Completes INSTUI-4831
…ing exports there were some exports that were missing after the multi version upgrade. Add them back with the proper path
…DateInput v1 with DateInput v2 in DateTimeInput
BREAKING CHANGE: prevMonthLabel prop removed (use screenReaderLabels.prevMonthButton instead)
nextMonthLabel prop removed (use screenReaderLabels.nextMonthButton instead)
renderWeekdayLabels prop removed
dateFormat type changed: string → string
{ parser: (input: string) => Date
null, formatter: (date: Date) => string }
screenReaderLabels is a new required prop
dateFormat default changed: Moment's 'LL' (long month name) → locale's default date format
INSTUI-4791
…eplacing Chromatic Capture full-page screenshots via cy.screenshot() in an afterEach hook, record each test's visited URL via a cy.task for source-file linking, diff against baselines stored on a visual-baselines branch using a new `ui-scripts visual-diff` command, and publish an HTML report per PR to gh-pages with a sticky PR comment linking to it. The regression-test Next.js app now uses `output: 'export'` with `trailingSlash: true`, serving a fully static site through http-server — no SSR and no hydration so captures are byte-deterministic. The report has a lightbox viewer with baseline/actual/diff mode toggle, a draggable slider overlay, fit-to-window and 1:1 zoom, prev/next navigation, a PR number link in the header, per-row source-file links back to the GitHub blob URL, a debounced live search box, and highlighted active filter buttons. The sticky PR comment includes a collapsed <details> block with inline diff images for every changed row. Documentation added at docs/testing/visual-regression.md. Removes the Chromatic integration; CHROMATIC_APP_CODE secret is no longer used. Baselines are seeded automatically by the new visual-baselines workflow on every merge to master. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
… definition so they can build their own components with InstUI
…form component docs INSTUI-4944
BREAKING CHANGE: `thumbVariant` prop removed from RangeInput INSTUI-5016
…DateInput v1 with DateInput v2 in DateTimeInput BREAKING CHANGE: renderWeekdayLabels` prop removed `calendarIcon` is a new required prop INSTUI-4791
…elected on calendar days, BREAKING CHANGE: add mandatory prop selectedLabel, change datePickerDialog prop to mandatory
The content wrapper changed from display:block to display:flex in the v2 button rewrite, which made textAlign:center ineffective on the shrunk children span. Add justifyContent based on textAlign so text is centered regardless of whether an icon is present. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
core-js was fixing really niche bugs in the code ze.g. map.getOrInsertComputed, map.getOrInsert and an exotic Safari bug https://bugs.webkit.org/show_bug.cgi?id=309342 that is fixed in Webkit nightly. Remove core-js because its no longer needed
Also use ESLint from the root package
|
Visual regression report✅ No changes.
Baselines come from the |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Rewrites
master's history so thatgit blameonv2/*component files traces back through theirv1/*predecessors (and through them, to the pre-multi-version originals). Today, 211 of 479 v2 files have squashed blame because the commits that introduced them usedgit addrather thangit mv.The working tree at the tip of this branch is byte-identical to
master— only the commit history leading up to it differs. Verified by tree-hash comparison:31d3b12824cda6eb5244e2b71a2af3d01e30ff95on both sides.What changed
For each of 18 "split" commits that introduced v2 files (full list below), a synthetic predecessor commit was inserted that does a pure
git mv v1/X → v2/X. The original commit's tree is unchanged. The synthetic-rename gives git's rename detection something to lock onto when running blame on v2 files; the next commit recreates v1, so v1 files lose their post-split blame but their full prior history is intact up to that point.This is the technique from the original #2486 PR, re-applied to current master (since master has moved 160 commits and added new v2 components since #2486 was opened in March).
Split commits rewritten
f691f0b96e8e0f9ef7e6fd7780fc7b4f49e3e27dfb955195830562fe2b43fba6b4d6a7af97f0c0bca99d7fe70b36c02c6b3e335cc5b00ba201f698845e7a35564010f637b938066524ff00ff5f2b38665a9405c0a130035d3544608 v1→v2 file pairs processed across the 18 commits.
Verification
git diff rewrite-v2-blame origin/master31d3b12824…on both sidespnpm run test:vitestgit mvs)Sample improvements (before → after unique blame commits)
ui-buttons/Button/v2/index.tsxui-alerts/Alert/v2/index.tsxui-modal/Modal/v2/index.tsxui-img/Img/v2/index.tsxui-pagination/Pagination/v2/index.tsxui-select/Select/v2/index.tsxui-checkbox/Checkbox/v2/index.tsxEarliest blame reached on
Button/v2/index.tsx:ed73df19f78(serikjensen, Dec 2019,packages/ui-buttons/Button/index.js).Tradeoffs
15f3c41cc7(merge-base) onward change. Tagsv11.7.0–v11.7.3continue to point at their original (now orphaned) SHAs unless re-tagged. npm artifacts are unaffected.git fetch && git rebase origin/masterafter the force-push.Replaces #2486
The two non-history pieces of #2486 — test migration and the
create-component-versionscript — have already landed independently on master. #2486 will be closed in favor of this PR once review begins.Deployment
After review/approval:
master.rewrite-v2-blametomasterwithgit push --force-with-lease origin rewrite-v2-blame:master.git fetch && git reset --hard origin/masteron localmaster, then rebase any in-progress branches.v11.7.0–v11.7.3against rewritten SHAs if you want tags to live in the new history.Test plan
git diff rewrite-v2-blame origin/masterproduces no outputgit rev-parse rewrite-v2-blame^{tree}matchesgit rev-parse origin/master^{tree}pnpm run bootstrap && pnpm run test:vitestpassesgit blame packages/ui-buttons/src/Button/v2/index.tsxshows ≥20 unique commits and traces back to 2019ui-buttons/Button/index.jsgit blame packages/ui-modal/src/Modal/v2/index.tsxshows ≥20 unique commits and traces back to the originalModal/index.js🤖 Generated with Claude Code