Skip to content

Commit 6b9a652

Browse files
committed
Move bump and pre/postversion to /scripts
1 parent e5792b8 commit 6b9a652

8 files changed

Lines changed: 126 additions & 14 deletions

File tree

package-lock.json

Lines changed: 5 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/api-middleware/package.json

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -63,15 +63,16 @@
6363
"homepage": "https://github.com/microsoft/BotFramework-WebChat/tree/main/packages/api-middleware#readme",
6464
"scripts": {
6565
"build": "tsup --config ./tsup.config.ts",
66-
"bump": "npm run bump:prod && npm run bump:dev && (npm audit fix || exit 0)",
67-
"bump:dev": "PACKAGES_TO_BUMP=$(cat package.json | jq -r '(.pinDependencies // {}) as $P | (.localDependencies // {} | keys) as $L | (.devDependencies // {}) | to_entries | map(select(.key as $K | $L | contains([$K]) | not)) | map(.key + \"@\" + ($P[.key] // [\"latest\"])[0]) | join(\" \")') && [ ! -z \"$PACKAGES_TO_BUMP\" ] && npm install $PACKAGES_TO_BUMP || true",
68-
"bump:prod": "PACKAGES_TO_BUMP=$(cat package.json | jq -r '(.pinDependencies // {}) as $P | (.localDependencies // {} | keys) as $L | (.dependencies // {}) | to_entries | map(select(.key as $K | $L | contains([$K]) | not)) | map(.key + \"@\" + ($P[.key] // [\"latest\"])[0]) | join(\" \")') && [ ! -z \"$PACKAGES_TO_BUMP\" ] && npm install --save-exact $PACKAGES_TO_BUMP || true",
66+
"bump": "npm run bump:prod && npm run bump:dev && npm run bump:peer && (npm audit fix || exit 0)",
67+
"bump:dev": "../../scripts/npm/bump-dev.sh",
68+
"bump:peer": "../../scripts/npm/bump-peer.sh",
69+
"bump:prod": "../../scripts/npm/bump-prod.sh",
6970
"eslint": "npm run precommit",
70-
"postversion": "cat package.json | jq '.version as $V | (.localDependencies // {} | with_entries(select(.value == \"production\") | { key: .key, value: $V })) as $L1 | (.localDependencies // {} | with_entries(select(.value == \"development\") | { key: .key, value: $V })) as $L2 | ((.dependencies // {}) + $L1 | to_entries | sort_by(.key) | from_entries) as $D1 | ((.devDependencies // {}) + $L2 | to_entries | sort_by(.key) | from_entries) as $D2 | . + { dependencies: $D1, devDependencies: $D2 }' > package-temp.json && mv package-temp.json package.json",
71+
"postversion": "node ../../scripts/npm/postversion.sh",
7172
"precommit": "npm run precommit:eslint -- src && npm run precommit:typecheck",
7273
"precommit:eslint": "../../node_modules/.bin/eslint --report-unused-disable-directives --max-warnings 0",
7374
"precommit:typecheck": "tsc --project ./src --emitDeclarationOnly false --esModuleInterop true --noEmit --pretty false",
74-
"preversion": "cat package.json | jq '(.localDependencies // {} | to_entries | map([if .value == \"production\" then \"dependencies\" else \"devDependencies\" end, .key])) as $P | delpaths($P)' > package-temp.json && mv package-temp.json package.json",
75+
"preversion": "node ../../scripts/npm/preversion.sh",
7576
"start": "npm run build -- --watch"
7677
},
7778
"devDependencies": {
@@ -81,12 +82,12 @@
8182
"@msinternal/botframework-webchat-react-valibot": "^0.0.0-0",
8283
"@types/node": "^22.13.4",
8384
"cross-env": "^7.0.3",
84-
"type-fest": "^4.34.1",
85+
"type-fest": "^4.41.0",
8586
"typescript": "^5.7.3"
8687
},
8788
"peerDependencies": {
88-
"react-chain-of-responsibility": "0.4.0-main.c2f17da",
89-
"react": ">= 16.8.6"
89+
"react": ">= 16.8.6",
90+
"react-chain-of-responsibility": "0.4.0-main.c2f17da"
9091
},
9192
"dependencies": {
9293
"handler-chain": "^0.1.0",

packages/experience-chat-launcher/package.json

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,21 +28,25 @@
2828
"*.js"
2929
],
3030
"localDependencies": {
31+
"botframework-webchat-api": "peer",
32+
"botframework-webchat-component": "peer",
33+
"botframework-webchat-core": "peer",
3134
"@msinternal/botframework-webchat-react-valibot": "development",
3235
"@msinternal/botframework-webchat-styles": "development"
3336
},
3437
"homepage": "https://github.com/microsoft/BotFramework-WebChat/tree/main/packages/experience-chat-launcher#readme",
3538
"scripts": {
3639
"build": "tsup --config ./tsup.config.ts",
37-
"bump": "npm run bump:prod && npm run bump:dev && (npm audit fix || exit 0)",
38-
"bump:dev": "PACKAGES_TO_BUMP=$(cat package.json | jq -r '(.pinDependencies // {}) as $P | (.localDependencies // {} | keys) as $L | (.devDependencies // {}) | to_entries | map(select(.key as $K | $L | contains([$K]) | not)) | map(.key + \"@\" + ($P[.key] // [\"latest\"])[0]) | join(\" \")') && [ ! -z \"$PACKAGES_TO_BUMP\" ] && npm install $PACKAGES_TO_BUMP || true",
39-
"bump:prod": "PACKAGES_TO_BUMP=$(cat package.json | jq -r '(.pinDependencies // {}) as $P | (.localDependencies // {} | keys) as $L | (.dependencies // {}) | to_entries | map(select(.key as $K | $L | contains([$K]) | not)) | map(.key + \"@\" + ($P[.key] // [\"latest\"])[0]) | join(\" \")') && [ ! -z \"$PACKAGES_TO_BUMP\" ] && npm install --save-exact $PACKAGES_TO_BUMP || true",
40+
"bump": "npm run bump:prod && npm run bump:dev && npm run bump:peer && (npm audit fix || exit 0)",
41+
"bump:dev": "../../scripts/npm/bump-dev.sh",
42+
"bump:peer": "../../scripts/npm/bump-peer.sh",
43+
"bump:prod": "../../scripts/npm/bump-prod.sh",
4044
"eslint": "npm run precommit",
41-
"postversion": "cat package.json | jq '.version as $V | (.localDependencies // {} | with_entries(select(.value == \"production\") | { key: .key, value: $V })) as $L1 | (.localDependencies // {} | with_entries(select(.value == \"development\") | { key: .key, value: $V })) as $L2 | ((.dependencies // {}) + $L1 | to_entries | sort_by(.key) | from_entries) as $D1 | ((.devDependencies // {}) + $L2 | to_entries | sort_by(.key) | from_entries) as $D2 | . + { dependencies: $D1, devDependencies: $D2 }' > package-temp.json && mv package-temp.json package.json",
45+
"postversion": "../../scripts/npm/postversion.sh",
4246
"precommit": "npm run precommit:eslint -- src && npm run precommit:typecheck",
4347
"precommit:eslint": "../../node_modules/.bin/eslint --report-unused-disable-directives --max-warnings 0",
4448
"precommit:typecheck": "tsc --project ./src --emitDeclarationOnly false --esModuleInterop true --noEmit --pretty false",
45-
"preversion": "cat package.json | jq '(.localDependencies // {} | to_entries | map([if .value == \"production\" then \"dependencies\" else \"devDependencies\" end, .key])) as $P | delpaths($P)' > package-temp.json && mv package-temp.json package.json",
49+
"preversion": "../../scripts/npm/preversion.sh",
4650
"start": "npm run build -- --watch"
4751
},
4852
"devDependencies": {
@@ -52,7 +56,9 @@
5256
"typescript": "^5.7.3"
5357
},
5458
"peerDependencies": {
59+
"botframework-webchat-api": "0.0.0-0",
5560
"botframework-webchat-component": "0.0.0-0",
61+
"botframework-webchat-core": "0.0.0-0",
5662
"react": ">= 16.8.6"
5763
},
5864
"dependencies": {

scripts/npm/bump-dev.sh

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
#!/bin/bash
2+
3+
PACKAGES_TO_BUMP=$(cat package.json | jq -r '
4+
(.pinDependencies // {}) as $P
5+
| (.localDependencies // {} | keys) as $L
6+
| (.devDependencies // {})
7+
| to_entries
8+
| map(select(.key as $K | $L | contains([$K]) | not))
9+
| map(.key + "@" + ($P[.key] // ["latest"])[0])
10+
| join(" ")
11+
')
12+
13+
[ ! -z "$PACKAGES_TO_BUMP" ] && npm install --save-dev $PACKAGES_TO_BUMP || true

scripts/npm/bump-peer.sh

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
#!/bin/bash
2+
3+
PACKAGES_TO_BUMP=$(cat package.json | jq -r '
4+
(.pinDependencies // {}) as $P
5+
| (.localDependencies // {} | keys) as $L
6+
| (.peerDependencies // {})
7+
| to_entries
8+
| map(select(.key as $K | $L | contains([$K]) | not))
9+
| map(.key + "@" + ($P[.key] // ["latest"])[0])
10+
| join(" ")
11+
')
12+
13+
[ ! -z "$PACKAGES_TO_BUMP" ] && npm install --save-exact --save-peer $PACKAGES_TO_BUMP || true

scripts/npm/bump-prod.sh

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
#!/bin/bash
2+
3+
PACKAGES_TO_BUMP=$(cat package.json | jq -r '
4+
(.pinDependencies // {}) as $P
5+
| (.localDependencies // {} | keys) as $L
6+
| (.dependencies // {})
7+
| to_entries
8+
| map(select(.key as $K | $L | contains([$K]) | not))
9+
| map(.key + "@" + ($P[.key] // ["latest"])[0])
10+
| join(" ")
11+
')
12+
13+
[ ! -z "$PACKAGES_TO_BUMP" ] && npm install --save-exact $PACKAGES_TO_BUMP || true

scripts/npm/postversion.sh

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
#!/bin/bash
2+
cat package.json | jq '
3+
.version as $V
4+
| (
5+
.localDependencies // {}
6+
| with_entries(select(.value == "production")
7+
| { key: .key, value: $V })
8+
) as $L1
9+
| (
10+
.localDependencies // {}
11+
| with_entries(select(.value == "development")
12+
| { key: .key, value: $V })
13+
) as $L2
14+
| (
15+
.localDependencies // {}
16+
| with_entries(select(.value == "peer")
17+
| { key: .key, value: $V })
18+
) as $L3
19+
| (
20+
(.dependencies // {}) + $L1
21+
| to_entries
22+
| sort_by(.key)
23+
| from_entries
24+
) as $D1
25+
| (
26+
(.devDependencies // {}) + $L2
27+
| to_entries
28+
| sort_by(.key)
29+
| from_entries
30+
) as $D2
31+
| (
32+
(.peerDependencies // {}) + $L3
33+
| to_entries
34+
| sort_by(.key)
35+
| from_entries
36+
) as $D3
37+
| . + {
38+
dependencies: $D1,
39+
devDependencies: $D2,
40+
peerDependencies: $D3
41+
}
42+
' > package-temp.json && mv package-temp.json package.json

scripts/npm/preversion.sh

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
#!/bin/bash
2+
# TODO: [P1] Instead of simply stripping out "localDependencies", it should:
3+
# 1. Look at what has version "0.0.0-0", save them to "localDependencies" and mark it as "production"/"development"/"peer"
4+
cat package.json | jq '
5+
(
6+
.localDependencies // {}
7+
| to_entries
8+
| map([
9+
if .value == "production" then
10+
"dependencies"
11+
elif .value == "development" then
12+
"devDependencies"
13+
else
14+
"peerDependencies"
15+
end,
16+
.key
17+
])
18+
) as $P
19+
| delpaths($P)
20+
' > package-temp.json && mv package-temp.json package.json

0 commit comments

Comments
 (0)