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

fix(deps): move webextension-polyfill to peerDeps + devDeps #319

Merged
merged 2 commits into from
May 30, 2024

Conversation

legobeat
Copy link
Contributor

@legobeat legobeat commented May 16, 2024

The webextension-polyfill package is only used once for a type-import and assumed in environment. This makes it a peerDependency and a devDependency instead of a dependency. A benefit of this is that users can start using new version without us having to release explicit support for every version bump, besides from being more correct.

peerDependencies version is aligning with already used transitive via extension-port-stream.

This also upgrades the used version from webextension-polyfill@0.10.0 to webextension-polyfill@0.12.0.


Related

It is only used once for tests and assumed in environment.

peerDependencies version aligning with already used transitive
via extension-port-stream.
@legobeat legobeat requested review from adonesky1 and jiexi May 16, 2024 04:09
Copy link

New and removed dependencies detected. Learn more about Socket for GitHub ↗︎

Package New capabilities Transitives Size Publisher
npm/webextension-polyfill@0.12.0 None 0 205 kB addons-robot

🚮 Removed packages: npm/webextension-polyfill@0.10.0

View full report↗︎

@legobeat legobeat marked this pull request as ready for review May 16, 2024 04:22
@legobeat legobeat requested a review from a team as a code owner May 16, 2024 04:22
@legobeat legobeat requested review from a team, Gudahtt and rekmarks May 29, 2024 21:52
package.json Outdated Show resolved Hide resolved
@legobeat legobeat force-pushed the deps-webextension-polyfill branch from e2b767d to 408f238 Compare May 30, 2024 07:24
@legobeat legobeat requested a review from rekmarks May 30, 2024 07:24
@legobeat legobeat merged commit 6711497 into MetaMask:main May 30, 2024
18 checks passed
github-merge-queue bot pushed a commit to MetaMask/metamask-mobile that referenced this pull request Dec 5, 2024
## **Description**
All accounts-related packages have been moved to our new
[monorepo](https://github.com/MetaMask/accounts).

A new patch version has been released for each of them. Those new
versions have been used and released in all core controllers:
MetaMask/core#4734

This repository contains the following packages
[1](https://github.com/MetaMask/accounts#user-content-fn-fn1-2bb23fc02fdc197b87e0d6543909d37e):

-
[@metamask/eth-hd-keyring](https://github.com/MetaMask/accounts/blob/main/packages/keyring-eth-hd):
✅ we are already using the latest version 9.0.0
-
[@metamask/eth-ledger-bridge-keyring](https://github.com/MetaMask/accounts/blob/main/packages/keyring-eth-ledger-bridge):
We are using [version
6.0.0](https://github.com/MetaMask/accounts/blob/main/packages/keyring-eth-ledger-bridge/CHANGELOG.md#600)
which is already pointing to the mono repo.
-
[@metamask/eth-simple-keyring](https://github.com/MetaMask/accounts/blob/main/packages/keyring-eth-simple):
✅ Not used on mobile.

[@metamask/eth-snap-keyring](https://github.com/MetaMask/accounts/blob/main/packages/keyring-snap):
⚠️ Needs updating. Changes described below.
-
[@metamask/eth-trezor-keyring](https://github.com/MetaMask/accounts/blob/main/packages/keyring-eth-trezor):
✅ Not used on mobile.

[@metamask/keyring-api](https://github.com/MetaMask/accounts/blob/main/packages/keyring-api):
⚠️ Needs updating. Changes described below.

### Summary of the updates 
#### @metamask/accounts-controller 19.0.0 -> 20.0.1
- Breaking Changes:
    - Changed
- BREAKING: Bump peer dependency @metamask/keyring-controller from
^18.0.0 to ^19.0.0 (MetaMask/core#4956).
- BREAKING: Bump @metamask/keyring-api from ^8.1.3 to ^10.1.0
(MetaMask/core#4948)
- If you are depending on @metamask/providers directly, you will need to
upgrade to 18.1.0.
-
[changelog](https://github.com/MetaMask/core/blob/main/packages/accounts-controller/CHANGELOG.md#2001)

#### @metamask/keyring-controller 18.0.0 -> 19.0.1
Updated to support the latest version of the accounts controller.
- Breaking changes:
- BREAKING: Bump @metamask/keyring-api from ^8.1.3 to ^10.1.0
(MetaMask/core#4948)
If you are depending on @metamask/providers directly, you will need to
upgrade to 18.1.0.

#### @metamask/providers 16.1.0-> 18.1.0
This was changed largely to support the newest version of the accounts
controller and keyring controller.
- Breaking Changes:
    - Fixed
- BREAKING: Change webextension-polyfill from dependency to
peerDependency (MetaMask/providers#319)
- Users are now expected to have the polyfill in their environment
- BREAKING: Bump @metamask/json-rpc-engine from ^9.0.1 to ^10.0.0
(MetaMask/providers#378)
- BREAKING: Bump @metamask/rpc-errors from ^6.4.0 to ^7.0.0
(MetaMask/providers#373)
-
[Changelog](https://github.com/MetaMask/providers/blob/main/CHANGELOG.md#1810)

#### @metamask/keyring-api 8.1.0 -> 10.1.0
[Version
8.1.1](https://github.com/MetaMask/accounts/blob/main/packages/keyring-api/CHANGELOG.md#811)
onward is using the new mono repo. I updated to version 10.1.0 to
support the breaking changes in the accounts controller bump from
v19.0.0 to v20.0.1
- Breaking Changes:
- BREAKING: Rename btc_sendmany method to sendBitcoin
(MetaMask/accounts#73)
- BREAKING: Bump peer dependency @metamask/providers from ^17.2.0 to
^18.1.0 (MetaMask/accounts#76)

#### @metamask/eth-snap-keyring 4.3.3 -> 5.0.1
- [Version
4.3.4](https://github.com/MetaMask/accounts/blob/main/packages/keyring-snap-bridge/CHANGELOG.md#434)
an onward is using the new accounts mono repo.
- Breaking Changes:
- BREAKING: Bump @metamask/eth-sig-util dependency from ^7.0.3 to ^8.0.0
(MetaMask/accounts#79)
signTypedData no longer support number for addresses, see
[here](https://github.com/MetaMask/eth-sig-util/blob/main/CHANGELOG.md#800).
-
[changelog](https://github.com/MetaMask/accounts/blob/main/packages/keyring-snap-bridge/CHANGELOG.md#440)

#### @metamask/eth-sig-util 7.0.2 -> 8.0.0
Updated to support version 5 of the eth-snap-keyring. These breaking
changes do not effect the application.
- Breaking changes:
- BREAKING: Values of type number are not accepted as address parameter
anymore. Valid values are string and Uint8Array.
(MetaMask/eth-sig-util#391)
BREAKING: Drop support for Node.js versions 16, 21.
(MetaMask/eth-sig-util#390)

#### Added webextension-polyfill

[webextension-polyfill](https://github.com/mozilla/webextension-polyfill)
is required as a peer dependancy in newest updated of the
`@metamask/providers` package. The changelog states that `"Users are now
expected to have the polyfill in their environment"`. [Extension is
using version
0.8.0](https://github.com/MetaMask/metamask-extension/blob/95301f48f819080a7c5124601815cbee7dfdddce/package.json#L677)
of this package.

## **Related issues**

Fixes: MetaMask/accounts-planning#614

Related issues
Related to:

MetaMask/accounts#39
MetaMask/accounts#50
MetaMask/accounts#54
MetaMask/core#4713
MetaMask/core#4734

## **Manual testing steps**

1. Importing an account should work as expected
2. Snap accounts should work as expected
3. Hardware wallets should work as expected

## **Screenshots/Recordings**

<!-- If applicable, add screenshots and/or recordings to visualize the
before and after of your change. -->

### **Before**

<!-- [screenshots/recordings] -->

### **After**

Importing an account ✅ :


https://github.com/user-attachments/assets/77625167-8b05-4cd8-89fe-6903b8f414a1

Snap accounts ✅ :


https://github.com/user-attachments/assets/4ae1d7f7-f91a-4294-b0e6-6efeac3cea8a

Importing private key ✅ :


https://github.com/user-attachments/assets/891ba01e-b516-47f9-9fb7-e07d0e31ee24




## **Pre-merge author checklist**

- [x] I’ve followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile
Coding
Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [ ] I've completed the PR template to the best of my ability
- [ ] I’ve included tests if applicable
- [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [ ] I’ve applied the right labels on the PR (see [labeling
guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

## **Pre-merge reviewer checklist**

- [ ] I've manually tested the PR (e.g. pull and build branch, run the
app, test code being changed).
- [ ] I confirm that this PR addresses all acceptance criteria described
in the ticket it closes and includes the necessary testing evidence such
as recordings and or screenshots.
chrisleewilcox pushed a commit to MetaMask/metamask-mobile that referenced this pull request Dec 5, 2024
All accounts-related packages have been moved to our new
[monorepo](https://github.com/MetaMask/accounts).

A new patch version has been released for each of them. Those new
versions have been used and released in all core controllers:
MetaMask/core#4734

This repository contains the following packages
[1](https://github.com/MetaMask/accounts#user-content-fn-fn1-2bb23fc02fdc197b87e0d6543909d37e):

-
[@metamask/eth-hd-keyring](https://github.com/MetaMask/accounts/blob/main/packages/keyring-eth-hd):
✅ we are already using the latest version 9.0.0
-
[@metamask/eth-ledger-bridge-keyring](https://github.com/MetaMask/accounts/blob/main/packages/keyring-eth-ledger-bridge):
We are using [version
6.0.0](https://github.com/MetaMask/accounts/blob/main/packages/keyring-eth-ledger-bridge/CHANGELOG.md#600)
which is already pointing to the mono repo.
-
[@metamask/eth-simple-keyring](https://github.com/MetaMask/accounts/blob/main/packages/keyring-eth-simple):
✅ Not used on mobile.

[@metamask/eth-snap-keyring](https://github.com/MetaMask/accounts/blob/main/packages/keyring-snap):
⚠️ Needs updating. Changes described below.
-
[@metamask/eth-trezor-keyring](https://github.com/MetaMask/accounts/blob/main/packages/keyring-eth-trezor):
✅ Not used on mobile.

[@metamask/keyring-api](https://github.com/MetaMask/accounts/blob/main/packages/keyring-api):
⚠️ Needs updating. Changes described below.

- Breaking Changes:
    - Changed
- BREAKING: Bump peer dependency @metamask/keyring-controller from
^18.0.0 to ^19.0.0 (MetaMask/core#4956).
- BREAKING: Bump @metamask/keyring-api from ^8.1.3 to ^10.1.0
(MetaMask/core#4948)
- If you are depending on @metamask/providers directly, you will need to
upgrade to 18.1.0.
-
[changelog](https://github.com/MetaMask/core/blob/main/packages/accounts-controller/CHANGELOG.md#2001)

Updated to support the latest version of the accounts controller.
- Breaking changes:
- BREAKING: Bump @metamask/keyring-api from ^8.1.3 to ^10.1.0
(MetaMask/core#4948)
If you are depending on @metamask/providers directly, you will need to
upgrade to 18.1.0.

This was changed largely to support the newest version of the accounts
controller and keyring controller.
- Breaking Changes:
    - Fixed
- BREAKING: Change webextension-polyfill from dependency to
peerDependency (MetaMask/providers#319)
- Users are now expected to have the polyfill in their environment
- BREAKING: Bump @metamask/json-rpc-engine from ^9.0.1 to ^10.0.0
(MetaMask/providers#378)
- BREAKING: Bump @metamask/rpc-errors from ^6.4.0 to ^7.0.0
(MetaMask/providers#373)
-
[Changelog](https://github.com/MetaMask/providers/blob/main/CHANGELOG.md#1810)

[Version
8.1.1](https://github.com/MetaMask/accounts/blob/main/packages/keyring-api/CHANGELOG.md#811)
onward is using the new mono repo. I updated to version 10.1.0 to
support the breaking changes in the accounts controller bump from
v19.0.0 to v20.0.1
- Breaking Changes:
- BREAKING: Rename btc_sendmany method to sendBitcoin
(MetaMask/accounts#73)
- BREAKING: Bump peer dependency @metamask/providers from ^17.2.0 to
^18.1.0 (MetaMask/accounts#76)

- [Version
4.3.4](https://github.com/MetaMask/accounts/blob/main/packages/keyring-snap-bridge/CHANGELOG.md#434)
an onward is using the new accounts mono repo.
- Breaking Changes:
- BREAKING: Bump @metamask/eth-sig-util dependency from ^7.0.3 to ^8.0.0
(MetaMask/accounts#79)
signTypedData no longer support number for addresses, see
[here](https://github.com/MetaMask/eth-sig-util/blob/main/CHANGELOG.md#800).
-
[changelog](https://github.com/MetaMask/accounts/blob/main/packages/keyring-snap-bridge/CHANGELOG.md#440)

Updated to support version 5 of the eth-snap-keyring. These breaking
changes do not effect the application.
- Breaking changes:
- BREAKING: Values of type number are not accepted as address parameter
anymore. Valid values are string and Uint8Array.
(MetaMask/eth-sig-util#391)
BREAKING: Drop support for Node.js versions 16, 21.
(MetaMask/eth-sig-util#390)

[webextension-polyfill](https://github.com/mozilla/webextension-polyfill)
is required as a peer dependancy in newest updated of the
`@metamask/providers` package. The changelog states that `"Users are now
expected to have the polyfill in their environment"`. [Extension is
using version
0.8.0](https://github.com/MetaMask/metamask-extension/blob/95301f48f819080a7c5124601815cbee7dfdddce/package.json#L677)
of this package.

Fixes: MetaMask/accounts-planning#614

Related issues
Related to:

MetaMask/accounts#39
MetaMask/accounts#50
MetaMask/accounts#54
MetaMask/core#4713
MetaMask/core#4734

1. Importing an account should work as expected
2. Snap accounts should work as expected
3. Hardware wallets should work as expected

<!-- If applicable, add screenshots and/or recordings to visualize the
before and after of your change. -->

<!-- [screenshots/recordings] -->

Importing an account ✅ :

https://github.com/user-attachments/assets/77625167-8b05-4cd8-89fe-6903b8f414a1

Snap accounts ✅ :

https://github.com/user-attachments/assets/4ae1d7f7-f91a-4294-b0e6-6efeac3cea8a

Importing private key ✅ :

https://github.com/user-attachments/assets/891ba01e-b516-47f9-9fb7-e07d0e31ee24

- [x] I’ve followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile
Coding
Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [ ] I've completed the PR template to the best of my ability
- [ ] I’ve included tests if applicable
- [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [ ] I’ve applied the right labels on the PR (see [labeling
guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

- [ ] I've manually tested the PR (e.g. pull and build branch, run the
app, test code being changed).
- [ ] I confirm that this PR addresses all acceptance criteria described
in the ticket it closes and includes the necessary testing evidence such
as recordings and or screenshots.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

3 participants