please-release-me 3.0.0 → 3.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/settings.local.json +7 -0
- package/README.md +1 -1
- package/package.json +1 -1
- package/release.sh +94 -75
package/README.md
CHANGED
package/package.json
CHANGED
package/release.sh
CHANGED
|
@@ -1,67 +1,83 @@
|
|
|
1
1
|
#!/bin/sh
|
|
2
2
|
|
|
3
|
-
LAST_TAG
|
|
4
|
-
COMMITS
|
|
3
|
+
LAST_TAG=$(git describe --tags --abbrev=0)
|
|
4
|
+
COMMITS=$(git log "$LAST_TAG..HEAD" --pretty=oneline)
|
|
5
5
|
|
|
6
|
-
if [ "$
|
|
7
|
-
|
|
6
|
+
if [ "$1" = "--notest" ]; then
|
|
7
|
+
TEST=false
|
|
8
|
+
else
|
|
9
|
+
TEST=true
|
|
10
|
+
fi
|
|
11
|
+
|
|
12
|
+
if [ -f go.mod ]; then
|
|
13
|
+
IS_GO=true
|
|
14
|
+
fi
|
|
15
|
+
|
|
16
|
+
if [ -f package.json ]; then
|
|
17
|
+
IS_NODE=true
|
|
18
|
+
fi
|
|
19
|
+
|
|
20
|
+
if [ -f setup.py ]; then
|
|
21
|
+
IS_PYTHON=true
|
|
22
|
+
fi
|
|
23
|
+
|
|
24
|
+
if [ -f Cargo.toml ]; then
|
|
25
|
+
IS_RUST=true
|
|
26
|
+
fi
|
|
27
|
+
|
|
28
|
+
abort() {
|
|
29
|
+
echo "Release aborted: $1"
|
|
8
30
|
exit 1
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
if [ "$COMMITS" = "" ]; then
|
|
34
|
+
abort "I see no work"
|
|
9
35
|
fi
|
|
10
36
|
|
|
11
|
-
|
|
12
|
-
if
|
|
13
|
-
|
|
14
|
-
if [ $? -ne 0 ]; then
|
|
15
|
-
echo "Release aborted: Lint failed."
|
|
16
|
-
exit 1
|
|
37
|
+
if [ "$IS_GO" ]; then
|
|
38
|
+
if ! go vet ./...; then
|
|
39
|
+
abort "go vet failed"
|
|
17
40
|
fi
|
|
18
41
|
fi
|
|
19
42
|
|
|
20
|
-
grep '^\s*"
|
|
21
|
-
if
|
|
22
|
-
|
|
23
|
-
if [ $? -ne 0 ]; then
|
|
24
|
-
echo "Release aborted: Tests failed."
|
|
25
|
-
exit 1
|
|
43
|
+
if grep '^\s*"lint":' package.json > /dev/null 2>&1; then
|
|
44
|
+
if ! npm run lint; then
|
|
45
|
+
abort "npm run lint failed"
|
|
26
46
|
fi
|
|
27
47
|
fi
|
|
28
48
|
|
|
29
|
-
|
|
30
|
-
if [
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
exit 1
|
|
49
|
+
if [ "$TEST" = "true" ]; then
|
|
50
|
+
if [ "$IS_GO" ]; then
|
|
51
|
+
if ! go test ./...; then
|
|
52
|
+
abort "go test failed"
|
|
53
|
+
fi
|
|
35
54
|
fi
|
|
36
|
-
fi
|
|
37
55
|
|
|
38
|
-
if
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
exit 1
|
|
56
|
+
if grep '^\s*"test":' package.json > /dev/null 2>&1; then
|
|
57
|
+
if ! npm t; then
|
|
58
|
+
abort "npm test failed"
|
|
59
|
+
fi
|
|
43
60
|
fi
|
|
44
|
-
fi
|
|
45
61
|
|
|
46
|
-
if [
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
exit 1
|
|
62
|
+
if [ "$IS_RUST" ]; then
|
|
63
|
+
if ! cargo t; then
|
|
64
|
+
abort "cargo test failed"
|
|
65
|
+
fi
|
|
51
66
|
fi
|
|
52
67
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
68
|
+
fi
|
|
69
|
+
|
|
70
|
+
if grep '^\s*"minify":' package.json > /dev/null 2>&1; then
|
|
71
|
+
if ! npm run minify; then
|
|
72
|
+
abort "npm run minify failed"
|
|
57
73
|
fi
|
|
58
74
|
fi
|
|
59
75
|
|
|
60
76
|
while read -r COMMIT; do
|
|
61
|
-
HASH
|
|
62
|
-
MESSAGE
|
|
63
|
-
TYPE
|
|
64
|
-
AREA
|
|
77
|
+
HASH=$(echo "$COMMIT" | cut -d ' ' -f 1)
|
|
78
|
+
MESSAGE=$(echo "$COMMIT" | cut -d ':' -f 2- | awk '{$1=$1};1')
|
|
79
|
+
TYPE=$(echo "$COMMIT" | cut -d ' ' -f 2 | awk '{$1=$1};1' | cut -d ':' -f 1 | cut -d '(' -f 1 | awk '{$1=$1};1')
|
|
80
|
+
AREA=$(echo "$COMMIT" | cut -d '(' -f 2 | cut -d ')' -f 1 | awk '{$1=$1};1')
|
|
65
81
|
|
|
66
82
|
if [ "$AREA" = "$COMMIT" ]; then
|
|
67
83
|
AREA=""
|
|
@@ -113,9 +129,11 @@ while read -r COMMIT; do
|
|
|
113
129
|
OTHER_SUMMARY="$OTHER_SUMMARY\n* $AREA$MESSAGE ($HASH)"
|
|
114
130
|
;;
|
|
115
131
|
esac
|
|
116
|
-
done
|
|
132
|
+
done << EOF
|
|
133
|
+
$COMMITS
|
|
134
|
+
EOF
|
|
117
135
|
|
|
118
|
-
if [ "$BUILD_TYPE" != "Major"
|
|
136
|
+
if [ "$BUILD_TYPE" != "Major" ] && [ "$BUILD_TYPE" != "Minor" ]; then
|
|
119
137
|
BUILD_TYPE="Patch"
|
|
120
138
|
fi
|
|
121
139
|
|
|
@@ -145,69 +163,69 @@ fi
|
|
|
145
163
|
|
|
146
164
|
SUMMARY="$BREAK_SUMMARY$FEAT_SUMMARY$FIX_SUMMARY$PERF_SUMMARY$REFACTOR_SUMMARY$OTHER_SUMMARY"
|
|
147
165
|
|
|
148
|
-
MAJOR
|
|
149
|
-
MINOR
|
|
150
|
-
PATCH
|
|
166
|
+
MAJOR=$(echo "$LAST_TAG" | cut -d '.' -f 1)
|
|
167
|
+
MINOR=$(echo "$LAST_TAG" | cut -d '.' -f 2)
|
|
168
|
+
PATCH=$(echo "$LAST_TAG" | cut -d '.' -f 3)
|
|
151
169
|
|
|
152
170
|
SED_FRIENDLY_LAST_TAG="$MAJOR\\.$MINOR\\.$PATCH"
|
|
153
171
|
|
|
154
172
|
case $BUILD_TYPE in
|
|
155
173
|
"Major")
|
|
156
|
-
MAJOR
|
|
174
|
+
MAJOR=$((MAJOR + 1))
|
|
157
175
|
MINOR=0
|
|
158
176
|
PATCH=0
|
|
159
177
|
;;
|
|
160
178
|
"Minor")
|
|
161
|
-
MINOR
|
|
179
|
+
MINOR=$((MINOR + 1))
|
|
162
180
|
PATCH=0
|
|
163
181
|
;;
|
|
164
182
|
"Patch")
|
|
165
|
-
PATCH
|
|
183
|
+
PATCH=$((PATCH + 1))
|
|
166
184
|
;;
|
|
167
185
|
esac
|
|
168
186
|
|
|
169
187
|
NEW_TAG="$MAJOR.$MINOR.$PATCH"
|
|
170
188
|
|
|
171
|
-
if [ -f
|
|
189
|
+
if [ -f version.go ]; then
|
|
190
|
+
sed -i.release.bak -e "s/$SED_FRIENDLY_LAST_TAG/$NEW_TAG/g" version.go
|
|
191
|
+
rm version.go.release.bak
|
|
192
|
+
MODIFIED_FILES="$MODIFIED_FILES version.go"
|
|
193
|
+
fi
|
|
194
|
+
|
|
195
|
+
if [ "$IS_NODE" = "true" ]; then
|
|
172
196
|
sed -i.release.bak -e "s/\"version\": \"$LAST_TAG\"/\"version\": \"$NEW_TAG\"/" package.json
|
|
173
197
|
rm package.json.release.bak
|
|
174
198
|
MODIFIED_FILES="$MODIFIED_FILES package.json"
|
|
175
|
-
fi
|
|
176
|
-
|
|
177
|
-
if [ -f package-lock.json ]; then
|
|
178
|
-
npm i
|
|
179
|
-
MODIFIED_FILES="$MODIFIED_FILES package-lock.json"
|
|
180
199
|
|
|
181
|
-
if [ -f
|
|
182
|
-
npm
|
|
183
|
-
MODIFIED_FILES="$MODIFIED_FILES
|
|
200
|
+
if [ -f package-lock.json ]; then
|
|
201
|
+
npm i
|
|
202
|
+
MODIFIED_FILES="$MODIFIED_FILES package-lock.json"
|
|
203
|
+
|
|
204
|
+
if [ -f npm-shrinkwrap.json ]; then
|
|
205
|
+
npm shrinkwrap
|
|
206
|
+
MODIFIED_FILES="$MODIFIED_FILES npm-shrinkwrap.json"
|
|
207
|
+
fi
|
|
208
|
+
elif [ -f pnpm-lock.yaml ]; then
|
|
209
|
+
pnpm i
|
|
210
|
+
MODIFIED_FILES="$MODIFIED_FILES pnpm-lock.yaml"
|
|
211
|
+
elif [ -f yarn.lock ]; then
|
|
212
|
+
yarn
|
|
213
|
+
MODIFIED_FILES="$MODIFIED_FILES yarn.lock"
|
|
184
214
|
fi
|
|
185
|
-
elif [ -f pnpm-lock.yaml ]; then
|
|
186
|
-
pnpm i
|
|
187
|
-
MODIFIED_FILES="$MODIFIED_FILES pnpm-lock.yaml"
|
|
188
|
-
elif [ -f yarn.lock ]; then
|
|
189
|
-
yarn
|
|
190
|
-
MODIFIED_FILES="$MODIFIED_FILES yarn.lock"
|
|
191
215
|
fi
|
|
192
216
|
|
|
193
|
-
if [
|
|
217
|
+
if [ "$IS_PYTHON" = "true" ]; then
|
|
194
218
|
sed -i.release.bak -e "s/$SED_FRIENDLY_LAST_TAG/$NEW_TAG/g" setup.py
|
|
195
219
|
rm setup.py.release.bak
|
|
196
220
|
MODIFIED_FILES="$MODIFIED_FILES setup.py"
|
|
197
221
|
fi
|
|
198
222
|
|
|
199
|
-
if [
|
|
223
|
+
if [ "$IS_RUST" = "true" ]; then
|
|
200
224
|
sed -i.release.bak -e "s/$SED_FRIENDLY_LAST_TAG/$NEW_TAG/g" Cargo.toml
|
|
201
225
|
rm Cargo.toml.release.bak
|
|
202
226
|
MODIFIED_FILES="$MODIFIED_FILES Cargo.toml"
|
|
203
227
|
fi
|
|
204
228
|
|
|
205
|
-
if [ -f version.go ]; then
|
|
206
|
-
sed -i.release.bak -e "s/$SED_FRIENDLY_LAST_TAG/$NEW_TAG/g" version.go
|
|
207
|
-
rm version.go.release.bak
|
|
208
|
-
MODIFIED_FILES="$MODIFIED_FILES version.go"
|
|
209
|
-
fi
|
|
210
|
-
|
|
211
229
|
if [ -f CHANGELOG.md ]; then
|
|
212
230
|
LOG="CHANGELOG.md"
|
|
213
231
|
elif [ -f CHANGES.md ]; then
|
|
@@ -235,8 +253,9 @@ if [ "$LOG" != "" ]; then
|
|
|
235
253
|
MODIFIED_FILES="$MODIFIED_FILES $LOG"
|
|
236
254
|
fi
|
|
237
255
|
|
|
238
|
-
GIT_FRIENDLY_SUMMARY
|
|
256
|
+
GIT_FRIENDLY_SUMMARY=$(echo "$SUMMARY" | sed "s/#//g" | sed "s/^ //")
|
|
239
257
|
|
|
258
|
+
# shellcheck disable=SC2086
|
|
240
259
|
git add $MODIFIED_FILES
|
|
241
260
|
git commit -m "release: $NEW_TAG"
|
|
242
261
|
|
|
@@ -244,5 +263,5 @@ if [ -f Cargo.toml ]; then
|
|
|
244
263
|
cargo package
|
|
245
264
|
fi
|
|
246
265
|
|
|
247
|
-
git tag -a "$NEW_TAG" -m "
|
|
266
|
+
git tag -a "$NEW_TAG" -m "$(printf '%b' "$BUILD_TYPE release $NEW_TAG\n\n$GIT_FRIENDLY_SUMMARY")"
|
|
248
267
|
|