feat: align monorepo deps automatically (#518)

* build:  add syncpack

* feat:  add syncpack github action

* feat:  update syncpack

* ci: 🔧 update syncpackrc

* ci: 👷 update check-deps to ignore all

* Update check-deps.yml

* Update check-deps.yml

* Update check-deps.yml

* Update check-deps.yml

* Update package.json

* ci: 👷 add continue-on-error

* ci: 💚 move continue-on-error
This commit is contained in:
Adrian Pilarczyk 2023-06-01 09:09:19 +02:00 committed by GitHub
parent 91286da553
commit 8af0f022e3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 143 additions and 5 deletions

33
.github/workflows/check-deps.yml vendored Normal file
View file

@ -0,0 +1,33 @@
name: Check dependencies versions
on:
# Run whenever a pull request is updated
pull_request:
branches:
- main
jobs:
syncpack:
runs-on: ubuntu-latest
name: Check dependencies
steps:
# Check out the branch so we can read/write its files
- uses: actions/checkout@v3
# Use Node.js as syncpack is written in that
- uses: actions/setup-node@v3
with:
node-version: 18
- uses: JamieMason/syncpack-github-action@0.2.2
continue-on-error: true
with:
package-manager: "pnpm"
bot-username: "Syncpack Bot"
commit-message: "format and sync package.json files"
# The workflow will only list mismatched dependencies, and the assignee has to manually fix them.
# version-mismatches: list mismatches in a comment
version-mismatches: "lint"
# semver-range-mismatches: don't align dependency version format
semver-range-mismatches: "ignore"
# lockfile-mismatches: don't update lockfiles when mismatches detected
lockfile-mismatches: "ignore"
# format-mismatches: don't update package.json when inconsistent formatting detected
format-mismatches: "ignore"

31
.syncpackrc Normal file
View file

@ -0,0 +1,31 @@
{
"filter": ".",
"indent": " ",
"semverGroups": [],
"semverRange": "",
"dependencyTypes": [
"dev",
"overrides",
"peer",
"prod",
"resolutions",
"workspace"
],
"sortAz": [
"contributors",
"dependencies",
"devDependencies",
"keywords",
"peerDependencies",
"resolutions",
"scripts"
],
"sortFirst": [
"name",
"description",
"version",
"author"
],
"source": [],
"versionGroups": []
}

View file

@ -16,7 +16,8 @@
"format": "prettier --write \"**/*.{ts,tsx,md}\"",
"generate": "turbo run generate",
"prepare": "husky install",
"github:release": "pnpm changeset tag && git push --follow-tags"
"github:release": "pnpm changeset tag && git push --follow-tags",
"check-deps": "syncpack fix-mismatches --source \"apps/*/package.json\" --source \"packages/*/package.json\" --filter \"@saleor/app-sdk|@saleor/macaw-ui\""
},
"devDependencies": {
"@changesets/cli": "^2.26.0",
@ -35,5 +36,8 @@
"lint-staged": {
"*.{js,ts,tsx}": "eslint --cache --fix",
"*.{ts,tsx,md}": "prettier --write"
},
"dependencies": {
"syncpack": "^10.1.0"
}
}
}

View file

@ -3,6 +3,10 @@ lockfileVersion: '6.0'
importers:
.:
dependencies:
syncpack:
specifier: ^10.1.0
version: 10.1.0
devDependencies:
'@changesets/cli':
specifier: ^2.26.0
@ -12593,6 +12597,11 @@ packages:
resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==}
dev: false
/commander@10.0.1:
resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==}
engines: {node: '>=14'}
dev: false
/commander@2.20.3:
resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
@ -12802,6 +12811,16 @@ packages:
path-type: 4.0.0
dev: true
/cosmiconfig@8.1.3:
resolution: {integrity: sha512-/UkO2JKI18b5jVMJUp0lvKFMpa/Gye+ZgZjKD+DGEN9y7NRcf/nK1A0sp67ONmKtnDCNMS44E6jrk0Yc3bDuUw==}
engines: {node: '>=14'}
dependencies:
import-fresh: 3.3.0
js-yaml: 4.1.0
parse-json: 5.2.0
path-type: 4.0.0
dev: false
/crc-32@1.2.2:
resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==}
engines: {node: '>=0.8'}
@ -15212,7 +15231,6 @@ packages:
graceful-fs: 4.2.10
jsonfile: 6.1.0
universalify: 2.0.0
dev: true
/fs-extra@7.0.1:
resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==}
@ -16733,7 +16751,6 @@ packages:
universalify: 2.0.0
optionalDependencies:
graceful-fs: 4.2.10
dev: true
/jsonify@0.0.1:
resolution: {integrity: sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==}
@ -17710,6 +17727,13 @@ packages:
dependencies:
brace-expansion: 2.0.1
/minimatch@6.2.0:
resolution: {integrity: sha512-sauLxniAmvnhhRjFwPNnJKaPFYyddAgbYdeUpHULtCT/GhzdCx/MDNy+Y40lBxTQUrMzDE8e0S43Z5uqfO0REg==}
engines: {node: '>=10'}
dependencies:
brace-expansion: 2.0.1
dev: false
/minimist-options@4.1.0:
resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==}
engines: {node: '>= 6'}
@ -19915,6 +19939,14 @@ packages:
pify: 4.0.1
strip-bom: 3.0.0
/read-yaml-file@2.1.0:
resolution: {integrity: sha512-UkRNRIwnhG+y7hpqnycCL/xbTk7+ia9VuVTC0S+zVbwd65DI9eUpRMfsWIGrCWxTU/mi+JW8cHQCrv+zfCbEPQ==}
engines: {node: '>=10.13'}
dependencies:
js-yaml: 4.1.0
strip-bom: 4.0.0
dev: false
/readable-stream@2.3.7:
resolution: {integrity: sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==}
dependencies:
@ -20409,6 +20441,14 @@ packages:
lru-cache: 6.0.0
dev: true
/semver@7.5.0:
resolution: {integrity: sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==}
engines: {node: '>=10'}
hasBin: true
dependencies:
lru-cache: 6.0.0
dev: false
/semver@7.5.1:
resolution: {integrity: sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==}
engines: {node: '>=10'}
@ -20938,6 +20978,11 @@ packages:
resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
engines: {node: '>=4'}
/strip-bom@4.0.0:
resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==}
engines: {node: '>=8'}
dev: false
/strip-final-newline@2.0.0:
resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==}
engines: {node: '>=6'}
@ -21056,6 +21101,23 @@ packages:
'@pkgr/utils': 2.3.1
tslib: 2.5.0
/syncpack@10.1.0:
resolution: {integrity: sha512-3SMPf49tpxw170ZokyurKuJc7G45xZLtzgH6W87+7OsbRQLc+oc9UfoelVf1CuYglZsMwFott4zEShCY8o+R1Q==}
engines: {node: '>=14'}
hasBin: true
dependencies:
chalk: 4.1.2
commander: 10.0.1
cosmiconfig: 8.1.3
fs-extra: 11.1.1
glob: 8.1.0
minimatch: 6.2.0
read-yaml-file: 2.1.0
semver: 7.5.0
tightrope: 0.1.0
ts-toolbelt: 9.6.0
dev: false
/tapable@2.2.1:
resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==}
engines: {node: '>=6'}
@ -21202,6 +21264,11 @@ packages:
resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
dev: true
/tightrope@0.1.0:
resolution: {integrity: sha512-HHHNYdCAIYwl1jOslQBT455zQpdeSo8/A346xpIb/uuqhSg+tCvYNsP5f11QW+z9VZ3vSX8YIfzTApjjuGH63w==}
engines: {node: '>=14'}
dev: false
/time-zone@1.0.0:
resolution: {integrity: sha512-TIsDdtKo6+XrPtiTm1ssmMngN1sAhyKnTO2kunQWqNPWIVvCm15Wmw4SWInwTVgJ5u/Tr04+8Ei9TNcw4x4ONA==}
engines: {node: '>=4'}
@ -21372,6 +21439,10 @@ packages:
resolution: {integrity: sha512-PGcnJoTBnVGy6yYNFxWVNkdcAuAMstvutN9MgDJIV6L0oG8fB+ZNNy1T+wJzah8RPGor1mZuPQkVfXNDpy9eHA==}
dev: true
/ts-toolbelt@9.6.0:
resolution: {integrity: sha512-nsZd8ZeNUzukXPlJmTBwUAuABDe/9qtVDelJeT/qW0ow3ZS3BsQJtNkan1802aM9Uf68/Y8ljw86Hu0h5IUW3w==}
dev: false
/tsconfig-paths@3.14.1:
resolution: {integrity: sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==}
dependencies:
@ -21785,7 +21856,6 @@ packages:
/universalify@2.0.0:
resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==}
engines: {node: '>= 10.0.0'}
dev: true
/unixify@1.0.0:
resolution: {integrity: sha512-6bc58dPYhCMHHuwxldQxO3RRNZ4eCogZ/st++0+fcC1nr0jiGUtAdBJ2qzmLQWSxbtz42pWt4QQMiZ9HvZf5cg==}