mirror of https://github.com/vuejs/core.git
workflow: switch to simple-git-hooks (#7069)
This commit is contained in:
parent
71977ec972
commit
dc9f99426d
|
@ -36,9 +36,9 @@ Hi! I'm really excited that you are interested in contributing to Vue.js. Before
|
||||||
|
|
||||||
- Make sure tests pass!
|
- Make sure tests pass!
|
||||||
|
|
||||||
- Commit messages must follow the [commit message convention](./commit-convention.md) so that changelogs can be automatically generated. Commit messages are automatically validated before commit (by invoking [Git Hooks](https://git-scm.com/docs/githooks) via [yorkie](https://github.com/yyx990803/yorkie)).
|
- Commit messages must follow the [commit message convention](./commit-convention.md) so that changelogs can be automatically generated. Commit messages are automatically validated before commit (by invoking [Git Hooks](https://git-scm.com/docs/githooks) via [simple-git-hooks](https://github.com/toplenboren/simple-git-hooks)).
|
||||||
|
|
||||||
- No need to worry about code style as long as you have installed the dev dependencies - modified files are automatically formatted with Prettier on commit (by invoking [Git Hooks](https://git-scm.com/docs/githooks) via [yorkie](https://github.com/yyx990803/yorkie)).
|
- No need to worry about code style as long as you have installed the dev dependencies - modified files are automatically formatted with Prettier on commit (by invoking [Git Hooks](https://git-scm.com/docs/githooks) via [simple-git-hooks](https://github.com/toplenboren/simple-git-hooks)).
|
||||||
|
|
||||||
### Advanced Pull Request Tips
|
### Advanced Pull Request Tips
|
||||||
|
|
||||||
|
|
17
package.json
17
package.json
|
@ -25,20 +25,21 @@
|
||||||
"serve-sfc-playground": "vite packages/sfc-playground --host",
|
"serve-sfc-playground": "vite packages/sfc-playground --host",
|
||||||
"serve": "serve",
|
"serve": "serve",
|
||||||
"open": "open http://localhost:5000/packages/template-explorer/local.html",
|
"open": "open http://localhost:5000/packages/template-explorer/local.html",
|
||||||
"preinstall": "node ./scripts/preinstall.js",
|
|
||||||
"prebuild-sfc-playground": "node scripts/build.js compiler reactivity-transform shared -af cjs && node scripts/build.js runtime reactivity shared -af esm-bundler && node scripts/build.js vue -f esm-bundler-runtime && node scripts/build.js vue -f esm-browser-runtime && node scripts/build.js compiler-sfc server-renderer -f esm-browser",
|
"prebuild-sfc-playground": "node scripts/build.js compiler reactivity-transform shared -af cjs && node scripts/build.js runtime reactivity shared -af esm-bundler && node scripts/build.js vue -f esm-bundler-runtime && node scripts/build.js vue -f esm-browser-runtime && node scripts/build.js compiler-sfc server-renderer -f esm-browser",
|
||||||
"build-sfc-playground": "cd packages/sfc-playground && npm run build"
|
"build-sfc-playground": "cd packages/sfc-playground && npm run build",
|
||||||
|
"preinstall": "node ./scripts/preinstall.js",
|
||||||
|
"postinstall": "simple-git-hooks"
|
||||||
},
|
},
|
||||||
"types": "test-dts/index.d.ts",
|
"types": "test-dts/index.d.ts",
|
||||||
"tsd": {
|
"tsd": {
|
||||||
"directory": "test-dts"
|
"directory": "test-dts"
|
||||||
},
|
},
|
||||||
"gitHooks": {
|
"simple-git-hooks": {
|
||||||
"pre-commit": "lint-staged",
|
"pre-commit": "pnpm lint-staged",
|
||||||
"commit-msg": "node scripts/verifyCommit.js"
|
"commit-msg": "node scripts/verifyCommit.mjs"
|
||||||
},
|
},
|
||||||
"lint-staged": {
|
"lint-staged": {
|
||||||
"*.js": [
|
"*.{js,json}": [
|
||||||
"prettier --write"
|
"prettier --write"
|
||||||
],
|
],
|
||||||
"*.ts?(x)": [
|
"*.ts?(x)": [
|
||||||
|
@ -92,12 +93,12 @@
|
||||||
"semver": "^7.3.2",
|
"semver": "^7.3.2",
|
||||||
"serve": "^12.0.0",
|
"serve": "^12.0.0",
|
||||||
"terser": "^5.15.1",
|
"terser": "^5.15.1",
|
||||||
|
"simple-git-hooks": "^2.8.1",
|
||||||
"todomvc-app-css": "^2.3.0",
|
"todomvc-app-css": "^2.3.0",
|
||||||
"ts-jest": "^27.0.5",
|
"ts-jest": "^27.0.5",
|
||||||
"tslib": "^2.4.0",
|
"tslib": "^2.4.0",
|
||||||
"typescript": "^4.8.0",
|
"typescript": "^4.8.0",
|
||||||
"vite": "^3.0.0",
|
"vite": "^3.0.0",
|
||||||
"vue": "workspace:*",
|
"vue": "workspace:*"
|
||||||
"yorkie": "^2.0.0"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -45,6 +45,7 @@ importers:
|
||||||
rollup-plugin-typescript2: ^0.27.2
|
rollup-plugin-typescript2: ^0.27.2
|
||||||
semver: ^7.3.2
|
semver: ^7.3.2
|
||||||
serve: ^12.0.0
|
serve: ^12.0.0
|
||||||
|
simple-git-hooks: ^2.8.1
|
||||||
terser: ^5.15.1
|
terser: ^5.15.1
|
||||||
todomvc-app-css: ^2.3.0
|
todomvc-app-css: ^2.3.0
|
||||||
ts-jest: ^27.0.5
|
ts-jest: ^27.0.5
|
||||||
|
@ -52,7 +53,6 @@ importers:
|
||||||
typescript: ^4.8.0
|
typescript: ^4.8.0
|
||||||
vite: ^3.0.0
|
vite: ^3.0.0
|
||||||
vue: workspace:*
|
vue: workspace:*
|
||||||
yorkie: ^2.0.0
|
|
||||||
devDependencies:
|
devDependencies:
|
||||||
'@babel/types': 7.16.0
|
'@babel/types': 7.16.0
|
||||||
'@esbuild-plugins/node-modules-polyfill': 0.1.4_esbuild@0.14.35
|
'@esbuild-plugins/node-modules-polyfill': 0.1.4_esbuild@0.14.35
|
||||||
|
@ -95,6 +95,7 @@ importers:
|
||||||
rollup-plugin-typescript2: 0.27.3_5n3xkh745miirxxwrc7sr3qioi
|
rollup-plugin-typescript2: 0.27.3_5n3xkh745miirxxwrc7sr3qioi
|
||||||
semver: 7.3.5
|
semver: 7.3.5
|
||||||
serve: 12.0.1
|
serve: 12.0.1
|
||||||
|
simple-git-hooks: 2.8.1
|
||||||
terser: 5.15.1
|
terser: 5.15.1
|
||||||
todomvc-app-css: 2.4.1
|
todomvc-app-css: 2.4.1
|
||||||
ts-jest: 27.1.1_by43bc54xkygl7pua4gfvniboa
|
ts-jest: 27.1.1_by43bc54xkygl7pua4gfvniboa
|
||||||
|
@ -102,7 +103,6 @@ importers:
|
||||||
typescript: 4.8.2
|
typescript: 4.8.2
|
||||||
vite: 3.0.9_terser@5.15.1
|
vite: 3.0.9_terser@5.15.1
|
||||||
vue: link:packages/vue
|
vue: link:packages/vue
|
||||||
yorkie: 2.0.0
|
|
||||||
|
|
||||||
packages/compiler-core:
|
packages/compiler-core:
|
||||||
specifiers:
|
specifiers:
|
||||||
|
@ -2006,10 +2006,6 @@ packages:
|
||||||
resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==}
|
resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/ci-info/1.6.0:
|
|
||||||
resolution: {integrity: sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==}
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/ci-info/3.3.0:
|
/ci-info/3.3.0:
|
||||||
resolution: {integrity: sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==}
|
resolution: {integrity: sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==}
|
||||||
dev: true
|
dev: true
|
||||||
|
@ -3361,19 +3357,6 @@ packages:
|
||||||
strip-eof: 1.0.0
|
strip-eof: 1.0.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/execa/0.8.0:
|
|
||||||
resolution: {integrity: sha1-2NdrvBtVIX7RkP1t1J08d07PyNo=}
|
|
||||||
engines: {node: '>=4'}
|
|
||||||
dependencies:
|
|
||||||
cross-spawn: 5.1.0
|
|
||||||
get-stream: 3.0.0
|
|
||||||
is-stream: 1.1.0
|
|
||||||
npm-run-path: 2.0.2
|
|
||||||
p-finally: 1.0.0
|
|
||||||
signal-exit: 3.0.6
|
|
||||||
strip-eof: 1.0.0
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/execa/1.0.0:
|
/execa/1.0.0:
|
||||||
resolution: {integrity: sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==}
|
resolution: {integrity: sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==}
|
||||||
engines: {node: '>=6'}
|
engines: {node: '>=6'}
|
||||||
|
@ -4044,13 +4027,6 @@ packages:
|
||||||
engines: {node: '>= 0.4'}
|
engines: {node: '>= 0.4'}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/is-ci/1.2.1:
|
|
||||||
resolution: {integrity: sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==}
|
|
||||||
hasBin: true
|
|
||||||
dependencies:
|
|
||||||
ci-info: 1.6.0
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/is-core-module/2.10.0:
|
/is-core-module/2.10.0:
|
||||||
resolution: {integrity: sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==}
|
resolution: {integrity: sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==}
|
||||||
dependencies:
|
dependencies:
|
||||||
|
@ -5458,11 +5434,6 @@ packages:
|
||||||
validate-npm-package-license: 3.0.4
|
validate-npm-package-license: 3.0.4
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/normalize-path/1.0.0:
|
|
||||||
resolution: {integrity: sha1-MtDkcvkf80VwHBWoMRAY07CpA3k=}
|
|
||||||
engines: {node: '>=0.10.0'}
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/normalize-path/3.0.0:
|
/normalize-path/3.0.0:
|
||||||
resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
|
resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
|
||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
|
@ -6592,6 +6563,12 @@ packages:
|
||||||
resolution: {integrity: sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==}
|
resolution: {integrity: sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/simple-git-hooks/2.8.1:
|
||||||
|
resolution: {integrity: sha512-DYpcVR1AGtSfFUNzlBdHrQGPsOhuuEJ/FkmPOOlFysP60AHd3nsEpkGq/QEOdtUyT1Qhk7w9oLmFoMG+75BDog==}
|
||||||
|
hasBin: true
|
||||||
|
requiresBuild: true
|
||||||
|
dev: true
|
||||||
|
|
||||||
/sisteransi/1.0.5:
|
/sisteransi/1.0.5:
|
||||||
resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==}
|
resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==}
|
||||||
dev: true
|
dev: true
|
||||||
|
@ -6816,11 +6793,6 @@ packages:
|
||||||
engines: {node: '>=6'}
|
engines: {node: '>=6'}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/strip-indent/2.0.0:
|
|
||||||
resolution: {integrity: sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=}
|
|
||||||
engines: {node: '>=4'}
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/strip-indent/3.0.0:
|
/strip-indent/3.0.0:
|
||||||
resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==}
|
resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
|
@ -7555,17 +7527,6 @@ packages:
|
||||||
fd-slicer: 1.1.0
|
fd-slicer: 1.1.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/yorkie/2.0.0:
|
|
||||||
resolution: {integrity: sha512-jcKpkthap6x63MB4TxwCyuIGkV0oYP/YRyuQU5UO0Yz/E/ZAu+653/uov+phdmO54n6BcvFRyyt0RRrWdN2mpw==}
|
|
||||||
engines: {node: '>=4'}
|
|
||||||
requiresBuild: true
|
|
||||||
dependencies:
|
|
||||||
execa: 0.8.0
|
|
||||||
is-ci: 1.2.1
|
|
||||||
normalize-path: 1.0.0
|
|
||||||
strip-indent: 2.0.0
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/z-schema/5.0.4:
|
/z-schema/5.0.4:
|
||||||
resolution: {integrity: sha512-gm/lx3hDzJNcLwseIeQVm1UcwhWIKpSB4NqH89pTBtFns4k/HDHudsICtvG05Bvw/Mv3jMyk700y5dadueLHdA==}
|
resolution: {integrity: sha512-gm/lx3hDzJNcLwseIeQVm1UcwhWIKpSB4NqH89pTBtFns4k/HDHudsICtvG05Bvw/Mv3jMyk700y5dadueLHdA==}
|
||||||
engines: {node: '>=8.0.0'}
|
engines: {node: '>=8.0.0'}
|
||||||
|
|
|
@ -1,12 +1,14 @@
|
||||||
// Invoked on the commit-msg git hook by yorkie.
|
import chalk from 'chalk'
|
||||||
|
import { readFileSync } from 'fs'
|
||||||
|
import path from 'path'
|
||||||
|
import { fileURLToPath } from 'url'
|
||||||
|
|
||||||
const chalk = require('chalk')
|
const dirname = path.dirname(fileURLToPath(import.meta.url), '..')
|
||||||
const msgPath = process.env.GIT_PARAMS
|
const msgPath = path.resolve(dirname, '../.git/COMMIT_EDITMSG')
|
||||||
const msg = require('fs')
|
const msg = readFileSync(msgPath, 'utf-8').trim()
|
||||||
.readFileSync(msgPath, 'utf-8')
|
|
||||||
.trim()
|
|
||||||
|
|
||||||
const commitRE = /^(revert: )?(feat|fix|docs|dx|style|refactor|perf|test|workflow|build|ci|chore|types|wip|release)(\(.+\))?: .{1,50}/
|
const commitRE =
|
||||||
|
/^(revert: )?(feat|fix|docs|dx|style|refactor|perf|test|workflow|build|ci|chore|types|wip|release)(\(.+\))?: .{1,50}/
|
||||||
|
|
||||||
if (!commitRE.test(msg)) {
|
if (!commitRE.test(msg)) {
|
||||||
console.log()
|
console.log()
|
Loading…
Reference in New Issue