safe-global / safe-modules

A collection of modules that can be used with the Safe contract
GNU Lesser General Public License v3.0
140 stars 73 forks source link

Add a `sherif` monorepo linter to the CI #452

Closed mmv08 closed 2 months ago

mmv08 commented 2 months ago

The PR introduces the 'sherif' linter, which is an opinionated, zero-config linter designed specifically for JavaScript monorepos. This addition aims to improve code quality and standardize development practices across the safe-modules project.

CI Integration: The PR adds 'sherif' to the CI workflow. This ensures that the linter runs automatically on pull requests, helping to catch potential issues early in the development process. Linter Features:

'Sherif' offers several features:

Found and fixed issues:

2 issues found in ./package.json:

 ⨯ error The root package.json should be private to prevent accidentaly publishing it to a registry. root-package-private-field
  │ {
  +   "private": "true"   ← missing private field.
  │ }

 ⨯ error The root package.json should specify the package manager and version to use. Useful for tools like corepack. root-package-manager-field
  │ {
  +   "packageManager": "..."   ← missing packageManager field.
  │ }

1 issue found in ./packages/4337-provider/package.json:

 ⨯ error Private packages shouldn't have @types/* in dependencies. types-in-dependencies
  │ {
  │   "private": "true",     ← package is private...
  │   ...
  -   "dependencies": {      ← but has @types/* in dependencies...
  -      "@types/node": "...",
  -   },
  │   ...
  +   "devDependencies": {   ← instead of devDependencies.
  +      "@types/node": "...",
  +   }
  │ }

13 issues found in ./:

 ⨯ error Dependency @account-abstraction/contracts has multiple versions defined in the workspace. multiple-dependency-versions
  ./examples
      4337-passkeys             0.7.0   ↓ lowest
  ./modules
      4337                      ^0.7.0   ↑ highest
      passkey                   ^0.7.0   ↑ highest
  ./packages
      4337-local-bundler        ^0.7.0   ↑ highest

 ⨯ error Dependency @safe-global/safe-contracts has multiple versions defined in the workspace. multiple-dependency-versions
  ./examples
      4337-passkeys             ^1.4.1-build.0   ↑ highest
  ./modules
      4337                      ^1.4.1-build.0   ↑ highest
      passkey                   ^1.4.1-build.0   ↑ highest
      recovery                  =1.4.1-build.0   ∼ between
  ./packages
      4337-local-bundler        ^1.4.1-build.0   ↑ highest

 ⨯ error Dependency ethers has multiple versions defined in the workspace. multiple-dependency-versions
  ./examples
      4337-gas-metering         ^6.12.1   ↓ lowest
  ./modules
      allowances                ^6.12.1   ↓ lowest
      passkey                   ^6.12.1   ↓ lowest
      recovery                  ^6.12.1   ↓ lowest
  ./packages
      4337-local-bundler        ^6.12.1   ↓ lowest
      4337-provider             ^6.12.1   ↓ lowest
  ./examples
      4337-passkeys             ^6.13.1   ↑ highest
  ./modules
      4337                      ^6.13.1   ↑ highest

 ⨯ error Dependency hardhat has multiple versions defined in the workspace. multiple-dependency-versions
  ./modules
      allowances                ^2.22.3   ↓ lowest
      passkey                   ^2.22.3   ↓ lowest
      recovery                  ^2.22.3   ↓ lowest
  ./packages
      4337-local-bundler        ^2.22.3   ↓ lowest
  ./modules
      4337                      ^2.22.5   ↑ highest

 ⨯ error Dependency typescript has multiple versions defined in the workspace. multiple-dependency-versions
  ./examples
      4337-gas-metering         ^5.4.5   ↓ lowest
  ./modules
      allowances                5.4.5   ∼ between
      passkey                   ^5.4.5   ↓ lowest
      recovery                  ^5.4.5   ↓ lowest
  ./packages
      4337-local-bundler        ^5.4.5   ↓ lowest
      4337-provider             ^5.4.5   ↓ lowest
  ./examples
      4337-passkeys             ^5.5.2   ↑ highest
  ./modules
      4337                      ^5.5.2   ↑ highest

 ⨯ error Dependency @types/node has multiple versions defined in the workspace. multiple-dependency-versions
  ./examples
      4337-gas-metering         20.14.0   ↓ lowest
  ./modules
      allowances                ^20.14.0   ∼ between
      passkey                   ^20.14.0   ∼ between
      recovery                  ^20.14.0   ∼ between
  ./packages
      4337-provider             ^20.14.0   ∼ between
  ./modules
      4337                      ^20.14.8   ↑ highest

 ⨯ error Dependency @openzeppelin/contracts has multiple versions defined in the workspace. multiple-dependency-versions
  ./modules
      recovery                  =4.9.6   ↓ lowest
      passkey                   ^5.0.0   ∼ between
      4337                      ^5.0.2   ↑ highest
      allowances                ^5.0.2   ↑ highest

 ⨯ error Dependency @safe-global/safe-deployments has multiple versions defined in the workspace. multiple-dependency-versions
  ./modules
      allowances                ^1.36.0   ↓ lowest
  ./examples
      4337-passkeys             ^1.37.0   ↑ highest

 ⨯ error Dependency @types/mocha has multiple versions defined in the workspace. multiple-dependency-versions
  ./modules
      allowances                ^10.0.6   ↓ lowest
      4337                      ^10.0.7   ↑ highest

 ⨯ error Dependency dotenv has multiple versions defined in the workspace. multiple-dependency-versions
  ./examples
      4337-gas-metering         16.4.5   ↓ lowest
  ./modules
      4337                      ^16.4.5   ↑ highest
      allowances                ^16.4.5   ↑ highest
      passkey                   ^16.4.5   ↑ highest
      recovery                  ^16.4.5   ↑ highest

 ⨯ error Dependency solhint has multiple versions defined in the workspace. multiple-dependency-versions
  ./modules
      4337                      ^5.0.1   ↑ highest
      allowances                5.0.1   ∼ between
      passkey                   ^5.0.1   ↑ highest

 ⨯ error Dependency @nomicfoundation/hardhat-network-helpers has multiple versions defined in the workspace. multiple-dependency-versions
  ./modules
      passkey                   ^1.0.10   ↓ lowest
      4337                      ^1.0.11   ↑ highest

 ⨯ error Dependency @simplewebauthn/server has multiple versions defined in the workspace. multiple-dependency-versions
  ./modules
      4337                      10.0.0   ↓ lowest
      passkey                   ^10.0.0   ↑ highest
coveralls commented 2 months ago

Pull Request Test Coverage Report for Build 9807067578

Details


Totals Coverage Status
Change from base Build 9806149214: 0.0%
Covered Lines: 39
Relevant Lines: 39

💛 - Coveralls
coveralls commented 2 months ago

Pull Request Test Coverage Report for Build 9807067573

Details


Totals Coverage Status
Change from base Build 9806149214: 0.0%
Covered Lines: 90
Relevant Lines: 90

💛 - Coveralls
coveralls commented 2 months ago

Pull Request Test Coverage Report for Build 9807114818

Details


Totals Coverage Status
Change from base Build 9806149214: 0.0%
Covered Lines: 39
Relevant Lines: 39

💛 - Coveralls
coveralls commented 2 months ago

Pull Request Test Coverage Report for Build 9807114812

Details


Totals Coverage Status
Change from base Build 9806149214: 0.0%
Covered Lines: 90
Relevant Lines: 90

💛 - Coveralls
coveralls commented 2 months ago

Pull Request Test Coverage Report for Build 9807254097

Details


Totals Coverage Status
Change from base Build 9807171647: 0.0%
Covered Lines: 39
Relevant Lines: 39

💛 - Coveralls
coveralls commented 2 months ago

Pull Request Test Coverage Report for Build 9807254091

Details


Totals Coverage Status
Change from base Build 9807171647: 0.0%
Covered Lines: 90
Relevant Lines: 90

💛 - Coveralls
coveralls commented 2 months ago

Pull Request Test Coverage Report for Build 9808488628

Details


Totals Coverage Status
Change from base Build 9807171647: 0.0%
Covered Lines: 39
Relevant Lines: 39

💛 - Coveralls
nlordell commented 2 months ago

One more question here: https://github.com/safe-global/safe-modules/pull/452#discussion_r1668204779, but approving to reduce back-and-forth.

coveralls commented 2 months ago

Pull Request Test Coverage Report for Build 9842375074

Details


Totals Coverage Status
Change from base Build 9807474017: 0.0%
Covered Lines: 90
Relevant Lines: 90

💛 - Coveralls