Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Drop IE 11 support #604

Merged
merged 1 commit into from
Aug 3, 2022
Merged

Drop IE 11 support #604

merged 1 commit into from
Aug 3, 2022

Conversation

ctavan
Copy link
Member

@ctavan ctavan commented Dec 2, 2021

Closes #469

After adjusting the babel preset-env targets the browser build only changed with respect to let/const vs. var usage, see this diff.

It all still works in IE11 πŸ€·β€β™‚οΈ .

I could break IE11 support by removing the msCrypto special case in:

uuid/src/rng-browser.js

Lines 18 to 20 in c9e076c

(typeof msCrypto !== 'undefined' &&
typeof msCrypto.getRandomValues === 'function' &&
msCrypto.getRandomValues.bind(msCrypto));

On the other hand those 3 lines don't really hurt…

So the question is now whether we want to be even more aggressive with respect to browser support?

The next step we could go would be to allow function default parameters (equivalent to moving firefox 51 -> 53 and edge 14 -> 15), which would add this diff.

After that, the browser code would be an untranspiled copy of what we currently have in src/.

So I guess this all depends on how much "modern" syntax we're planning to use in the future and what general browser support matrix we're planning for?

Looking forward to hearing your thoughts!

@ctavan ctavan requested review from broofa, LinusU and TrySound and removed request for broofa, LinusU and TrySound December 2, 2021 10:23
@ctavan
Copy link
Member Author

ctavan commented Dec 2, 2021

The browser tests (in IE) still pass, so something is clearly wrong πŸ˜‚ … I'll have a look.

broofa
broofa approved these changes Dec 2, 2021
@broofa
Copy link
Member

broofa commented Dec 2, 2021

Tests failing (and not because I changed the README, I swear!)

@ctavan
Copy link
Member Author

ctavan commented Dec 2, 2021

I'm still working out some details here… Let's get #601 and #603 merged first.

@broofa broofa changed the base branch from main to support-only-node-10 December 2, 2021 22:04
@broofa
Copy link
Member

broofa commented Dec 2, 2021

I'm still working out some details here… Let's get #601 and #603 merged first.

FYI, I updated the "merge into" field on these three PRs to reflect the branch ancestry. (Makes them easier to review.) I hope that's okay.

@ctavan
Copy link
Member Author

ctavan commented Dec 2, 2021

FYI, I updated the "merge into" field on these three PRs to reflect the branch ancestry. (Makes them easier to review.) I hope that's okay.

Thank you, working at a company that doesn't use github for almost a year, I already forgot about this handy feature πŸ™„ …

Base automatically changed from support-only-node-10 to main December 2, 2021 22:22
Copy link
Member

@LinusU LinusU left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Neat! πŸ‘

@broofa
Copy link
Member

broofa commented Jul 29, 2022

Where are we at with this? 601 and 603 have been merged.

FWIW, IE is at 0.29% market share (https://gs.statcounter.com/browser-market-share)

@ctavan ctavan force-pushed the drop-ie-11 branch 2 times, most recently from f781d5a to f5785b2 Compare August 3, 2022 22:01
@ctavan
Copy link
Member Author

ctavan commented Aug 3, 2022

OK, so the IE11 test finally fails with the introduction of default parameters: https://github.com/uuidjs/uuid/runs/7661010417?check_suite_focus=true

I've finally also removed the msCrypto fallback.

@ctavan ctavan requested review from LinusU and broofa August 3, 2022 22:01
BREAKING CHANGE: Drop support for browsers that don't correctly
implement const/let and default arguments, and no longer transpile the
browser build to ES2015.

This also removes the fallback on msCrypto instead of the crypto API.

Browser tests are run in the first supported version of each supported
browser and in the latest (as of this commit) version available on
Browserstack.
@ctavan ctavan merged commit 0f433e5 into main Aug 3, 2022
@ctavan ctavan deleted the drop-ie-11 branch August 3, 2022 22:12
@ctavan ctavan added this to the 9.0.0 milestone Aug 3, 2022
Vylpes pushed a commit to Vylpes/Droplet that referenced this pull request Sep 14, 2023
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [uuid](https://github.com/uuidjs/uuid) | dependencies | major | [`^8.3.2` -> `^9.0.0`](https://renovatebot.com/diffs/npm/uuid/8.3.2/9.0.0) |
| [@types/uuid](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/uuid) ([source](https://github.com/DefinitelyTyped/DefinitelyTyped)) | dependencies | major | [`^8.3.0` -> `^9.0.0`](https://renovatebot.com/diffs/npm/@types%2fuuid/8.3.0/9.0.1) |

---

### Release Notes

<details>
<summary>uuidjs/uuid</summary>

### [`v9.0.0`](https://github.com/uuidjs/uuid/blob/HEAD/CHANGELOG.md#&#8203;900-httpsgithubcomuuidjsuuidcomparev832v900-2022-09-05)

[Compare Source](uuidjs/uuid@v8.3.2...v9.0.0)

##### ⚠ BREAKING CHANGES

-   Drop Node.js 10.x support. This library always aims at supporting one EOLed LTS release which by this time now is 12.x which has reached EOL 30 Apr 2022.

-   Remove the minified UMD build from the package.

    Minified code is hard to audit and since this is a widely used library it seems more appropriate nowadays to optimize for auditability than to ship a legacy module format that, at best, serves educational purposes nowadays.

    For production browser use cases, users should be using a bundler. For educational purposes, today's online sandboxes like replit.com offer convenient ways to load npm modules, so the use case for UMD through repos like UNPKG or jsDelivr has largely vanished.

-   Drop IE 11 and Safari 10 support. Drop support for browsers that don't correctly implement const/let and default arguments, and no longer transpile the browser build to ES2015.

    This also removes the fallback on msCrypto instead of the crypto API.

    Browser tests are run in the first supported version of each supported browser and in the latest (as of this commit) version available on Browserstack.

##### Features

-   optimize uuid.v1 by 1.3x uuid.v4 by 4.3x (430%) ([#&#8203;597](uuidjs/uuid#597)) ([3a033f6](uuidjs/uuid@3a033f6))
-   remove UMD build ([#&#8203;645](uuidjs/uuid#645)) ([e948a0f](uuidjs/uuid@e948a0f)), closes [#&#8203;620](uuidjs/uuid#620)
-   use native crypto.randomUUID when available ([#&#8203;600](uuidjs/uuid#600)) ([c9e076c](uuidjs/uuid@c9e076c))

##### Bug Fixes

-   add Jest/jsdom compatibility ([#&#8203;642](uuidjs/uuid#642)) ([16f9c46](uuidjs/uuid@16f9c46))
-   change default export to named function ([#&#8203;545](uuidjs/uuid#545)) ([c57bc5a](uuidjs/uuid@c57bc5a))
-   handle error when parameter is not set in v3 and v5 ([#&#8203;622](uuidjs/uuid#622)) ([fcd7388](uuidjs/uuid@fcd7388))
-   run npm audit fix ([#&#8203;644](uuidjs/uuid#644)) ([04686f5](uuidjs/uuid@04686f5))
-   upgrading from uuid3 broken link ([#&#8203;568](uuidjs/uuid#568)) ([1c849da](uuidjs/uuid@1c849da))

##### build

-   drop Node.js 8.x from babel transpile target ([#&#8203;603](uuidjs/uuid#603)) ([aa11485](uuidjs/uuid@aa11485))

-   drop support for legacy browsers (IE11, Safari 10) ([#&#8203;604](uuidjs/uuid#604)) ([0f433e5](uuidjs/uuid@0f433e5))

-   drop node 10.x to upgrade dev dependencies ([#&#8203;653](uuidjs/uuid#653)) ([28a5712](uuidjs/uuid@28a5712)), closes [#&#8203;643](uuidjs/uuid#643)

##### [8.3.2](uuidjs/uuid@v8.3.1...v8.3.2) (2020-12-08)

##### Bug Fixes

-   lazy load getRandomValues ([#&#8203;537](uuidjs/uuid#537)) ([16c8f6d](uuidjs/uuid@16c8f6d)), closes [#&#8203;536](uuidjs/uuid#536)

##### [8.3.1](uuidjs/uuid@v8.3.0...v8.3.1) (2020-10-04)

##### Bug Fixes

-   support expo>=39.0.0 ([#&#8203;515](uuidjs/uuid#515)) ([c65a0f3](uuidjs/uuid@c65a0f3)), closes [#&#8203;375](uuidjs/uuid#375)

</details>

---

### Configuration

πŸ“… **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

β™» **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

πŸ”• **Ignore**: Close this PR and you won't be reminded about these updates again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC43NC4yIiwidXBkYXRlZEluVmVyIjoiMzQuNzQuMiJ9-->

Co-authored-by: Renovate Bot <renovate@vylpes.com>
Reviewed-on: https://gitea.vylpes.xyz/RabbitLabs/Droplet/pulls/111
Reviewed-by: Vylpes <ethan@vylpes.com>
Co-authored-by: RenovateBot <renovate@vylpes.com>
Co-committed-by: RenovateBot <renovate@vylpes.com>
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.

Drop IE11 support
3 participants