Skip to content

feat!: drop IE 11 and modernize browser targets#946

Draft
kdaviduik wants to merge 4 commits intomainfrom
typescript-migration-part-4
Draft

feat!: drop IE 11 and modernize browser targets#946
kdaviduik wants to merge 4 commits intomainfrom
typescript-migration-part-4

Conversation

@kdaviduik
Copy link
Contributor

BREAKING CHANGE: Drop IE 11, Safari 8, iOS 8, Android 4.4 browser support.
Minimum browser targets are now rolling modern versions aligned with
Shopify Online Store themes. The library now emits ES2015+ JavaScript
(native classes, arrow functions, template literals) and no longer
transpiles to ES5.

  • Update browserslist to union of @shopify/browserslist-config + Theme Store
    requirements
  • Remove 15 Babel ES5 transform plugins + dead @babel/plugin-external-helpers
  • Remove 7 polyfill imports from buybutton.js (whatwg-fetch, core-js/*)
  • Replace UglifyJS with terser for ES2015+-compatible minification
  • Add terser error guard against silent minification failure
  • Keep @babel/plugin-transform-modules-commonjs for Browserify test pipeline
    (until PR 7a)
  • Native ES2015 classes replace loose-mode Babel classes (non-enumerable
    prototype methods)
  • Create major changeset for 4.0.0 version bump
  • Pin pnpm/action-setup to commit SHA in ci.yml (supply chain hardening)
  • Add @changesets/changelog-github as explicit devDependency (was phantom)

Copy link
Contributor Author

kdaviduik commented Mar 9, 2026

@kdaviduik kdaviduik force-pushed the typescript-migration-part-4 branch from 7ac6997 to 12e5bb9 Compare March 9, 2026 22:08
@kdaviduik kdaviduik changed the base branch from enable-auto-changelog to graphite-base/946 March 9, 2026 22:20
@kdaviduik kdaviduik force-pushed the typescript-migration-part-4 branch from 3c1c1b3 to 6b57476 Compare March 9, 2026 22:20
@kdaviduik kdaviduik changed the base branch from graphite-base/946 to enable-auto-changelog March 9, 2026 22:20
@kdaviduik kdaviduik force-pushed the enable-auto-changelog branch from f2a1c65 to b8b74d9 Compare March 10, 2026 01:37
@kdaviduik kdaviduik force-pushed the typescript-migration-part-4 branch from 6b57476 to b24fb06 Compare March 10, 2026 01:37
Switch from manual CHANGELOG management to @changesets/changelog-github.
- Update .changeset/config.json to use @changesets/changelog-github
- Pass GITHUB_TOKEN to changeset version step in release workflow
  (@changesets/changelog-github needs it to fetch PR metadata for links)
- Fix git add to include CHANGELOG.md (pre-existing bug — changeset version
  modifies CHANGELOG.md but it was never staged in the commit step)
- Fix stale v3.0.6 '(Unreleased)' label — published to npm August 25, 2025
…ELOG date

Two items from the PR 4a plan that were missed in the original commit:

1. @changesets/changelog-github was referenced in .changeset/config.json
   but never declared in package.json devDependencies. The lockfile had
   the specifier (from pnpm install), so CI's --frozen-lockfile saw a
   mismatch and failed.

2. CHANGELOG.md v3.0.6 date was still "(Unreleased)" — v3.0.6 was
   published to npm on August 25, 2025.
BREAKING CHANGE: Drop IE 11, Safari 8, iOS 8, Android 4.4 browser support.
Minimum browser targets are now rolling modern versions aligned with
Shopify Online Store themes. The library now emits ES2015+ JavaScript
(native classes, arrow functions, template literals) and no longer
transpiles to ES5.

- Update browserslist to union of @shopify/browserslist-config + Theme Store
  requirements
- Remove 15 Babel ES5 transform plugins + dead @babel/plugin-external-helpers
- Remove 7 polyfill imports from buybutton.js (whatwg-fetch, core-js/*)
- Replace UglifyJS with terser for ES2015+-compatible minification
- Add terser error guard against silent minification failure
- Keep @babel/plugin-transform-modules-commonjs for Browserify test pipeline
  (until PR 7a)
- Native ES2015 classes replace loose-mode Babel classes (non-enumerable
  prototype methods)
- Create major changeset for 4.0.0 version bump
- Pin pnpm/action-setup to commit SHA in ci.yml (supply chain hardening)
- Add @changesets/changelog-github as explicit devDependency (was phantom)
Add PR 4b review recommendations from Sheldon (source maps) and Kara
(stale caniuse-lite) as prerequisite notes on PR 6 (Vite migration),
where both issues naturally resolve. This ensures the deferred items
are not lost between PRs.
@kdaviduik kdaviduik changed the base branch from enable-auto-changelog to graphite-base/946 March 12, 2026 20:43
@kdaviduik kdaviduik force-pushed the typescript-migration-part-4 branch from b24fb06 to c47c4dd Compare March 12, 2026 20:44
@kdaviduik kdaviduik changed the base branch from graphite-base/946 to main March 12, 2026 20:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant