File: release.sh

package info (click to toggle)
golang-github-google-flatbuffers 24.12.23-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental, forky, sid, trixie
  • size: 17,704 kB
  • sloc: cpp: 53,217; python: 6,900; cs: 5,566; java: 4,370; php: 1,460; javascript: 1,061; xml: 1,016; sh: 886; makefile: 13
file content (115 lines) | stat: -rwxr-xr-x 3,628 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
#!/usr/bin/bash

# Steps to do a release:
#
# 1. Make sure the repo builds and ./flatttests passes first, so that any
#    version changes are localized.
# 2. Run this script which should update all the version strings in the
#    appropriate places.
# 3. `make clean`
# 4. `make -j flatc`
# 5. Make sure the version is part of flatc: `./flatc --version`
# 6. `scripts/generated_code.py`
# 7. `goldens/generated_code.py`
# 8. `make -j`
# 9. Make sure the tests pass: `./flattests`

# Requires the xmlstarlet command.
#   Install via: apt install xmlstarlet
if ! command -v xmlstarlet 2>&1 >/dev/null
then
    echo "xmlstarlet could not be found"
    exit 1
fi

# Read the date as in the Pacific TZ, with no leading padding
read year month day <<<$(date --date="TZ=\"US/Pacific\"" +'%-y %-m %-d')

version="$year.$month.$day"
version_underscore="$year\_$month\_$day"

echo "Setting Flatbuffers Version to: $version"

echo "Updating include/flatbuffers/base.h..."
sed -i \
  -e "s/\(#define FLATBUFFERS_VERSION_MAJOR \).*/\1$year/" \
  -e "s/\(#define FLATBUFFERS_VERSION_MINOR \).*/\1$month/" \
  -e "s/\(#define FLATBUFFERS_VERSION_REVISION \).*/\1$day/" \
  include/flatbuffers/base.h

echo "Updating CMake\Version.cmake..."
sed -i \
  -e "s/\(set(VERSION_MAJOR \).*/\1$year)/" \
  -e "s/\(set(VERSION_MINOR \).*/\1$month)/" \
  -e "s/\(set(VERSION_PATCH \).*/\1$day)/" \
  CMake/Version.cmake

echo "Updating include/flatbuffers/reflection_generated.h..."
echo "Updating tests/evolution_test/evolution_v1_generated.h..."
echo "Updating tests/evolution_test/evolution_v1_generated.h..."
sed -i \
  -e "s/\(FLATBUFFERS_VERSION_MAJOR == \)[0-9]*\(.*\)/\1$year\2/" \
  -e "s/\(FLATBUFFERS_VERSION_MINOR == \)[0-9]*\(.*\)/\1$month\2/" \
  -e "s/\(FLATBUFFERS_VERSION_REVISION == \)[0-9]*\(.*\)/\1$day\2/" \
  include/flatbuffers/reflection_generated.h \
  tests/evolution_test/evolution_v1_generated.h \
  tests/evolution_test/evolution_v2_generated.h \
  tests/*_generated.h \
  tests/**/*_generated.h

echo "Updating java/pom.xml..."
xmlstarlet edit --inplace -N s=http://maven.apache.org/POM/4.0.0 \
  --update '//s:project/s:version' --value $version \
  java/pom.xml

echo "Updating package.json..."
sed -i \
  -e "s/\(\"version\": \).*/\1\"$version\",/" \
  package.json

echo "Updating net/FlatBuffers/Google.FlatBuffers.csproj..."
sed -i \
  -e "s/\(<PackageVersion>\).*\(<\/PackageVersion>\)/\1$version\2/" \
  net/FlatBuffers/Google.FlatBuffers.csproj

echo "Updating dart/pubspec.yaml..."
sed -i \
  -e "s/\(version: \).*/\1$version/" \
  dart/pubspec.yaml

echo "Updating python/flatbuffers/_version.py..."
sed -i \
  -e "s/\(__version__ = u\).*/\1\"$version\"/" \
  python/flatbuffers/_version.py

echo "Updating python/setup.py..."
sed -i \
  -e "s/\(version='\).*/\1$version',/" \
  python/setup.py

echo "Updating rust/flatbuffers/Cargo.toml..."
sed -i \
  "s/^version = \".*\"$/version = \"$version\"/g" \
  rust/flatbuffers/Cargo.toml

echo "Updating rust/flexbuffers/Cargo.toml..."
sed -i \
  "s/^version = \".*\"$/version = \"$version\"/g" \
  rust/flexbuffers/Cargo.toml

echo "Updating FlatBuffers.podspec..."
sed -i \
  -e "s/\(s.version\s*= \).*/\1'$version'/" \
  FlatBuffers.podspec

echo "Updating FlatBuffersVersion_X_X_X() version check...."
grep -rl 'FlatBuffersVersion_' *  --exclude=release.sh | xargs -i@ \
  sed -i \
    -e "s/\(FlatBuffersVersion_\).*()/\1$version_underscore()/g" \
    @

echo "Updating FLATBUFFERS_X_X_X() version check...."
grep -rl 'FLATBUFFERS_\d*' *  --exclude=release.sh | xargs -i@ \
  sed -i \
    -e "s/\(FLATBUFFERS_\)[0-9]\{2\}.*()/\1$version_underscore()/g" \
    @