Skip to content

Commit 070d428

Browse files
committed
ok
1 parent 7004cc4 commit 070d428

File tree

4 files changed

+82
-74
lines changed

4 files changed

+82
-74
lines changed

RELEASES

-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
0.76.7
1515
0.76.6
1616
0.76.5
17-
0.76.4
1817
0.76.3
1918
0.76.2
2019
0.76.1

scripts/compare-releases.js

+12-4
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,19 @@
11
#!/usr/bin/env node
22

3-
import { gte } from "semver"
3+
// when comparing A and B
4+
// if A < B, return 1
5+
// if A == B, return 2
6+
// if A > B, return 3
7+
8+
import { gt, lt } from "semver"
49

510
const left = process.argv[2]
611
const right = process.argv[3]
712

8-
if (gte(left, right)) {
9-
process.exit(0)
13+
if (lt(left, right)) {
14+
process.exit(1)
15+
}
16+
if (gt(left, right)) {
17+
process.exit(3)
1018
}
11-
process.exit(1)
19+
process.exit(2)

scripts/multiple-releases-diffs.sh

+24-35
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,39 @@
11
#!/usr/bin/env bash
2-
set -euxo pipefail
2+
set -euo pipefail
33

44
releases=(
5-
0.75.0-rc.6
6-
0.75.0-rc.5
7-
0.75.0-rc.4
8-
0.75.0-rc.3
9-
0.75.0-rc.2
10-
0.74.4
11-
0.74.3
12-
0.74.2
13-
0.74.1
14-
0.74.1-rc.0
15-
0.74.0
16-
0.74.0-rc.9
17-
0.74.0-rc.8
18-
0.74.0-rc.7
19-
0.74.0-rc.6
20-
0.74.0-rc.5
21-
0.74.0-rc.4
22-
0.74.0-rc.3
23-
0.74.0-rc.2
24-
0.74.0-rc.0
25-
0.73.9
26-
0.73.8
27-
0.73.7
5+
0.64.3
286
)
297

30-
318
if [ ! -d wt-diffs ]; then
329
git worktree add wt-diffs diffs
3310
fi
3411

35-
for vfrom in "${releases[@]}"
36-
do
37-
echo "from $vfrom"
38-
for vto in "${releases[@]}"
39-
do
40-
if [ "$vfrom" == "$vto" ]; then
12+
for i in "${!releases[@]}"; do
13+
vfrom="${releases[$i]}"
14+
echo "For release $vfrom:"
15+
for j in "${!releases[@]}"; do
16+
# Skip if j index is less than or equal to i
17+
if [ $j -le $i ]; then
4118
continue
4219
fi
20+
vto="${releases[$j]}"
4321

44-
if ./scripts/compare-releases.js "$vfrom" "$vto"; then
45-
continue
46-
fi
22+
result=0
23+
./scripts/compare-releases.js "$vfrom" "$vto" || result=$?
4724

48-
git diff --binary -w -M15% origin/release/"$vfrom"..origin/release/"$vto" > wt-diffs/diffs/"$vfrom".."$vto".diff
25+
case $result in
26+
1)
27+
echo "with later release $vto: Generating diff file.."
28+
git diff --binary -w -M15% origin/release/"$vfrom"..origin/release/"$vto" >wt-diffs/diffs/"$vfrom".."$vto".diff
29+
;;
30+
3)
31+
echo "with earlier release $vto: Generating diff file.."
32+
git diff --binary -w -M15% origin/release/"$vto"..origin/release/"$vfrom" >wt-diffs/diffs/"$vto".."$vfrom".diff
33+
;;
34+
*)
35+
echo "Error: Unexpected return code $result from compare-releases.js"
36+
;;
37+
esac
4938
done
5039
done

scripts/new-release.sh

+46-34
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
#!/usr/bin/env bash
22
set -euxo pipefail
33

4-
54
ErrorReleaseExists=2
65
ErrorReleaseArgMissing=3
76
ErrorReleaseTagExists=4
@@ -17,14 +16,14 @@ NumberOfReleases=12 # the number of releases on the table
1716

1817
IgnorePaths=("README.md")
1918

20-
function guardMissingArg () {
19+
function guardMissingArg() {
2120
if [ "$#" -ne 1 ]; then
2221
echo "Release argument missing."
2322
exit "$ErrorReleaseArgMissing"
2423
fi
2524
}
2625

27-
function guardExisting () {
26+
function guardExisting() {
2827
if grep -qFx "$newRelease" "$ReleasesFile"; then
2928
echo "Release $newRelease already exists!"
3029
exit "$ErrorReleaseExists"
@@ -35,14 +34,14 @@ function guardExisting () {
3534
fi
3635
}
3736

38-
function prepare () {
37+
function prepare() {
3938
# This git config setting, in combination with the `.gitattributes` file, tells the scripts to not pay attention to some files that don't need to be in the diffs, like the root `.gitignore` of this repo (not the RnDiffApp project).
4039
git config --local diff.nodiff.command true
4140
git pull
4241
npm install
4342
}
4443

45-
function generateNewReleaseBranch () {
44+
function generateNewReleaseBranch() {
4645
# go to the base app branch
4746
git worktree add wt-app "$AppBaseBranch"
4847
cd wt-app
@@ -59,9 +58,9 @@ function generateNewReleaseBranch () {
5958
# generate app and remove generated git repo
6059
# if we're generating the template for an -rc release, let's grab cli@next
6160
if [[ $newRelease == *-rc* ]]; then
62-
npx @react-native-community/cli@next init "$AppName" --version "$newRelease" --skip-install
61+
npx @react-native-community/cli@next init "$AppName" --version "$newRelease" --skip-install
6362
else
64-
npx @react-native-community/cli@latest init "$AppName" --version "$newRelease" --skip-install
63+
npx @react-native-community/cli@latest init "$AppName" --version "$newRelease" --skip-install
6564
fi
6665

6766
# clean up before committing for diffing
@@ -80,8 +79,8 @@ function generateNewReleaseBranch () {
8079
git worktree prune
8180
}
8281

83-
function addReleaseToList () {
84-
echo "$newRelease" >> "$ReleasesFile"
82+
function addReleaseToList() {
83+
echo "$newRelease" >>"$ReleasesFile"
8584

8685
if command -v tac; then
8786
# take each line ->dedup-> sort them -> reverse them -> save them
@@ -94,7 +93,7 @@ function addReleaseToList () {
9493
mv tmpfile "$ReleasesFile"
9594
}
9695

97-
function generateDiffs () {
96+
function generateDiffs() {
9897
if [ ! -d wt-diffs ]; then
9998
git worktree add wt-diffs diffs
10099
fi
@@ -103,24 +102,38 @@ function generateDiffs () {
103102
git pull
104103
cd ..
105104

105+
echo "For release $newRelease:"
106106
IFS=$'\n' GLOBIGNORE='*' command eval 'releases=($(cat "$ReleasesFile"))'
107-
for existingRelease in "${releases[@]}"
108-
do
109-
if [ "$existingRelease" == "$newRelease" ]; then
110-
continue
111-
fi
112-
113-
if ./scripts/compare-releases.js "$existingRelease" "$newRelease"; then
107+
for existingRelease in "${releases[@]}"; do
108+
109+
result=0
110+
./scripts/compare-releases.js "$newRelease" "$existingRelease" || result=$?
111+
112+
case $result in
113+
1)
114+
echo "with later release $existingRelease: Generating diff file.."
115+
git diff --binary -w -M15% origin/release/"$newRelease"..origin/release/"$existingRelease" >wt-diffs/diffs/"$newRelease".."$existingRelease".diff
116+
;;
117+
2)
118+
echo "with same release $existingRelease: Skipping.."
114119
continue
115-
fi
120+
;;
121+
3)
122+
echo "with earlier release $existingRelease: Generating diff file.."
123+
git diff --binary -w -M15% origin/release/"$existingRelease"..origin/release/"$newRelease" >wt-diffs/diffs/"$existingRelease".."$newRelease".diff
124+
;;
125+
*)
126+
echo "Error: Unexpected return code $result from compare-releases.js"
127+
;;
128+
esac
116129

117130
ignoreArgs=()
118131
for path in "${IgnorePaths[@]}"; do
119132
ignoreArgs+=(":!$path")
120133
done
121134

122135
git diff --binary -w -M15% origin/release/"$existingRelease"..origin/release/"$newRelease" \
123-
-- . "${ignoreArgs[@]}" > wt-diffs/diffs/"$existingRelease".."$newRelease".diff
136+
-- . "${ignoreArgs[@]}" >wt-diffs/diffs/"$existingRelease".."$newRelease".diff
124137
done
125138

126139
cd wt-diffs
@@ -130,49 +143,48 @@ function generateDiffs () {
130143
cd ..
131144
}
132145

133-
function pushMaster () {
146+
function pushMaster() {
134147
git add .
135148
git commit -m "Add release $newRelease"
136149
git push
137150
}
138151

139-
function generateTable () {
140-
head -n "$NumberOfReleases" "$ReleasesFile" | ./scripts/generate-table.js > "$ReadmeTable"
152+
function generateTable() {
153+
head -n "$NumberOfReleases" "$ReleasesFile" | ./scripts/generate-table.js >"$ReadmeTable"
141154
}
142155

143-
function generateBigTable () {
144-
cat "$ReleasesFile" | ./scripts/generate-table.js --big > "$ReadmeTableBig"
156+
function generateBigTable() {
157+
cat "$ReleasesFile" | ./scripts/generate-table.js --big >"$ReadmeTableBig"
145158
}
146159

147160
ReadmeHeader=README_HEADER.md
148161
ReadmeFooter=README_FOOTER.md
149162

150-
function breakUpReadme () {
151-
perl -p0e 's/(.*## Diff table[^\n]*\n\n)(.*)/$1/smg' "$ReadmeFile" > "$ReadmeHeader"
152-
perl -p0e 's/(.*)(\n## To see.*)/$2/smg' "$ReadmeFile" > "$ReadmeFooter"
163+
function breakUpReadme() {
164+
perl -p0e 's/(.*## Diff table[^\n]*\n\n)(.*)/$1/smg' "$ReadmeFile" >"$ReadmeHeader"
165+
perl -p0e 's/(.*)(\n## To see.*)/$2/smg' "$ReadmeFile" >"$ReadmeFooter"
153166
}
154167

155-
function makeUpReadme () {
156-
cat "$ReadmeHeader" "$ReadmeTable" "$ReadmeFooter" > "$ReadmeFile"
168+
function makeUpReadme() {
169+
cat "$ReadmeHeader" "$ReadmeTable" "$ReadmeFooter" >"$ReadmeFile"
157170
}
158171

159-
function generateReadme () {
172+
function generateReadme() {
160173
breakUpReadme
161174
makeUpReadme
162175
}
163176

164-
function generateGHPages () {
177+
function generateGHPages() {
165178
cp docs/_index.html docs/index.html
166-
npx markdown "$ReadmeTableBig" >> docs/index.html
179+
npx markdown "$ReadmeTableBig" >>docs/index.html
167180
}
168181

169-
function cleanUp () {
182+
function cleanUp() {
170183
rm -rf "$ReadmeHeader" "$ReadmeFooter" "$ReadmeTable" "$ReadmeTableBig"
171184
rm -rf wt-app
172185
git worktree prune
173186
}
174187

175-
176188
guardMissingArg $*
177189
newRelease=${1#v}
178190

0 commit comments

Comments
 (0)